使用 psfragfig:错误处理图形

使用 psfragfig:错误处理图形

我正在使用 matlabfrag 生成一个 eps 和一个 tex 文件,并尝试使用 pstools 将这些图形包含为

\begin{figure}[ht]
        \centering
        \psfragfig*[width=0.55\textwidth]{pics/figure1}{}
        \caption{my caption}
\end{figure}

或者在小页面内

\begin{minipage}{0.55\textwidth}
    \centering
    \psfragfig*[width=0.55\textwidth]{pics/figure1}{}
    \captionof{figure}{my caption}
\end{minipage}

在极少数情况下,它可以正常工作(编译 100 次后),但大多数情况下,PDF 中都会出现一个红框,提示“处理图形时发生错误 [...] 检查日志文件以查找编译错误”。但是,Texniccenter 没有给出任何编译错误,我在图形的日志文件中也找不到任何编译错误。

我正在使用 Texniccenter 和 Miktex 2.9。我将以下行传递给编译器:

-max-print-line=120 -synctex=1 -interaction=nonstopmode --shell-escape "%wm"

已经为此困扰好几天了,非常感谢您的帮助!

编辑:使用 mode=errorstop 作为 pstool 选项进行调试的结果

创建的 .aux 文件似乎存在一些问题。如果我在编译之前删除所有 .aux 文件,则图形会正确显示,并且不会出现错误。然后我可以设置 \usepackage[process=none]{pstool},一切正常。但是,使用 [process=all] 再次编译报告会触发错误。

错误因图形的位置、数量和包含图形的方式而异,但大多数错误在某个时候都包含“latex:错误的文件描述符”。以下是一小部分:

latex: file ended while scanning use of @writefile
! File  ended while scanning us of \@newl@bel
Can't use spacefactor in vertical mode

似乎只要文档中分布着 5 个以上的数字,就会出现问题。如果分布在同一个地方,则分布更多数字会很好,如果分布在同一个地方,则分布 2 个数字,分布在另外一个地方,则分布 3 个数字也会很好。我希望可以更具体一些,但错误似乎出现得非常随机,很难确定是什么原因造成的。

答案1

pstool包使用编译/排版阶段的错误标志来确定排版是否成功,因此如果您看到红色框,则链中的某处一定存在错误。

为了帮助追踪此类问题,请pstool使用以下选项加载:

\usepackage[mode=errorstop]{pstool}

并在 texniccentre 中使用-interaction=errorstopmode;这将在滚动时显示所有输出,并在发生错误时暂停。

如果图形排版成功,则表明将 DVI 转换为 PS 再转换为 PDF(然后可能裁剪)时出现后续问题。尝试在导致这种情况的文件(或其他文件)上手动运行这些步骤。由于您使用的是 Windows,因此在尝试转换文件pics/figure1.dvi时出现 ghostscript 错误或类似错误并非不可能。pstool

相关内容