Was ist falsch an diesem Tabellencode im Beamer?

Was ist falsch an diesem Tabellencode im Beamer?

Ich habe lange mit diesem Code gekämpft und versucht, das offensichtliche Problem zu lösen. Ich habe den Code im Wesentlichen von dieser Seite kopierthttp://en.wikibooks.org/wiki/LaTeX/Tablesim Abschnitt „Gleichzeitiges Spannen in beide Richtungen“, und ich habe es nur ein wenig geändert:

\begin{frame}
\begin{center}
\onslide<1->\begin{tabular}{c|c|c|c}
\cline{1-4}
\multicolumn{4}{c}{Matemáticas} \pause\\
\cline{1-4}
\multicolumn{2} {c}{Cantidad}& \multicolumn{2} {c}{Magnitud} \pause \\ 
\cline{1-4}
\multicolumn{1}{c} {Aritmética} & \multicolumn{1}{c}{Música} & \multicolumn{1}c}{Geometría}  & \multicolumn{1}{c}{Astronomía} \pause\\
\cline{1-4}
\multicolumn{4}{c}{Quatrivium}
\end{tabular}
\end{center}
\end{frame}

TeXStudio sagt ständig:

Misplaced \omit \cline{1-4} 
Missing \endgroup inserted \cline{1-4}
Missing } inserted \cline{1-4}
Missing \cr inserted \cline{1-4}

Ich möchte, dass die Tabelle am Ende so aussieht

Bildbeschreibung hier eingeben

Antwort1

Ihr grundlegendes Problem besteht darin, dass Ihre Tabelle vier Spalten enthält, Sie aber \pausenach platziert haben \multicolumn{4}{...}{...}. An dieser Stelle gibt es keine Zelle. \pausekann am Ende des letzten Arguments von platziert werden \multicolumn:

\multicolumn{4}{...}{...\pause}

Allerdings wird dann die unterste Zeile der Zeile weggelassen. Folgendes Beispiel schmuggelt \pausehinter die Zeile:

\hline % \cline{1-4}
\noalign{\hbox{\pause}}

Bemerkungen:

  • \hlineist besser als \cline{1-<max column>}, weil dann der Platz für die Zeile berücksichtigt wird. Bei ist das nicht möglich \cline. Sonst \clinewürden mehrere hintereinander vertikal verschoben.

  • \noalignermöglicht es, Material im vertikalen Modus außerhalb der Ausrichtung zu platzieren.

  • Ich habe es \pausein umgebrochen \hbox, weil \pauseder vertikale Modus hier nicht zu mögen scheint.

Es gibt mehrere Möglichkeiten, um zum gewünschten Tabellenlayout zu gelangen, zum Beispiel:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{array}
\begin{document}

\newcommand*{\tabstack}[4]{%
  \begingroup
    \setlength{\extrarowheight}{0pt}%
    \begin{tabular}[t]{@{}c@{}}%
      \textcolor{#1}{#2}\tabularnewline
      \textcolor{#3}{#4}%
    \end{tabular}%
  \endgroup
}

\begin{frame}
\begin{center}
\color{blue}
\setlength\extrarowheight{.7ex}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{
  \tabstack {blue}  {\Large Matemáticas}
            {black} {(el estudio de lo inmutable)}
}\\
\hline
\noalign{\hbox{\pause}}
\multicolumn{2}{|c|}{
  \tabstack {red}   {\Large Cantidad}
            {black} {(lo discreto)}
} &
\multicolumn{2}{c|}{
  \tabstack {red}   {\Large Magnitud}
            {black} {(lo continuo)}
}\\
\hline
\noalign{\hbox{\pause}}
\tabstack {black} {absoluta}
          {red}   {\Large Aritmética}
&
\tabstack {black} {relativa}
          {green} {\Large Música}
&
\tabstack {black} {en reposo}
          {red}   {\Large Geometría}
&
\tabstack {black} {enmovimiento}
          {red}   {\Large Astronomía}
\\
\hline
\noalign{\hbox{\pause}}
\multicolumn{4}{|c|}{
  \Large \textcolor{blue}{Quatrivium}
} \\
\hline
\end{tabular}
\end{center}
\end{frame}
\end{document}

Ergebnis

Bemerkungen:

  • tabularFür die Zellen mit zwei Zeilen habe ich eine verschachtelte . -Form verwendet . @{}Dadurch wird der Leerraum zwischen den Spalten entfernt, da dieser bereits durch die äußere Tabelle hinzugefügt wurde.

  • Die Linien der Tabelle werden eingefärbt, indem die Standardfarbe für die gesamte Tabelle auf die Farbe der Linien gesetzt wird.

  • Auf den strukturierten Hintergrund wird verzichtet, da dieser deutlich aufwändiger ist:

    • Man könnte die Tabelle in eine Box setzen und ein Bild auf diese Maße skalieren und hinter die Tabellenbox setzen. Das verursacht aber Probleme mit \pause.

    • Ein monochromer Hintergrund dürfte einfacher sein, das Paket like colortblerlaubt das Setzen einer Hintergrundfarbe, z.B. über \rowcolor. Das Paket hat auch Befehle zum Einfärben der Linien. Allerdings kann es hier zu Problemen mit teilweise überschriebenen Linien durch die "Hintergrund"-Farbe kommen.

verwandte Informationen