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, 11:10

Felix's gravatar image

Felix
1.3k225366
Akzeptiert: 89%

bearbeitet 13 Aug '13, 08:10

Clemens's gravatar image

Clemens
19.0k113060


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, 11:51

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 06 Jul '13, 11:52

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:

×492
×94
×27

Frage gestellt: 06 Jul '13, 11:10

Frage wurde angeschaut: 3,444 Mal

Zuletzt aktualisiert: 13 Aug '13, 08:10