LaTex, Beamer und Young Tableaux

LaTex, Beamer und Young Tableaux

Ich habe mir in den letzten drei Monaten LaTeX für meine Abschlussarbeit selbst beigebracht. Jetzt muss ich eine Präsentation machen und soll dazu Beamer verwenden. Ich habe Tikz in meiner Abschlussarbeit verwendet und würde es gerne wieder in Beamer verwenden. So gerne ich mein Tikz-Bild einfach ausschneiden und in die Präsentation einfügen würde, das scheint nicht zu funktionieren. Hier ist ein Beispiel dessen, was ich in meiner Abschlussarbeit verwendet habe.

\begin{tikzpicture}
            \matrix (m) [
                matrix of math nodes, 
                nodes in empty cells,
                minimum width=width("8"),
            ] {
                1 & 1 & 2 & 2 &            &   &            &   &   &   & 1 & 1 & 2 & 2 &           &     &              &   &   & 1 & 1 & 2 & 2 & \leftarrow & 3 & 1 &   & 1 & 1 & 2 & 2 & 3 & \leftarrow & 1 &   \\
                2 & 3 & 3 & 4 &            &   &            &   &   &   & 2 & 3 & 3 & 4 &           &     &              &   &   & 2 & 3 & 3 & 4 &            &   &   &   & 2 & 3 & 3 & 4 &   &            &   &   \\
                3 & 4 & 6 &   &            &   &            &   &   & = & 3 & 4 & 6 &   &           &     &              &   & = & 3 & 4 & 6 &   &            &   &   & = & 3 & 4 & 6 &   & &              &   & = \\
                4 & 7 &   &   & \leftarrow & 5 & \leftarrow & 3 & 1 &   & 4 & 5 &   &   &            &     &                 &   &   & 4 & 5 &   &   &            &   &   &   & 4 & 5 &   &   & &              &   &   \\
                  &   &   &   &            &   &            &   &   &   &   &   &   &   & \leftarrow & 7 & \leftarrow 3 & 1 &   & 7 &   &   &   &           &   &   &   & 7 &   &   &   &   &            &   &   \\
            } ;

            \draw (m-1-1.north west) rectangle (m-1-2.south east);
            \draw (m-2-4.north west) rectangle (m-2-4.south east);
            \draw[Red!,line width=2] (m-1-4.north west) rectangle (m-1-4.south east);
            \draw (m-1-1.north west) rectangle (m-4-1.south east);
            \draw (m-1-3.north west) rectangle (m-1-3.south east);
            \draw (m-3-3.north west) rectangle (m-3-3.south east);
            \draw[Red!,line width=2] (m-2-3.north west) rectangle (m-2-3.south east);
            \draw (m-3-1.north west) rectangle (m-3-1.south east);
            \draw (m-4-2.north west) rectangle (m-4-2.south east);
            \draw[Red!,line width=2] (m-3-2.north west) rectangle (m-3-2.south east);
            \draw (m-1-11.north west) rectangle (m-1-11.south east);
            \draw (m-1-12.north west) rectangle (m-1-12.south east);
            \draw (m-1-13.north west) rectangle (m-1-13.south east);
            \draw (m-2-14.north west) rectangle (m-2-14.south east);
            \draw (m-2-12.north west) rectangle (m-2-12.south east);
            \draw[Red!,line width=2] (m-1-14.north west) rectangle (m-1-14.south east);
            \draw (m-2-11.north west) rectangle (m-2-11.south east);
            \draw (m-3-13.north west) rectangle (m-3-13.south east);
            \draw[Red!,line width=2] (m-2-13.north west) rectangle (m-2-13.south east);
            \draw (m-3-11.north west) rectangle (m-3-11.south east);
            \draw[Red!,line width=2] (m-3-12.north west) rectangle (m-3-12.south east);
            \draw (m-4-11.north west) rectangle (m-4-11.south east);
            \draw[Red!,line width=2] (m-4-12.north west) rectangle (m-4-12.south east);
            \draw (m-1-21.north west) rectangle (m-1-21.south east);
            \draw (m-1-22.north west) rectangle (m-1-22.south east);
            \draw (m-1-20.north west) rectangle (m-1-20.south east);
            \draw (m-2-20.north west) rectangle (m-2-20.south east);
            \draw (m-2-21.north west) rectangle (m-2-21.south east);
            \draw (m-2-23.north west) rectangle (m-2-23.south east);
            \draw[Red!,line width=2] (m-1-23.north west) rectangle (m-1-23.south east);
            \draw (m-3-22.north west) rectangle (m-3-22.south east);
            \draw[Red!,line width=2] (m-2-22.north west) rectangle (m-2-22.south east);
            \draw (m-3-20.north west) rectangle (m-3-20.south east);
            \draw[Red!,line width=2] (m-3-21.north west) rectangle (m-3-21.south east);
            \draw (m-4-20.north west) rectangle (m-4-20.south east);
            \draw[Red!,line width=2] (m-4-21.north west) rectangle (m-4-21.south east);
            \draw[Red!,line width=2] (m-5-20.north west) rectangle (m-5-20.south east);
            \draw (m-1-28.north west) rectangle (m-1-31.south east);
            \draw[Orange!,line width=2] (m-1-32.north west) rectangle (m-1-32.south east);
            \draw (m-1-28.north west) rectangle (m-4-28.south east);
            \draw (m-1-30.north west) rectangle (m-3-30.south east);
            \draw (m-2-29.north west) rectangle (m-2-31.south east);
            \draw (m-4-28.north west) rectangle (m-5-28.south east);
            \draw (m-3-28.north west) rectangle (m-3-28.south east);
            \draw (m-4-29.north west) rectangle (m-4-29.south east);


        \end{tikzpicture}

