esta é minha primeira pergunta neste site. Devo dizer que está sendo muito útil para mim visitar este site para aprender como funciona o LaTeX, então parabéns.
Então, a questão é: como posso fazer isso? Gostaria que a solução não estivesse no tikz porque nunca usei. Estou procurando algo como uma macro ou similar. Isso tem que estar no ambiente de equação.
Obrigado!
Responder1
Com base na minha resposta emComo vincular dois termos no modo matemático, usar
\ubar{left}{middle}{right}{undertext}
onde cada termo é obtido no modo matemático, incluindo o undertext
. Os parâmetros \rldp
, \rlht
, \rlwd
e \rlbr
podem ser alterados para afetar a aparência.
\rldp
é a profundidade da barra inferior horizontal primária
\rlht
é a altura das escoras verticais, acima e abaixo da barra inferior horizontal primária.
\rlwd
é a largura (espessura) da regra
\rlbr
é a altura das regras verticais secundárias, que regem os termos matemáticos reais.
\documentclass{article}
\usepackage{stackengine}
\stackMath
\def\rldp{1.4ex}
\def\rlht{.8ex}
\def\rlwd{.8pt}
\def\rlbr{2pt}
\setstackgap{L}{\rldp}
\def\uvbarR#1{%
\def\stackalignment{r}\def\stacktype{S}\stackunder[-\rlwd]{%
\def\stackalignment{c}\def\stacktype{L}\stackunder{\ubr{#1}}{\rule{\rlwd}{\rlht}}%
}{\setbox0\hbox{$#1$}\rule{.5\wd0}{\rlwd}}%
}
\def\uvbarL#1{%
\def\stackalignment{l}\def\stacktype{S}\stackunder[-\rlwd]{%
\def\stackalignment{c}\def\stacktype{L}\stackunder{\ubr{#1}}{\rule{\rlwd}{\rlht}}%
}{\setbox0\hbox{$#1$}\rule{.5\wd0}{\rlwd}}%
}
\def\uvbar#1#2{%
\def\stacktype{S}\def\stackalignment{c}\def\useanchorwidth{T}\stackunder[0pt]{%
\def\stacktype{L}\setbox0\hbox{${}#1{}$}%
\stackunder[\rldp]{{}#1{}}{\rule{\wd0}{\rlwd}}%
}{\def\stacktype{S}\stackunder[1pt]{\rule{\rlwd}{\rlht}}{\scriptscriptstyle#2}}%
}
\def\ubr#1{\setbox2=\hbox{$#1$}\stackunder[\dimexpr\rldp-\rlht\relax]{#1}{%
\llap{\rule{\rlwd}{\rlbr}}\rule{\wd2}{\rlwd}\rlap{\rule{\rlwd}{\rlbr}}}}
\newcommand\ubar[4]{\uvbarR{#1} \uvbar{#2}{#4} \uvbarL{#3}}
\begin{document}
$\ubar{ax}{+ by +}{cz}{h} =d$
\end{document}
\rlwd
Como sugere egreg, pode ser desejável afinar as linhas através do uso de . Aqui está \rlwd
definido como 0,4pt.
Responder2
Aqui está uma opção usando \underbrace
:
\documentclass{article}
\usepackage{amsmath}
\newlength{\lwidth}
\newlength{\rwidth}
\begin{document}
\begin{align*}
\underbrace{\mathstrut zabc}{} + defg + \underbrace{\mathstrut hijklm} &= n \\[-4\jot]
\settowidth{\lwidth}{zabc}% Left \underbrace width
\settowidth{\rwidth}{hijklm}% Right \underbrace width
\underbrace{\hspace{.6\lwidth} \phantom{{} + defg + {}}\hspace{.6\rwidth}}_{opqr}
\hspace{.4\rwidth}% Due to right-alignment in align
\mkern 6mu% Adjustment for missing =
\end{align*}
\end{document}
O comprimento do conteúdo da chave inferior esquerda e direita é armazenado \lwidth
e \rwidth
usado para fins de espaçamento na parte inferior \underbrace
. Pequenos ajustes são necessários aqui e ali para posicionar as coisas.
\mathstrut
força o conteúdo matemático sem descendentes a ter a mesma profundidade.
Responder3
Não perfeitamente, mas perto de:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation*}
\begin{aligned}
&\underbracket{ax} + by + \underbracket{cz} = d \\[-14pt]
&\hphantom{a\!}%
\underbracket{\hphantom{a+ by+ c}}
\end{aligned}
\end{equation*}
\end{document}
Boa sorte