如果条件之后才创建,如何仅运行部分代码?
\documentclass{scrlttr2}
\ifdefined\abc
\RequirePackage{pdfpages}
\setkomavar{specialmail}{\textbf{\abc}}
\fi
\newcommand{\abc}{ABCtext}
\begin{document}
\begin{letter}{address}
\opening{Hello,}
content
\end{letter}
\end{document}
即使abc
定义了,但条件并未被判定为真...我该如何修复它?
PS:在我的真实示例中,我想使用顶部的部分来包含文件中的印章并将其放入 .lco 文件中。
答案1
您可以延迟测试,例如延迟到前导码的末尾。
\documentclass{scrlttr2}
\AddToHook{begindocument/before}{%
\ifdefined\abc
\RequirePackage{pdfpages}
\setkomavar{specialmail}{\textbf{\abc}}
\fi
}
\newcommand{\abc}{ABCtext}
\begin{document}
\begin{letter}{address}
\opening{Hello,}
content
\end{letter}
\end{document}