tex大名不再多说,作为需要编译的文档,外加原生不支持中文这样的设定,给人感觉难用是正常的。今天咬咬牙看了些资料,发现在前人的努力下编译中文已经是很简单的事情了,虽然原理依旧复杂,需要注意的地方依旧很多。

具体的解决方案为XeLaTeX + xeCJK + ctex。

在windows平台下还是建议使用ctex套件,该套件把引擎编辑器等等东西一起打了包,一次安装无痛使用。

linux下面则因为字体配置方案不统一的问题需要一些配置,下面是具体方法。

texlive

后端推荐使用texlive2012,可以找一个光盘镜像挂载起来,在挂载目录下直接

sudo ./install-tl

注意安装完成以后根据提示往.bashrc里面添加一下环境变量

export PATH=/usr/local/texlive/2012/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2012/texmf/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2012/texmf/doc/info:$INFOPATH

这样texlive就算安装配置好了,CJK、ctex宏包和XeTeX引擎都内置在其中,稍后会用到。

安装中文字体

因为版权问题texlive没有携带诸如宋体、黑体等的win字体,不过我们可以直接去windows系统的windows/fonts/目录下面拷贝sim*.ttf(宋体是simsum.ttc)出来。

拷出来的字体放在/usr/share/fonts/windows下面,更改一下权限

sudo chmod 644 /usr/share/fonts/windows/*

接着刷新字体缓存

sudo fc-cache -fv

字体安装成功后可以通过一下命令查看

fc-list :lang=zh

上面显示出的结果才是系统所识别的字体名字,先记住。

配置中文字体

因为众多linux发行版中的字体名称不不统一所以texlive默认的配置往往无法正常工作,这就需要手动去更改配置。

sudo vim /usr/local/texlive/2012/texmf-dist/latex/ctex/fontset/ctex-xecjk-winfonts.def

根据刚刚查看到的系统安装的字体情况,将以上配置文件中不合适的部分如ItalicFont={[simkai.ttf]}改为={KaiTi}。这样字体就配置完成了。

测试

touch test.tex

测试文件的内容为

\documentclass[UTF8]{ctexart}
\begin{document}
测试中文
\end{document}

不出意外的话pdflatex引擎能够成功编译上面的文档。

其中的ctexart是LaTeX中article文档类的中文本地化版本,如果你想使用其他的文档类,也可以这样

\documentclass[UTF8]{article}
\usepackage{ctex}
\begin{document}
测试中文
\end{document}

二者效果一致,在编译时ctex在底层调用CJK,并添加了很多本地化的成分,比如“Figure 1”会变成“图 1”等,方便不少。

调用字体则可以用\heiti\kaishu这些。

另一个选项:XeTeX

上面的方案虽然解决了中文的编译问题,但限制是只支持win下面经典的六套字体,具体原因则牵扯了版权技术等等的问题,我也没搞太明白。

这样的情况下可以任意调用系统字体的XeTeX引擎横空出世,并且包含在各大tex的发行版中,装了texlive的就可以直接调用。

值得注意的一点是,XeTeX基于Unicode,要求它的源文件编码必须是utf8(业界良心),win用户在保存文件的时候注意一下编码。

下面测试一下:

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{微软雅黑} %我按照前面的方法装了微软雅黑字体,没有可以选文泉驿正黑,或是任何系统字体
\begin{document}
测试中文!
\end{document}

编译时用xelatex,调用xeCJK宏包,直接生成pdf。

其实还可以这样

\documentclass{ctexart}
\setCJKmainfont{微软雅黑}
\begin{document}
测试中文
\end{document}

依旧使用xelatex编译,这样做的虽然看似用了CJK的底层,但实际上XeTeX引擎下ctex调用的还是xeCJK的宏包。

这样写的好处是如果没有指定字体或者指定的字体不存在,将使用宋体黑体等,不影响编译,兼容性好。


无root权限的情况下在集群上配置个人python环境

2014-02-27 by 煎挠橙

昨天刚问管理员师兄要了个服务器的账户,准备折腾一番。因为所里面用python的人不多,环境基本没配置,仅有的标准python库也很老了。

而且因为服务器上惊人的预装了SuSE Linux(What?),连源都没有,我磨了半天嘴皮子管理员师兄还是拒绝给上面的python升级,还说让我随便改一下环境变量就好了。

于是我折腾了4个小时,很“随意”的搞定了。这里做一个备份,省的回头忘了。

解决思路

  1. 在我的/home下先装一个python 2.7.6版本
  2. virtualenv隔离一个python环境出来
  3. 修改一下bash的配置文件,每次登陆时都把默认的python环境指向本地

这样处理过后

  1. 我得到了一个想要的python版本
  2. 不需要root权限
  3. 使用了虚拟环境 ...
read more

ubuntu的简单配置

2014-01-15 by 煎挠橙

接触ubuntu不过两个月,之前装了一个试玩,熟练之后越发的喜欢了,准备把工作环境迁移过来。不过之前只给了ubuntu 30g的磁盘空间,明显不够用,而且gnome3各种反人类,昨天心血来潮把原来的系统删了,扩了一下磁盘,重装。今天重新配置,顺便写在这里,后面方便查阅。

装系统

分区

我搞的是双系统,windows虽然讨厌,但还真离不开。没装ubuntu之前,硬盘分了两个区,c盘是主分区,用来装系统,剩下的扩展分区是一个d盘,存数据。

要再装个ubuntu的话就得再分一个区出来,做法很简单,(如果有的话)在windows下面,找到磁盘管理器,在原来的d盘上右键,压缩磁盘,跳出来的对话框可以调整大小,我弄了130g出来,点确定,过一会儿就能看到多了一个130g的空闲分区,windows下面的操作就到此为止了。

注意虽然压缩磁盘对原有的数据没影响,但磁盘操作都有丢数据的风险,最好提前做好备份。

做u盘安装盘

先去找一个顺眼的ubuntu的iso镜像,官网上就能下,这次我选了xubuntu,就是ubuntu换了张皮,但很多细节做的很舒服。

而后google一下UNetbootin,是个跨平台的ubuntu安装盘制作工具。找个空u盘,插电脑上 ...

read more