O que há de errado com esse código de tabela no beamer?

O que há de errado com esse código de tabela no beamer?

Estou lutando há muito tempo com esse código tentando resolver o problema que aparentemente existe. Basicamente copiei o código desta páginahttp://en.wikibooks.org/wiki/LaTeX/Tablesna seção "Ampliando em ambas as direções simultaneamente", e acabei de modificar um pouco:

\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 continua dizendo:

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

Eu gostaria que a mesa ficasse assim

insira a descrição da imagem aqui

Responder1

Seu problema básico é que sua tabela contém colunas, mas você colocou \pausedepois \multicolumn{4}{...}{...}. Neste ponto, não há célula. \pausepode ser colocado no final do último argumento de \multicolumn:

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

Mas então a linha inferior da linha é omitida. O exemplo a seguir contrabandeia \pauseapós a linha:

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

Observações:

  • \hlineé melhor que \cline{1-<max column>}, porque então o espaço para a linha é levado em consideração. Isso não é possível para \cline. Caso contrário, vários \clineem sequência seriam deslocados verticalmente.

  • \noalignpermite colocar o material no modo vertical fora do alinhamento.

  • Eu me envolvi \pauseporque \hboxnão \pauseparece gostar do modo vertical aqui.

Existem muitas maneiras de chegar ao layout da tabela desejado, por exemplo:

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

Resultado

Observações:

  • Para as células com duas linhas, usei um arquivo tabular. @{}remove o espaço que separa as colunas, pois esse espaço já está adicionado pelo tabular externo.

  • As linhas da tabela são coloridas definindo a cor padrão de toda a tabela para a cor das linhas.

  • O fundo texturizado é omitido porque é muito mais complicado:

    • A mesa poderia ser colocada em uma caixa e uma imagem poderia ser dimensionada para essas dimensões e colocada atrás da caixa da mesa. Mas isso causa problemas com o \pause.

    • Um fundo monocromático deve ser mais fácil, pacotes como colortblpermitem a configuração de uma cor de fundo, por exemplo, via \rowcolor. O pacote também possui comandos para colorir as linhas. No entanto, pode haver problemas com linhas parcialmente substituídas pela cor do "fundo".

informação relacionada