Ich würde gerne ein mit Tikz erstelltes Bild innerhalb einer Gleichung als Zwischenschritt verarbeiten.

Minimalbeispiel:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\[\det(A)=\begin{vmatrix} a & b \\ c & d \end{vmatrix}=\ldots=ad-bc.\]
   \begin{tikzpicture}
     \matrix [%
       matrix of math nodes,
       column sep=1em,
       row sep=1em
     ] (2x2) {%
       a_{11} & a_{12} \\
       a_{21} & a_{22} \\
     };

           \path[->,blue] (2x2-1-1) edge (2x2-2-2);
           \path[->,red] (2x2-2-1) edge (2x2-1-2);

     \node[blue] at (2x2-2-2.south east) {$+$};
     \node[red] at (2x2-1-2.north east) {$-$};
   \end{tikzpicture}
\end{document}

Anstatt der Pünktchen soll in der Gleichung die Grafik stehen, um die Rechenregel für die Determinante einer 2x2-Matrix zu veranschaulichen. Ist das möglich?

Als Zusatz: kann man die Tikz-Matrix mit äußeren Klammern bzw. äußeren senkrechten Strichen versehen, damit sie wie die Matrix in der Gleichung davor aussieht?

gefragt 11 Nov '16, 12:16

Hirshy's gravatar image

Hirshy
73133745
Akzeptiert-Rate: 0%

bearbeitet 21 Nov '16, 11:50

cgnieder's gravatar image

cgnieder
22.1k253463


Du kannst die tikz-Grafik einfach an der gewünschten Stelle einfügen. Sie ist dann allerdings IMHO zu weit nach oben verschoben, da normalerweise die Grundlinie unterhalb einer tikzpicture-Umgebung verläuft. Also ist es sinnvoll, die baseline per Option passend zu setzen. Ich habe es mir im Beispiel einfach gemacht und sie schlicht vertikal zentriert.

Die Striche kannst Du entweder mit der decoration-Library von tikz machen oder einfach mit passenden Mathe-Befehlen. Auch hier habe ich mir das Leben leicht gemacht und \left| und \right| verwendet:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\[\det(A)=\begin{vmatrix} a & b \\ c & d \end{vmatrix}= \left|\begin{tikzpicture}[baseline=(current bounding box.center)]
     \matrix [%
       matrix of math nodes,
       column sep=1em,
       row sep=1em
     ] (2x2) {%
       a_{11} & a_{12} \\
       a_{21} & a_{22} \\
     };

           \path[->,blue] (2x2-1-1) edge (2x2-2-2);
           \path[->,red] (2x2-2-1) edge (2x2-1-2);

     \node[blue] at (2x2-2-2.south east) {$+$};
     \node[red] at (2x2-1-2.north east) {$-$};
   \end{tikzpicture} \right|
=ad-bc.\]
\end{document}

Das Ergebnis:

Gleichung mit Bild

bietet also noch Verbesserungspotential. Eine Möglichkeit der Verbesserung wäre beispielsweise auch für das Bild vmatrix zu verwenden:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\[\det(A)=\begin{vmatrix} a & b \\ c & d \end{vmatrix}= \begin{vmatrix}\begin{tikzpicture}
     \matrix [%
       matrix of math nodes,
       column sep=1em,
       row sep=1em
     ] (2x2) {%
       a_{11} & a_{12} \\
       a_{21} & a_{22} \\
     };

           \path[->,blue] (2x2-1-1) edge (2x2-2-2);
           \path[->,red] (2x2-2-1) edge (2x2-1-2);

     \node[blue] at (2x2-2-2.south east) {$+$};
     \node[red] at (2x2-1-2.north east) {$-$};
   \end{tikzpicture} \end{vmatrix}
=ad-bc.\]
\end{document}

besser mit vmatrix

Mit einigen amsmath-Umgebungen gibt es jedoch Probleme, da dies keine ganz normalen Umgebungen sind, sondern eher verkappte Befehle. In diesem Fall kann man den Umweg über ein Box-Register gehen, der auch in vielen anderen Problemfällen funktionieren sollte:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newsavebox\tikzbox
\begin{document}
\begin{lrbox}{\tikzbox}
  \begin{tikzpicture}
     \matrix [%
       matrix of math nodes,
       column sep=1em,
       row sep=1em
     ] (2x2) {%
       a_{11} & a_{12} \\
       a_{21} & a_{22} \\
     };
           \path[->,blue] (2x2-1-1) edge (2x2-2-2);
           \path[->,red] (2x2-2-1) edge (2x2-1-2);
     \node[blue] at (2x2-2-2.south east) {$+$};
     \node[red] at (2x2-1-2.north east) {$-$};
  \end{tikzpicture}
\end{lrbox}
\begin{align*}
\det(A)&=\begin{vmatrix} a & b \\ c & d \end{vmatrix}= \begin{vmatrix} \usebox\tikzbox\end{vmatrix}
=ad-bc.
\end{align*}
\end{document}
Permanenter link

beantwortet 11 Nov '16, 12:28

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 11 Nov '16, 14:41

Es war mir neu, dass man direkt in der Matheumgebung mit tikzpicture arbeiten kann, ich hatte da auch Fehlermeldungen in Erinnerungen, aber anscheinend war das etwas anderes. Wieder mal etwas gelernt, danke!

(11 Nov '16, 13:54) Hirshy

Eine Nachfrage: ist es auch möglich, das in einer align-Umgebung zu machen? Wenn ich deine Lösung kompiliere (online) erhalte ich einen Fehler:

Runaway argument? = \left |\begin {tikzpicture}[baseline=(current bounding box.center)]\ETC. Paragraph ended before \align* was complete. <to be read again> \par l.25

(11 Nov '16, 14:20) Hirshy

Ich hab die Fehlermeldung verbessert. Ich werde es mit dem Box-Register ausprobieren, danke!

(11 Nov '16, 14:43) Hirshy

@Hirshy: Bitte keinen Blockcode in Kommentaren verwenden! Das zerstört leider noch immer die Kommentarfunktion. Ich habe Deinen Kommentar gerade noch rechtzeitig über den Umweg der Umwandlung in eine Frage, Editieren und Zurückumwandlung in einen Kommentar korrigieren können.

(11 Nov '16, 15:13) saputello

Das war mir nicht bewusst, ich hab die Verschlimmbesserung jetzt (hoffentlich) richtig verbessert. Abschließend: das ganze soll später nicht nur mit LaTeX sondern mit WP Quicklatex auf einer Homepage angewendet werden. Da ich dort die Lösung mit der lrbox nicht anwenden kann, habe ich dort stattdessen die aligned*-Umgebung verwendet. Für die PDF-Version, werde ich dann aber wahrscheinlich auf die lrbox zurückgreifen.

(11 Nov '16, 15:27) Hirshy

Ich finde, es sieht besser aus, wenn alle Determinanten gleichgroß sind; d.h., ich würde auch die erste Determinante mit der matrix-lib setzen.

(01 Dez '16, 22:12) cis
Ergebnis 5 von 6 show 1 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×58
×38
×24

gestellte Frage: 11 Nov '16, 12:16

Frage wurde gesehen: 8,102 Mal

zuletzt geändert: 01 Dez '16, 22:12