时间:2021-07-01 10:21:17 帮助过:61人阅读
什么是sphinx ? Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. It was originally created for the new Python documentation, and it has excell
什么是sphinx ?
Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license.
It was originally created for the new Python documentation, and it has excellent facilities for the documentation of Python projects, but C/C++ is already supported as well, and it is planned to add special support for other languages as well.
安装Sphinx
pip install sphinx
使用Sphinx创建文档工程
mkdir docs
sphinx-quickstart
sphinx-quickstart
会问你一连串的问题,完成之后会创建基本的文档工程文件。其中配置文件为conf.py
。
Sphinx支持输出html和pdf文档。输出html很简单:
make html
它会把生成的html文档存放在_build/html
目录下。
要生成pdf的话,需要先安装Latex,推荐使用MacTex,它的安装包约有2GB,安装需要4GB的空间。
如果文档是纯英文文档,要生成pdf很简单,只需要执行下面的命令即可:
make latexpdf
它会把生成的html文档存放在_build/pdf
目录下。
如果在文档中有中文,使用这种方法产生pdf的话pdflatex
会提示错误。
要解决这个问题,需要修改conf.py
中的latex配置,在生成的latex文件中添加对中文的支持。
在conf.py
中找到latex_elements
并修改为如下:
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
'papersize': 'a4paper',
# The font size ('10pt', '11pt' or '12pt').
'pointsize': '12pt',
'label': '\\usepackage[english]{babel}',
# Additional stuff for the LaTeX preamble.
'preamble': '''
\usepackage{xeCJK}
\usepackage{indentfirst}
\setlength{\parindent}{2em}
\setCJKmainfont[BoldFont=SimHei, ItalicFont=STKaiti]{SimSun}
\setCJKmonofont[Scale=0.9]{STKaiti}
\setCJKfamilyfont{song}[BoldFont=SimSun]{SimSun}
\setCJKfamilyfont{sf}[BoldFont=SimSun]{SimSun}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
'''
}
其中字体的设置是需要根据你系统中可用的中文字体来确定,
可以使用fc-list
命令来查看系统支持的中文字体:
fc-list :lang=zh
在获取到系统支持的中文字体后,选择喜欢的字体即可。
要在latex中支持中文,需要使用xelatex
命令来产生pdf文档。
make latex
cd _build/latex
xelatex *.tex
原文地址:在Mac上使用Sphinx产生文档并生成中文PDF文档, 感谢原作者分享。