Formelteil, der keinen Ausrichtungspunkt (&
) enthält
Neben dem Einkreisen eines Formelteils, können natürlich noch andere Rahmenformen genutzt werden. Der Rahmen benötigt dabei zusätzlichen Platz, der je nach Form unterschiedlich groß ist. Innerhalb des umrahmten Formelteils kann keine Ausrichtung erfolgen, d.h. es darf kein &
vorkommen. Unabhängig von allem anderen ist es sinnvoll innerhalb der Node wieder in den displaystyle
zu wechseln.
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}% für ellipse
\newcommand\mrahmen[3][]{%
\tikz[anchor=base,baseline]\node[inner sep=2pt,draw=#2,#1]{$\displaystyle#3\mathstrut$};}
\colorlet{mfarbe}{red}
\begin{document}
\begin{align*}
E & = mc^2\\
E & = \mrahmen{mfarbe}{mc^2}\\
E & = \mrahmen[rounded corners]{mfarbe}{mc^2}\\
E & = \mrahmen[ellipse,inner sep=1pt]{mfarbe}{mc^2}\\
E & = \mrahmen[circle]{mfarbe}{mc^2}
\end{align*}
\end{document}
Formelteil mit Ausrichtung
Hier ist noch ein Vorschlag, bei dem innerhalb des Rahmens noch eine Ausrichtung erfolgen kann, d.h. ein &
vorkommen darf. Damit kann dann zum Beispiel auch eine einzelne Gleichung innerhalb einer align
Umgebung eingerahmt werden. Bei den einzelnen Teilnoden wird etwas Platz für den Rahmen eingeplant und der Rahmen selbst anschließend darüber gezeichnet ohne weiteren Platz zu belegen. Deshalb muss er rechteckig sein, kann aber abgerundete Ecken haben.
Für die richtige Platzierung des Rahmens werden auch hier zwei Durchläufe benötigt.
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{fit}
\tikzset{mnode/.style={remember picture,anchor=base,baseline,inner sep=\abst},
mrahmen/.style={remember picture,overlay,every node/.style={inner sep=0pt,align=none,draw}}}
\newcommand\abst{2pt}
% für linken Teilinhalt (links vom &)
\newcommand\mlteil[2]{\tikz[mnode]\node(#1){$\displaystyle#2{}\hspace{-\abst}$};}
% für mittlere Teilinhalte (zwischen zwei eingeschlossenen &)
\newcommand\mcteil[2]{\tikz[mnode,inner xsep=0pt]\node(#1){$\displaystyle{}#2{}$};}
% für rechten Teilinhalt (rechts vom &)
\newcommand\mrteil[2]{\tikz[mnode]\node(#1){$\hspace{-\abst}\displaystyle{}#2$};}
% Rahmen um alle Teilinhalte zeichnen
\newcommand\mrahmen[2][]{\tikz[mrahmen]\node[red,fit=#2,#1]{};}
\begin{document}
\begin{alignat*}{2}
\mlteil{gl}{\frac{A}{B}}&\mrteil{gr}{+ BB} &&=CC
\mrahmen[rounded corners]{(gl) (gr)}
\\
A&+B&&=C
\end{alignat*}
\end{document}
Das Paket hf-tikz
Das Paket hf-tikz
bietet viele Möglichkeiten Teile einer Gleichung oder Gleichungsfolge einzurahmen, auch über mehrere Zeilen hinweg. Für den Rahmen wird dabei kein zusätzlicher Platz eingefügt. Allerdings sind ebenfalls zwei Durchläufe nötig.
Die Grenzen des Rahmens werden über das Befehlspaar \tikzmarkin{<tag>}
und \tikzmarkend{<tag>}
angegeben. Bei dem ersten Befehl kann man auch manuell den Offset ändern: \tikzmarkin{<tag>}(<offset rechts unten>)(<offset links oben>)
.
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage[nofill,customcolors]{hf-tikz}
\hfsetbordercolor{red}
\begin{document}
\begin{alignat*}{2}
\frac{A}{B}&+ BB &&=CC\\[5pt]
\tikzmarkin{glw}(0.05,-0.4)(-0.05,0.6)\frac{A}{B}&+ BB\tikzmarkend{glw} &&=CC\\[5pt]
A&+B&&=C
\end{alignat*}
\begin{alignat*}{2}
\tikzmarkin[set border color=blue]{gls}(0.05,-0.2)(-0.05,0.7)\frac{A}{B}&+ BB &&=CC\\
A\tikzmarkend{gls}&+B&&=C
\end{alignat*}
\end{document}
beantwortet
23 Dez '13, 02:39
esdd
17.8k●28●42●57
Akzeptiert-Rate:
62%