beamer 中的这个表格代码有什么问题?

beamer 中的这个表格代码有什么问题?

我已经为这个代码苦苦挣扎了很长时间,试图解决显然存在的问题。我基本上是从这个页面复制了代码http://en.wikibooks.org/wiki/LaTeX/Tables在“同时在两个方向上跨越”部分,我只是对其进行了一些修改:

\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

你的基本问题是你的表格包含列,但是你把 放在了\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。该软件包还提供了用于为线条着色的命令。但是,部分线条被“背景”颜色覆盖可能会出现问题。

相关内容