latex 中的多列和多行表格

latex 中的多列和多行表格

我想在乳胶中绘制下表 在此处输入图片描述

编辑:

梅威瑟:

\documentclass{article}
\usepackage[british,UKenglish,USenglish,english,american]{babel}
\pagenumbering{gobble}

\usepackage{multirow}
\usepackage{makecell}
\usepackage{xfrac}
\usepackage{siunitx,booktabs}
\usepackage{amsmath}
\begin{document}
\begin{tabular}{@{}l
        c
        *{5}{S[table-format=1.6, group-digits=false]}
        S[table-format=-1.6, group-digits=false]
        S[table-format=1.6, group-digits=false]@{}}

    \toprule
    \multirow{2}[3]{*}{\bfseries Parameters} & \multicolumn{2}{c}{\makecell{\bfseries Asymtotic \\ $\boldsymbol{\widehat{\theta}_n - \theta^{\textbf{True}}}$}} & 
      \multicolumn{2}{c}{\makecell{\bfseries Finite sample \\ $\boldsymbol{\widehat{\theta}_n - \theta^{\textbf{True}}}$}} &
      \multicolumn{2}{c}{\makecell{\bfseries Finite sample \\ \bfseries $\boldsymbol{\widehat{\theta}_n^{(3)} - \widehat{\theta}_n}$}} &
      \multicolumn{2}{c}{\makecell{\bfseries Finite sample \\ \bfseries $\boldsymbol{\widehat{\theta}_n^{(6)} - \widehat{\theta}_n}$}} \\
    \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
    $\boldsymbol{\theta^{\textbf{True}}}$ & \multicolumn{1}{c}{\bfseries Mean} & \multicolumn{1}{c}{\bfseries Stddev} & \multicolumn{1}{c}{\bfseries Mean} & \multicolumn{1}{c}{\bfseries Stddev} & \multicolumn{1}{c}{\bfseries Mean} & \multicolumn{1}{c}{\bfseries Stddev} & \multicolumn{1}{c}{\bfseries Mean} & \multicolumn{1}{c}{\bfseries Stddev} \\
    \midrule
    $\Delta = 1/52$ &     &       &        &       &      &       &       &        \\
    \hspace{7pt} $\kappa = 0.5 $ & 0  & 0.229136 & 0.245175 & 0.329396 & 0.013477 & 0.014645 & 0.000002 & 0.000102 \\
    \hspace{7pt} $\alpha = 0.06 $ & 0  & 0.013682 & 0.000329 & 0.015202 & 0.000002 & 0.000318 & 0.000000 & 0.000003 \\
    \hspace{7pt} $\sigma = 0.03 $ & 0  & 0.000674 & 0.000021 & 0.000675 & 0.000003 & 0.000015 & 0.000000 & 0.000000 \\
    \addlinespace
    $\Delta = 1/12$ &     &       &        &       &      &       &       &        \\
    \hspace{7pt} $\kappa = 0.5 $ & 0  & 0.111867 & 0.054162 & 0.124773 & 0.028923 & 0.014382 & -0.000003 & 0.000297 \\
    \hspace{7pt} $\alpha = 0.06 $ & 0  & 0.006573 & 0.000097 & 0.006440 & 0.000002 & 0.000174 & 0.000000 & 0.000014 \\
    \hspace{7pt} $\sigma = 0.03 $ & 0  & 0.000685 & 0.000022 & 0.000687 & 0.000025 & 0.000022 & 0.000000 & 0.000001 \\
    \bottomrule
\end{tabular}
\end{document}

输出: 在此处输入图片描述

问题:

  • @{}如何使最后一列标题 ("Stddev") 居中并删除表格末尾的空格 ( )?

  • 如何在第 8 列第 3 个单元格中的 0.000000 之前添加一个减号?(我不知道这是否有意义,但 OP 的表格中有)。

答案1

像这样:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage[british,UKenglish,USenglish,english,american]{babel}
\pagenumbering{gobble}

