在之前的问题,我了解到 \ExplSyntaxOn 和 \ExplSyntaxOff 应该放在命令周围,因为 TeX 中的扩展顺序是这样的。
现在假设我想把东西放在我想使用 expl3 的开始处并输入一个巨大的文本,如下所示:
\ExplSyntaxOn
\AtBeginDocument
{
\bool_if:nT{\g_florian_whatever_bool} %\g_florian_whatever_bool being set with a key
{
blahblah %blahblah being a huge token list with many spaces
}
}
\ExplSyntaxOff
在写 blahblah 时如何仍能使用正常空格 ' ' ?我想确保易读性,而 ~ 不是最好的方法。
答案1
您可以使用的两个示例
\ExplSyntaxOn
\tl_new:N \g_florian_whatever_tl
\NewDocumentCommand \setbegdoctext { m }
{ \tl_gset:Nn \g_florian_whatever_tl { #1 } }
\NewDocumentCommand \printifwhatever { }
{ \bool_if:NT \g_florian_whatever_bool { \tl_use:N \g_florian_whatever_tl } }
\ExplSyntaxOff
\AtBeginDocument{\printifwhatever}
\setbegdoctext{the text you want to print at the beginning of the document}
或者
\ExplSyntaxOn
\NewDocumentCommand \printifwhatever { m } { \bool_if:NT \g_florian_whatever_bool { #1 } }
\ExplSyntaxOff
\AtBeginDocument{\printifwhatever{the text you want to print at the beginning of the document}}