![如何生成垂直方向的子表并在它们之间留出空格?](https://linux22.com/image/450042/%E5%A6%82%E4%BD%95%E7%94%9F%E6%88%90%E5%9E%82%E7%9B%B4%E6%96%B9%E5%90%91%E7%9A%84%E5%AD%90%E8%A1%A8%E5%B9%B6%E5%9C%A8%E5%AE%83%E4%BB%AC%E4%B9%8B%E9%97%B4%E7%95%99%E5%87%BA%E7%A9%BA%E6%A0%BC%EF%BC%9F.png)
如何将表格转换为垂直方向的子表格并在它们之间留出空格?
\documentclass{article}
\usepackage[margin=20mm]{geometry}
\usepackage[svgnames]{xcolor}
\usepackage{tabularray}
\definecolor{lightblue}{HTML}{DDEBF7}
\definecolor{white}{HTML}{FFFFFF}
\definecolor{darkblue}{HTML}{2D87D1}
\begin{document}
\end{singlespace}
\arrayrulecolor{colour11}
\strutlongstacks{T}
\begin{singlespace}
\scriptsize
\begin{tabular}{c|>{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm} | >{\centering\arraybackslash}m{0.7cm}}
\caption{Z4 Ttest.}\\
\endfirsthead
\caption{ \textit{(continued)}Z4 Ttest.}\\
\rowcolor{darkblue}
\color{white}{\textbf{Sample}} & \color{white}{\textbf{Ag}} & \color{white}{\textbf{Al}} & \color{white}{\textbf{As}} & \color{white}{\textbf{Ba}} & \color{white}{\textbf{Be}} & \color{white}{\textbf{Bi}} & \color{white}{\textbf{Ca}} & \color{white}{\textbf{Cd}} & \color{white}{\textbf{Ce}}\\
\endhead
\rowcolor{darkblue}
\color{white}{\textbf{Sample}} & \color{white}{\textbf{Ag}} & \color{white}{\textbf{Al}} & \color{white}{\textbf{As}} & \color{white}{\textbf{Ba}} & \color{white}{\textbf{Be}} & \color{white}{\textbf{Bi}} & \color{white}{\textbf{Ca}} & \color{white}{\textbf{Cd}} & \color{white}{\textbf{Ce}}\\
\rowcolor{white}
- & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 \\
\hline
\rowcolor{lightblue}
- & ppm & \% & ppm & ppm & ppm & ppm & \% & ppm & ppm \\
\hline
\rowcolor{white}
{\textbf{FR-1B-003}} & 0.56 & 15.45 & 426 & 280 & 3.55 & 0.28 & 1.72 & 0.22 & 50.4 \\
\hline
\rowcolor{lightblue}
{\textbf{FR-1B-004}} & 0.69 & 13.2 & 158 & 40 & 2.72 & 0.32 & 1.21 & 0.13 & 46.3 \\
\hline
\rowcolor{white}
{\textbf{FR-1B-007}} & 0.05 & 9.61 & 165 & 150 & 3.06 & 0.29 & 0.66 & 0.02 & 76 \\
\hline
\rowcolor{lightblue}
{\textbf{FR-1B-010}} & 0.04 & 8.1 & 63.3 & 930 & 2.27 & 0.29 & 0.92 & 0.07 & 72.7 \\
\hline
\rowcolor{white}
{\textbf{FR-1B-011}} & 0.11 & 15.3 & 209 & 250 & 3.12 & 0.34 & 1.64 & 0.17 & 74.6 \\
\hline
\rowcolor{darkblue}
\color{white}{\textbf{Sample}} & \color{white}{\textbf{Co}} & \color{white}{\textbf{Cr}} & \color{white}{\textbf{Cs}} & \color{white}{\textbf{Cu}} & \color{white}{\textbf{Fe}} & \color{white}{\textbf{Ga}} & \color{white}{\textbf{Ge}} & \color{white}{\textbf{Hf}} & \color{white}{\textbf{In}} \\
\rowcolor{white}
- & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 \\
\hline
\rowcolor{lightblue}
- & ppm & ppm & ppm & ppm & \% & ppm & ppm & ppm & ppm \\
\hline
\rowcolor{white}
{\textbf{FR-1B-003}} & 9.3 & 12 & 67 & 29.9 & 4.13 & 39.9 & 0.11 & 6.6 & 0.09 \\
\hline
\rowcolor{lightblue}
{\textbf{FR-1B-004}} & 12.7 & 24 & 61.5 & 21.7 & 4.21 & 43.4 & 0.12 & 4.2 & 0.064 \\
\hline
\rowcolor{white}
{\textbf{FR-1B-007}} & 17.4 & 26 & 127 & 17 & 5.14 & 26.4 & 0.22 & 3.4 & 0.061 \\
\hline
\rowcolor{lightblue}
{\textbf{FR-1B-010}} & 1.6 & 66 & 78.2 & 5.9 & 1.77 & 21.5 & 0.11 & 5 & 0.073 \\
\hline
\rowcolor{white}
{\textbf{FR-1B-011}} & 2.1 & 54 & 40.5 & 4.5 & 2.82 & 29.8 & 0.13 & 6.2 & 0.082 \\
\hline
\end{tabular}
\end{document}
答案1
一种方法是使用\rotatebox{}{}
from graphicx
。只需将每个表放在单独的命令中即可。为了使每个标题与对应的表保持一致,我将对括在每个 中minipage
。因为现在标题不在浮点数内,\captionof{}{}
所以我们需要 ,它在包中定义caption
。如果您希望将整个构造放在表环境中,请更改\begingroup...\endgroup
为\begin{table}...\end{table}
。
注意。在编写本文时,您的代码无法编译。我必须删除一些位。您可能需要再次添加缺失的部分。
我还建议(在代码中)进行一些改进:\newcolumntype
、多列定义和自定义宏\cbf
。前者允许您定义自定义列类型并避免重复。后者仅节省空间,意义不大;我个人在这种情况下使用宏。构造*{N}{D}
是定义N
相同类型的列数D
。它还可以节省空间并消除重复。
这个例子
\documentclass{article}
\usepackage[margin=20mm]{geometry}
\usepackage[avgnames,table]{xcolor}
% \usepackage{tabularray} % Not used - removed
\usepackage{graphicx} % Added for rotatebox
\usepackage{array} % Added for newcolumntype
\usepackage{caption} % Added for captionof
% \usepackage{setspace} % Required for \begin{singlespacing}..\end{singlespacing}
\definecolor{lightblue}{HTML}{DDEBF7}
\definecolor{white}{HTML}{FFFFFF}
\definecolor{darkblue}{HTML}{2D87D1}
\arrayrulecolor{darkblue} % color11 is undefined !!!
\newcolumntype{M}{>{\centering\arraybackslash}m{1cm}}
\newcommand\cbf[2][white]{\textcolor{#1}{\bfseries #2}}
\begin{document}
% \strutlongstacks{T} % Example doesn't compile with this
\begingroup
\centering
\begin{minipage}[t]{0.28\textwidth}
\centering
\parbox[t][1.2cm]{\linewidth}{\captionof{table}{Z4 Ttest.}}\par
\rotatebox{90}{%
\begin{tabular}{c *{9}{| M}}
\rowcolor{darkblue} \cbf{Sample} & \cbf{Ag} & \cbf{Al} & \cbf{As} & \cbf{Ba} & \cbf{Be} & \cbf{Bi} & \cbf{Ca} & \cbf{Cd} & \cbf{Ce} \\
\rowcolor{white} - & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 \\
\hline
\rowcolor{lightblue} - & ppm & \% & ppm & ppm & ppm & ppm & \% & ppm & ppm \\
\hline
\rowcolor{white} \textbf{FR-1B-003} & 0.56 & 15.45 & 426 & 280 & 3.55 & 0.28 & 1.72 & 0.22 & 50.4 \\
\hline
\rowcolor{lightblue} \textbf{FR-1B-004} & 0.69 & 13.2 & 158 & 40 & 2.72 & 0.32 & 1.21 & 0.13 & 46.3 \\
\hline
\rowcolor{white} \textbf{FR-1B-007} & 0.05 & 9.61 & 165 & 150 & 3.06 & 0.29 & 0.66 & 0.02 & 76 \\
\hline
\rowcolor{lightblue}
{\textbf{FR-1B-010}} & 0.04 & 8.1 & 63.3 & 930 & 2.27 & 0.29 & 0.92 & 0.07 & 72.7 \\
\hline
\rowcolor{white} \textbf{FR-1B-011} & 0.11 & 15.3 & 209 & 250 & 3.12 & 0.34 & 1.64 & 0.17 & 74.6 \\
\hline
\end{tabular}}
\end{minipage}
\begin{minipage}[t]{0.28\textwidth}
\centering
\parbox[t][1.2cm]{\linewidth}{\captionof{table}{Z4 Ttest.\\\textit{(continued)}}}\par
\rotatebox{90}{%
\begin{tabular}{c *{9}{| M}}
\rowcolor{darkblue} \cbf{Sample} & \cbf{Co} & \cbf{Cr} & \cbf{Cs} & \cbf{Cu} & \cbf{Fe} & \cbf{Ga} & \cbf{Ge} & \cbf{Hf} & \cbf{In} \\
\rowcolor{white} - & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 & ME-MS61 \\
\hline
\rowcolor{lightblue} - & ppm & ppm & ppm & ppm & \% & ppm & ppm & ppm & ppm \\
\hline
\rowcolor{white} \textbf{FR-1B-003} & 9.3 & 12 & 67 & 29.9 & 4.13 & 39.9 & 0.11 & 6.6 & 0.09 \\
\hline
\rowcolor{lightblue} \textbf{FR-1B-004} & 12.7 & 24 & 61.5 & 21.7 & 4.21 & 43.4 & 0.12 & 4.2 & 0.064 \\
\hline
\rowcolor{white} \textbf{FR-1B-007} & 17.4 & 26 & 127 & 17 & 5.14 & 26.4 & 0.22 & 3.4 & 0.061 \\
\hline
\rowcolor{lightblue} \textbf{FR-1B-010} & 1.6 & 66 & 78.2 & 5.9 & 1.77 & 21.5 & 0.11 & 5 & 0.073 \\
\hline
\rowcolor{white} \textbf{FR-1B-011} & 2.1 & 54 & 40.5 & 4.5 & 2.82 & 29.8 & 0.13 & 6.2 & 0.082 \\
\hline
\end{tabular}}
\end{minipage}
\par
\endgroup
\end{document}
编辑。还有一个选项可以参数化新的列类型
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
并与参数一起使用
% ...
\begin{tabular}{c *{9}{| M{1cm}}}
% ...