在 expl3 中,如何在文本的一部分中使用普通空格代替 ~?

在 expl3 中,如何在文本的一部分中使用普通空格代替 ~?

在之前的问题,我了解到 \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}}

相关内容