在 listofitems 中使用 || 组合分隔符时出错

在 listofitems 中使用 || 组合分隔符时出错

我注意到,.-如果选择 为分隔符,同时使用两个或更多其他分隔符,则可能会引起麻烦。下面的最小示例可以编译,但\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}

另一个造成问题的分隔符列表是-.||..||--。我知道,考虑到这些分隔符在字符上重叠,可能有几种方法可以划分字符序列,但对于我设想的输入,情况并非如此。此外,-.--.-只是从左到右进行解析,我对此很满意。

所以我想知道,是否存在规定哪些分隔符可以组合||以及哪些不能组合的规则?

相关内容