为什么我使用 pdflatex 时会出现这个错误?

为什么我使用 pdflatex 时会出现这个错误?

首先,抱歉我没有 MWE,我知道这会让事情变得更加困难。我无法在一个小的例子中复制这个问题。

我怀疑 multirow 和 pdflatex 存在某种错误。

我不断收到以下错误:

         ! pdfTeX error (\pdfsetmatrix): Unrecognized format..
         <to be read again> 
                              \endgroup \set@typeset@protect 
         l.511 

         !  ==> Fatal error occurred, no output PDF file produced!

如果我删除使用多行的表,此错误就会消失。请注意,第 511 行位于表格环境中的多行语句之后,它是文本中的随机位置。

我不知道为什么会发生这种情况,我用 Google 搜索了 bug、multirow 等组合中的错误,但什么也没找到。有什么想法可以隔离问题以更好地理解它,或者以其他方式了解它的根源是什么?

编辑:我对多行的使用完全正确。如果我对 .tex 文件使用“latex”(而不是“pdflatex”),它可以很好地编译。

(对于多行语句,我使用多行包。)

答案1

第 511 行是 TeX 决定调用输出例程来输出页面的地方。LaTeX 中的输出例程以以下内容开头:

\def\@outputpage{%
\begingroup           % the \endgroup is put in by \aftergroup
  % ...
  \shipout \vbox{%
    \set@typeset@protect
    \aftergroup \endgroup
    \aftergroup \set@typeset@protect

在 的结束组之后\vbox,插入了标记\endgroup\set@typeset@protect,您可以在错误消息中看到。因此,错误很可能发生在\shipout页面的 内。

\pdfsetmatrix通常由/包的pdftex.def图形驱动程序使用,用于缩放/调整大小和旋转。graphicsgraphicx

对于分析来说,参数的值\pdfsetmatrix可能很有用(不幸的是,错误消息中没有显示)。但是,.log如果您可以在文档开头添加以下内容,则可以将参数打印在屏幕上或放入文件中:

\let\orgpdfsetmatrix\pdfsetmatrix
\renewcommand*{\pdfsetmatrix}[1]{%
  \typeout{* setmatrix: [#1]}%
  \orgpdfsetmatrix{#1}%
}
  • 也许您还可以识别出导致问题的操作,例如\scalebox\resizebox\rotatebox。当然,一个最小工作示例 (MWE) 会更好。

  • 您使用的是哪个版本pdftex.def?该文件可以通过以下方式找到

    kpsewhich pdftex.def
    

    版本号是第一行的一部分\ProvidesFile

  • 我认为,这与包没有任何直接关系mutlirow

相关内容