像 seqsplit 这样优先考虑分隔符的东西?

像 seqsplit 这样优先考虑分隔符的东西?

我正在尝试显示一个带有长参数列表的 url,并且我想优先考虑某些断点,例如:

http://example.com/endpoint/?longsequence=\seqsplit{[100,200,300,400,5000,60000,70000,80000,9000000,1000000000,110000000,120000000,13000000,14000000,1500000,1600000,1700000,1800000,19000000,2000000000]&another=asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasad}

我的问题是 seqsplit 经常选择在整数中间中断,就像在其他地方一样频繁。我知道我可以通过使用来防止这种情况,\seqsplit{[{100},{200},{300}...]}但对于长列表,手动分组变得非常麻烦。

理想情况下,我可以这样说:

\seqsplit[\& ,]{...}

建议 seqsplit 优先考虑&,作为良好的断点。

答案1

我可以提出一个不同的解决方案:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\longstring}{O{}m}
 {
  \tl_map_inline:nn { #2 }
   {
    ##1
    \tl_if_in:nnTF { #1 } { ##1 } { \penalty -100 } { \penalty 0 }
    \skip_horizontal:n { 0pt plus 1pt }
   }
 }
\ExplSyntaxOff

\begin{document}

http://example.com/endpoint/?longsequence=\longstring[\&,]{[100,200,300,%
  400,5000,60000,70000,80000,9000000,1000000000,110000000,120000000,%
  13000000,14000000,1500000,1600000,1700000,1800000,19000000,%
  2000000000]\&another=asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasad}

\end{document}

,在和之后添加了稍微可拉伸的空间\&以帮助填充线条。

在此处输入图片描述

相关内容