如何检查稍后定义的命令?

如何检查稍后定义的命令?

如果条件之后才创建,如何仅运行部分代码?

\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}

相关内容