因此,在新版本中,siunitx
有一个名为的奇妙命令\qty{}{}
,但在我的表格中,我希望将数值与小数点(列g_m
)对齐。
快速的解决方法是将最后一列分成两列,第一列为 ona 类型S
,仅带有数值,最后一列为l
使用命令的通常类型和单位\unit{}
。
但我敢打赌有一种方法,通过调整表中的某些设置,就可以按照\qty{}{}
我需要的方式进行工作。
问题是我还不熟悉 IEEE 格式。而且关于 \qty 的这个答案只是以一种丑陋的方式跨越我的桌子(仍然使用我之前的问题中的完整代码、序言等等我之前的问题关于siunitx
)。
\begin{table}[!th]
\renewcommand{\arraystretch}{1.3}
\caption{Parameters of Mn\textsubscript{3} and Mn\textsubscript{4}}
\label{tab:CM-1}
\sisetup{
table-alignment-mode = marker, % changed from FORMAT
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 4,
}
\centering
\begin{tabular}{l*{4}{S}}
\toprule
{Transistor} & {W/L} & {W} & {L} & {g\textsubscript{m}} \\
\midrule
Mn\textsubscript{3} & \num{2.696} & \qty{8.7}{\um} & \qty{1}{\um} & \qty{200}{\micro S} \\
Mn\textsubscript{4} & \num{2.899} & \qty{2.9}{\um} & \qty{1}{\um} & \qty{66.7}{\micro S} \\
\bottomrule
\end{tabular}
\end{table}
答案1
您不应该在每个单元格中重复单位,而应该将其写在括号中的标题中。
我建议使用newtx
withIEEEtran
以便获得与 Times 兼容的数学符号。还必须添加一点,因为 LaTeX 内核(目前)还不知道 中的完整 TS1 符号集newtx
。
现在,您可以通过指定每列的格式来获得精确的图形对齐。
\um
有的缩写\micro\meter
,但没有 西门子的缩写,最好拼写出来,不要混淆\micro S
。
我猜测最后四列的标题应该是数学模式。
\documentclass{IEEEtran}
\usepackage[T1]{fontenc}
\usepackage{newtxtext,newtxmath}
\usepackage{booktabs,siunitx}
% newtx has the full set
\DeclareEncodingSubset{TS1}{ntxtlf}{0}
\begin{document}
\begin{table}[!ht]
\centering
\caption{Parameters of Mn\textsubscript{3} and Mn\textsubscript{4}}
\label{tab:CM-1}
\begin{tabular}{
@{}
l
S[table-format=1.3]
S[table-format=1.1]
S[table-format=1.0]
S[table-format=3.1]
@{}
}
\toprule
Transistor & {$W/L$} & {$W$} & {$L$} & {$g_{m}$} \\
& & {(\unit{\um})} & {(\unit{\um})} & {(\unit{\micro\siemens})} \\
\midrule
Mn\textsubscript{3} & 2.696 & 8.7 & 1 & 200 \\
Mn\textsubscript{4} & 2.899 & 2.9 & 1 & 66.7 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
列类型下的每个单元S
格都由 解析siunitx
,该解析器需要数字。否则,您将收到错误。
如果您确实希望在表格中的每个数字旁边都添加单位,一种方法是在每个数量后面添加\unit{}
。这可以在列定义中完成。但是由于S
,单位占用的额外空间也必须“添加”。下面的代码会产生一个输出,我相信这是您所期望的
和代码
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}[!th]
\renewcommand{\arraystretch}{1.3}
\caption{Parameters of Mn\textsubscript{3} and Mn\textsubscript{4}}
\label{tab:CM-11}
\sisetup{
table-alignment-mode = marker, % changed from FORMAT
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 4,
% table-align-text-after = false, % units stick to quantities
}
\centering
\begin{tabular}{
l
S[table-format=1.3]
S[table-format=1.1{\,\unit{\micro\metre}}]<{\,\unit{\micro\metre}}
S[table-format=1.0{\,\unit{\micro\metre}}]<{\,\unit{\micro\metre}}
S[table-format=3.1{\,\unit{\micro\siemens}}]<{\,\unit{\micro\siemens}}
}
\toprule
Transistor
& {W/L}
& \multicolumn{1}{c}{W}
& \multicolumn{1}{c}{L}
& \multicolumn{1}{c}{g\textsubscript{m}} \\
\midrule
Mn\textsubscript{3} & 2.696 & 8.7 & 1 & 200 \\
Mn\textsubscript{4} & 2.899 & 2.9 & 1 & 66.7 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
我认为你应该避免在单元格中重复信息。因此,我会将单位移至相应的标题,并在正文中只留下数字。我认为这是一种更清晰的输出
和代码
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}[!th]
\renewcommand{\arraystretch}{1.3}
\caption{Parameters of Mn\textsubscript{3} and Mn\textsubscript{4}}
\label{tab:CM-1}
\sisetup{
table-alignment-mode = marker, % changed from FORMAT
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 4,
}
\centering
\begin{tabular}{l S[table-format=1.3] S[table-format=1.1] S[table-format=1.0] S[table-format=3.1]}
\toprule
{Transistor} & {W/L} & {W} & {L} & {g\textsubscript{m}} \\
\cmidrule(lr){3-4}\cmidrule(lr){5-5}
& & \multicolumn{2}{c}{(\unit{\micro\metre})} & {(\unit{\micro\siemens})} \\
\midrule
Mn\textsubscript{3} & 2.696 & 8.7 & 1 & 200 \\
Mn\textsubscript{4} & 2.899 & 2.9 & 1 & 66.7 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}