\usepackage{booktabs,makecell,multirow}
\renewcommand\theadfont{\bfseries}% <-- define fonts series in column heads
\newcommand\mcbf[1]{\multicolumn{2}{c}{\thead{#1}}}% <-- for column heads
\newcommand\bwt[1][]{$\boldsymbol{\widehat{\theta}_n^{#1} - \theta^{\textbf{True}}}$} % <-- shortcut for math in column heads  
\usepackage{xfrac}
\usepackage[group-digits=false]{siunitx}
\usepackage{amsmath}

\usepackage{geometry}

\begin{document}
\setlength\tabcolsep{3pt}
\begin{tabular}{l
             c
        *{5}{S[table-format= 1.6]}@{}
             S[table-format=-2.6]
             S[table-format= 1.6]}
    \toprule
\multirowcell{3}{\thead{Parameters\\ $\boldsymbol{\theta^{\textbf{True}}}$}} 
    &   \mcbf{Asymtotic \\ \bwt}
        &   \mcbf{Finite sample \\ \bwt}
        &   \mcbf{Finite sample \\ \bwt[\,(3)]}
            &   \mcbf{Finite sample \\ \bwt[\,(6)]}
    \cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
    &   {\thead{Mean}} & {\thead{Stddev}} 
        &   {\thead{Mean}} & {\thead{Stddev}} 
            &   {\thead{Mean}} & {\thead{Stddev}} 
                &   {\thead{Mean}} & {\thead{Stddev}}           \\
    \midrule
$\Delta = 1/52$ &   &   &   &   &   &   &   &                   \\
    \hspace{7pt} $\kappa = 0.5 $ & 0  & 0.229136 & 0.245175 & 0.329396 & 0.013477 & 0.014645 & 0.000002 & 0.000102 \\
    \hspace{7pt} $\alpha = 0.06 $ & 0  & 0.013682 & 0.000329 & 0.015202 & 0.000002 & 0.000318 & 0.000000 & 0.000003 \\
    \hspace{7pt} $\sigma = 0.03 $ & 0  & 0.000674 & 0.000021 & 0.000675 & 0.000003 & 0.000015 & {\hspace{1ex}$-$0.000000} % <position is manually adjusted
                           & 0.000000 \\
    \addlinespace
    $\Delta = 1/12$ &     &       &        &       &      &       &       &        \\
    \hspace{7pt} $\kappa = 0.5 $ & 0  & 0.111867 & 0.054162 & 0.124773 & 0.028923 & 0.014382 & -0.000003 & 0.000297 \\
    \hspace{7pt} $\alpha = 0.06 $ & 0  & 0.006573 & 0.000097 & 0.006440 & 0.000002 & 0.000174 & 0.000000 & 0.000014 \\
    \hspace{7pt} $\sigma = 0.03 $ & 0  & 0.000685 & 0.000022 & 0.000687 & 0.000025 & 0.000022 & 0.000000 & 0.000001 \\
    \bottomrule
\end{tabular}
\end{document}

可以看出,在给定的 MWE 中,我省略了所有@{},单元格,-0.000000我将其写为{$-$0.000000}。为了给表格留出足够的空间——这就是最后一列未居中的原因——我将\tabcolsep默认值从 6pt 降低到 4pt。

为了更简单的书写和更好的概览表格,我定义了两个新命令(参见代码),并且对于列标题使用包\thead中的宏。makecell

编辑: 内容{$-$0.000000}在单元格中居中,正如 CaRLaTeX 在其评论中提到的那样。要与列中的其他数字对齐,必须手动对齐——向右移动一个0空格——使用\hspace{1ex}。他还更正了新命令的代码(“粗体宽 theta”的缩写,如果有人对更有意义的首字母缩略词有建议,可以很容易地更改它 :-) )。现在不再显示上标的空白\bwt()\theta

group-digits=false在设置中省略选项siunitx可以更方便地读取数字,但我将其保留为在有问题的 MWE 中选择的选项。

相关内容