指定表格列宽时出错

指定表格列宽时出错
\documentclass{beamer}
\begin{document}

\begin{frame}
\begin{table}
\begin{tabular}{c{15mm} | c | c | c | c}
Television & Radio & Washer & Dryer & Computer \\
\end{tabular}
\end{table}
\end{frame}

\end{document}

我正在制作 Beamer 演示文稿,我想限制某些列的宽度,以便条目显示为两行,而不是使列太宽。但是当我将宽度指定为 15mm 时,我得到了

LaTeX Error: Illegal character in array arg.

我该如何修复它?

答案1

请注意,“Computer”一词占用的空间几乎与“Television”一词一样多。我不会为了使表格看起来不错而一次摆弄一列宽度,而是使用环境tabularx来确保全部五列有相同的宽度。

\documentclass{beamer}
\usepackage{tabularx}  % for 'tabularx' environment
\useapackage{ragged2e} % for \Centering macro
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\begin{document}
\begin{frame}
\begin{tabularx}{\textwidth}{| C | C | C | C | C |}
Television & Radio & Washer & Dryer & Computer \\
\end{tabularx}
\end{frame}
\end{document}

答案2

这个问题不是针对特定的beamer,所以我将先给出一个一般性的答案,然后再给出一个使用的工作示例beamer

要在表格列中换行,有两个简单的选项:

  1. 使用tabular并将其中一列指定为段落p{<width>}。您必须指定该列的宽度,而其他列将适合内容的宽度。换行的p列将始终左对齐。

    \begin{tabular}{p{15mm} c c}
    
  2. 使用其他制表软件包之一。另一个答案演示了tabularx,它扩展了列以填充整个表格的指定宽度。

    使用tabulary,您可以指定整个表格的宽度,然后您可以选择带有小写对齐命令 、 和 的传统表格样式列cl或者r您可以使用大写命令得到一个包装列。这样你就可以轻松地创建具有任意对齐方式的包装列。

    \begin{tabulary}{\textwidth}{C c c}
    

例如beamer

第一帧使用tabular,第二帧使用tabulary

\documentclass{beamer}
\usepackage{tabulary}
\begin{document}

%*******************
\begin{frame}
\begin{table}

\begin{tabular}{p{15mm} | c | c | c | c }
Text that should wrap to multiple lines & Data & Data & Data & Data\\
\end{tabular}

\end{table}
\end{frame}
%*******************
\begin{frame}
\begin{table}

\begin{tabulary}{\textwidth}{C | c | c | c | c }
Text that should wrap to multiple lines & Data & Data & Data & Data\\
\end{tabulary}

\end{table}
\end{frame}
%*******************
\end{document}

相关内容