在org中用latex导出中文文档的配置

Author: R.W.Flurando

Tags: emacs, org-mode, latex, 中文支持

背景

Latex作为排版工具可以说很好用

当然我更倾向于用org,反正都可以导出

问题

中文支持比较麻烦

或者说,ascii以外的都很麻烦

而我们要使用org来一键导出,就更麻烦了

解决

目前的方案是xelatex后端加xeCJK包加中文字体。

org文件头

我的org文件头如下

#+TITLE: 测试文档
#+AUTHOR: 繠䴧
#+LATEX_COMPILER: xelatex
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper]
#+LATEX_HEADER: \usepackage{xeCJK}
#+LATEX_HEADER: \setCJKmainfont{WenQuanYi Zen Hei}
#+OPTIONS: \n:t toc:nil num:nil date:nil

值得注意的是,由于我图方便用的是文泉驿字体,所以这个字体包里没有的CJK字符我们当然就打不出来

什么是CJK,就是Chinese中国语,Japanese日本语和Korean韩国语,还不明白的不在本文预设读者群体内。

还有,我这里预定是写那种空的a4文章用的,所以使用article类而且关掉目录生成、日期生成,保留了回车(否则要按默认用一个空行来开新的段落)。这些自然和支持中文无关,你可以自由修改。

和中文有关的只有

#+LATEX_COMPILER: xelatex
#+LATEX_HEADER: \usepackage{xeCJK}
#+LATEX_HEADER: \setCJKmainfont{WenQuanYi Zen Hei}

它们依次

  1. 指明使用xelatex后端编译latex文档而不是默认的pdflatex
  2. 调用xeCJK包
  3. 指明用于CJK字符的字体是文泉驿增黑

没啥好说的,复制&粘贴。

所以?

我知道,这一小段很容易。

问题在于,环境配置。

下面,虽然与本文题目无干,但我认为还是有必要讲一下环境配置的。

简单来说就是能下texlive的就用texlive,windows看看mactex,其他不知道。

它们都是一个全家桶捆绑包,texlive各大linux发行版都有打包,没有也能在cpan.org官网上看到,很清晰

这都不知道怎么下的不应该用linux,早离早舒坦

下好之后呢你还需要保证电脑上有文泉驿增黑的字体,或者把那三段最后一行改掉,改成你要用的字体名称

那么字体名称在哪里看呢?我是从gnome桌面自带的font程序里看到的,至于其他途径,真不懂,不论你是百毒还是谷歌,总之自求多福吧

没有其他要注意的了

后记

多说一嘴,我呢,由于在用Guix系统,而Guix系统有志愿者大佬打包的模块化texlive

便试验了一下中文支持需要的包

怎么找到它们的呢?

比方说编译报错说没有example.sty文件

那我就运行tlmgr info example.sty

看看它出自哪个包

比方说来自test包

那我们就搜索guix search texlive- test或者直接尝试guix show texlive-test

确认没问题就用guix install texlive-test下载

然后再次编译看能否成功

懒得折腾的话Guix也有独立包texlive,4G+,看你愿不愿意了,省事当然首选

最后发现需要如下

texlive-scheme-basic
texlive-xetex
texlive-ulem
texlive-fontspec
texlive-xecjk
texlive-ctex

当然还要字体,来自包font-wqy-zenhei

感言

感觉还不错,这里感谢打模块化texlive包的Guix维护者。

原来打中文只要这么几个包啊(其实ctex会带好多texlive模块作为依赖,但是你懂的,再多也没有一个包4G多)

好了,到这里我们就可以愉快的用org出中文pdf文档了!

完事收工。