答案1
使用
${k\in\{1\dots,K\}}$
${...}$
不能有換行符
答案2
TeX 僅在 2 個位置自動打破公式:在二元運算子或關係運算子之後。它們透過參數\binoppenalty
和進行控制\relpenalty
。如果將兩者都設為 10000,則不會出現中斷。如果您在公式中本地執行此操作,那麼它將僅適用於那裡。所以像這樣的定義
\newcommand\nobreakformula{\relpenalty10000\relax \binoppenalty 10000\relax}
可能是你的朋友(也許命令名稱更短:-))
如果您只想防止公式中的單一中斷而不是全部,那麼您可以\nolinebreak
在 TeX 中斷的地方使用。但是,您最終可能會遇到更不理想的中斷,因此這實際上取決於情況(因此只有在您的文件即將準備好時才使用這種微調)。例如,如果在下面的展示中我們使用$a+b =\nolinebreak c+d+e$
TeX,那麼TeX將在這之後中斷,a +
我認為這比在等號之後中斷更糟糕。
不太建議使用大括號組或使用 ,\mbox
因為這會導致公式始終設定為其標稱寬度,而不管線內拉伸或收縮多少。您可以在以下範例中清楚地看到這一點:
\documentclass{article}
\usepackage{calc}
\begin{document}
\newlength\normwidth
\newcommand\myline{A test $a+b=c$ with $1+1$ formulas inside}
\settowidth\normwidth{\myline}
Spreading a line b 0, 5,15,25 and 50 points:
\indent \mbox{\myline}
\makebox[\normwidth+5pt][s]{\myline}
\makebox[\normwidth+15pt][s]{\myline}
\makebox[\normwidth+25pt][s]{\myline}
\makebox[\normwidth+50pt][s]{\myline}
\bigskip
Contrast this with using a brace group or \verb=mbox= on the first formula:
\renewcommand\myline{A test ${a+b=c}$ with $1+1$ formulas inside}
\indent \mbox{\myline}
\makebox[\normwidth+5pt][s]{\myline}
\makebox[\normwidth+15pt][s]{\myline}
\makebox[\normwidth+25pt][s]{\myline}
\makebox[\normwidth+50pt][s]{\myline}
\bigskip
\newcommand\nobreakformula{\relpenalty10000\relax \binoppenalty 10000\relax}
Testing \verb=\nobreakformula=:
Some sample text to make this break inside the first formula
A test $ a+b=c + d + e$ with $1+1$ formulas inside
And now with suppression:
Some sample text to make this break inside the first formula
A test $\nobreakformula a+b=c + d + e$ with $1+1$ formulas inside
\end{document}
這會產生以下輸出: