Ich möchte die \begin{align}-Umgebung \end{align} mit etwas Stilisierung neu gestalten und habe keine Ahnung, wie ich das machen soll. Genauer gesagt möchte ich, dass in dieser Umgebung zwei bestimmte Dinge passieren:
Ich möchte, dass bei jedem Zeilenumbruch eine vertikale Linie an der Stelle eingefügt wird, an der der Befehl endet, also:
Wenn es sich um eine andere Operation als Gleichheit handelt, möchte ich, dass es bei einem Zeilenumbruch folgendermaßen aussieht:
Ich habe keine Ahnung, wie ich mit der Entwicklung von Code beginnen soll, der dies ermöglicht ... Vielleicht wäre die Verwendung von Tikz eine einfachere Alternative, aber ich weiß nicht, wie ich dies implementieren soll.
Bei den beiden Bildern, die ich gepostet habe, habe ich die Linien von Hand gezeichnet.
Antwort1
Hier ist eine Kurzversion tikzmark
(allerdings ohne die Bibliothek, da wir keine der darin enthaltenen fortgeschrittenen Techniken benötigen).
Ändern Sie, outer ysep
um den Leerraum zwischen =
und der eigentlichen Zeile anzupassen. (Das inner ysep
trägt zum Begrenzungsrahmen bei und kann die vertikale Platzierung der Zeilen ändern, wenn es zu groß ist.)
Code
\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}
Ausgabe
Antwort2
Wie in den Kommentaren erwähnt, können Sie die Gleichheitszeichen einfügen \tikzmarknodes
( {}
für den richtigen Abstand hinzufügen) und dann verwenden, tikz
um Linien zwischen diesen Knoten zu zeichnen (die sich über mehrere Zeilen erstrecken können):
\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}