TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

Ich verwende TikZ zum Erstellen von Diagrammen, nun übertrage ich Text und Diagramme für einen Seminarvortrag in eine Präsentation. Jedoch funktionieren TikZ-Diagramme mit beamer nicht mehr, die einwandfrei mit scrartcl liefen. Scheinbar sind es die, wo ich das Diagramm mit einer TikZ matrix erstelle. Hier ein Beispiel:

\documentclass{beamer}
\usetheme{Montpellier}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,matrix,arrows}
\newcommand*{\mal}{\mathbin{\raisebox{0.3ex}{\scriptsize$\otimes$}}}
\DeclareMathOperator{\id}{id}
\begin{document}
 \title{Kategorientheorie}
 \section{Koalgebren}
 \begin{frame}
  \begin{center}
    Koassoziativitätsgesetz der Komultiplikation

    \bigskip
    \begin{tikzpicture}
      \matrix (m) [matrix of math nodes,row sep=3em,column sep=3em,]
      {
         A & A\mal A \\
         A\mal A & A\mal A \mal A \\
      };
      \path[-stealth]
        (m-1-1) edge node [left] {$\scriptstyle\varphi$} (m-2-1)
                edge node [above] {$\scriptstyle\varphi$} (m-1-2)
        (m-2-1.east|-m-2-2) edge node [above]
                {$\scriptstyle\varphi\otimes\id$} (m-2-2)
        (m-1-2) edge node [right]
                {$\scriptstyle\id\otimes\varphi$} (m-2-2);
    \end{tikzpicture}
  \end{center} 
\end{frame}
\end{document}

Ich erhalte die Fehlermeldung

! Missing $ inserted.
<inserted text> 
                $
l.32 \end{frame}

Warum ist das so, und wie kann ich es reparieren?

gefragt 06 Jul '13, 17:10

Felix's gravatar image

Felix
1.3k315666
Akzeptiert-Rate: 47%

bearbeitet 13 Aug '13, 14:10

Clemens's gravatar image

Clemens
20.7k163463


Das Problem ist, dass TikZ das Zeichen & aktiv macht und als \pgfmatrixnextcell definiert. Es gibt zwei mögliche Lösungen: die Option fragile zur frame Umgebung hinzufügen:

\begin{frame}[fragile]
  \begin{center}
    Koassoziativitätsgesetz der Komultiplikation

    \bigskip
    \begin{tikzpicture}
      \matrix (m) [matrix of math nodes,row sep=3em,column sep=3em,]
      {
         A & A\mal A \\
         A\mal A & A\mal A \mal A \\
      };
      \path[-stealth]
        (m-1-1) edge node [left] {$\scriptstyle\varphi$} (m-2-1)
                edge node [above] {$\scriptstyle\varphi$} (m-1-2)
        (m-2-1.east|-m-2-2) edge node [above]
                {$\scriptstyle\varphi\otimes\id$} (m-2-2)
        (m-1-2) edge node [right]
                {$\scriptstyle\id\otimes\varphi$} (m-2-2);
    \end{tikzpicture}
  \end{center} 
\end{frame}

Zweite - und meiner Meinung nach vorzuziehende - Lösung: TikZ sagen, dass die Matrix ein anderes Makro verwenden soll mit der Option /tikz/ampersand replacement=<macro name>, zum Beispiel \&:

\begin{frame}
  \begin{center}
    Koassoziativitätsgesetz der Komultiplikation

    \bigskip
    \begin{tikzpicture}
      \matrix (m) [matrix of math nodes,row sep=3em,column sep=3em,ampersand replacement=\&]
      {
         A \& A\mal A \\
         A\mal A \& A\mal A \mal A \\
      };
      \path[-stealth]
        (m-1-1) edge node [left] {$\scriptstyle\varphi$} (m-2-1)
                edge node [above] {$\scriptstyle\varphi$} (m-1-2)
        (m-2-1.east|-m-2-2) edge node [above]
                {$\scriptstyle\varphi\otimes\id$} (m-2-2)
        (m-1-2) edge node [right]
                {$\scriptstyle\id\otimes\varphi$} (m-2-2);
    \end{tikzpicture}
  \end{center} 
\end{frame}
Permanenter link

beantwortet 06 Jul '13, 17:51

Clemens's gravatar image

Clemens
20.7k163463
Akzeptiert-Rate: 61%

bearbeitet 06 Jul '13, 17:52

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:

×668
×115
×55

gestellte Frage: 06 Jul '13, 17:10

Frage wurde gesehen: 7,024 Mal

zuletzt geändert: 13 Aug '13, 14:10