答案1
你可能想看看希尼奇包。它提供用于在表中对齐数字的列类型S
。有关分组等问题,请查看包文档。
我提出以下解决方案:
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{booktabs}
\usepackage{siunitx}
\setmainfont[Numbers={Monospaced}]{SourceSerifPro}
\begin{document}
\begin{table}[htb]
\caption{A table with some numbers.}
\begin{center}
\begin{tabular}{
S[table-format = 1.2]
S[table-format = 2.1]
S[table-format = 1.4]
S[table-format = 1.7]
S[table-format = 1.7]
}
\toprule
{\(\gamma\)} & {\(C\)} & {\(\epsilon\)} & {TR error} & {VS error}\\ \midrule
0.09 & 20 & 0.01 & 0.5158379 & 1.1113319\\
0.09 & 20 & 0.0175 & 0.0007536 & 1.1128601\\
0.1 & 17.5 & 0.02 & 0.4906799 & 1.1131233\\
0.1 & 25 & 0.015 & 0.4372142 & 1.1151788\\ \bottomrule
\end{tabular}
\end{center}
\end{table}
\end{document}
结果:
你可以看到我又做了两件事:
答案2
目前尚不清楚您的问题是什么,而且您没有提供任何有关文档类别、页面布局等的信息。目前我们只知道您喜欢并行拥有两个tabular
环境。
采用与@Sebastian 答案(+1)类似的方法,您的表格可以格式化如下:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}[t]{ S[table-format=1.2]
S[table-format=2.1]
S[table-format=1.4]}
\toprule
{$\gamma$} & {$C$} & {$\epsilon$} \\
\midrule
0.09 & 20 & 0.01 \\
0.09 & 20 & 0.0125 \\
0.09 & 22.5 & 0.015 \\
\bottomrule
\end{tabular}
\begin{tabular}[t]{ S[table-format=1.7]
S[table-format=1.7]}
\toprule
{TR error} & {VS error} \\
\midrule
0.5158379 & 1.1113319 \\
0.0007536 & 1.1128601 \\
0.0008913 & 1.1130204 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
(红线表示文本边框)
如果您喜欢将表格连接起来,则将其放在第一个表格\end{tabular}
符号后面%
。
如果您有两列文档,则一列中仍有足够的空间供表格使用:
编辑: 显然,您希望压缩较长数字的字母宽度,使其与较短数字的宽度相同。可以通过减小字体大小或使用其他字体来实现此要求,这些字体的字母大小较窄,适合此特定数字。考虑第一种可能性,您可以通过以下方式实现:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}[t]{ S[table-format=1.2]
S[table-format=2.1]
S[table-format=1.4]}
\toprule
{$\gamma$} & {$C$} & {$\epsilon$} \\
\midrule
0.09 & 20 & 0.01 \\
0.09 & 20 &\footnotesize 0.0125 \\
0.09 & 22.5 & 0.015 \\
\bottomrule
\end{tabular}
\begin{tabular}[t]{ S[table-format=1.7]
S[table-format=1.7]}
\toprule
{TR error} & {VS error} \\
\midrule
0.5158379 & 1.1113319 \\
0.0007536 & 1.1128601 \\
0.0008913 & 1.1130204 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
我不清楚这种表格格式有什么好处。表格宽度?从上面的 MWE 中你可以看到,你的表格可以毫无问题地适应列宽。但是,你也可以通过减少列\tabcolsep
内容单元格边框之间的大小来轻松缩小其宽度。例如
\setlength\tabcolsep{4pt}
从默认值 6 pt 更改为 4 pt,导致5 x 2 x 2pt = 20 pt
表格更窄。
我鼓励您重新思考一下您的桌子应该是什么样子。
答案3
我已经解释了既定目标
使小数点后四位数字组成的条目与三位数字组成的条目占用相同的空间
如下:“将数字四舍五入为(最多) 3 位数字”。
如果这个解释是正确的,我建议您使用该siunitx
包及其S
列类型,因为它可以四舍五入到预先指定的小数位数。
顺便说一句,我会将所有五个数据列中的数字与各自的(显式或隐式)小数标记对齐。
\documentclass{article}
\usepackage{siunitx,array}
\newcolumntype{T}[1]{S[table-format=#1]}
\sisetup{group-digits=false}
\begin{document}
Without rounding in the $\epsilon$ column:
\begin{tabular}{ | T{1.2} T{2.2}
T{1.4} ||
T{1.7} | T{1.7} | }
{$\gamma$} & {$C$} & {$\epsilon$} & {TR error} & {VS error} \\
\hline
0.01 & 20 & 0.01 & 0.5158379 & 1.1113319 \\
0.09 & 17.5 & 0.0125 & 0.5399814 & 1.1150787 \\
0.1 & 25 & 0.015 & 0.4372142 & 1.1151788 \\
\end{tabular}
\bigskip
With rounding to 3 decimal digits:
\begin{tabular}{ | T{1.2} T{2.2}
T{1.3,round-mode=places,round-precision=3} ||
T{1.7} | T{1.7} | }
{$\gamma$} & {$C$} & {$\epsilon$} & {TR error} & {VS error} \\
\hline
0.01 & 20 & 0.01 & 0.5158379 & 1.1113319 \\
0.09 & 17.5 & 0.0125 & 0.5399814 & 1.1150787 \\
0.1 & 25 & 0.015 & 0.4372142 & 1.1151788 \\
\end{tabular}
\end{document}
答案4
注意!如果您在问题中加载表格的代码,则更容易为您提供建议。
我假设你想将列在小数点处对齐,在这种情况下,加载列并使用 D{.}{.}{1.4}。
如果你真的想把四位数字压缩到三位数字的空间里,那么加载大批,并使用固定宽度的w
列,wc{25pt}
。您将收到一些关于“overfull hbox”的警告。
在你的序言中,加载大批:
\usepackage{array}
在表格前言中,使用wc{25pt}
而不是第 3 列的定义。增加或减少列的宽度,直到两个表格适合。您还可以减少列之间的空间:
\setlength{\tabcolsep}{4pt}
可能的 MWE:
如果它是一个表格:
\documentclass{article}
\usepackage{array}
\setlength{\tabcolsep}{4pt}
\begin{document}
\begin{tabular}{|c c wc{20pt}||c c|}
$\gamma$ & $C$ & $\epsilon$ & TR error & VS error \\
\hline
0.09 & 20 & 0.01 & 0.5158379 & 1.1113319\\
0.09 & 20 & 0.0175 & 0.0007536 & 1.1128601\\
\end{tabular}
\end{document}
或者如果有两个表格:
\documentclass{article}
\usepackage{array}
\setlength{\tabcolsep}{4pt}
\begin{document}
\begin{tabular}{|c c wc{20pt}|}
$\gamma$ & $C$ & $\epsilon$ \\
\hline
0.09 & 20 & 0.01 \\
0.09 & 20 & 0.0175 \\
\end{tabular}
\begin{tabular}{|c c|}
TR error & VS error \\
\hline
0.5158379 & 1.1113319\\
0.0007536 & 1.1128601\\
\end{tabular}
\end{document}