\documentclass[12pt]{article}
\usepackage[test]{optional}
\begin{document}
\def\optname{test}
\optname \\ % Prints "test"
\opt{\optname}{
TEST % does nothing
}\\
\opt{test}{
TEST 2 % behaves as expected
}
\end{document}
上面的最小示例使用“可选”包来编译同一文档的不同版本。现在我想扩展它,使命令\opt
使用预定义变量来确定在哪个版本中编译文档的哪个部分。问题是,它不接受变量。我觉得这是某种扩展问题,但我还没有找到任何解决方案。
答案1
的参数\opt
可以通过 进行扩展\expandafter
。然后宏将test
直接看到 ,而不是宏中隐藏的选项\optname
:
\documentclass[12pt]{article}
\usepackage[test]{optional}
\begin{document}
\def\optname{test}
\optname \\ % Prints "test"
\expandafter\opt\expandafter{\optname}{
TEST
}\\
\opt{test}{
TEST 2 % behaves as expected
}
\end{document}