考虑以下 MNWE:
\documentclass{article}
\usepackage{graphicx}
% \input{supp-pdf.mkii}
\newbox\mypic
\sbox\mypic{\includegraphics[height=6.5ex]{moral-compass-lliw10}}
\begin{document}
Hylo byd!
\end{document}
无法使用 pdfTeX 进行编译,错误如下
! Undefined control sequence.
<argument> ...lx bp\relax \fi \fi \convertMPtoPDF
{\Gin@base \Gin@ext }{1}{1...
l.13 ...phics[height=6.5ex]{moral-compass-lliw10}}
?
然而,使用某些早期版本的 TeX Live(可能是,但不一定是 TL 2017)时,没有问题。
moral-compass-lliw10
是 MPS 图像,因此在使用 pdfTeX 编译时必须对其进行转换。如果将图像包含在正文中,则没有问题。但是,如果将图像用于序言中,则编译会失败。
解决方法是取消注释该行
\input{supp-pdf.mkii}
然而,以前这并不是必要的,所以这种需要显然是一种倒退。
这种行为是预期的吗?也就是说,它不应该起作用吗?如果不是,那么是错误graphicx
还是其他原因?手册中没有记录此错误graphicx
,据我所知,手册从未表明supp-pdf.mkii
需要手动加载。
我正在使用 TeX Live 2018(本周更新,因为我误以为它可能是一个错误并且可能已被修复)。
答案1
MPS 支持文件已加载\AtBeginDocument
,因此您需要随后进行排版:
\documentclass{article}
\usepackage{graphicx}
\newbox\mypic
\AtBeginDocument{%
\sbox\mypic{\includegraphics[height=6.5ex]{moral-compass-lliw10}}
\begin{document}
Hylo byd!
\end{document}
尽管 texlive 2016 是我必须测试的最古老的版本,但情况一直如此。
一般情况下不支持这样做任何排版之前\begin{document}
有时似乎可以在框中设置文本以避免错误Missing \begin{document}
,但如果在这些条件下排版,字体,数学模式和其他东西直到都没有设置和完成,那么乳胶处于非常不稳定的状态\begin{document}
。