问题 1:LaTeX 生成有关在带有 *** 的行中插入括号和 $ 的错误。
问题 2:葡萄糖列值不应该有 .0,但我必须添加它们才能使列正确对齐(添加 .0 意味着比我给出的更高的精度)。
问题 3:它看起来确实很丑陋和复杂,尤其是必须设置列宽,但至少我遇到过它,\shortstack
它非常有帮助。
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{d}{D{.}{.}{5.5}}
\newcolumntype{C}{>{\centering}p}
\begin{document}
\begin{table}[htp]
\caption{}
\centering
\begin{center}
\begin{tabular}{p{1.25in}ddd}
\toprule
\multicolumn{1}{C{1in}}{\shortstack{Group}} & \multicolumn{1}{C{0.75in}}{\shortstack{Weight\\(g)}} & \multicolumn{1}{C{1in}}{\shortstack{Glucose\\(mg/l)}} & \multicolumn{1}{C{2in}} {\shortstack{Glycosylated protein\\(nmol/mg protein)}}\\
\midrule
Control & 544.5 & 908.0 & 17.8\\
Diabetic & 331.2{$^{***}$} & 5736.0{$^{***}$} & 32.10{$^{***}$}\\
Diabetic+GT & 343.9{$^{***}$} & 4037.0{$^{***}\dagger\dagger$ } & 24.87{$^{***}$}\\
\bottomrule
\end{tabular}
\end{center}
\label{tbl:results}\\
\end{table}
\end{document}
答案1
一些建议:
设置一个名为的宏,例如,
\sym
排版星号和匕首使用两个标题行,并将单元格以居中文本模式放置在数据列上
我建议使用“自然”列宽,即由单元格内容决定的宽度。下面的第二个解决方案显示了使所有 3 个数据列等宽所需的代码。
\documentclass{article}
\usepackage{booktabs,dcolumn,caption}
\captionsetup{skip=0.25\baselineskip}
\newcommand\sym[1]{\ifmmode^{#1}\else{${}^{#1}}\fi} % for asterisks and daggers
\newcolumntype{d}[1]{D{.}{.}{#1}}
\newcommand\mc[1]{\multicolumn{1}{@{}c@{}}{#1}} % handy shortcut macro
\newlength\mylen
\settowidth\mylen{Glycosylated protein} % measure width of widest header cell
\newcommand\mC[1]{\multicolumn{1}{@{}>{\centering}p{\mylen}@{}}{#1}}
\begin{document}
\begin{table}[htp]
\caption{Natural column widths}\label{tbl:results:natural}
\centering
\begin{tabular}{@{} ld{3.3}d{4.4}d{2.4} @{}}
\toprule
Group & \mc{Weight} & \mc{Glucose} & \mc{Glycosylated protein} \\
& \mc{(g)} & \mc{(mg/l)} & \mc{(nmol/mg protein)}\\
\midrule
Control & 544.5 & 908. & 17.8\\
Diabetic & 331.2\sym{***} & 5736.\sym{***} & 32.10\sym{***}\\
Diabetic+GT & 343.9\sym{***} & 4037.\sym{***\dagger\dagger} & 24.87\sym{***}\\
\bottomrule
\end{tabular}
\bigskip
\caption{Equal column widths}\label{tbl:results:equal}
\centering
\begin{tabular}{@{} ld{3.3}d{4.4}d{2.4} @{}} % note: same def as above!
\toprule
Group & \mC{Weight} & \mC{Glucose} & \mC{Glycosylated protein} \\
& \mc{(g)} & \mc{(mg/l)} & \mc{(nmol/mg protein)}\\
\midrule
Control & 544.5 & 908. & 17.8\\
Diabetic & 331.2\sym{***} & 5736.\sym{***} & 32.10\sym{***}\\
Diabetic+GT & 343.9\sym{***} & 4037.\sym{***\dagger\dagger} & 24.87\sym{***}\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
像这样:
借助siunitx
和makecell
包:
\documentclass{article}
\usepackage{booktabs, makecell}
\renewcommand\theadfont{\normalsize}
\usepackage{caption}
\usepackage{siunitx}
\begin{document}
\begin{table}[htp]
\caption{}
\centering
\begin{tabular}{p{1.25in}
S[table-format=4.1,
table-space-text-post=\textsuperscript{*****}]
S[table-format=6.0,
table-space-text-post=\textsuperscript{*****}]
S[table-format=4.2,
table-space-text-post=\textsuperscript{***}]
}
\toprule
\thead{Group} & {\thead{Weight\\(g)}}
& {\thead{Glucose\\(mg/l)}}
& {\thead{Glycosylated protein\\(nmol/mg protein)}} \\
\midrule
Control & 544.5 & 908 & 17.8 \\
Diabetic & 331.2\textsuperscript{***} & 5736\textsuperscript{***} & 32.10\\
Diabetic+GT & 343.9\textsuperscript{***} & 4037{\textsuperscript{***}$\dagger\dagger$}
& 24.87\textsuperscript{***}\\
\bottomrule
\end{tabular}
\label{tbl:results}
\end{table}
\end{document}
编辑:
在第一个版本的答案中,我忽略了您的第二个要求。现在考虑了。此外,\texsuperscript{***}
您还可以使用{$^{***}$}
。