Ich möchte den schrittweisen Verlauf einer Bumping-Route vom Anfang des Robinson-Schensted-Einfügungsalgorithmus bis zum Ende zeigen und würde dazu mehrere Folien verwenden, aber ich verstehe nicht, wie Knoten dafür funktionieren oder ob ich überhaupt welche verwenden sollte. Wie erstelle ich diese „Animation“ mit mehreren Folien? Danke

Antwort1

Die Stärke von tikz besteht darin, dass Sie ganz einfach Makros zum Zeichnen normaler Objekte wie Tableaus schreiben können. Ich habe Code geschrieben, der etwas Ähnliches tut. Anstatt dickere Rahmen zu zeichnen, ändere ich die Hintergrundfarbe der Zelle, aber es wäre ganz einfach, meinen Code anzupassen, um dickere Rahmen zu erstellen, wenn Sie das bevorzugen. Die Hauptidee besteht darin, den größten Teil des Tableau-Codes in einem Makro zu vergraben, sodass Sie jedes Tableau mit einer natürlichen und leicht zu bearbeitenden Syntax „schreiben“ können, wie

\ShadedTableau{{1,1,2,2},{2,3,3,4},{3,4,6},{4,7}}

In Ihrem Anwendungsfall möchten Sie bestimmte Zellen schattieren können. Um dies zu ermöglichen, erlauben wir ein optionales Argument, das eine durch Kommas getrennte Liste der Koordinaten der Zellen ist, die wir schattieren möchten:

\ShadedTableau[(3,0),(2,-1),(1,-2)]{{1,1,2,2},{2,3,3,4},{3,4,6},{4,7}}

Das \ShadedTableauMakro ist nicht besonders kompliziert: es verwendet eintikz \foreachSchleife zum Zeichnen des Tableaus Zelle für Zelle, wobei die Zeilen und dann die Einträge in jeder Zeile des Tableaus durchlaufen werden, die als Argumente an übergeben werden \ShadedTableau. (Die Makros unten enthalten einige zusätzliche Schnickschnacks, die ich nützlich fand.)

Wenn Sie dies mit Beamer verwenden, würde Ihr MWE folgendermaßen aussehen (springen Sie beim ersten Lesen zum Beamer-Frame, da sich dort Ihre Tableaus befinden):

\documentclass{beamer}
\usepackage{xcolor}
\usepackage{tikz}

