我有下表:
\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}