我有一个文档,其中的换行符有些问题。我有三对数学模式术语,用连字符分隔,其中两个术语用括号括起来。我希望它只在右括号和左括号之间换行。我该怎么做,最合适的连字符选择是什么,例如 -、em、en。另外,将外部连字符放在数学模式文本中而不是放在其旁边是否更好?
\documentclass{article}
\begin{document}
A long line of text written in order to see where the construction breaks.
($fooleft$-$fooright$-)%
($barleft$-$barright$)%
(-$bazleft$-$bazright$)
\end{document}
根据 egreg 的建议,我更改了标记并且它几乎可以起作用,但它在术语之间放置了多余的空格:
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\donotbreak} {m}
{
\mbox{#1}\discretionary{}{}{}%
}
\NewDocumentCommand{\nobreaks} {>{\SplitList{,}}m}
{
\ProcessList{#1}{\donotbreak}
}
\begin{document}
A long line of text written in order to see where the construction breaks.
\nobreaks
{%
($fooleft$-$fooright$-),%
$barleft$-$barright$,%
-($bazleft$-$bazright$)
}
\end{document}
答案1
将括号内的部分放在一个框中,这样它就不会被分割;我们可以在它们之间使用\discretionary{}{}{}
换行符。
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\bunchofparens}{>{\SplitList{,}}m}{%
\ProcessList{#1}{\makeparens}%
}
\NewDocumentCommand{\makeparens}{m}{%
\mbox{(#1)}\discretionary{}{}{}%
}
\begin{document}
Text written to see where the construction breaks.
\bunchofparens{$fooleft$-$fooright$-,$barleft$-$barright$,-$bazleft$-$bazright$}
\end{document}