Ich möchte bestimmte Teile einer Gleichung durch Umkreisen oder eine farbige Box (vllt. mit abgerundeten Ecken) hervorheben. Das könnte z.B. auch mit TikZ machen. Wie ginge das in etwa?

Hier in einem fiktiven Beispiel z.B. die rechte Seite der Gleichung:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  E = mc^2
\]
\end{document}

gefragt 22 Dez '13, 09:12

Student's gravatar image

Student
4602576103
Akzeptiert: 96%

bearbeitet 22 Dez '13, 09:13


So mache ich es bisher:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\[
  E = \tikz [anchor=base, baseline] \node[circle,draw,color=red,text=black] {$mc^2$};
\]
\end{document}

Formel mit Farbe

Permanenter link

beantwortet 22 Dez '13, 09:15

Student's gravatar image

Student
4602576103

bearbeitet 22 Dez '13, 09:16

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}

alt text

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}

alt text

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}

alt text

Permanenter link

beantwortet 22 Dez '13, 20:39

esdd's gravatar image

esdd
13.8k52950

bearbeitet 02 Jan '14, 05:43

Mit \useasboundingbox kann man alternativ zur ersten Variante von @esdd oder jener von @Student erreichen, dass kein zusätzlicher Platz gebraucht 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

Um die Formel farbig zu hinterlegen, muss man in die Hintergrundebene wechseln:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{fit,backgrounds}
\newcommand{\mathframe}[1]{%
\tikzset{mathframe/.style={rounded corners,fill=red!30,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);
  \begin{scope}[on background layer]
  \node[mathframe,fit=(a)] {};
  \end{scope}
\end{tikzpicture}%
}

\begin{document}
\begin{align*}
  E &= mc^2 \\
  E &= \mathframe{mc^2}
\end{align*}
\end{document}
Permanenter link

beantwortet 23 Dez '13, 16:42

sudo's gravatar image

sudo
1.8k1815

bearbeitet 24 Dez '13, 04:31

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×476
×33
×17

Frage gestellt: 22 Dez '13, 09:12

Frage wurde angeschaut: 6,572 Mal

Zuletzt aktualisiert: 02 Jan '14, 05:43