问题
我正在尝试重新创建下表:
我基本上已经实现了这一点,但最后一列让我很困惑,因为我无法让数字居中,文本显示在最后一行的左侧80
。我尝试了无数种选择siunitx
软件包文档,但都没有给我满意的结果。以下是我目前得到的结果。
总结:我想让表格的最后一列将数字居中,而不考虑文本(IE, "Total "
),应放在最后一行数字之前。
平均能量损失
代码
\documentclass[11pt]{exam}
\usepackage{amsmath}
\usepackage{newtxtext, newtxmath}
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\usepackage{float}
\begin{document}
\begin{table}[H]
\centering
\begin{tblr}{
colspec={
X[c,m,0.75] *{2}{X[c,m,si={table-format=2}]} X[c,m,si={
table-format=2,
table-align-text-before=false,
table-number-alignment=left,
table-text-alignment=center,
table-alignment-mode=marker
}]},
row{1}={guard, font=\itshape, preto={\fontsize{9}{10.8}\selectfont}},
width=129mm,
hline{1,Z}={0.36mm},
vline{1,Z}={0.36mm},
hline{2}={0.18mm},
row{1}={9mm,t},
row{2-Z}={5.03mm,f}
}
Section & {Number of\\questions} & {Number of questions\\to be answered} & {Number of\\marks} \\
A & 20 & 20 & 20 \\
B & 5 & 5 & 60 \\
& & & Total~ 80
\end{tblr}
\end{table}
\end{document}
图像
答案1
对我来说,显示的结果和你的代码得到的结果几乎相同,所以不清楚你的问题是什么。所以我只是稍微让你的代码更一致、更简短:
\documentclass[11pt]{exam}
\usepackage{newtxtext, newtxmath}
\usepackage{tabularray}
\UseTblrLibrary{amsmath, siunitx} % <---
%\usepackage{float}
\begin{document}
\begin{table}[htb]%[H]
\centering
\begin{tblr}{width=129mm,
colspec = { X[c]
*{3}{X[c,si={table-format=2.0}]} % <---
},
row{1}={guard, font={\itshape\fontsize{9}{10.8}\selectfont}},
hline{1,Z}={0.36mm},
hline{2,Y}={0.18mm},% remove option Y if you don't like to have this line
vline{1,Z}={0.36mm},
}
Section & {Number of\\ questions}
& {Number of questions\\ to be answered}
& {Number of\\ marks} \\
A & 20 & 20 & 20 \\
B & 5 & 5 & 60 \\
& & & \rlap{Total}80 \\ % <--- or \rlap{~ Total}80 or \rlap{qquad Total}80 or ...
\end{tblr}
\end{table}
\end{document}
我添加了垂直线,以便更好地显示数字居中。在实际文档中,只需删除表格选项即可vlines
。