XeLaTeX构建器可以与Sphinx一起使用吗?

时间:2012-08-13 10:19:03

标签: python-sphinx xelatex

虽然这可以解决的最终问题是TeX(为PDF输出安装新字体),但我正在寻找的这个特殊解决方案是Sphinx问题。 Sphinx在制作PDF时使用标准的LaTeX,到目前为止还不错,但是我需要安装一个新的字体并尝试过失败。 我知道使用XeLateX这是一个更容易的过程,所以想知道是否有扩展或某种方式来配置Sphinx以使其使用XeLaTeX构建器。

3 个答案:

答案 0 :(得分:2)

我认为这可以归结为在sphinx开始工作之前接受一些LaTeX指令。

index.rst开始时,您可以添加一个“原始”条目,该条目已逐字传递给latex:

.. raw:: latex

   \setyournicefontorwhatever(beautiful.ttf)

这有助于获取正确的字体吗?我自己使用原始乳胶条目来删除部分文档中的部分编号(\setcounter{secnumdepth}{-1}在类似的“原始”条目中)。

此外,Sphinx documentation on build options有一些你可以试试的东西。最有希望看起来是documentclass设置中的latex_documents项。

答案 1 :(得分:0)

可以通过修改make文件以使用xelatex来允许sphinx使用xelatex构建器,或者只需在两个命令中构建doc .... make latex,然后xelatex yourdoc.tex。然而,重要的是禁用许多软件包,包括:fontenc,inputenc和babel,因为这些eithier根本不起作用或者可能在将来引起问题。我想如果你愿意,可能会有leiu of babel的替代套餐。另外xelatex已经允许inputenc [utf8]通常会考虑的一些(但不是全部)字符。

禁用这些功能可以在conf.py文件中完成,此文档显示了如何在" Latex"选项中执行此操作的一个很好的示例:

https://github.com/jterrace/sphinxtr/blob/master/conf.py

答案 2 :(得分:0)

使用xelatex时,我将以下内容添加到conf.py中:

latex_elements = {

# Additional stuff for the LaTeX preamble.
    'preamble': ''' \usepackage{fontspec} \setmainfont{Times New Roman}
    ''',
    'inputenc': '',
    'fncychap': '',
    'utf8extra': '',
    'times': '',
    'babel': '\usepackage{polyglossia}',
    'cmap': '',
    'fontenc': '',
    'releasename': '', }

您必须关闭许多默认的乳胶软件包,因为xelatex使用其他软件包或内置了该功能。