我有一张相当大的桌子,我想让它横向排列(否则它就放不下)。但是,我使用 floatrow 包来使标题随桌子的尺寸换行。我还使用 adjustbox 旋转 ttabbox 进行横向对齐。但是,我很难让桌子居中对齐(垂直和水平)。我的桌子顶部超出了页面,我无法让它降下来。有没有办法让这张桌子位于正中央,这样顶部/底部和左侧/右侧的间距就相等了?也许 floatrow 是一个问题,但我不愿意牺牲它通过 \FBwidth 提供的动态文本换行功能。
另外,有没有办法让这个表格放在自己的页面上?我不想手动使用 \newpage 命令,我希望它是动态的,这样我就不必在扩展文档时更改内容的位置。
\documentclass[12pt]{article}
\usepackage{floatrow}
\usepackage{adjustbox}
\begin{document}
Testing text up here
\begin{table}
\begin{adjustbox}{angle=90}
\ttabbox[\FBwidth]
{
\caption{Some table comments here}
}
{
\begin{tabular}{c c c c c c c c c c c c c}
\hline \hline
Material & Z & 1 (H) & 6 (C) & 7 (N) & 8 (O) & 12 (Mg) & 14 (Si) & 15 (P) & 17 (Cl) & 20 (Ca) & $\rho$ \\
& A & 1.008 & 12.011 & 14.007 & 15.999 & 24.305 & 28.086 & 30.974 & 35.453 & 40.078 & (g/cm\textsuperscript{3}) \\
\hline
LN-300 Lung & & 8.46 & 59.37 & 1.96 & 18.14 & 11.19 & 0.78 & 0 & 0.10 & 0 & 0.30 \\
LN-450 Lung & & 8.47 & 59.56 & 1.97 & 18.11 & 11.21 & 0.58 & 0 & 0.10 & 0 & 0.45 \\
AP6 Adipose & & 9.06 & 72.29 & 2.25 & 16.27 & 0 & 0 & 0 & 0.13 & 0 & 0.94 \\
BR-12 Breast & & 8.59 & 70.10 & 2.33 & 17.90 & 0 & 0 & 0 & 0.13 & 0.95 & 0.98 \\
Water & & 11.19 & 0 & 0 & 88.81 & 0 & 0 & 0 & 0 & 0 & 1 \\
CT Solid Water & & 8.00 & 67.29 & 2.39 & 19.87 & 0 & 0 & 0 & 0.14 & 2.31 & 1.02 \\
BRN-SR2 Brain & & 10.82 & 72.54 & 1.69 & 14.86 & 0 & 0 & 0 & 0.08 & 0 & 1.05 \\
LV1 Liver & & 8.06 & 67.01 & 2.47 & 20.01 & 0 & 0 & 0 & 0.14 & 2.31 & 1.10 \\
IB Inner Bone & & 6.67 & 55.65 & 1.96 & 23.52 & 0 & 0 & 3.23 & 0.11 & 8.86 & 1.14 \\
B200 Bone Mineral & & 6.65 & 55.51 & 1.98 & 23.64 & 0 & 0 & 3.24 & 0.11 & 8.87 & 1.15 \\
CB2 - 30\% CaCO\textsubscript{3} & & 6.68 & 53.47 & 2.12 & 25.61 & 0 & 0 & 0 & 0.11 & 12.01 & 1.34 \\
CB2 - 50\% CaCO\textsubscript{3} & & 4.77 & 41.62 & 1.52 & 31.99 & 0 & 0 & 0 & 0.08 & 20.02 & 1.56 \\
SB3 Cortical Bone & & 3.41 & 31.41 & 1.84 & 36.50 & 0 & 0 & 0 & 0.04 & 26.81 & 1.82 \\
\hline \hline
\end{tabular}
}
\end{adjustbox}
\end{table}
Some test text here
More test text
\end{document}
答案1
为了使表格适合页面高度,我使用了\small
字体大小(这里为 10 pt)并将值减小到\tabcolsep
4pt(默认值为 6)并使用了sidewaystable
环境(这会导致表格位于自己的页面上)。
另外,我添加了一些改进,使用S
列类型来siunitx
对齐小数点上的数字,并且其中的标尺booktabs
具有一些垂直填充和可变宽度。
\documentclass[12pt]{article}
\usepackage{rotating, booktabs, siunitx}
\usepackage{floatrow}
\usepackage{adjustbox}
\begin{document}
Testing text up here
\begin{sidewaystable}
\centering
\small\setlength{\tabcolsep}{5pt}
\sisetup{table-format=2.3, table-number-alignment=center}
\null\vfill
\ttabbox[\FBwidth]
{
\caption{Some table comments here}
}
{
\begin{tabular}{@{}c c *{9}{S}S[table-format=1.2]@{}}
\toprule \midrule
Material & Z & {1 (H)} & {6 (C)} & {7 (N)} & {8 (O)} & {12 (Mg)} & {14 (Si)} & {15 (P)} & {17 (Cl)} & {20 (Ca)} & {$\rho$} \\
& A & 1.008 & 12.011 & 14.007 & 15.999 & 24.305 & 28.086 & 30.974 & 35.453 & 40.078 & {\si{g\per cm\cubed}} \\ %
\midrule
LN-300 Lung & & 8.46 & 59.37 & 1.96 & 18.14 & 11.19 & 0.78 & 0 & 0.10 & 0 & 0.30 \\
LN-450 Lung & & 8.47 & 59.56 & 1.97 & 18.11 & 11.21 & 0.58 & 0 & 0.10 & 0 & 0.45 \\
AP6 Adipose & & 9.06 & 72.29 & 2.25 & 16.27 & 0 & 0 & 0 & 0.13 & 0 & 0.94 \\
BR-12 Breast & & 8.59 & 70.10 & 2.33 & 17.90 & 0 & 0 & 0 & 0.13 & 0.95 & 0.98 \\
Water & & 11.19 & 0 & 0 & 88.81 & 0 & 0 & 0 & 0 & 0 & 1 \\
CT Solid Water & & 8.00 & 67.29 & 2.39 & 19.87 & 0 & 0 & 0 & 0.14 & 2.31 & 1.02 \\
BRN-SR2 Brain & & 10.82 & 72.54 & 1.69 & 14.86 & 0 & 0 & 0 & 0.08 & 0 & 1.05 \\
LV1 Liver & & 8.06 & 67.01 & 2.47 & 20.01 & 0 & 0 & 0 & 0.14 & 2.31 & 1.10 \\
IB Inner Bone & & 6.67 & 55.65 & 1.96 & 23.52 & 0 & 0 & 3.23 & 0.11 & 8.86 & 1.14 \\
B200 Bone Mineral & & 6.65 & 55.51 & 1.98 & 23.64 & 0 & 0 & 3.24 & 0.11 & 8.87 & 1.15 \\
CB2 - 30\% CaCO\textsubscript{3} & & 6.68 & 53.47 & 2.12 & 25.61 & 0 & 0 & 0 & 0.11 & 12.01 & 1.34 \\
CB2 - 50\% CaCO\textsubscript{3} & & 4.77 & 41.62 & 1.52 & 31.99 & 0 & 0 & 0 & 0.08 & 20.02 & 1.56 \\
SB3 Cortical Bone & & 3.41 & 31.41 & 1.84 & 36.50 & 0 & 0 & 0 & 0.04 & 26.81 & 1.82 \\
\midrule \bottomrule
\end{tabular}
}
\end{sidewaystable}
Some test text here
More test text
\end{document}
答案2
我会按如下方式编写您的表格:
\documentclass[12pt]{article}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage[skip=1ex]{caption}
\usepackage{siunitx}
\usepackage[version=4]{mhchem}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{sidewaystable}
\caption{Some table comments here}
\begin{tabular}{l c *{9}{S[table-format=2.2]}S[table-format=1.2]}
\toprule
Material & Z
& {1 (H)} & {6 (C)} & {7 (N)} & {8 (O)} & {12 (Mg)}
& {14 (Si)} & {5 (P)} & {17 (Cl)} & {20 (a)} & {$\rho$} \\
& A
& 1.008 & 12.011 & 14.007 & 15.999 & 24.305
& 28.086 & 30.974 & 35.453 & 40.078 & {\si{g/cm^3}} \\
\midrule
LN-300 Lung & & 8.46 & 59.37 & 1.96 & 18.14 & 11.19 & 0.78 & 0 & 0.10 & 0 & 0.30 \\
LN-450 Lung & & 8.47 & 59.56 & 1.97 & 18.11 & 11.21 & 0.58 & 0 & 0.10 & 0 & 0.45 \\
AP6 Adipose & & 9.06 & 72.29 & 2.25 & 16.27 & 0 & 0 & 0 & 0.13 & 0 & 0.94 \\
BR-12 Breast & & 8.59 & 70.10 & 2.33 & 17.90 & 0 & 0 & 0 & 0.13 & 0.95 & 0.98 \\
Water & & 11.19 & 0 & 0 & 88.81 & 0 & 0 & 0 & 0 & 0 & 1 \\
CT Solid Water & & 8.00 & 67.29 & 2.39 & 19.87 & 0 & 0 & 0 & 0.14 & 2.31 & 1.02 \\
BRN-SR2 Brain & & 10.82 & 72.54 & 1.69 & 14.86 & 0 & 0 & 0 & 0.08 & 0 & 1.05 \\
LV1 Liver & & 8.06 & 67.01 & 2.47 & 20.01 & 0 & 0 & 0 & 0.14 & 2.31 & 1.10 \\
IB Inner Bone & & 6.67 & 55.65 & 1.96 & 23.52 & 0 & 0 & 3.23 & 0.11 & 8.86 & 1.14 \\
B200 Bone Mineral & & 6.65 & 55.51 & 1.98 & 23.64 & 0 & 0 & 3.24 & 0.11 & 8.87 & 1.15 \\
CB2 - 30\% \ce{CaCO3} & & 6.68 & 53.47 & 2.12 & 25.61 & 0 & 0 & 0 & 0.11 & 12.01 & 1.34 \\
CB2 - 50\% \ce{CaCO3} & & 4.77 & 41.62 & 1.52 & 31.99 & 0 & 0 & 0 & 0.08 & 20.02 & 1.56 \\
SB3 Cortical Bone & & 3.41 & 31.41 & 1.84 & 36.50 & 0 & 0 & 0 & 0.04 & 26.81 & 1.82 \\
\bottomrule
\end{tabular}
\end{sidewaystable}
\lipsum[2-12]
\end{document}
- 而是
adjustbox
使用包中定义的同名包sidewaystable
中定义的环境rotating
。 - 对于带有数字的列,使用包
S
中定义的列siunitx
。它允许将数字对齐到小数点 - 对于化学符号使用
\ce{...} command defined in the
mhchem` 包
附录: 只是为了显示完整和旋转的页面,以便更好地看到它在页面上的文本区域中垂直和水平居中......