siunitx:水平对齐带有整数、小数位数可变的非整数、“周围材料”和括号的行

siunitx:水平对齐带有整数、小数位数可变的非整数、“周围材料”和括号的行

我有下表:

\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{MnSymbol}

\usepackage{siunitx}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{arydshln}

\begin{document}

\begin{center}

\begin{longtable}{cS[input-symbols=()]c}
\caption{MWE}\label{tab:B.1}\\
\hline
Description & $X$ & REF\\
& $\mathrm{\left[\%\right]}$ &\\
\hline
\endfirsthead
\multicolumn{3}{l}%
{\tablename\ \thetable\ (\emph{continued from previous page})} \\
%\caption* {Table 1: \textit{continued from previous page}}\\
\hline
Description & $X$ & REF\\
& $\mathrm{\left[\%\right]}$ &\\
\hline
\endhead
\hline 
\multicolumn{3}{r}%
{(\emph{continued on next page})} \\
\endfoot
\hline
\\
\multicolumn{3}{l}%
{\shortstack[l]{\textsuperscript{a}Note type 1\\
\textsuperscript{$\smallsquare$}Note type 2, entry 1\\
\textsuperscript{$\circ$}Note type 2, entry 2}}
\endlastfoot

& 70.55\textsuperscript{a}&\\
& {92.5}\textsuperscript{a,$\smallsquare$}&\\
& {75}\textsuperscript{a,$\smallsquare$}&\\
& {0}\textsuperscript{a,$\circ$}&\\

\cdashline{1-2}
Mean                        & 53.26 &\\
(standard deviation)        & (39.52) &\\
(sample size)               & (4) &\\

\end{longtable}

\end{center}

\end{document}

... 我希望 siunitx 能够根据小数点的变化自动识别第 2 列第 1 至第 4 行中的“周围材料”;以及适当处理同一列最后一行中的括号。如您所见,我尝试(按照软件包描述)使用 {} 保护第 2 至第 4 行中的数字,但随后与最初居中的小数点标记(第 1 行)的对齐丢失了。有人可以帮忙吗?

经过讨论,这是 MWE 的最新版本:

\sisetup{table-format=2.2,group-digits=false,input-symbols={()},table-space- 
text-pre=(,table-space-text-post=),table-align-text-post=false}

\begin{longtable}{cSc}
\caption{MWE}\label{tab:B.1}\\
\hline
Description & $X$ & REF\\
& $\mathrm{\left[\%\right]}$ &\\
\hline
\endfirsthead
\multicolumn{3}{l}%
{\tablename\ \thetable\ (\emph{continued from previous page})} \\
%\caption* {Table 1: \textit{continued from previous page}}\\
\hline
Description & $X$ & REF\\
& $\mathrm{\left[\%\right]}$ &\\
\hline
\endhead
\hline 
\multicolumn{3}{r}%
{(\emph{continued on next page})} \\
\endfoot
\hline
\\
\multicolumn{3}{l}%
{\shortstack[l]{\textsuperscript{a}Note type 1\\
\textsuperscript{$\smallsquare$}Note type 2, entry 1\\
\textsuperscript{$\circ$}Note type 2, entry 2}}
\endlastfoot

& 70.55\textsuperscript{a}&\\
& 92.5\textsuperscript{a,$\smallsquare$}&\\
& (75)\textsuperscript{a,$\smallsquare$}&\\
& 0\textsuperscript{a,$\circ$}&\\

\cdashline{1-2}
Mean                        & 53.26 &\\
(standard deviation)        & (39.52) &\\
(sample size)               & (4) &\\

我只需要将括号内的条目向右移动一个位置即可。任何帮助都欢迎!

答案1

LaTeX 是一种标记语言,这意味着您需要提供指令,说明最终文档的外观。siunitx因此,期望 LaTeX 或软件包本身能够确定列规范应该是怎样的,这是不现实的。

就你的情况而言,你应该定义一种方式,即你想要如何格式化数字。例如,我会按照以下方式(重新)设计你的表格:

在此处输入图片描述

\tnote如您所见,使用包中的细化表格threeparttablex。它使在表格中插入注释的方式更简短、更一致。我将第一列和最后一列左对齐,但您可以根据需要更改。在第二列中,我将使用S如下 MWE 中所示的设置列。

如果您希望使用较长的列标题,其中包含两行或更多行内容,则使用\thead包中的命令makecell会很方便。例如:

% preamble
\usepackage{makecell}
\renewcommand\theadnote{\bfseries\small}
\renewcommand\theadgape{}
% column header for the second column
{\thead{two line\\ long text}}

下面的 MWE 中未显示其用法,因为正如您在问题中所展示的那样,列标题\thead{...}是不需要的。

\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath,amsthm}
\usepackage{MnSymbol}

\usepackage{siunitx}
\usepackage{longtable, multirow, threeparttablex} % <---
\usepackage{arydshln}

\begin{document}

\sisetup{table-format=2.2,              % 2 integers, 2 decimals
         input-symbols={( )},           % allowed symbols
         table-space-text-pre=(,        % reserved space for (
         table-space-text-post={)a},    % reserved space for ) + one symbol(\circ) 
         table-align-text-post=false    % notes are aligned at numbers
         }  
    \begin{ThreePartTable}
\begin{TableNotes}\small
\item[a]                Note type 1
\item[$\smallsquare$]   Note type 2, entry 1
\item[$\circ$]          Note type 2, entry 2 
\end{TableNotes}

\begin{longtable}{  l
                    S
                    l}
\caption{MWE}\label{tab:B.1}\\
    \hline
Description & $X\ [\si{\%}]$ & REF\\
    \hline
\endfirsthead
\caption[]{MWE \textit{continued from previous page}}\\
     \hline   
Description & $X\ \si{\%}]$ & REF\\
    \hline
\endhead
    \hline
\multicolumn{3}{r}{\footnotesize(\emph{continued on next page})} \\
\endfoot
    \hline
    \insertTableNotes
\endlastfoot

    & 70.55\tnote{a}                &   \cite{???}   \\
    & 92.5\tnote{a,$\smallsquare$}  &   \cite{??}    \\
    & 75\tnote{a,$\smallsquare$}    &   \\
    & 0\tnote{a,$\circ$}            &   \\
\cdashline{1-2}
Mean                        & 53.26 &\\
(standard deviation)        & 39.52 &\\
(sample size)               & {(4)} &\\
\end{longtable}
    \end{ThreePartTable}
\end{document}

相关内容