我有下表,但我想删除 GBM 和 MJD 行中的两条垂直线:
\documentclass{beamer}
\usepackage{booktabs}
\begin{document}
\frame{
\frametitle{Test}
\begin{tabular}{l|l|llr}
\toprule
%\multicolumn{4}{r}{GBM MJD} \\
%\cmidrule(r){1-2}
& & GBM& MJD\\
\midrule
&1\% & 1& 2\\
Microsoft & 5\% &1& 2 \\
&10\% & 1& 2\\
\midrule
&1\% & 1& 2\\
Allianz & 5\% &1& 2 \\
&10\% & 1& 2\\
\bottomrule
\end{tabular}
}
\end{document}
我想删除以下几行:
答案1
您可以使用\multicolumn
具有列宽的来执行此1
操作;这可能看起来有点可笑,但这是解决此问题的标准方法。
我用过
\multicolumn{1}{c}{}
在您不想要的列中|
。您可以将其理解为“跨 1 列、居中且没有内容的多列”。我还注意到,您的tabular
声明中有一个额外的列,它不会造成任何损害,但我已将其删除。
\documentclass{beamer}
\usepackage{booktabs}
\begin{document}
\begin{frame}
\frametitle{Test}
\begin{tabular}{l|l|ll}
\toprule
\multicolumn{1}{c}{}& \multicolumn{1}{c}{} & GBM& MJD\\
\midrule
& 1\% & 1 & 2 \\
Microsoft & 5\% & 1 & 2 \\
& 10\% & 1 & 2 \\
\midrule
& 1\% & 1 & 2 \\
Allianz & 5\% & 1 & 2 \\
& 10\% & 1 & 2 \\
\bottomrule
\end{tabular}
\end{frame}
\end{document}
有些人会建议完全避免使用垂直线(包括该包的作者booktabs
),但这是个人喜好。
仅供参考,如果你使用
\begin{tabular}{llll}
删除所有垂直线,然后你得到
也可以看看为什么不在表格中使用垂直线('|')?
另一个想法(感谢@doncherry,@Qrrbrbirlbel)是右对齐列并<{\,\%}
在列2
和之间插入3
;这需要array
包;请注意,这个技巧会%
在该列的每一行中添加一个,所以我不得不multicolumn
再次使用这个技巧将其从第一行中删除。
\documentclass{beamer}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{frame}
\frametitle{Test}
\begin{tabular}{lr<{\,\%}cc}
\toprule
& \multicolumn{1}{c}{} & GBM& MJD\\
\midrule
& 1 & 1 & 2 \\
Microsoft & 5 & 1 & 2 \\
& 10 & 1 & 2 \\
\midrule
& 1 & 1 & 2 \\
Allianz & 5 & 1 & 2 \\
& 10 & 1 & 2 \\
\bottomrule
\end{tabular}
\end{frame}
\end{document}
如您所见,构建时有很多细节需要注意tabular
!对于未来的阅读,您可能还想看看希尼奇它定义(以及其他有用的命令)S
列类型。