将方程式数组中的所有等号对齐

将方程式数组中的所有等号对齐

有没有办法将两个方程式堆栈中的所有等号对齐,以便它们均匀占据相同的区域?这是我当前的代码:

\begin{eqnarray} 
m \Vec{a} \cdot \Hat{u}_L = - m L \Dot{\theta}^2 &=& \Vec{T_f} \cdot \Hat{u}_L + m \Vec{g} \cdot \Hat{u}_L \\
m \Vec{a} \cdot \Hat{u}_\theta = m L \Ddot{\theta} &=& \underbrace{\Vec{T_f} \cdot \Hat{u}_\theta}_{=0} + m \Vec{g} \cdot \Hat{u}_\theta
\end{eqnarray}

答案1

我建议您使用一个alignat{3}环境,以便您可以在两组=符号以及+符号上放置对齐点。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for 'alignat' env.

\begin{document}

\begin{alignat}{3}
m \vec{a} \cdot \hat{u}_L 
  &=  - m L \dot{\theta}^2 
  &&= \vec{T}_f \cdot \hat{u}_L 
  &&+ m \vec{g} \cdot \hat{u}_L \\
m \vec{a} \cdot \hat{u}_\theta 
  &=  \phantom{-}m L \ddot{\theta} 
  &&= {\underbrace{\vec{T}_f \cdot \hat{u}_\theta}_{=0}} 
  &&+ m \vec{g} \cdot \hat{u}_\theta
\end{alignat}

\end{document}

答案2

对于复杂的对齐,我建议使用IEEEeqnarray它,尽管它的名字如此,但它是完全安全的,而事实eqnarray并非如此(有缺陷且已弃用)。

我提供了两种中期实现方案,请您选择。

您将C获得一个可以设置关系或操作符号的列,这些符号具有适当的间距;lcr具有明显的含义。

我建议用一个\ubrace命令来替换它\underbrace,如果没有用括号括起来,它的语法和行为也会很奇怪。

\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}

\newcommand{\ubrace}[2]{{\underbrace{#1}_{#2}}}

\begin{document}

\begin{IEEEeqnarray}{rCcClCl}
m \vec{a} \cdot \hat{u}_L 
  &=&  - m L \dot{\theta}^2 
  &=& \vec{T}_f \cdot \hat{u}_L
  &+& m \vec{g} \cdot \hat{u}_L \\
m \vec{a} \cdot \hat{u}_\theta 
  &=&  m L \ddot{\theta} 
  &=& \ubrace{\vec{T}_f \cdot \hat{u}_\theta}{=0}
  &+& m \vec{g} \cdot \hat{u}_\theta
\end{IEEEeqnarray}

\begin{IEEEeqnarray}{rClClCl}
m \vec{a} \cdot \hat{u}_L 
  &=&  - m L \dot{\theta}^2 
  &=& \vec{T}_f \cdot \hat{u}_L
  &+& m \vec{g} \cdot \hat{u}_L \\
m \vec{a} \cdot \hat{u}_\theta 
  &=& \hphantom{-}m L \ddot{\theta} 
  &=& \ubrace{\vec{T}_f \cdot \hat{u}_\theta}{=0}
  &+& m \vec{g} \cdot \hat{u}_\theta
\end{IEEEeqnarray}

\end{document}

在此处输入图片描述

顺便说一句,\Vec\Hat\Dot\Ddot不大写的命令完全相同。它们仅因历史原因而存在;请使用全小写的版本。

相关内容