删除表格中的列线

删除表格中的列线

我有下表,但我想删除 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列类型。

相关内容