true
我尝试在 LaTeX 中定义一个宏。当我使用条件和时,此宏应该给出不同的输出false
。
这不起作用:
\documentclass{article}
\usepackage{lipsum}
\newif\ifABC
\ifABC
\newcommand{\abcdef}[1]{{Letters} #1}%
\else
\newcommand\abcdef[1]{}
\fi
\begin{document}
\ABCtrue
\abcdef{ABC}
\lipsum[2]
\end{document}%
我应该如何定义条件宏?
答案1
您需要在执行宏时检查条件,而不是在定义宏时检查条件。
\documentclass{article}
\usepackage{lipsum}
\newif\ifABC
\newcommand{\abcdef}[1]{\ifABC{Letters} #1\fi}
\begin{document}
\ABCtrue
\abcdef{ABC}
\lipsum[2]
\end{document}%