我想用 align-environment 写一个长计算。但是其中一行太长,无法写成一行,所以我想把它分成两行,第二行在右边。示例:见图片。我尝试了我能想到的每一个与公式、对齐、对齐、拆分、多行、多行等的组合,但遗憾的是到目前为止都没有奏效。目前我用 解决了这个问题&\hspace + ...
,但我希望有一个独立于所选字体、边距等的解决方案。
这是一个更具体的例子,我需要这个函数。它是一个分裂的交叉积,我认为如果交叉积的第二部分保持不变,看起来会很奇怪:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
\mathcal{A} &= \int_0^T\int_{K_1}\left[c(\alpha,n)+\alpha|u|^2-\alpha^2(u\cdot(x-x_0))^2\left(|x-x_0|^2+h^2 \right)^{-1} \right]\\
&\hspace{7.2cm}\times\left[|x-x_0|^2+h^2 \right]^{\alpha}\tau~dx~dt\\
&\leq K\int_0^T\int_{K_1}\pi~dx~dt
\end{align*}
\end{document}
答案1
在我看来,作者在拆分长方程时应该更加小心。所以我总是拆分方程手动以获得所需的输出。
我首选的解决方案使用以下技巧:
\phantomrel
创建与底层符号占据相同空间的“幻影”关系符号的命令, 因此\phantomrel{=}
。\hphantom{\int_0^T \int_{K_1}}
创建一个水平的幻像空间,作为\times ...
内容的缩进。\diff
专用于差速器的命令。专用于绝对值的命令
\abs
,必须使用包\DeclarePairedDelimiter
中的命令创建mathtools
。它\abs{...}
有几个优点|...|
:- 尝试输入
$|-x|$
并$\abs{-x}$
查看前一个表达式中负号的间距是否错误。 - 您可以通过变体
\abs[\big]{-x}
、\abs[\Big]{-x}
和\abs[\bigg]{-x}
来扩大分隔符\abs[\Bigg]{-x}
。 - 还有另一种变体
\abs*{-x}
,它可以自动扩展分隔符(如\left
和\right
对),但行为类似于\mathopen...\mathclose
和不像\mathinner
,这更好。
- 尝试输入
请不要滥用
\left
和\right
。有时它们会创建太大或太小的分隔符,并且它们会创建\mathinner
。我在您的整个示例中都使用了手动调整大小。
您提到的环境运行得很好。
\documentclass{article}
\usepackage{mathtools}% For `multlined' and loads `amsmath'
\newcommand*\phantomrel[1]{\mathrel{\phantom{#1}}}% My preferred typesetting
\newcommand*\diff{\mathop{}\!d}% Just in case your editor asks for \mathrm{d}
\DeclarePairedDelimiter\abs{\lvert}{\rvert}
\begin{document}
\noindent
Using \verb|align*| and \verb|multlined| works fine:
\begin{align*}
A & = \text{something something something} \\
& = \begin{multlined}[t][10cm]
\text{something something something anything anything} \\
+ \text{anything anything anything}
\end{multlined} \\
& = \text{anything anything anything anything}
\end{align*}
However, I~would typeset as follows instead:
\begin{align*}
A & = \text{something something something} \\
& = \text{something something something anything} \\
& \phantomrel{=} {} + \text{anything anything anything anything} \\
& = \text{anything anything anything anything}
\end{align*}
So your specific example becomes
\begin{align*}
\mathcal{A} & = \int_0^T \int_{K_1}
\Bigl[ c(\alpha,n) + \alpha\abs{u}^2
- \alpha^2 \bigl(u\cdot(x-x_0)\bigr)^2
\bigl(\abs{x-x_0}^2 + h^2\bigr)^{-1} \Bigr] \\
& \phantomrel{=} \hphantom{\int_0^T \int_{K_1}}
\times \bigl[\abs{x-x_0}^2 + h^2 \bigr]^\alpha \tau \diff x\diff t \\
& \leq K \int_0^T \int_{K_1} \pi \diff x\diff t
\end{align*}
\end{document}
答案2
一些建议;每个建议之前的文字应该会告诉你我的偏好。;-)
另一个建议:不要用于~
间距差异,但是\,
。
\documentclass{article}
\usepackage{mathtools}
\usepackage{showframe} % just for the example
\begin{document}
The ugly:
\begin{flalign*}
\mathcal{A}
&= \mathrlap{\int_0^T\int_{K_1}
\bigl[
c(\alpha,n)+\alpha|u|^2-\alpha^2(u\cdot(x-x_0))^2(|x-x_0|^2+h^2)^{-1}
\bigr]} &\\
&&&\mathllap{{}\times\bigl[\,|x-x_0|^2+h^2\bigr]^{\alpha}\tau\,dx\,dt}\\
&\leq \mathrlap{K\int_0^T\int_{K_1}\pi\,dx\,dt}
\end{flalign*}
The bad:
\begin{flalign*}
\quad\mathcal{A}
&= \mathrlap{\int_0^T\int_{K_1}
\bigl[
c(\alpha,n)+\alpha|u|^2-\alpha^2(u\cdot(x-x_0))^2(|x-x_0|^2+h^2)^{-1}
\bigr]} &\\
&&&\mathllap{{}\times\bigl[\,|x-x_0|^2+h^2\bigr]^{\alpha}\tau\,dx\,dt}\quad\\
&\leq \mathrlap{K\int_0^T\int_{K_1}\pi\,dx\,dt}
\end{flalign*}
The good:
\begin{align*}
\mathcal{A}
&= \int_0^T\int_{K_1}
\begin{aligned}[t]
&\bigl[
c(\alpha,n)+\alpha|u|^2-\alpha^2(u\cdot(x-x_0))^2(|x-x_0|^2+h^2)^{-1}
\bigr] \\
&\qquad\times\bigl[\,|x-x_0|^2+h^2\bigr]^{\alpha}\tau\,dx\,dt
\end{aligned}
\\[2ex]
&\leq K\int_0^T\int_{K_1}\pi\,dx\,dt
\end{align*}
\end{document}
该showframe
包在文本块周围绘制了一个框架,使其更加明显。