5

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

4

3 回答 3

2

我认为这归结为在 sphinx 开始工作之前获取一些 LaTeX 指令。

在您的 . 开头index.rst,您可以添加一个“原始”条目,该条目逐字传递给乳胶:

.. raw:: latex

   \setyournicefontorwhatever(beautiful.ttf)

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

此外,关于构建选项的 Sphinx 文档有一些你可以尝试的东西。最有希望的看起来是设置中的documentclass项目latex_documents

于 2012-11-18T18:39:14.957 回答
0

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

禁用这些可以在您的 conf.py 文件中完成,该文档显示了如何在“乳胶选项”下执行此操作的一个很好的示例:

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

于 2014-10-14T09:42:15.557 回答
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 使用其他包或内置功能。

于 2016-07-29T14:08:33.877 回答