有很多列的表

有很多列的表

我对下表有一些疑问:

  1. 如果我省略边距,表格将完全变得混乱。
  2. 我想让中间的两列之间有一点距离,但是 \cmidrule 无法正常工作
  3. 正如您在表格右侧看到的,数据已经从表格中出来。

如您能帮助我解决问题,我将不胜感激。

\documentclass{article} [8pt]
\usepackage[margin=1cm]{geometry}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{mhchem} 
\usepackage{siunitx}
\usepackage{bm}
\begin{document}

\begin{table*}[htb]
  \label{tbl:stats-and-correlations}

  \begin{tabularx}{\linewidth}{l*{8}{c}}
    \toprule
    & \multicolumn{4}{c}{\textbf{Panel A:}} 
     & \multicolumn{4}{c}{\textbf{Panel B:}}  \\ \cmidrule{2-5} \cmidrule{6-9}

               & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $}
               & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} \\ [0.5ex]
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom})
               & (\si{\angstrom}) \\
               \hline
    Variable~1 &    0.78 &    0.37 &    0.48 &    0.10 &    0.13 &    0.58 &    0.41 &    0.10\\
    Variable~2 &    0.46 &    0.86 &    0.96 &    0.44 &    0.15 &    0.56 &    0.31 &    0.10\\
    Variable~3 &    0.03 &    0.75 &    0.11 &    0.44 &    0.71 &    0.06 &    0.26 &    0.10\\
    Variable~4 &    0.21 &    0.25 &    0.38 &    0.88 &    0.24 &    0.52 &    0.46 &    0.10\\
    Variable~5 &    0.20 &    0.93 &    0.54 &    0.96 &    0.55 &    0.82 &    0.62 &    0.10\\
    Variable~6 &    0.67 &    0.85 &    0.74 &    0.99 &    0.27 &    0.48 &    0.85 &    0.10\\
    Variable~7 &    0.82 &    0.89 &    0.68 &    0.06 &    0.02 &    0.30 &    0.10 &    0.10\\
    \bottomrule
  \end{tabularx}


\end{table*}

\end{document}

答案1

您的表格比可用的表格更宽,\linewidth并且tabularx没有任何X列。

使表格正确无误的一种可能性是使用\small并将第一列定义为一X列:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage[version=3]{mhchem} 
\usepackage{siunitx}
%\usepackage{bm}
\begin{document}
\begin{table*}[htb]
  \label{tbl:stats-and-correlations}
  \small\begin{tabularx}{\linewidth}{X*{8}{c}}
    \toprule
    & \multicolumn{4}{c}{\textbf{Panel A:}} & \multicolumn{4}{c}{\textbf{Panel B:}}\\ \cmidrule(r){2-5} \cmidrule(l){6-9}
    & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} 
    & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} \\ [0.5ex]
    & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) \\
    \midrule
    Variable~1 &    0.78 &    0.37 &    0.48 &    0.10 &    0.13 &    0.58 &    0.41 &    0.10\\
    Variable~2 &    0.46 &    0.86 &    0.96 &    0.44 &    0.15 &    0.56 &    0.31 &    0.10\\
    Variable~3 &    0.03 &    0.75 &    0.11 &    0.44 &    0.71 &    0.06 &    0.26 &    0.10\\
    Variable~4 &    0.21 &    0.25 &    0.38 &    0.88 &    0.24 &    0.52 &    0.46 &    0.10\\
    Variable~5 &    0.20 &    0.93 &    0.54 &    0.96 &    0.55 &    0.82 &    0.62 &    0.10\\
    Variable~6 &    0.67 &    0.85 &    0.74 &    0.99 &    0.27 &    0.48 &    0.85 &    0.10\\
    Variable~7 &    0.82 &    0.89 &    0.68 &    0.06 &    0.02 &    0.30 &    0.10 &    0.10\\
    \bottomrule
  \end{tabularx}
\end{table*}
\end{document}

请注意我已\hline改为\midrule


另一种可能性是与第一个列定义后面的 @{\extracolsep{\fill}}\small一起使用。tabular*

\small\begin{tabular*}{\linewidth}{l@{\extracolsep{\fill}}*{8}{c}}
...
\end{tabular*}

将拉伸所有列,以便适合表格的宽度\linewidth

在此处输入图片描述


