如何在表格中设置自定义空间以使多列表现良好?

如何在表格中设置自定义空间以使多列表现良好?

下面的代码

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{center}
  \raggedright
  \begin{tabular}{l@{ }l@{ }l@{ }l}
    super:     & foo                            & bar & baz\\
    cali:      & \multicolumn{2}{@{ }l}{foobar}       & baz\\
    fragili:   & foo                            & bar & baz\\
    stichespi: & foo                            & bar & baz\\
    ralidoso:  & \multicolumn{2}{l}{foobar}           & baz\\
  \end{tabular}
\end{center}
\end{document}

生成这个

在此处输入图片描述

很明显,第二行的@{ }产生\multicolumn了影响,因为它与第五行的间距不同。

另一方面,如果我将这些自定义空间设置为零,即@{}

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{center}
  \raggedright
  \begin{tabular}{l@{}l@{}l@{}l}
    super:     & foo                            & bar & baz\\
    cali:      & \multicolumn{2}{@{}l}{foobar}        & baz\\
    fragili:   & foo                            & bar & baz\\
    stichespi: & foo                            & bar & baz\\
    ralidoso:  & \multicolumn{2}{l}{foobar}           & baz\\
  \end{tabular}
\end{center}
\end{document}

那么我会得到一致的间距,尽管还不够:

在此处输入图片描述

答案1

除了第一列@{}(和|)被视为列,所以\multicolumn你几乎总是应该使用l@{ }@{ }l

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{center}
  \raggedright
  \begin{tabular}{l@{ }l@{ }l@{ }l}
    super:     & foo                            & bar & baz\\
    cali:      & \multicolumn{2}{@{}l@{ }}{foobar}       & baz\\
    fragili:   & foo                            & bar & baz\\
    stichespi: & foo                            & bar & baz\\
    ralidoso:  & \multicolumn{2}{@{}l@{ }}{foobar}           & baz\\
  \end{tabular}
\end{center}
\end{document}

相关内容