答え1
以下は簡単なtikzmark
バージョンです (ただし、ライブラリは使用していません。ライブラリが提供する高度なテクニックは必要ないためです)。
と実際の線outer ysep
の間の空白を調整するには、を変更します。( は境界ボックスに影響し、大きすぎると線の垂直配置が変わる可能性があります。)=
inner ysep
コード
\documentclass[varwidth]{standalone}
%\documentclass{article}
\usepackage{amsmath, tikz}
\newcommand*\eqlineset{\pgfqkeys{/eqlines}}
\eqlineset{
picture/.style={baseline, remember picture},
line/.style={thick, draw=orange, line cap=round},
node/.style={
minimum size=+0pt, inner sep=+0pt, outer ysep=+.3333em, anchor=base,
name=tma\thetikzmarkalign},
}
\newcounter{tikzmarkalign}
\makeatletter
\AtBeginEnvironment{align}{%
\setcounter{tikzmarkalign}{0}%
\newcommand*\noeq{\hphantom{{}={}}}%
\newcommand*\eq{
\ifnum\value{tikzmarkalign}=0
\mathrel{\tikz[/eqlines/picture]\node[/eqlines/node]{$=$};}
\else
\mathrel{
\begin{tikzpicture}[/eqlines/picture]
\node[/eqlines/node] (tma\thetikzmarkalign) {$=$};
\unless\ifmeasuring@
\path[/eqlines/line, overlay] (tma\thetikzmarkalign)
-- (tma\pgfinteval{\thetikzmarkalign-1});
\fi
\end{tikzpicture}
}
\fi
\stepcounter{tikzmarkalign}
}%
}
\makeatother
\begin{document}
\begin{align}
Lorem & \eq Ipsum \\
& \eq dolor sit amet,\\
& \noeq + \frac{consetetur sadipscing elitr}{sed diam nonumy} \\
& \eq eirmod tempor invidunt.
\end{align}
\end{document}
出力
答え2
コメントに記載されているように、等号を配置し\tikzmarknodes
({}
適切な間隔を追加)、を使用してtikz
これらのノード間に線を描画できます(複数の行にまたがる場合があります)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{align}
x & \tikzmarknode{eq1}{{}={}} a^2 + 2ab + b^2 \\
& \tikzmarknode{eq2}{{}={}} (a + b)^2
\end{align}
\begin{tikzpicture}[remember picture, overlay]
\draw[very thick, orange, shorten >=2pt, shorten <=2pt] (eq1) -- (eq2);
\end{tikzpicture}
\end{document}