使用 Sphinx 生成 PDF
需求
对于 ArchLinux 来说,需要安装 texlive-most
、 texlive-lang
、noto-fonts-cjk
三个包以便提供必要的编译环境和中文字体和中文等宽字体。
通过 fc-list :lang=zh
可以查看系统中安装的中文字体,使用 fc-list :lang=zh | grep -i mono
可以查看中文等宽字体。本文选择的字体为: Noto Sans CJK SC
和 Noto Sans Mono CJK SC
环境配置
在 Sphinx 项目的 conf.py
文件中 添加以下内容
latex_engine = 'xelatex'
latex_elements = {
'papersize': 'a4paper',
'pointsize': '11pt',
'preamble': r'''
\usepackage{xeCJK}
\setCJKmainfont[BoldFont=Noto Sans CJK SC]{Noto Sans CJK SC}
\setCJKsansfont[BoldFont=Noto Sans CJK SC]{Noto Sans CJK SC}
\setCJKmonofont{Noto Sans Mono CJK SC}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\parindent 2em
\setcounter{tocdepth}{3}
'''
}
现在,你可以 #. 先 make latex
生成 latex 文件,然后进入生成的 latex 文件目录下执行 make
生成 pdf。 #. 直接执行 make latexpdf
自动生成 latex 并执行 make,以便直接生成 pdf 文件
自定义 PDF 元素
Sphinx 使用的模板文件为 sphinx.sty
,其中为 Sphinx 设定了很多的环境和宏。你可以在 latex_elements[latex_elements]
使用 /renewenvironment
下对宏和环境进行重新定义