列说明符 cm{10mm} 未水平和垂直对齐单元格中的文本

列说明符 cm{10mm} 未水平和垂直对齐单元格中的文本

我想要一张包含 5 列表格的幻灯片。每列宽度应为 10 毫米。每个单元格中的文本应垂直和水平居中。

代码:

\documentclass{beamer}
\usepackage{array}
\usepackage{booktabs}
\begin{document}

\begin{frame}
\begin{tabular}{| cm{10mm} | cm{10mm} | cm{10mm} | cm{10mm} | cm{10mm} |}
\toprule
foo &
bar &
baz &
qux &
end \\
\midrule
foo bar baz qux &
foo bar baz qux &
foo bar baz qux &
foo bar baz qux &
foo bar baz qux \\
\bottomrule
\end{tabular}
\end{frame}

\end{document}

这是输出:

在此处输入图片描述

表格怎么这么破?我该如何修复它,让每个单元格都垂直和水平居中?

答案1

正如评论中所解释的那样,booktabs旨在避免在表格中使用垂直规则:因为它在水平线周围添加了一些填充,它们通常不能与垂直线相交。我建议用定义可变厚度水平和垂直线的booktabs包替换\boldline。水平线的填充可以用cellspace包模拟,该包在带有以字母为前缀的说明符的列中定义单元格顶部和底部的最小垂直间距S(或者C如果您加载siunitx)。所以这是我的建议:

\documentclass{beamer}
\usepackage{array}
\usepackage{boldline}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}

\begin{document}

\begin{frame}
\centering
\begin{tabular}{V{2} *{4}{>{\centering\arraybackslash}S{m{10mm}} | }S{m{10mm}}V{2}}
\hlineB{2}
foo &
bar &
baz &
qux &
end \\
\hline
foo bar baz qux &
foo bar baz qux &
foo bar baz qux &
foo bar baz qux &
foo bar baz qux \\
\hlineB{2}
\end{tabular}
\end{frame}

\end{document} 

在此处输入图片描述

相关内容