![在 listofitems 中使用 || 组合分隔符时出错](https://linux22.com/image/459316/%E5%9C%A8%20listofitems%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20%7C%7C%20%E7%BB%84%E5%90%88%E5%88%86%E9%9A%94%E7%AC%A6%E6%97%B6%E5%87%BA%E9%94%99.png)
我注意到,.-
如果选择 为分隔符,同时使用两个或更多其他分隔符,则可能会引起麻烦。下面的最小示例可以编译,但\bar{(w1) .- (w2)}
注释掉的行将抛出错误“扫描 的使用时文件已结束\readlist_i
”。令人惊讶的是,\bar{-.--.-}
它可以工作,但只要 后面有任何内容.-
,即使只是一个空格,它也会中断。
\documentclass{article}
\usepackage{listofitems}
\def\foo#1{%
\setsepchar{-.||.-}%
\readlist*\mylist{#1}%
\mylistlen%
}
\def\bar#1{%
\setsepchar{-.||.-||--}%
\readlist*\mylist{#1}%
\mylistlen%
}
\begin{document}
\foo{(w1) -. (w2)}
\foo{(w1) .- (w2)}
\foo{-.--.-}
\bar{(w1) -. (w2)}
\bar{(w1) -- (w2)}
% \bar{(w1) .- (w2)}
\bar{-.--.-}
\end{document}
另一个造成问题的分隔符列表是-.||..||--
。我知道,考虑到这些分隔符在字符上重叠,可能有几种方法可以划分字符序列,但对于我设想的输入,情况并非如此。此外,-.--.-
只是从左到右进行解析,我对此很满意。
所以我想知道,是否存在规定哪些分隔符可以组合||
以及哪些不能组合的规则?