我使用 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 应该可以修复该错误。