我试图在表格中显示括号内数值下方的标准偏差。为了对齐数字,我使用 siunitx。由于第一列中有一些较长的描述,因此我使用 tabularx。
目前,我将每个值的标准偏差写在新行中。对于第一列中的简短描述,这样做是可行的。但是,对于较长的描述,标准偏差会显示在值下方。
有人知道我该如何以不同的方式在值下方显示标准偏差,以便正确显示长描述?
下面是一个最小工作示例和输出图像。
为了澄清起见,由于我的文档中有很多表格,我用 \vsig 缩写了值和相关重要性 (a,b,c) 的输入,并用序言中定义的 \sd 缩写了带有相关括号 () 的标准差的输入。
提前谢谢了!
\documentclass[a4paper, captions=tableheading, titlepage,bibliography=totocnumbered]{scrartcl}
% Tabelle
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{array}
\usepackage[locale=DE]{siunitx}
% Value and Significance
\newcommand{\vsig}[2]{#1\textsuperscript{ {#2}}}
% Standard deviation
\newcommand{\sd}[1]{{(}#1{)}}
\begin{document}
\begin{table}[htbp]
{\centering \small
\sisetup{
input-symbols = (),
table-format = 1.2,
table-space-text-post = \textsuperscript{ {a}},
table-space-text-pre = ~,
table-align-text-post = false,
table-align-text-pre = false,
table-auto-round}
\caption{Caption}
\begin{tabularx}{\linewidth}{>{\raggedright\arraybackslash}XSSSS}
\toprule
& {Cluster (1)} & {Cluster (2)} & {Cluster longname(3)} & {Total} \\
\midrule
Short text & \vsig{4,35}{a} & \vsig{2,74}{b} & \vsig{1,32}{c} & \num{2,65} \\
& \sd{0,781} & \sd{0,818} & \sd{0,499} & \sd{1,353} \\
Very long text very long text very long text & \vsig{4,79}{a} & \vsig{3,75}{b} & \vsig{2,69}{c} & \num{3,65} \\
& \sd{0,629} & \sd{0,957} & \sd{0,943} & \sd{1,188} \\
\bottomrule
\end{tabularx} }
\end{table}
\end{document}
答案1
如果可以假设标题列中的“长文本”不会跨越超过 2 个连续行,那么以下解决方案可能会让您感兴趣。(附言:如果“长文本”跨越超过两行,您可能应该优先缩短“长文本”。)该解决方案通过将标题列中的长文本包含在指令中来工作\mytab
,其中\mytab
定义如下。观察悬挂缩进的使用。
\documentclass[a4paper, captions=tableheading, titlepage,
bibliography=totocnumbered]{scrartcl}
% Tabelle
\usepackage{booktabs,tabularx}
\usepackage[locale=DE]{siunitx}
% Value and Significance
\newcommand{\vsig}[2]{#1\textsuperscript{ {#2}}}
% Standard deviation
\newcommand{\sd}[1]{{(}#1{)}}
% new code:
\usepackage{array,amsmath,ragged2e}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{P}{>{\RaggedRight\hangafter=1\hangindent=1em}p{\hsize}}
\newcommand\mytab[1]{\smash[b]{\begin{tabular}[t]{@{}P@{}} #1 \end{tabular}}}
\begin{document}
\begin{table}[htbp]
%% \centering % redundant
\small
\sisetup{
input-symbols = (),
table-format = 1.2,
table-space-text-post = \textsuperscript{ {a}},
table-space-text-pre = ~,
table-align-text-post = false,
table-align-text-pre = false,
table-auto-round}
\caption{Caption}
\begin{tabularx}{\linewidth}{LSSSS}
\toprule
& {Cluster (1)} & {Cluster (2)} & {Cluster longname(3)} & {Total} \\
\midrule
Short text & \vsig{4,35}{a} & \vsig{2,74}{b} & \vsig{1,32}{c} & \num{2,65} \\
& \sd{0,781} & \sd{0,818} & \sd{0,499} & \sd{1,353} \\
\mytab{Very long text very long text very long text}
& \vsig{4,79}{a} & \vsig{3,75}{b} & \vsig{2,69}{c} & \num{3,65} \\
& \sd{0,629} & \sd{0,957} & \sd{0,943} & \sd{1,188} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}