或者,如果您的表格宽度与线宽差别不大,您可以\resizebox从捆绑包中使用。graphics

在此处输入图片描述

代码

\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage[version=3]{mhchem}% loads also graphicx
\usepackage{siunitx}
%\usepackage{bm}
\begin{document}
\begin{table*}[htb]
  \label{tbl:stats-and-correlations}
  \resizebox{\linewidth}{!}{\begin{tabular}{l*{8}{c}}
    \toprule
    & \multicolumn{4}{c}{\textbf{Panel A:}} & \multicolumn{4}{c}{\textbf{Panel B:}}\\ \cmidrule(r){2-5} \cmidrule(l){6-9}
    & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} 
    & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} & {$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $} \\ [0.5ex]
    & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) & (\si{\angstrom}) \\
    \midrule
    Variable~1 &    0.78 &    0.37 &    0.48 &    0.10 &    0.13 &    0.58 &    0.41 &    0.10\\
    Variable~2 &    0.46 &    0.86 &    0.96 &    0.44 &    0.15 &    0.56 &    0.31 &    0.10\\
    Variable~3 &    0.03 &    0.75 &    0.11 &    0.44 &    0.71 &    0.06 &    0.26 &    0.10\\
    Variable~4 &    0.21 &    0.25 &    0.38 &    0.88 &    0.24 &    0.52 &    0.46 &    0.10\\
    Variable~5 &    0.20 &    0.93 &    0.54 &    0.96 &    0.55 &    0.82 &    0.62 &    0.10\\
    Variable~6 &    0.67 &    0.85 &    0.74 &    0.99 &    0.27 &    0.48 &    0.85 &    0.10\\
    Variable~7 &    0.82 &    0.89 &    0.68 &    0.06 &    0.02 &    0.30 &    0.10 &    0.10\\
    \bottomrule
  \end{tabular}}
\end{table*}
\end{document}

此外,你还可以通过删除第一列的左侧和最后一列的\tabcolsep右侧来节省空间:在列定义的开始和结束处添加。这意味着对于最后一个例子\tablcolsep@{}

\resizebox{\linewidth}{!}{\begin{tabular}{@{}l*{8}{c}@{}}
...
\end{tabular}}

在此处输入图片描述

答案2

鉴于所有列标题都相同,并且是d_{(\ce{O1}-\ce{Mg_{(Zn)}}导致列太宽的原因,我建议合并所有列标签。结合上述评论中 @Johannes_B 的修剪建议,您可以得到:

在此处输入图片描述

通过写作

\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{mhchem}
\usepackage{siunitx}
\usepackage{bm}
\begin{document}

\begin{table*}[htb]
  \label{tbl:stats-and-correlations}

  \begin{tabular}{l*{4}l*4{c}}
    \toprule
    \
    & \multicolumn{4}{c}{\textbf{Panel A:}}
     & \multicolumn{4}{c}{\textbf{Panel B:}}  \\ \cmidrule(r){2-5} \cmidrule(l){6-9}
    &\multicolumn {4}{c}{$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $ (\si{\angstrom})}
     &\multicolumn {4}{c}{$d_{(\ce{O1}-\ce{Mg_{(Zn)}})} $ (\si{\angstrom})} \\[0.8ex]
               \hline
    Variable~1 &    0.78 &    0.37 &    0.48 &    0.10 &    0.13 &    0.58 &    0.41 &    0.10\\
    Variable~2 &    0.46 &    0.86 &    0.96 &    0.44 &    0.15 &    0.56 &    0.31 &    0.10\\
    Variable~3 &    0.03 &    0.75 &    0.11 &    0.44 &    0.71 &    0.06 &    0.26 &    0.10\\
    Variable~4 &    0.21 &    0.25 &    0.38 &    0.88 &    0.24 &    0.52 &    0.46 &    0.10\\
    Variable~5 &    0.20 &    0.93 &    0.54 &    0.96 &    0.55 &    0.82 &    0.62 &    0.10\\
    Variable~6 &    0.67 &    0.85 &    0.74 &    0.99 &    0.27 &    0.48 &    0.85 &    0.10\\
    Variable~7 &    0.82 &    0.89 &    0.68 &    0.06 &    0.02 &    0.30 &    0.10 &    0.10\\
    \bottomrule
  \end{tabular}

\end{table*}

\end{document}

相关内容