
Esta es mi primera pregunta en este sitio web. Debo decir que me está siendo muy útil visitar este sitio para aprender cómo funciona LaTeX, así que felicidades.
Entonces la pregunta es ¿cómo puedo hacer esto? Me gustaría que la solución no estuviera en tikz porque nunca la he usado. Estoy buscando algo así como una macro o similar. Esto tiene que estar en un entorno de ecuación.
¡Gracias!
Respuesta1
Basado en mi respuesta enCómo vincular dos términos en modo matemático, usar
\ubar{left}{middle}{right}{undertext}
donde cada término se toma en modo matemático, incluido el undertext
. Los parámetros \rldp
, \rlht
, \rlwd
y \rlbr
se pueden modificar para afectar la apariencia.
\rldp
es la profundidad de la barra inferior horizontal primaria
\rlht
es la altura de los puntales verticales, tanto por encima como por debajo de la barra inferior horizontal principal.
\rlwd
es el ancho (grosor) de la regla
\rlbr
es la altura de las reglas verticales secundarias, que ciñen los términos matemáticos reales.
\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 sugiere egreg, puede ser deseable adelgazar las líneas mediante el uso de . Aquí está \rlwd
configurado en 0,4 puntos.
Respuesta2
Aquí hay una opción 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}
La longitud del contenido de las llaves izquierda y derecha se almacena \lwidth
y \rwidth
se utiliza para fines de espaciado dentro de la parte inferior \underbrace
. Se requieren ajustes menores aquí y allá para posicionar las cosas.
\mathstrut
obliga a que el contenido matemático sin descendentes tenga la misma profundidad.
Respuesta3
No perfectamente pero cerca 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}
Buena suerte