![beamer 中的这个表格代码有什么问题?](https://linux22.com/image/272040/beamer%20%E4%B8%AD%E7%9A%84%E8%BF%99%E4%B8%AA%E8%A1%A8%E6%A0%BC%E4%BB%A3%E7%A0%81%E6%9C%89%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%EF%BC%9F.png)
我已经为这个代码苦苦挣扎了很长时间,试图解决显然存在的问题。我基本上是从这个页面复制了代码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
。该软件包还提供了用于为线条着色的命令。但是,部分线条被“背景”颜色覆盖可能会出现问题。