一个对齐到 align* 内的方程式,另一个对齐到文本间

一个对齐到 align* 内的方程式,另一个对齐到文本间

我想获得这个输出 - 在“=”处表示方程式,在“-”处表示文本中描述方程式的文本行:

           z=a+b
         tbv=y*x
   First var z-the sum of ..
Second var tbv-the multiply of..

我尝试了此代码(在需要文本的相同位置添加 &&),但是此代码无法编译:

\begin{align*}
   z&=a+b\\
   tbv&=y*x
   \intertext{ First $z$ &&- the sum of ..\\ 
    Second $tbv$ &&- the multiply of..}
\end{align*}

换句话说,如何才能对互文中的文本(2 行)进行对齐,就像使用“&”对等式进行对齐一样,如果互文无法做到这一点,请提供其他方法。

Edit1-输出应该如下图所示 (@Werner 在评论中的图片) 在此处输入图片描述

编辑2-可以通过以下方式完成:

\begin{align*}
   z&=a+b\\
   tbv&=y*x
\end{align*}

\vspace{-.5cm}
\begin{align*}
  \text{First }z &-\text{the sum of..}\\
  \text{Second }z &-\text{the sum of..}
\end{align*}

但是如果文本长度超过 1 行,此解决方案就不起作用。

谢谢

答案1

您可以使用eqparbox\eqmakebox[<tag>][<align>]{<stuff>}自动放入<stuff>最宽的盒子<tag>(可选择单独<align>放入每个盒子以满足您的需要)。

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,eqparbox}
%\usepackage{showframe}% To show the text block boundary

\begin{document}

\begin{align*}
     z &= a + b      \\
   tbv &= y \times x
\end{align*}

\noindent\eqmakebox[varexpl][r]{First $z$} - the sum of \ldots \par
\noindent\eqmakebox[varexpl][r]{Second $tbv$} - the multiplication of \ldots

\end{document}

答案2

您仍然可以使用align*insideintertext并设置所需的对齐方式。此外,这里使用\shortintertextfrommathtools更好。

\documentclass[10pt]{article}
\usepackage{mathtools}
\begin{document}

\begin{align*}
   z   &= a+b \\
   tbv &= y*x \\
   \shortintertext{
     \begin{align*}
       \text{First }    z &\text{ - the sum of .. } \\ 
       \text{Second } tbv &\text{ - the multiplication of .. }
     \end{align*}
   }
\end{align*}

\end{document}

在此处输入图片描述

答案3

我不确定它\intertext是做什么用的,除非它后面还有其他等式。

你想要一个tabular

\documentclass{article}

\usepackage{amsmath,mathtools}
\usepackage{showframe}% To show the text block boundary

\begin{document}

\begin{align*}
     z &= a + b      \\
   tbv &= y \times x
\shortintertext{%
  \begin{tabular}{@{} r@{ - }l @{}}
  First $z$ & the sum of \ldots \\
  Second $tbv$ & the multiplication of \ldots
  \end{tabular}%
}
    1  &= 2
\end{align*}

\end{document}

在此处输入图片描述

对于较长的文本,请使用tabularx

\documentclass{article}

\usepackage{amsmath,mathtools}
\usepackage{tabularx}

\usepackage{lipsum} % for mock text
\usepackage{showframe}% To show the text block boundary

\begin{document}

\begin{align*}
     z &= a + b      \\
   tbv &= y \times x
\shortintertext{%
  \begin{tabularx}{\textwidth}{@{} r@{ - }X @{}}
  First $z$ &
  \lipsum[1][1-3] \\
  Second $tbv$ &
  \lipsum[2][1-3]
  \end{tabularx}%
}
    1  &= 2
\end{align*}


\end{document}

在此处输入图片描述

答案4

align*只需在环境内添加文本\text{}即可产生输出。

\documentclass[10pt]{article}
\usepackage{mathtools}
\begin{document}

\begin{align*}
   z   &= a+b \\
   tbv &= y*x \\
   \text{First var $z$} & \text{ - the sum of .. }\\
   \text{Second var $tbv$} & \text{ - the multiplication of .. }
  \end{align*}
\end{document}

在此处输入图片描述

相关内容