关于 pdftex 和 stockwidth

关于 pdftex 和 stockwidth

我使用 pdfTex 并有一个包含图形的文件,通过使用

\input miniltx.tex
\input graphicx.tex

一切运行良好。

现在我犯了一个错误

! Forbidden control sequence found while scanning use of \@firstoftwo.
<inserted text> 
                \par 
<to be read again> 
                   \newdimen 
l.558 \@ifundefined{stockwidth}{\newdimen
                                         \stockwidth}{}
? 

\stockwidth 和 \stockheight 有什么用,为什么它们没有在 /texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def 本身中定义?

编辑:如果 pdftex.def 说:

\@ifundefined{stockwidth}{\newdimen\stockwidth}{}
\@ifundefined{stockheight}{\newdimen\stockheight}{}

为什么这之后没有定义?

答案1

你使用的是一个旧版本,miniltx当前版本没有错误。

你问为什么\stockwidth没有定义

\@ifundefined{stockwidth}{\newdimen\stockwidth}{}

请注意,错误不是未定义的命令,也不是关于\stockwidth\newdimen 是“ ! Forbidden control sequence”。

在普通的 TeX 中,\newdimen它被声明为\outer,这是一个完全无用的功能,特别是当该命令用于命令参数或代码的条件部分时会引发错误。miniltx现在删除了\outer定义。在 LaTeX2e 中\newdimen从未出现过,所以这是为支持最新的图形代码\outer而添加的又一个 latex-ism 。miniltx

更新 texlive 应该可以修复该错误。

相关内容