9

PDF 输出中的代码块看起来很难看(检查引号):

在此处输入图像描述

我使用 1.1.3 版的 Sphinx,并使用以下命令生成文档:

$ make latexpdf

此外,从 PDF 复制代码段会在粘贴时破坏缩进:

@view_config(route_name=’hello’)
def hello_world(request):
return Response(’Hello World!’)

我希望这样:

@view_config(route_name=’hello’)
def hello_world(request):
    return Response(’Hello World!’)

这会更好:

@view_config(route_name='hello')
def hello_world(request):
    return Response('Hello World!')
4

3 回答 3

3

Sphinx 确实是一个出色的工具,但我对 latexpdf 目标的默认 PDF 输出也有一些问题。

具体来说:

  • 代码块中的单引号被转换为在源代码中看起来不正确的尖锐样式引号。
  • 代码块没有从正文中缩进。对我来说,这使它们的可读性降低。
  • 我更喜欢其他字体和 pygments,但这只是个人选择,可以配置。

其中一些可以在 Sphinx conf.py 的 LaTeX 前导部分中修复,但 Sphinx 将引号修改为自定义 LaTeX 实体,因此不能使用upquote LaTeX 包来更正它们。

在对不同的配置选项进行了大量实验之后,我最终编写了一个小脚本来在构建 PDF 之前修改 LaTeX 源代码。脚本在这里,我想要生成的输出在这里。(为了比较,这里是同一文档的默认输出。)

如果有人有一个更清洁的解决方案,例如可以完全通过 Sphinx conf.py 完成的解决方案,那么 ReadTheDocs 会获取这些更改,那么我会感兴趣。

此外,从 PDF 复制和粘贴时丢失缩进的问题可能不是 Sphinx/LaTeX 问题。

于 2013-04-23T08:36:22.697 回答
2

这只是可能导致最终解决方案的部分答案。要在 Sphinx 中禁用 HTML 输出的印刷引号(也称为弯引号或智能引号),请将 SmartyPants 的conf.py中的默认设置 从 True 更改为 False

我假设人们可以在 Sphinx 中找到转换引号的函数,并使用来自 HTML 输出的相同逻辑并将其应用于 PDF 输出。

于 2013-10-04T06:57:00.423 回答
1

Steve Piercy 提出的选项现在不再有效(自 Sphinx 1.6 起):

Deprecated since version 1.6: Use the smart_quotes option 
in the Docutils configuration file (docutils.conf) instead.

对我来说不明显的是如何应用此设置。您需要创建一个docutils.conf文件并将其放在以下位置之一

  • /etc/docutils.conf
  • ./docutils.conf
  • ~/.docutils

最简单的选择是将它放在您从中构建文档的位置 - YMMV。它至少应包含以下内容:

[general]
smart_quotes: no
于 2017-06-13T10:26:46.530 回答