最近有一批Windows下CTeX的TeX源代码,想挪到苹果上运行,碰到了坑不少,最后一一解决

(1)GBK转UTF-8,在Windows的Ctex套装都是用的GBK编码,而现代的TeXLive (MacTeX)都是UTF-8编码,需要把编码转换过来,Mac下自带编码转换软件iconv

(2)命令连字问题,在Windows下的ctex套装,允许出现”\bf这是重点”这种命令,不加空格可以正常运行,但是到了TeXLive下就认为bf后面都是指令,直接报错,于是需要把\bf和内容之间加空格,但是需要避免把\bfseries这类指令给拆开来,只能采用正则表达式了。其他例如\item \pause命令同样如此。

折腾了半天终于搞了个可用的脚本

cd "$( cd "$( dirname "$0"  )" && pwd  )"
for i in ./*.tex;
do
    iconv -c -f GBK -t UTF8 "$i" > tex.temp;
    sed -i "" -r "s/(\\bf)([^s])/\1 \2/g" tex.temp;
    sed -i "" 's/\\pause/\\pause /g' tex.temp;
    sed -i "" 's/\\item/\\item /g' tex.temp;
    mv tex.temp "$i";
done

直接命名为GBK2UTF.command,chmod+x赋予可执权限,与tex文件放到一个文件下就可以了。当然需要把原来代码里的CJK一类删除,通过\usepackge{ctex}和xelatex方式来支持中文。

晚上吃完饭,回来收到一封邮件,嘴里还在想谁写文章投IEEE Access挂了我的名字,结果仔细一看原来是审稿邀请,再看标题跟我的方向很一致,果然跟我一样,我自己都很久没写这方面的文章了,居然还有人记得我。。。😂

算算已经呆在家一个半月啦,突然在抽屉里翻到一张五年前以Jack的名义自己寄给自己的明信片,应该是快要离开的时候匆匆地写了一下,字好丑,尬。。。现在想想也是佩服自己的操作,顿时满满地回忆杀来了。。。

写给自己的明信片
继续阅读