背景介绍
python-sphinx是一个非常方便用于编写文档的package(具体介绍可以留个坑,这里就不详细说明了),在安装了这个包,并写完文档的rst源文件后,只需在工程目录下输入:
make html
即可在build/html目录下生成对应的一系列html文件,点击index.html即可查看编译出来的文档
但有些时候,文档是要以pdf的形式呈现的。这个时候就需要用到:
make latexpdf
但也许很多人就会发现,这样编译总是出现各种各样的错误。例如这里缺xxx.sty,那里找不到字体……等一系列的令人头疼的问题
本人也在这里卡了半个晚上,收集了大量的资料和博客才得以解决,现尽可能地总结一种在Arch Linux系统下快速避开编译出错(尤其是中文)问题的方法
核心步骤
安装texlive-langextra
用包管理器(这里是用了paru)安装texlive-langextra:
paru -S texlive-langextra
如果发现安装失败,可能是因为自己之前手动安装了一些latex包,按报错的路径把那些手动复制进去的文件夹删掉即可
安装texlive-langchinese
paru -S texlive-langchinese
这个package也十分重要,涉及到中文
编辑sphinx项目中的conf.py文件
打开sphinx中的conf.py文件,往里面加上:
latex_elements = {
'preamble': '''
\\hypersetup{unicode=true}
\\usepackage{CJKutf8}
\\AtBeginDocument{\\begin{CJK}{UTF8}{gbsn}}
\\AtEndDocument{\\end{CJK}}
'''
}
保存退出。现在去工程文件路径下,输入:
make latexpdf
(应该)就可以编译成功了(我是成功了)
编译成功后,就可以在build/latex下找到编译生成的pdf文件了
参考链接
上述解决方案主要参考:用Sphinx制作中文pdf,用于制作odoo中文用户手册