我如何
- 删除行之间的空格
- 将数字与文本对齐
- 表格适合正确的纸张尺寸,变成两个长表格,而不是三页上的三个表格
\documentclass{article}
\usepackage{geometry}
\usepackage{newtxtext, newtxmath}
\usepackage{caption}
\usepackage[inline]{enumitem}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx, varwidth}
\begin{document}
\begingroup
\centering
\small
\setlist[itemize]{nosep,
leftmargin=*,
before=\begin{minipage}[t]{\linewidth}\raggedright, % <---
after=\end{minipage}, % <---
}
\begin{longtblr}[
caption = { Distribution },
label = {tab:my-table}
]{%vlines,
colspec = {@{} X[1, l, ]
X[3, l ]
Q[c ,]
Q[c, si={table-format=2.2}]
@{} },
row{1} = {guard, font=\footnotesize\rmfamily, c},
measure = vbox,
rowhead=1
}
\toprule
bone & bone
& bone(\% )
& bone \\
\midrule
\scriptsize{bone \& bone}
& {\scriptsize bone\\ bone}
& { \scriptsize 0 (0) \\ 0 (0)}
&{\scriptsize {bone , bone} \\ \scriptsize {bone}} \\
\scriptsize{bone}
&{\textbf {\scriptsize\emph bone}\\{ \scriptsize bone\\ bone}\\ \textbf {\scriptsize\emph bone} \\{\scriptsize bone \\ bone \\ bone} \\ \textbf {\scriptsize \emph bone} }
& { \scriptsize \\ 0 (0) \\ 0 (0) \\ \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ \\ 0 (0)}
&{\scriptsize {bone , bone , bone} \\ \scriptsize {bone , bone}}
\\ \
\scriptsize{bone}
& \scriptsize{bone\\ \textbf {bone}\\ bone\\ bone \\ bone}
&\scriptsize{ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0)} \\ \ \\
\scriptsize{bone}
&\scriptsize{bone\\ bone\\ bone\\ bone\ bone}
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\
\scriptsize{bone}
& \scriptsize{\textbf {bone}\\ bone\\ bone \\\textbf{bone}\\ bone \\ bone
\\ \textbf {bone}
\\ bone \\
bone\\\textbf {bone}\\ bone\\ bone\\\textbf{bone}\\ bone\\\textbf {bone}}
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0(0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0)} \\ \\
\scriptsize{bone }
& {\scriptsize \textbf {bone} \\ bone \\\textbf {bone}\\ bone\\ bone \\ bone \\ bone \\ bone \\\textbf {bone}\\ bone\\ bone\\ bone\\\textbf {bone}\\ bone\\\textbf {bone}\\ bone\\ bone \\ \textbf {bone}\\ bone\\ bone\\ bone\\\textbf {bone}\\ bone\\ bone }
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0(0) \\ 0(0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize{bone}
& {\scriptsize \textbf {bone}\\ bone\\ bone \\\textbf {bone} \\\textbf {bone}\\ bone\\ bone\\ bone\\ bone bone\\\textbf{bone}\\ bone}
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize{bone}
& {\scriptsize bone\\ bone\\ bone\\ bone\\ bone}
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize \textbf {bone}\\ bone\\ bone \\ \textbf {bone}\\ bone\\ bone \\ bone \\ bone }
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0(0) } \\ \\
\scriptsize{bone}
& {\scriptsize bone\\ bone \\ bone \\ bone}
&\scriptsize{0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone\\ bone \\ bone\\ bone\\ bone }
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone}
&\scriptsize{0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize {bone} \\ bone \\ \textbf{bone} \\ bone \\ \textbf {bone}\\ bone }
&\scriptsize{0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone\\ bone }
&\scriptsize{0(0) \\0 (0) } \\ \\
\bottomrule
\end{longtblr}
% \end{table}
\end{adjustbox}
\end{document}
答案1
编辑(1):
- 正如我在评论中指出的那样,您的表格不是太宽而需要旋转,但很长。测试表明它跨越了三页。
- 长表格不能被封装在
table
浮动元素中(如果封装了,它会突出到页面底部) - 第二列插入的表格可以用包
\makecell{...}
的命令来替换makecell
。 - 我不会在表格主体中使用粗体文本。
- 是否存在某些需求,即表格中的文本应为斜体?
编辑(2):
- 编辑后问题更加清晰,问题是什么
- 使用
tabularray
包可以使其代码显著缩短和清晰 - 第二列中的内容应重新组织,以便每个项目都在自己的行中。
- 对于最后一列(位置)的内容,最长的文本有多长尚不清楚。在下面的 MWE 中,认为“口腔粘膜、下颌骨、上颌骨#”是最长的,因此对于列类型使用
Q[l]
。如果最长的文本更长,我会用 替换它,X[3,l]
这样可以在需要时自动将单元格中的较长文本拆分为几行。
\documentclass{article}
\usepackage{geometry}
\usepackage{newtxtext, newtxmath}
\usepackage{caption}
\usepackage[inline]{enumitem}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx, varwidth}
\begin{document}
\begingroup
\small
\begin{longtblr}[
caption = {My huge table},
label = {tab:my-table}
]{
colspec = {@{}
X[1.6, l,h]
X[3, l]
Q[c, si={separate-uncertainty=true,
table-align-uncertainty=true,
table-format=2.1(3)}]
Q[l] % X[3, l]
@{}
},
rowsep = 1pt,
row{1} = {guard, font=\small\bfseries, c},
measure = vbox,
rowhead=1
}
\toprule
Category
& Diagnosis
& Frequency (\%)
& Location \\
\midrule
\SetCell[r=2]{l} bone \& bone
& bone
& 0(0) & bone, bone \\
& bone
& 0(0) & bone \\
\SetCell[r=8]{l} bone
& \textbf{\textit{bone} bone}
& & \\
& bone
& 0(0) & bone, bone , bone \\
& bone
& 0(0) & bone , bone \\
& \textbf{\textit{bone} bone}
& 0(0) & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
& \textbf{\textit{bone} bone}
& bone(0) & \\
& bone
& 0(0) & \\
\SetCell[r=3]{l} bone
& \textbf{bone}
& & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
\SetCell[r=4]{l} bone
& bone
& 7(1.8) & \\
& bone
& 2(0.5) & \\
& bone
& 1(0.3) & \\
& bone
& 1(0.3) & \\
& bone
& 1(0.3) & \\
\SetCell[r=24]{l} bone
& \textbf{bone}
& 6(1.6) & \\
& bone
& 1(0.3) & \\
& bone
& 6(1.6) & \\
& \textbf{bone}
& 1(0.3) & \\
& bone
& 6(1.6) & \\
& bone
& 1(0.3) & \\
& \textbf{bone}
& 1(0.3) & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
& \textbf{bone}
& 0(0) & \\
& bone
& 0(0) & \\
& bone
& 0(0) & \\
& \textbf{bone}
& 0(0) & \\
& bone
& 12(3.2) & \\
& \textbf{bone}
& 3(7.5) & \\
\SetCell[r=12]{l} bone
& \textbf{bone}
& 3(7.5) & \\
& bone
& 35(9.2) & \\
& \textbf{bone}
& 33(8.7) & \\
& bone
& 2(0.5) & \\
& bone
& 1(0.3) & \\
& bone
& 3(0.8) & \\
& bone
& 2(0.5) & \\
& bone
& 1(0.3) & \\
& \textbf{bone}
& 1(0.3) & \\
& bone
& 2(0.5) & \\
& bone
& 1(0.3) & \\
& bone
& 1(0.3) & \\
& \textbf{bone}
& 1(0.3) & \\
& bone
& 1(0.3) & \\
& \textbf{bone}
& 2(0.5) & \\
& bone
& 12(3.2) & \\
& bone
& 1(0.3) & \\
& \textbf{bone}
& & \\
& bone
& & \\
& bone
& & \\
& bone
& & \\
& \textbf{bone}
& & \\
& bone
& & \\
& bone
& & \\
\bottomrule
\end{longtblr}
\end{document}
%
% editing of the rest of table is left to you
%
bone}
& {\scriptsize \textbf {Bone}\\ bone\\ Osteonecrosis \\\textbf {bonelesions} \\\textbf {bone}\\ bone\\ bone\\ bone\\ bone\\\textbf{bone}\\ bone}
&0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
bone}
& {\scriptsize bone\\ bone\\ bone\\ bone bone\\ bone}
&0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize \textbf {bone}\\ bone\\ bone \\ \textbf {bone}\\ bone\\ bone\\ bone \\ bone }
&0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (bone) } \\ \\
bone}
& {\scriptsize bone\\ bone \\ bone\\ bone}
&0 (0.0) \\ 0(0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone\\ bone \\ bone\\ bone\\ bone }
&0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone}
&0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize {bone} \\ bone \\ \textbf{bone} \\ bone \\ \textbf {bone}\\ bone }
&0 (0) \\ 0 (0) \\ 0 (0) } \\ \\
\scriptsize {bone}
& {\scriptsize bone\\ bone }
&0 (0) \\0 (0) } \\ \\
\bottomrule
\end{longtblr}
\end{document}
当了解有关您的表格的更多信息时,我可以扩展显示的表格以完成您想要的形式的表格。