将等号上的等号对齐,并在等号之间放置垂直线

将等号上的等号对齐,并在等号之间放置垂直线

我正在使用 amsmath 包中的 \begin{aligned} 对齐一些方程式。这会使用 = 作为对齐点来对齐方程式,这很好,但我还希望在每两个 = 符号之间绘制一条垂直线。本质上,我想实现这一点:

在此处输入图片描述

有办法吗?非常感谢

编辑:这是我现在使用的代码:

\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\begin{document}
\begin{align*} 
x &= 3+2 \\ 
  &= 5
\end{align*}
\end{document}

答案1

这里有两种可能性:一种基于pstricks,它允许使用更复杂的方式链接两个=符号(或实际上是公式中的任意两个元素),另一种使用标准工具(\stackrel\smash),在这种情况下可以:

\documentclass[11pt, svgnames]{article}

\usepackage{mathtools}
\newcommand*{\cvrule}{\smash{\color{SeaGreen}\rule{0.4pt}{2ex}}}
\usepackage{pst-node, auto-pst-pdf}

\begin{document}

\begin{postscript}
\begin{alignat*}{2}
x & \stackrel{\pnode{E1}}{=} 3 + 2 &\hspace{3em} x & = 3 + 2\\
  & \stackrel{\pnode{E2}}{=}5 & & \stackrel{\cvrule}{=} 5
\end{alignat*}
\ncline[linewidth=0.4pt, linecolor=Tomato, nodesepA=1.5ex]{E1}{E2}
\end{postscript}

\end{document} 

在此处输入图片描述

答案2

在这里调整我的答案:连接连续方程的环境,您可以创建一个\equal宏和一个计数器。宏将等号和\tikzmarknode来自tikzmarkTiZ 库并按照 Bernard 的答案相同的方式绘制到前一个相等的线(如果有的话),但使用 TiZ 而不是 PSTricks。

请注意,如果多次使用宏,则需要重置计数器。

例如:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}

\newcounter{NumberOfEquals}
\NewDocumentCommand{\equal}{}
{%
  \mathbin{\tikzmarknode{equal\theNumberOfEquals}{=}}%
  \ifnum\theNumberOfEquals>0%
    \pgfmathtruncatemacro\LastEqual{\theNumberOfEquals-1}%
    \tikz[remember picture,overlay]\draw ([yshift=1pt]equal\theNumberOfEquals.north) -- (equal\LastEqual.south);%
  \fi%
  \stepcounter{NumberOfEquals}%
}

\begin{document}
Just follow the lines:
\begin{align*}
x & \equal 3+2 \\ 
  & \equal 5
\end{align*}

Let's do it again, but you now need to reset the counter:
\setcounter{NumberOfEquals}{0}
\begin{align*}
x & \equal 3+2 \\ 
  & \equal 5
\end{align*}
\end{document}

在此处输入图片描述

答案3

对于更简单的情况,我经常使用这种手工制作的解决方法:

\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\begin{document}
\begin{align*} 
x &= 3+2 \\[-1ex]
  & \, \, \, | \\[-1ex]
  &= 5
\end{align*}
\end{document}

其中 [-1ex] 减少上下线之间的垂直距离(可以调整)。

相关内容