我正在寻找一个可以自动连接连续方程等号的环境。所需的输出是:
目前,我通过以不方便的方式使用 tikz 和 tikzmark 包来实现这一点。
\begin{align*}
\phi &\ {\tikzmarknode{NA}=} \left(\frac{4\zeta}{1-z^{2}}\right)^{1/4}\\
&\ {\tikzmarknode{NB}=} \sqrt{2}\zeta^{\frac{1}{4}}\left(\frac{X}{X-1}\right)^{1/4}\\
&\ {\tikzmarknode{NC}=} \sqrt{2}\zeta^{1/4}\gamma^{-1}
\end{align*}
\begin{tikzpicture}[remember picture]
\draw[overlay] (NA) -- (NB);
\draw[overlay] (NB) -- (NC);
\end{tikzpicture}
编写一个新环境会很有用,它可以自动在 & 字符后添加 tikzpicture 和节点。有没有更简单的方法来实现相同的效果,比如我可以简单地写:
\begin{conteqns}
\phi &= \left(\frac{4\zeta}{1-z^2}\right)^{1/4}\\
&= \sqrt{2}\zeta^{1/4}\left(\frac{X}{X-1}\right)^{1/4}\\
&= \sqrt{2}\zeta^{1/4}\gamma^{-1}
\end{conteqns}
?
答案1
此示例可能是第一种(略有不同)方法。它创建一个\equal
宏和一个计数器。宏放置等号符号,\tikzmarknode
并绘制到上一个等号(如果有)的线。显然,计数器对等号/节点进行编号。
编辑:请注意,如果您需要多个这样的环境,则需要重置计数器:
\setcounter{NumberOfEquals}{0}
像这样:
\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:
% If this is not the first use:
\setcounter{NumberOfEquals}{0}
%
\begin{align*}
\phi & \equal \left(\frac{4\zeta}{1-z^{2}}\right)^{1/4}\\
& \equal \sqrt{2}\zeta^{\frac{1}{4}}\left(\frac{X}{X-1}\right)^{1/4}\\
& \equal \sqrt{2}\zeta^{1/4}\gamma^{-1}
\end{align*}
\end{document}