如果我使用 pdflatex 处理以下 MWE(TeXLive 2012,Linux)
\documentclass{article}
\usepackage{color}
\def\mymacro#1{#1}
\begin{document}
\pdfinfo{/Title (Some text \textbf{This macro causes problems})}
Hello world
\end{document}
我收到来自 ../texmf-dist/tex/context/base/supp-pdf.mkii 的错误。这似乎是一个 ConTeXt 文件。错误是
! TeX capacity exceeded, sorry [input stack size=5000]. \@@mpstopdf@@unprotect ... \@@mpstopdf@@unprotect \unprotect \let \@@mpstopd... l.34 \def\unprotect ! ==> Fatal error occurred, no output PDF file produced!
加载 时也会发生这种情况xcolor
,但加载graphicx
或我尝试过的任何其他包时不会发生这种情况。虽然这不是 特有的\textbf
,但我没有发现 存在问题\mymacro
。
到底是怎么回事?
答案1
它不是特定的,\textbf
但\pdfinfo
必须将纯文本字符串放入 pdf 数据中,因此大多数 TeX 命令都会导致问题。你只需要
\pdfinfo{/Title (Some text This macro causes problems)}
图形包加载该文件以支持加载 metapost 文件,因为 Hans 编写它是为了与任何 TeX 风格兼容,而且似乎没有必要重写它,因为它具有上下文而不是 latex 继承。这与您在示例中遇到的错误无关。颜色和图形共享相同的.def
文件,因此加载其中任何一个都会导致文件被加载。