pdflatex大量数字后挂起

时间:2018-12-18 22:43:07

标签: python latex python-sphinx restructuredtext pdflatex

我有一个脚本,该脚本可以生成许多数字,并将其放在报告的附录中,例如

Appendix
********

.. figure:: images/generated/image_1.png
.. figure:: images/generated/image_2.png
.. figure:: images/generated/image_3.png
... etc

看起来在处理了大量(〜50)张图像之后,我的pdflatex命令将挂起,并指向此处的.tex文件中的其中一张图片

...
\begin(figure)[htbp]
\centering
\noindent\sphinxincludegraphics{{image_49}.png}
\end{figure}

\begin(figure)[htbp]
\centering
\noindent\sphinxincludegraphics{{image_50}.png} <--- here
\end{figure}

\begin(figure)[htbp]
\centering
\noindent\sphinxincludegraphics{{image_51}.png}
\end{figure}
...

pdflatex失败时,我无法真正从控制台输出中弄清楚要做什么,我得到了许多这样的行,这似乎是个好消息

<image_48.png, id=451, 411.939pt x 327.3831pt>
File: image_48.png Graphic file (type png)
<use image_48.png>
Package pdftex.def Info: image_48.png  used on input line 1251.
(pdftex.def)             Requested size: 411.93797pt x 327.3823pt.

<image_49.png, id=452, 411.939pt x 327.3831pt>
File: image_49.png Graphic file (type png)     
<use image_49.png>
Package pdftex.def Info: image_49.png  used on input line 1257.
(pdftex.def)             Requested size: 411.93797pt x 327.3823pt.

然后在最后一个成功的图像(〜50)之后开始输出

! Output loop---100 consecutive dead cycles.
\end@float ...loatpenalty <-\@Mii \penalty -\@Miv
                                                  \@tempdima \prevdepth \vbo...
l.1258 \end{figure}

I've concluded that your \output is awry; it never does a
\shipout, so I'm shipping \box255 out myself. Next time
increase \maxdeadcycles if you want me to be more patient!

[9
! Undefined control sequence.
\reserved@a ->\@nil

l.1258 \end{figure}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

如果我要做的只是减少数字,它将运行并生成一个pdf文件,而没有任何问题。一个部分可以拥有的图像数量是否有硬性限制?我还能在构建日志中查看其他地方以缩小发生这种情况的原因吗?

3 个答案:

答案 0 :(得分:0)

这似乎是几件事情的组合。

第一个症状实质上是由too many unprocessed floats引起的错误。解决方法是将以下内容添加到babel

latex_elements元素中
\usepackage[maxfloats=256]{morefloats}

第二个症状是抱怨Output loop---100 consecutive dead cycles.,因此解决方法只是增加循环数

\maxdeadcycles=1000

这两项调整之后,pdflatex命令现在将成功完成,即使有大量图形也是如此。

答案 1 :(得分:0)

我遇到了这个问题,上面的建议没有用。但是,通过插入可能与您的目标不兼容的小节,我能够使其正常运行。该脚本生成的代码如下,然后将其输入到另一个代码段中以预览生成的图像, (我正在从c ++生成svg图,转换为png,并预览基本的原始数据以供选择,以供以后用于实际文档中的图,而不仅仅是图像的集合)

\subsection{svghappy2.tyrosine.png}
\begin{figure}[htbp]
\testplot{svghappy2_tyrosine.png}
\caption{svghappy2.tyrosine.png}
\end{figure}

\subsection{svghappy2.valine.png}
\begin{figure}[htbp]
\testplot{svghappy2_valine.png}
\caption{svghappy2.valine.png}
\end{figure}

答案 2 :(得分:0)

由于编译器很难设置所有图像而出现问题。他们之间的分裂会有所帮助。正如@mike-marchywka 指出的那样,部分可能会起作用,但其他东西也可以,例如 placeins

中的 \pagebreak 或 \FloatBarrier