使用 Sphinx 生成 PDF

需求

对于 ArchLinux 来说,需要安装 texlive-mosttexlive-langnoto-fonts-cjk 三个包以便提供必要的编译环境和中文字体和中文等宽字体。

通过 fc-list :lang=zh 可以查看系统中安装的中文字体,使用 fc-list :lang=zh | grep -i mono 可以查看中文等宽字体。本文选择的字体为: Noto Sans CJK SCNoto 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 下对宏和环境进行重新定义

Last moify: 2022-12-04 15:11:33
Build time:2025-07-18 09:41:42
Powered By asphinx