Что не так с кодом этой таблицы в Beamer?

Что не так с кодом этой таблицы в Beamer?

Я долго боролся с этим кодом, пытаясь решить проблему, которая там, по-видимому, есть. Я в основном скопировал код с этой страницыhttp://en.wikibooks.org/wiki/LaTeX/Таблицыв разделе «Охват в обоих направлениях одновременно», и я просто немного изменил его:

\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 постоянно говорит:

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

Я бы хотел, чтобы таблица в итоге выглядела вот так.

введите описание изображения здесь

решение1

Ваша основная проблема в том, что ваша таблица содержит for столбцов, но вы поместили \pauseпосле \multicolumn{4}{...}{...}. На данный момент нет ячейки. \pauseможно поместить в конец последнего аргумента \multicolumn:

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

Но тогда нижняя строка строки опущена. Следующий пример контрабанда \pauseпосле строки:

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

Замечания:

  • \hlineлучше, чем \cline{1-<max column>}, потому что тогда учитывается пространство для строки. Это невозможно для \cline. Иначе несколько \clineв ряду были бы смещены по вертикали.

  • \noalignпозволяет размещать материал в вертикальном положении вне выравнивания.

  • Я обернул \pauseв \hbox, потому что \pause, похоже, вертикальный режим здесь не нравится.

Существует много способов получить желаемую раскладку таблиц, например:

\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}

Результат

Замечания:

  • Для ячеек с двумя строками я использовал вложенный tabular. @{}удаляет пробел, разделяющий столбцы, поскольку этот пробел уже добавлен внешней таблицей.

  • Цвет строк таблицы определяется путем установки цвета по умолчанию для всей таблицы в соответствии с цветом строк.

  • Текстурированный фон опущен, поскольку он гораздо сложнее:

    • Таблицу можно было бы поместить в коробку, а изображение можно было бы масштабировать до этих размеров и поместить за коробку таблицы. Но это вызывает проблемы с \pause.

    • Монохромный фон должен быть проще, пакет типа colortblпозволяет устанавливать цвет фона, например, через \rowcolor. В пакете также есть команды для раскрашивания линий. Однако могут возникнуть проблемы с частичной перезаписью линий цветом "фона".

Связанный контент