多列标题居中

多列标题居中

我知道关于类似问题有多个疑问,但我已经尝试了多种提供的解决方案,但就是无法解决问题。

当我在表格中使用 \hskip 时,标题(比特币、比特币现金等)非常偏离中心。如何确保标题位于行的中心?

我的桌子

标题代码如下:

\centering
\adjustbox{max width=\textwidth}{
\begin{tabular}{c@{\hskip 0.3in}cc@{\hskip 0.3in}cc@{\hskip 0.3in}cc@{\hskip 0.3in}cc@{\hskip 0.3in}cc} 
\toprule

&\multicolumn{2}{c}{\thead{\textbf{Bitcoin}}}&\multicolumn{2}{c}{\thead{\textbf{Bitcoin Cash}}} & \multicolumn{2}{c}{\thead{\textbf{Ethereum}}} & \multicolumn{2}{c}{\thead{\textbf{Litecoin}}} & \multicolumn{2}{c}{\thead{\textbf{Zcash}}} \\ 

& Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible  \\
\midrule


\bottomrule
\end{tabular}}
\end{table*}

答案1

有一个简单的解决方案,不用使用@{\hspace{<some-length>}格式合适的额外列。但副作用是您需要在&&使用此类空格列的任何地方输入内容。

下面我还使用了一些快捷方式来减少输入内容时出现的问题。值得注意的是:

  • -column类型\space,您应该将其留空。它会注入一点空间(在我的定义中5pt-2\tabcolsep是为了补偿那些(基本上将列变成@{}c<{\hskip5pt}@{},但 LaTeX 实际上并不认为它们会是@{},以便单元格颜色具有正确的边框)。

  • 谁想把它放到\cellcolor{<color>}各处?所以我定义了\hlCell

  • \multicolumn{2}{c}{...}也变得乏味...\myhead更简单。

\documentclass[border=3.14]{standalone}

\usepackage[table]{xcolor}
\usepackage{makecell, booktabs}

\newcommand*\myhead[1]{\multicolumn{2}{c}{\thead{\textbf{#1}}}}
\newcolumntype\space{c<{\hskip\dimexpr5pt-2\tabcolsep\relax}}
\newcommand*\hlCell{\cellcolor{red!50!white}}

\begin{document}
\begin{tabular}{c*{5}{\space cc}}
\toprule
  && \myhead{Bitcoin}    && \myhead{Bitcoin Cash} && \myhead{Ethereum}
    && \myhead{Litecoin}   && \myhead{Zcash} \\
  && Reported & Possible && Reported & Possible   && Reported & Possible
    && Reported & Possible && Reported & Possible \\
\midrule
  Jan 1, 2019 && \hlCell 4 & \hlCell 3-4 && \hlCell 2 & \hlCell 1-2
    && \hlCell 3 & \hlCell 2-3 && 3 & 3 && 2 & 2 \\
  Jan 2, 2019 && \hlCell 4 & \hlCell 3-4 && \hlCell 2 & \hlCell 1-2
    && 3 & 2-3 && 3 & 3 && 2 & 2 \\
\bottomrule
\end{tabular}
\end{document}

如果该表不适合您的边距,请不要使用\adjustbox或类似的,而是使用最简单的三件事:减少\tabcolsep@{}在列的任一端使用(因此删除最外层的填充),并使用字体大小命令减小字体大小(例如\small\footnotesize)。

结果:

在此处输入图片描述

答案2

如果你使用NiceMatrix?:

\documentclass[12pt,a4paper]{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{nicematrix,booktabs,colortbl}
\usepackage{makecell}

\begin{document}
\begin{table*}
\centering
\scalebox{.75}{
\begin{NiceTabular}[c]{lcccccccccc}
  \CodeBefore
        \rectanglecolor{gray!50}{3-2}{4-3}
        \rectanglecolor{gray!30}{3-4}{4-5}
        \cellcolor{gray!20}{3-6,3-7}
    \Body
    \toprule
    &\multicolumn{2}{c}{\thead{\textbf{Bitcoin}}}&\multicolumn{2}{c}{\thead{\textbf{Bitcoin Cash}}} & \multicolumn{2}{c}{\thead{\textbf{Ethereum}}} & \multicolumn{2}{c}{\thead{\textbf{Litecoin}}} & \multicolumn{2}{c}{\thead{\textbf{Zcash}}} \\ 

    & Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible  \\
    \midrule
    Jan 1, 2019 & 4 & 3-4 & & & & & & & & \\
    Jan 1, 2019 & 4 & 3-4 & & & & & & & & \\
    \bottomrule
\end{NiceTabular}
}
\end{table*}
\end{document}

在此处输入图片描述

答案3

使用,您可以在序言中的两列之间添加{NiceTabular}预期的输出。nicematrix@{\hspace{2cm}c

\documentclass[12pt,a4paper,landscape]{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{nicematrix,booktabs}
\usepackage{tikz}
\usetikzlibrary{fit}


\begin{document}
\begin{table*}
\centering
\begin{NiceTabular}[create-extra-nodes]{lcc@{\hspace{2cm}}cccccccc}
    \CodeBefore [create-cell-nodes]
      \tikz \node [ fill = red!15 , fit = (3-2-medium) (4-3-medium) ] { } ;
      \tikz \node [ fill = red!15 , fit = (3-4-medium) (4-5-medium) ] { } ;
    \Body
    \toprule
    \RowStyle{\bfseries}
    &\Block{1-2}{Bitcoin}&&\Block{1-2}{Bitcoin Cash} && \Block{1-2}{Ethereum} && \Block{1-2}{Litecoin} && \Block{1-2}{Zcash} \\ 

    & Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible & Reported & Possible  \\
    \midrule
    Jan 1, 2019 & 4 & 3-4 & & & & & & & & \\
    Jan 1, 2019 & 4 & 3-4 & & & & & & & & \\
    \bottomrule
\end{NiceTabular}
\end{table*}
\end{document}

上述代码的输出

相关内容