我正在尝试使用 tabularx 和 multicolumn 以及 head 来实现代码,但一直出现错误。代码如下:
\begindocumnet{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{ragged2e}
\newcolumntype{L}{ >{\RaggedRight}X }
\usepackage{siunitx}
\usepackage{makecell}
\renewcommand\theadfont{\normalfont\bfseries}
\setlength\parindent{0pt}
\newcolumntype{Y}{ >{\Centering}X}
\usepackage[justification=centering]{caption}
\noindent
\newcolumntype{Y}{ >{\Centering}X}
\begin{tabularx}{\textwidth}{@{} lYYY @{}}
\toprule
\thead[lc]{Category} & \multicolumn{2}{c}{\thead{Forecasting Horizon}}&
& \multicolumn{2}{c}{\thead{1 Period}} & {\multicolumn{2}{c}{1 Period}} &
\multicolumn{2}{c}{\thead{3 Period}} \\
& \thead{TSMOM (1,1)} & \thead{TSMOM (3,3)}
& \thead{TSMOM (1,1)} & \thead{TSMOM (3,3)} & \thead{TSMOM (1,1)}
& \thead{TSMOM (3,3)} \\
\midrule
Test-Statistic & 0 & 1.00 & 1.00 \\ \addlinespace
P-value & 0 & 0.59 & 1.00 \\ \addlinespace
\bottomrule
\end{tabularx}
为了提供一个想法,我基本上想制作一个包含以下内容的图表
但我希望布局格式如下:
但是,我收到以下错误,例如:“额外的对齐标签已更改为 \cr”有人能帮我指出代码中哪里出错了吗?谢谢
答案1
您的 MWE 不匹配(其中一个multicolum
可能是意外重复的)。更正(并略有改进)的代码是:
\documentclass{article}
\usepackage{booktabs,makecell,multirow,tabularx}
\renewcommand\theadfont{\normalfont\bfseries}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{2}{c}{#1}}
\usepackage[justification=centering]{caption}
\usepackage{ragged2e}
\usepackage{siunitx}
\usepackage[margin=20mm]{geometry}
\setlength\parindent{0pt}
\begin{document}
\begin{tabularx}{\textwidth}{@{} l *{6}{C} @{}}
\toprule
\thead{Forecasting Horizon}
& \mc{\thead{1 Period}}
& \mc{\thead{2 Period}}
& \mc{\thead{3 Period}} \\
\cmidrule(rl){2-3}\cmidrule(rl){4-5}\cmidrule(rl){6-7}
\thead{strategies}
& \thead{TSMOM\\ (1,1)}
& \thead{TSMOM\\ (3,3)}
& \thead{TSMOM\\ (1,1)}
& \thead{TSMOM\\ (3,3)}
& \thead{TSMOM\\ (1,1)}
& \thead{TSMOM\\ (3,3)} \\
\midrule
Test-Statistic
& \mc{0} & \mc{1.00} & \mc{1.00} \\
%\addlinespace
P-value & \mc{0} & \mc{0.59} & \mc{1.00} \\
\bottomrule
\end{tabularx}
\end{document}