\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
a & =b & & \text{if }
\begin{dcases*}
x = 2 \\
\shortintertext{and}
y = 3
\end{dcases*}\\
a & = c & & \text{ elswhere}
\end{align*}
\end{document}
正如预期的那样,
但它会导致
段落中的 \hbox 过满(53.86888pt 太宽)
看起来命令shortintertext
是有罪的,这种用法不恰当吗?
答案1
命令\intertext
和\shortintertext
仅应用于中断完整显示环境(align
,alignat
,flalign
),以保持两组分离的公式之间的对齐。
这两个命令都会排版一个与对齐范围外的值一样宽的框\linewidth
。因此收到警告并不奇怪Overfull \hbox
。
您只需要\text
;间距将与您滥用 获得的间距完全相同\shortintertext
,但当然没有警告。
下面,对两个输入进行比较。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
a & =b & &
\text{if }
\begin{dcases*}
x = 2 \\
\text{and}\\
y = 3
\end{dcases*}\\
a & = c & & \text{elsewhere}
\end{align*}
\begin{align*}
a & =b & &
\text{if }
\begin{dcases*}
x = 2 \\
\shortintertext{and}
y = 3
\end{dcases*}\\
a & = c & & \text{elsewhere}
\end{align*}
\end{document}
请注意,\shortintertext
由于隐含的宽框,版本被一直推到左边。
如果你想减少两列之间的间隙,可以使用alignat*
,例如
\begin{alignat*}{2}
a & =b &\quad &
\text{if }
\begin{dcases*}
x = 2 \\
\text{and}\\
y = 3
\end{dcases*}\\
a & = c & & \text{elsewhere}
\end{alignat*}