使用 amsmath 对齐两个方程,具有多个参考点

使用 amsmath 对齐两个方程,具有多个参考点

我正在尝试对齐两行等式,一行由文字组成以提供含义,另一行由数值组成。

Number per Second &= Bit Amount &* Rate of Channel &* No. of Chan. \\    

176400 &= 16 &* 44100 &* 2

在此处输入图片描述
我查看了对齐文档并在各个位置插入了 &,但对齐不正确。我该如何对齐运算符,让读者看到文字描述(例如,位数),然后直接查看下方的数值?

答案1

你可以这样做:

\documentclass{article}
\usepackage{amsmath,array}

\begin{document}

\begin{equation*}
\setlength{\arraycolsep}{0pt}
\begin{array}{ c *{3}{ >{{}}c<{{}} c } }
\text{Number of bits per second} &=&
\text{Bit depth} &\cdot&
\text{Channel rate} &\cdot&
\text{Number of channels} \\
  176\,40    &=&    16       &\cdot&   44\,100   &\cdot&     2
\end{array}
\end{equation*}

\end{document}

在此处输入图片描述

不过,我非常不喜欢冗长的伪公式;最好使用变量并解释它们。

\documentclass{article}
\usepackage{amsmath,array}

\begin{document}

\begin{gather*}
\setlength{\arraycolsep}{0pt}
\begin{array}{ c *{3}{ >{{}}c<{{}} c } }
\mathit{Bps} &=& \mathit{BD} &\cdot& \mathit{CR} &\cdot& \mathit{NC} \\
  176\,40    &=&    16       &\cdot&   44\,100   &\cdot&     2
\end{array}
\\
\setlength{\tabcolsep}{0pt}
\begin{tabular}{rl@{\qquad}rl}
$\mathit{Bps}={}$ & Number of bits per second &
$\mathit{BD}={}$  & Bit depth \\
$\mathit{CR}={}$  & Channel rate &
$\mathit{NC}={}$  & Number of channels
\end{tabular}
\end{gather*}

\end{document}

在此处输入图片描述

答案2

我想建议一种完全不同的方法——使用\underbrace指令的方法。(不要使用*来表示乘法;而是使用\times\cdot。)

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,geometry}
\newcommand\vp{\vphantom{p}}
\begin{document}
\[
\underbrace{\text{Number per Bits per Second}}_{176400} = 
\underbrace{\text{Bit Depth}}_{2} \times  
\underbrace{\text{Channel Rate\vp}}_{44100} \times 
\underbrace{\text{Number of Channels\vp}}_{2}
\]
\end{document}

附录:如果您必须复制您发布的屏幕截图的“外观”,我认为通过环境来做到这一点更容易\tabular。符号左侧的材料=是右对齐的,而右侧的元素=是居中的。

在此处输入图片描述

\documentclass{article}
\usepackage{array,geometry}
\newcolumntype{C}{>{${}}c<{{}$}} % for binary and relational operator symbols
\begin{document}
\[
\setlength\tabcolsep{0pt}
\begin{tabular}{rCcCcCc}
Number per Bits per Second & = & 
Bit Depth                  & \times &
Channel Rate               & \times & 
Number of Channels\\[1ex]
176400 & = & 2 & \times & 44100 & \times & 2
\end{tabular}
\]
\end{document}

答案3

在此处输入图片描述

使用包alignat中的数学环境 amsmath并不困难:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{alignat*}{4}
\text{Number per Second}
    &= \text{Bit Amount} &* \text{Rate of Channel} &* \text{No. of Chan.} \\
176400 &= 16 &* 44100 &* 2
\end{alignat*}
\end{document}

相关内容