【问题标题】:Can the XeLaTeX builder be used with Sphinx?XeLaTeX 构建器可以与 Sphinx 一起使用吗?
【发布时间】:2012-08-13 10:19:02
【问题描述】:

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

【问题讨论】:

  • 我觉得在这里问比较好:tex.stackexchange.com
  • 我想先在那里发帖,但如上所述,问题与乳胶没有任何关系,而是与配置Sphinx有关。

标签: python-sphinx xelatex


【解决方案1】:

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

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

.. raw:: latex

   \setyournicefontorwhatever(beautiful.ttf)

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

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

【讨论】:

    【解决方案2】:

    可以通过修改 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

    【讨论】:

      【解决方案3】:

      我在使用 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 使用其他包或内置功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 2013-04-08
        • 2014-06-15
        • 2018-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多