Quero refazer o ambiente \begin{align} \end{align} com alguma estilização e não tenho ideia de como posso fazer isso. Bem, para ser mais preciso, quero que duas coisas específicas aconteçam neste ambiente:
Quero que cada quebra de linha adicione uma linha vertical onde o comando quebra, ou seja:
Quando for uma operação diferente de igualdade, quero que fique assim quando houver uma quebra de linha:
Não tenho ideia de como começar a desenvolver código que faça isso... Talvez usar o tikz deva ser uma alternativa mais simples, mas não sei como implementar isso.
Nas duas imagens que postei fiz as linhas desenhando à mão.
Responder1
Aqui está uma tikzmark
versão rápida (embora sem a biblioteca porque não precisamos de nenhuma técnica avançada que ela tenha a oferecer).
Altere outer ysep
para ajustar o espaço em branco entre =
e a linha real. (Isso inner ysep
contribuirá para a caixa delimitadora e poderá alterar o posicionamento vertical das linhas se for muito grande.)
Código
\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}
Saída
Responder2
Conforme declarado nos comentários, você pode colocar os sinais de igual \tikzmarknodes
(adicionar {}
para espaçamento adequado) e depois usar tikz
para desenhar linhas entre esses nós (que podem abranger várias linhas):
\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}