通常情况下,我非常欣赏 latex3/expl3 中的空格被忽略。但是,在某些情况下,我更愿意暂时禁用此行为。
其中一个例子就是新消息的定义,例如
\msg_new:nnn{module}{msg}{My example message}
显示此消息时,所有单词将会连接起来显示,因为它们之间的空格已被忽略。
梅威瑟:
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\msg_new:nnn{module}{msg}{My example message}
\msg_warning:nn{module}{msg}
\ExplSyntaxOff
\begin{document}
MWE
\end{document}
这将产生警告“Myexamplemessage”。
所以问题是:我怎样才能暂时禁用空格吞噬,这样我就不必单独转义所有空格?
答案1
您可以使用 更改空格的处理方式\char_set_catcode_space:n { `\ }
。此处之所以不“自动”执行此操作,是因为这依赖于没有嵌套等(即输入尚未被标记):总体而言,团队发现,尽管输入要求略有增加,但保持一致性是更好的选择。
要重置,假设您没有使用组,请使用\char_set_catcode_ignore:n { `\ }
。