我有下表
我想 :
- 将行固定为自定义的某个宽度
\newcolumntype{L}{D{.}{.}{2,5}}
(允许对齐列项的小数点而不是第一个字符(当前方有减号时可防止列项向右移动)) - 三部分表的第一行/标题适合该特定宽度。也就是说,这意味着要占多行
在我的例子中,标题very long title first col
和very long title second col
标题不可读
我猜测下面这一行需要修改:
\newcolumntype{L}{D{.}{.}{2,5}}
以下是代码:
\documentclass{article}
\usepackage{caption,booktabs,array}
\usepackage[flushleft]{threeparttable}
\newcommand{\rowgroup}[1]{\hspace{-1em}#1}
\usepackage{dcolumn}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\newcolumntype{L}{D{.}{.}{2,5}}
\begin{document}
\pagenumbering{gobble}
\begin{table}
\centering
\begin{threeparttable}
\caption{Results of the test}
\begin{tabular}{>{\quad}m{14em}LL}
% \toprule
%& \multicolumn{1}{c}{} \\
%\toprule
\textbf{Variable}&\textbf{very long title first col}&\textbf{very long title second col}\\
\midrule
\rowgroup{\textbf{Tests}}\\
var1&0.014\pm0.00001&1.285\pm0.00001\\
var2&-26.0\pm0.000014&64.33\pm0.00001\\
\bottomrule
\end{tabular}
\begin{tablenotes}
\small
\item blabla
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
编辑
为了尝试回答第二个问题,我tabular
在表格中插入了一个
\documentclass{article}
\usepackage{caption,booktabs,array}
\usepackage[flushleft]{threeparttable}
\newcommand{\rowgroup}[1]{\hspace{-1em}#1}
\usepackage{dcolumn}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\newcolumntype{L}{D{.}{.}{2,5}}
\begin{document}
\pagenumbering{gobble}
\begin{table}
\centering
\begin{threeparttable}
\caption{Results of the test}
\begin{tabular}{>{\quad}m{12em}LL}
% \toprule
%& \multicolumn{1}{c}{} \\
%\toprule
\textbf{Variable}& \begin{tabular}{cc}\textbf{very long } \\ \textbf{title} \\ \textbf{first col}\end{tabular}
& \begin{tabular}{cc}\textbf{very long } \\ \textbf{title} \\ \textbf{second col}\end{tabular}\\
\midrule
\rowgroup{\textbf{Tests}}\\
var1&0.014\pm0.00001&1.285\pm0.00001\\
var2&-26.0\pm0.000014&64.33\pm0.00001\\
\bottomrule
\end{tabular}
\begin{tablenotes}
\small
\item blabla
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
答案1
或许以下内容可以作为一个起点:
\documentclass{article}
\usepackage{caption,booktabs,array}
\usepackage[flushleft]{threeparttable}
\newcommand{\rowgroup}[1]{\hspace{-1em}#1}
\usepackage{dcolumn}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\newcolumntype{L}{D{.}{.}{1,6}}
\newcolumntype{A}{D{.}{.}{2,3}}
\begin{document}
\pagenumbering{gobble}
\begin{table}
\centering
\begin{threeparttable}
\caption{Results of the test}
\begin{tabular}{>{\quad}m{12em}A@{\,\( \pm \)\,}LA@{\,\( \pm \)\,}L}
\toprule
\textbf{Variable}& \multicolumn{2}{>{\centering\arraybackslash}p{2.25cm}}{\textbf{very long title first col}}
& \multicolumn{2}{>{\centering\arraybackslash}p{2.25cm}}{\textbf{very long title second col}}\\
\midrule
\rowgroup{\textbf{Tests}}\\
var1&0.014 & 0.00001 & 1.285 & 0.00001\\
var2&-26.0 & 0.000014 & 64.33 & 0.00001\\
\bottomrule
\end{tabular}
\begin{tablenotes}
\small
\item blabla
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
根据评论的要求,提供更多解释:
为了使数字与小数分隔符和符号对齐\pm
,我将值及其不确定性分成两列,两列均来自类型d
列。
根据dcolumn
手动的,D
类型列接受以下三个参数:D{<sep.tex>}{<sep.dvi>}{<decimal places>}
为<sep.tex>
tex 文件中使用的分隔符、<sep.dvi>
为输出中使用的分隔符以及<decimal places>
为相应列中的最大小数位数。
例如:64.33
在分隔符前后各有两位数。这相当于{2,2}
。0.000014
另一方面,在分隔符前有 1 位,在分隔符后有 6 位数,这相当于{1,6}
。为了确定 的正确值<decimal places>
,因此要寻找小数点分隔符前后位数最多的数字。如果上述两个数字都属于同一列,那么正确值就是{2,6}
。
@{\,\( \pm \)\,}
,用于在值和不确定性列说明符之间,自动\pm
在两个相邻列之间插入一个 (\,
是一个小的水平空间)