Mit `\useasboundingbox` kann man wie bei der zweiten alternativ zur ersten Variante von @esdd oder jener von @Student erreichen, dass kein zusätzlicher Platz gebraucht wird. Im Gegensatz dazu funktioniert diese Variante bereits beim ersten LaTeX-Lauf.
wird.
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{fit}
\newcommand{\mathframe}[1]{%
\tikzset{mathframe/.style={rounded corners, draw=red, inner sep=2pt}}
\begin{tikzpicture}[anchor=base, baseline]%
\node[inner sep=0pt] (a) {$\displaystyle#1\mathstrut$};
\useasboundingbox(current bounding box.south west)rectangle(current bounding box.north east);
\node[mathframe, fit = (a)] {};
\end{tikzpicture}%
}
\begin{document}
\begin{align*}
E &= mc^2 \\
E &= \mathframe{mc^2}
\end{align*}
\end{document}
![screenshot][1]
Meine Versuche eine Hintergrund-Ebene Um die Formel farbig zu verwenden sind leider gescheitert. Daher musste ich, um den Hintergrund einzufärben, den Inhalt zweimal zeichnen:
hinterlegen, muss man in die Hintergrundebene wechseln:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{fit}
\usetikzlibrary{fit,backgrounds}
\newcommand{\mathframe}[1]{%
\tikzset{mathframe/.style={rounded corners, fill=red!30, inner corners,fill=red!30,inner sep=2pt}}
\begin{tikzpicture}[baseline=(a.base)]%
\begin{tikzpicture}[anchor=base, baseline]%
\node[inner sep=0pt] (a) {$\displaystyle#1\mathstrut$};
\useasboundingbox(a.south west)rectangle(a.north {${}\displaystyle#1\mathstrut$};
\useasboundingbox(current bounding box.south west)rectangle(current bounding box.north east);
\node[mathframe, fit = (a)] \begin{scope}[on background layer]
\node[mathframe,fit=(a)] {};
\node[inner sep=0pt] (a) {$\displaystyle#1\mathstrut$};
\end{scope}
\end{tikzpicture}%
}
\begin{document}
\begin{align*}
E &= mc^2 \\
E &= \mathframe{mc^2}
\end{align*}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/formel-rahmen.png