% tikz macro for drawing tableaux with optionally shaded nodes.
% \ShadedTableau{{1,2,3,4},{5,6,7},{8,9}}   -> 1234/567/89
% \ShadedTableau[(1,-1),(2,-1),(2,0),(3,0),(4,0)]{{1,2,3,4},{5,6,7},{8,9}}
\newdimen\shadedBaseline\shadedBaseline=-4mm
\newcount\tableauRow\newcount\tableauCol
\newcommand\ShadedTableau[2][\relax]{%
  \begin{tikzpicture}[scale=0.4,draw/.append style={thick,black},baseline=\shadedBaseline]
    \ifx\relax#1\relax%
    \else % shade the boxes in #1
      \foreach\bx in {#1} { \filldraw[blue!20]\bx+(-.5,-.5)rectangle++(.5,.5); }
    \fi
    \tableauRow=0
    \foreach \Row in {#2} {
       \tableauCol=1
       \foreach\k in \Row {
          \draw(\the\tableauCol,\the\tableauRow)+(-.5,-.5)rectangle++(.5,.5);
          \draw(\the\tableauCol,\the\tableauRow)node{\k};
          \global\advance\tableauCol by 1
       }
       \global\advance\tableauRow by -1
    }
  \end{tikzpicture}%
}

\begin{document}

  \begin{frame}{Bumping}
    \ShadedTableau[(4,0),(3,-1),(2,-2)]{{1,1,2,2},{2,3,3,4},{3,4,6},{4,7}}
    \quad
    \pause $\overset{\longleftarrow 5\longleftarrow 3\ 1}{=}$\quad
    \ShadedTableau[(4,0),(3,-1),(2,-2),(2,-3)]{{1,1,2,2},{2,3,3,4},{3,4,6},{4,5}}
    \qquad
    \pause $\overset{\longleftarrow 7\longleftarrow 3\ 1}{=}$\quad
    \ShadedTableau[(4,0),(3,-1),(2,-2),(2,-3),(1,-4)]{{1,1,2,2},{2,3,3,4},{3,4,6},{4,5},{7}}
  \end{frame}

\end{document}

Das Ergebnis ist:

Bildbeschreibung hier eingeben

Da Sie nach „Mehrfach-Folienanimation“ gefragt haben, wird dies im obigen Beispiel einfach durch den \pauseBefehl erreicht, der die Präsentation „anhält“, bis Sie eine Taste drücken. Komplexere Dinge sind möglich: siehe die sehr lesbareProjektorHandbuch.

Antwort2

Da es zu spät ist, Ihren Zeichnungscode zu ändern, besteht die einfachste Möglichkeit darin, über die vorhandene Zeichnung eine Maske zu legen.

Der grundsätzliche Aufbau ist wie folgt:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\foreach\i in{1,...,30}{
    \begin{frame}

        your picture

        \tikz[remember picture,overlay]{
            \filldraw[fill=white](current page.west)++(\i/2,-1)rectangle+(12,4)--+(0,0);
        }
        \transreplace
        \transduration{0}
    \end{frame}
}

\end{document}

PS: Wenn Sie Adobe Reader im Vollbildmodus verwenden, wird die Wiedergabe automatisch durchgeführt.

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\def\tempamp{&}
\catcode`\&13 \let&\tempamp


\foreach\i in{1,...,30}{
\begin{frame}
\centering\begin{tikzpicture}[transform canvas={scale=.6}]
            \matrix (m) [
                matrix of math nodes, 
                nodes in empty cells,
                minimum width=width("8"),
            ] {
                1 & 1 & 2 & 2 &            &   &            &   &   &   & 1 & 1 & 2 & 2 &           &     &              &   &   & 1 & 1 & 2 & 2 & \leftarrow & 3 & 1 &   & 1 & 1 & 2 & 2 & 3 & \leftarrow & 1 &   \\
                2 & 3 & 3 & 4 &            &   &            &   &   &   & 2 & 3 & 3 & 4 &           &     &              &   &   & 2 & 3 & 3 & 4 &            &   &   &   & 2 & 3 & 3 & 4 &   &            &   &   \\
                3 & 4 & 6 &   &            &   &            &   &   & = & 3 & 4 & 6 &   &           &     &              &   & = & 3 & 4 & 6 &   &            &   &   & = & 3 & 4 & 6 &   & &              &   & = \\
                4 & 7 &   &   & \leftarrow & 5 & \leftarrow & 3 & 1 &   & 4 & 5 &   &   &            &     &                 &   &   & 4 & 5 &   &   &            &   &   &   & 4 & 5 &   &   & &              &   &   \\
                  &   &   &   &            &   &            &   &   &   &   &   &   &   & \leftarrow & 7 & \leftarrow 3 & 1 &   & 7 &   &   &   &           &   &   &   & 7 &   &   &   &   &            &   &   \\
            } ;
            \draw (m-1-1.north west) rectangle (m-1-2.south east);
            \draw (m-2-4.north west) rectangle (m-2-4.south east);
            \draw[red!,line width=2] (m-1-4.north west) rectangle (m-1-4.south east);
            \draw (m-1-1.north west) rectangle (m-4-1.south east);
            \draw (m-1-3.north west) rectangle (m-1-3.south east);
            \draw (m-3-3.north west) rectangle (m-3-3.south east);
            \draw[red!,line width=2] (m-2-3.north west) rectangle (m-2-3.south east);
            \draw (m-3-1.north west) rectangle (m-3-1.south east);
            \draw (m-4-2.north west) rectangle (m-4-2.south east);
            \draw[red!,line width=2] (m-3-2.north west) rectangle (m-3-2.south east);
            \draw (m-1-11.north west) rectangle (m-1-11.south east);
            \draw (m-1-12.north west) rectangle (m-1-12.south east);
            \draw (m-1-13.north west) rectangle (m-1-13.south east);
            \draw (m-2-14.north west) rectangle (m-2-14.south east);
            \draw (m-2-12.north west) rectangle (m-2-12.south east);
            \draw[red!,line width=2] (m-1-14.north west) rectangle (m-1-14.south east);
            \draw (m-2-11.north west) rectangle (m-2-11.south east);
            \draw (m-3-13.north west) rectangle (m-3-13.south east);
            \draw[red!,line width=2] (m-2-13.north west) rectangle (m-2-13.south east);
            \draw (m-3-11.north west) rectangle (m-3-11.south east);
            \draw[red!,line width=2] (m-3-12.north west) rectangle (m-3-12.south east);
            \draw (m-4-11.north west) rectangle (m-4-11.south east);
            \draw[red!,line width=2] (m-4-12.north west) rectangle (m-4-12.south east);
            \draw (m-1-21.north west) rectangle (m-1-21.south east);
            \draw (m-1-22.north west) rectangle (m-1-22.south east);
            \draw (m-1-20.north west) rectangle (m-1-20.south east);
            \draw (m-2-20.north west) rectangle (m-2-20.south east);
            \draw (m-2-21.north west) rectangle (m-2-21.south east);
            \draw (m-2-23.north west) rectangle (m-2-23.south east);
            \draw[red!,line width=2] (m-1-23.north west) rectangle (m-1-23.south east);
            \draw (m-3-22.north west) rectangle (m-3-22.south east);
            \draw[red!,line width=2] (m-2-22.north west) rectangle (m-2-22.south east);
            \draw (m-3-20.north west) rectangle (m-3-20.south east);
            \draw[red!,line width=2] (m-3-21.north west) rectangle (m-3-21.south east);
            \draw (m-4-20.north west) rectangle (m-4-20.south east);
            \draw[red!,line width=2] (m-4-21.north west) rectangle (m-4-21.south east);
            \draw[red!,line width=2] (m-5-20.north west) rectangle (m-5-20.south east);
            \draw (m-1-28.north west) rectangle (m-1-31.south east);
            \draw[orange!,line width=2] (m-1-32.north west) rectangle (m-1-32.south east);
            \draw (m-1-28.north west) rectangle (m-4-28.south east);
            \draw (m-1-30.north west) rectangle (m-3-30.south east);
            \draw (m-2-29.north west) rectangle (m-2-31.south east);
            \draw (m-4-28.north west) rectangle (m-5-28.south east);
            \draw (m-3-28.north west) rectangle (m-3-28.south east);
            \draw (m-4-29.north west) rectangle (m-4-29.south east);
        \end{tikzpicture}
\tikz[remember picture,overlay]{
    \filldraw[fill=white](current page.west)++(\i/2,-1)rectangle+(12,4)--+(0,0);
}
\transreplace
\transduration{0}
\end{frame}
}

\end{document}

verwandte Informationen