![使用空格作为分隔符创建序列](https://linux22.com/image/334135/%E4%BD%BF%E7%94%A8%E7%A9%BA%E6%A0%BC%E4%BD%9C%E4%B8%BA%E5%88%86%E9%9A%94%E7%AC%A6%E5%88%9B%E5%BB%BA%E5%BA%8F%E5%88%97.png)
expl3
吞掉空格,但我想知道使用空格作为分隔符来构建序列。因此,如果我想在每个项目后打印“!”,则输出应该是“简单句仅包含一个从句!“”。
当前 MWE 给出“真的! 这! 只是! 你! 一个 ! 恐怖分子!。!。“”。
这是我的 MWE
\documentclass{article}
\usepackage{xparse,expl3}
\ExplSyntaxOn
\seq_new:N \l_style_list_seq
\NewDocumentCommand{\test}{m}
{%
% This won't work
\seq_set_split:Nnn \l_style_list_seq { } {#1}
\seq_map_inline:Nn { \l_style_list_seq }
{
##1!
}
}
\ExplSyntaxOff
\begin{document}
\test{A simple sentence has only one clause.}
\end{document}
答案1
编程环境中所需的空间标记可以通过以下方式指定~
:
\documentclass{article}
\usepackage{xparse,expl3}
\ExplSyntaxOn
\seq_new:N \l_style_list_seq
\NewDocumentCommand{\test}{m}
{
\seq_set_split:Nnn \l_style_list_seq { ~ } {#1}
\seq_map_inline:Nn { \l_style_list_seq }
{
##1!
}
}
\ExplSyntaxOff
\begin{document}
\test{A simple sentence has only one clause.}
\end{document}
请注意,替换文本将包含真实的空格标记,即字符代码 32 和类别代码 10,因为 TeX 对类别代码 10 标记进行了此规范化。