dies ist meine erste Frage auf dieser Website. Ich muss sagen, dass es für mich sehr nützlich ist, diese Website zu besuchen, um zu lernen, wie LaTeX funktioniert, also herzlichen Glückwunsch.
Die Frage ist also, wie kann ich das machen? Ich hätte die Lösung nicht gerne in Tikz, weil ich das noch nie benutzt habe. Ich suche nach so etwas wie einem Makro oder ähnlichem. Das muss in der Gleichungsumgebung sein.
Danke!
Antwort1
Basierend auf meiner Antwort unterSo verknüpfen Sie zwei Begriffe im Mathematikmodus, verwenden
\ubar{left}{middle}{right}{undertext}
wobei jeder Term im mathematischen Modus verwendet wird, einschließlich der undertext
. Die Parameter \rldp
, \rlht
, \rlwd
, und \rlbr
können geändert werden, um das Erscheinungsbild zu beeinflussen.
\rldp
ist die Tiefe des primären horizontalen Unterbalkens
\rlht
ist die Höhe der vertikalen Streben, sowohl über als auch unter der primären horizontalen Unterstrebe.
\rlwd
ist die Breite (Dicke) des Lineals
\rlbr
ist die Höhe der sekundären vertikalen Linien, die die eigentlichen mathematischen Begriffe umrahmen.
\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}
Wie egreg vorschlägt, \rlwd
kann es sinnvoll sein, die Linien durch die Verwendung von dünner zu machen. Hier ist es \rlwd
auf 0,4pt eingestellt.
Antwort2
Hier ist eine Option mit \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}
Die Inhaltslänge der linken und rechten Unterstrebe wird in \lwidth
und gespeichert \rwidth
und für Abstandszwecke innerhalb der unteren verwendet \underbrace
. Hier und da sind kleinere Anpassungen erforderlich, um Dinge zu positionieren.
\mathstrut
erzwingt, dass mathematische Inhalte ohne Unterlängen die gleiche Tiefe haben.
Antwort3
Nicht perfekt, aber nah dran:
\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}
Viel Glück