【问题标题】:Sphinx to Latex Figure Placement狮身人面像到乳胶人物放置
【发布时间】:2014-06-18 12:19:42
【问题描述】:

我正在尝试使用 Sphinx 以乳胶和 HTML 格式生成手册,但我遇到了乳胶中的图形放置问题。在狮身人面像我的数字如下:

.. figure:: _images/somepicture.png
    :figwidth: 100 %
    :width: 100 %
    :align: center

    some caption

这样当它写入 HTML 时,数字会跨越页面的整个宽度。这很好用。

问题出在latex中,latex中的一个典型数字写成:

\begin{figure}[htbp]
\centering

\includegraphics[width=1.000\linewidth]{reset.png}
\end{figure}

问题在于 [htbp] 放置选项。由于图像的长度为 \linewidth,因此它们非常大并最终浮动到下一页,并且文档中的文本和图形的顺序通常不会保留在 pdf 输出中。我想将 [htbp] 更改为 [H]。

我在名为“figure_align”的乳胶元素部分下找到了放入 conf.py 文件的选项,但是当我使用它时,它不起作用。链接在这里http://sphinx.readthedocs.org/en/latest/config.html#options-for-latex-output

在我的 conf.py 文档中,我有以下内容:

latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',

# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',

# Additional stuff for the LaTeX preamble.
#'preamble':'',

#Figure placement within LaTeX paper NOT WORKING
'figure_align': 'H'

}

我的问题是,为什么这个选项不起作用,我该怎么做才能使它起作用?

【问题讨论】:

  • H float 修饰符需要 float(ctan.org/pkg/float) 包 \usepackage{float},您认为它有帮助吗?一般来说,it doesn't work 到底是什么意思(是否产生任何错误等)?
  • 我也尝试将 '\\usepackage{float}' 添加到序言元素中,但也没有运气。通过“它不起作用”,我的意思是当它写入 LaTeX 时,构建中没有错误或任何内容,但是当我查看 .tex 文件时,所有数字仍然具有 [htbp] 选项,即“figure_align”元素没有像我预期的那样修改它们。
  • python 中没有一些缓存机制可以解释为什么您对代码的更改没有反映在其执行中(字节码等)吗?
  • 您是否尝试过 make clean,或者在新构建之前先删除您的 _build 文件夹?
  • 我在构建之前尝试过 make clean,没有产生任何不同。

标签: latex python-sphinx figure


【解决方案1】:

在修改 conf.py 时,您可能忘记了 'H' 后面的逗号。

乳胶图形(浮点数)对齐

'figure_align': 'H',

在 sphinx-doc 版本 1.4.6 上为我工作。

'figure_align' Latex 图形浮动对齐,默认'htbp'(这里,顶部,底部,页面)。每当图像不适合当前页面时,它将“浮动”到下一页,但前面可能有任何其他文本。如果您不喜欢这种行为,请使用“H”,它将禁用浮动并严格按照它们在源中出现的顺序定位数字。 Reference Sphinx-doc latex_element.

【讨论】:

  • dict 中最后一个元素的逗号是完全可选的。但是,将'figure_align': 'H' 添加到conf.py 中的latex_elements 字典对我来说与OP 不同。从 OP 的回答来看,这个功能似乎是在新版本的 Sphinx 中添加的。
【解决方案2】:

我在这里找到了添加此功能的拉取请求:https://bitbucket.org/birkenfeld/sphinx/pull-request/227/latex-allow-alternative-float-options-for/diff

我查看了我的源代码,发现我的 sphinx 版本在编写器文件中没有包含乳胶元素“figure_align”。我从拉取请求中添加了代码,它现在可以工作了。

sphinx 的“构建配置文件”文档中所述的版本(找到 here)声明所有乳胶元素选项在 0.5 或更高版本中可用,似乎某些元素仅在更高版本中添加狮身人面像。我使用的是 1.2.2 版,而“figure_align”不是有效的乳胶元素。

简而言之,我本可以升级到最新版本的 sphinx,但我只是从拉取请求中添加了代码,它现在可以按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多