我正在尝试显示一个带有长参数列表的 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}
,
在和之后添加了稍微可拉伸的空间\&
以帮助填充线条。