数学模式中的自由换行符和适当的连字符

数学模式中的自由换行符和适当的连字符

我有一个文档,其中的换行符有些问题。我有三对数学模式术语,用连字符分隔,其中两个术语用括号括起来。我希望它只在右括号和左括号之间换行。我该怎么做,最合适的连字符选择是什么,例如 -、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}

在此处输入图片描述

相关内容