将三张桌子横向叠放

将三张桌子横向叠放

我需要堆叠三个侧向表格。我的代码以某种方式让 Latex 删除标题。它报告 floatrow 错误,标题丢失。有没有办法将所有三个表格对齐到页面底部?提前致谢!

输出结果

\documentclass[A4, 11pt]{report}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{floatrow}
\usepackage{siunitx}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{amsmath}
\usepackage{url}
\usepackage[labelfont=bf]{caption}
\usepackage{indentfirst}
\usepackage{pdfpages}
\usepackage{tikz}
\usepackage{rotating}

\floatsetup[table]{capposition=top}
\graphicspath{{graphics/}}
\let\origref\ref
\def\ref#1{\textbf{\origref{#1}}}

\begin{document}
\begin{sidewaystable}[!h]
\footnotesize
\caption{Sample A, B and C calculations}

\begin{tabular}{p{3cm}p{1.5cm}p{1cm}p{1.5cm}p{1cm}p{1.5cm}p{1cm}} 
\hline\hline
\rule{0pt}{3ex}
\textbf{Compound} & \textbf{Sample A (area)} & \textbf{\% A} & \textbf{Sample B (area)} & \textbf{\% B} & \textbf{Sample C (area)} & \textbf{\% C} \\[0.5ex]
\midrule
Benzene & 97166 & 29.796 & 118538 & 28.804 & 73071 & 34.719 \\
Chlorobenzene & 79837 & 24.482 & 101977 & 24.780 & 52619 & 25.002 \\
1,2-dichlorobenzene & 86195 & 26.432 & 111483 & 27.090 & 50634 & 24.058 \\
Trichlorobenzene & 62905 & 19.290 & 79534 & 19.326 & 34138 & 16.221 \\
\bottomrule
\end{tabular}%

\vspace{2.5\baselineskip}
\caption{Unknown 1, 2 and 3 calculations}
\begin{tabular}{p{3cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
\hline\hline
\rule{0pt}{3ex}
\textbf{Compound} & \textbf{Unk 1 area} & \textbf{Unk 1 area \% } & \textbf{Unk 2 area} & \textbf{Unk 2 area \% } & \textbf{Unk 3 area} & \textbf{Unk 3 area \% } \\[0.5ex]
\midrule
Benzene & 37439 & 13.666 & 44157 & 13.076 & 46672 & 12.987 \\
Chlorobenzene & 68335 & 24.943 & 83331 & 24.676 & 88155 & 24.531 \\
1,2-dichlorobenzene & 80497 & 29.382 & 100331 & 29.710 & 107083 & 29.798 \\
Trichlorobenzene & 87692 & 32.009 & 109881 & 32.538 & 117455 & 32.684 \\
\bottomrule
\end{tabular}%

\vspace{2.5\baselineskip}
\caption{Unknown 1, 2 and 3 calculations}
\begin{tabular}{p{3cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
\hline\hline
\rule{0pt}{3ex}
\textbf{Compound} & \textbf{Unk 1 Corr. Area} & \textbf{Unk 1 \% Comp.} & \textbf{Unk 2 Corr. Area} & \textbf{Unk 2 \% Comp.} & \textbf{Unk 3 Corr. Area} & \textbf{Unk 3 \% Comp.} \\[0.5ex]
\midrule
Benzene & 29957 & 10.118 & 35333 & 9.654 & 37345 & 9.583 \\
Chlorobenzene & 65929 & 22.268 & 80397 & 21.968 & 85051 & 21.824 \\
1,2-dichlorobenzene & 87726 & 29.630 & 109342 & 29.876 & 116700 & 29.945 \\
Trichlorobenzene & 112455 & 37.983 & 140910 & 38.502 & 150623 & 38.649 \\
\bottomrule
\end{tabular}%

\end{sidewaystable}
\end{document}

答案1

看起来,该floatrow软件包的代码与软件包本身的交互方式不太理想rotating。由于看起来该floatrow软件包并不是真正需要的,因此我不会使用它。

我会小心地构造表格的标题,使它们具有一致的外观,同时避免在不合适的地方换行。确保三个表格的宽度(至少大致相同)似乎也是可取的。

在此处输入图片描述

\documentclass[A4, 11pt]{report}
\usepackage{booktabs,siunitx,rotating,array}
\sisetup{group-digits=false}
%\usepackage{floatrow}
%\floatsetup[table]{capposition=top}
\usepackage[labelfont=bf]{caption}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
\begin{sidewaystable}
\small
\centering

\caption{Sample A, B and C calculations}
\begin{tabular}{@{} l 
     S[table-format=5.0] C{1.55cm} 
     S[table-format=6.0] C{1.55cm}
     S[table-format=5.0] C{1.55cm} @{}} 
\hline\hline
\rule{0pt}{3.5ex}%
\textbf{Compound} & 
\multicolumn{1}{C{1.85cm}}{\textbf{Sample~A (area)}} & \textbf{\% A} & 
\multicolumn{1}{C{1.85cm}}{\textbf{Sample~B (area)}} & \textbf{\% B} & 
\multicolumn{1}{C{1.85cm}}{\textbf{Sample~C (area)}} & \textbf{\% C} \\ \addlinespace
\midrule
Benzene & 97166 & 29.796 & 118538 & 28.804 & 73071 & 34.719 \\
Chlorobenzene & 79837 & 24.482 & 101977 & 24.780 & 52619 & 25.002 \\
1,2-dichlorobenzene & 86195 & 26.432 & 111483 & 27.090 & 50634 & 24.058 \\
Trichlorobenzene & 62905 & 19.290 & 79534 & 19.326 & 34138 & 16.221 \\
\bottomrule
\end{tabular}%

\vspace{2.5\baselineskip}
\caption{Unknown 1, 2 and 3 calculations}
\begin{tabular}{@{} l 
            S[table-format=5.0] C{1.7cm}
       *{2}{S[table-format=6.0] C{1.7cm}} @{}}
\hline\hline
\rule{0pt}{3.5ex}%
\textbf{Compound} & 
\multicolumn{1}{C{1.7cm}}{\textbf{Unk~1 area}} & \textbf{Unk~1 area \% } & 
\multicolumn{1}{C{1.7cm}}{\textbf{Unk~2 area}} & \textbf{Unk~2 area \% } & 
\multicolumn{1}{C{1.7cm}}{\textbf{Unk~3 area}} & \textbf{Unk~3 area \% } \\ \addlinespace
\midrule
Benzene & 37439 & 13.666 & 44157 & 13.076 & 46672 & 12.987 \\
Chlorobenzene & 68335 & 24.943 & 83331 & 24.676 & 88155 & 24.531 \\
1,2-dichlorobenzene & 80497 & 29.382 & 100331 & 29.710 & 107083 & 29.798 \\
Trichlorobenzene & 87692 & 32.009 & 109881 & 32.538 & 117455 & 32.684 \\
\bottomrule
\end{tabular}%

\vspace{2.5\baselineskip}
\caption{Unknown 1, 2 and 3 calculations}
\begin{tabular}{@{} l 
               *{3}{S[table-format=6.0]S[table-format=2.3]} @{}}
\hline\hline
\rule{0pt}{3ex}%
\textbf{Compound} & 
\multicolumn{1}{C{1.6cm}}{\textbf{Unk~1 Corr.\ Area}} & \multicolumn{1}{C{1.8cm}}{\textbf{Unk~1 \%~Comp.}} & 
\multicolumn{1}{C{1.6cm}}{\textbf{Unk~2 Corr.\ Area}} & \multicolumn{1}{C{1.8cm}}{\textbf{Unk~2 \%~Comp.}} & 
\multicolumn{1}{C{1.6cm}}{\textbf{Unk~3 Corr.\ Area}} & \multicolumn{1}{C{1.8cm}}{\textbf{Unk~3 \%~Comp.}} \\ \addlinespace
\midrule
Benzene & 29957 & 10.118 & 35333 & 9.654 & 37345 & 9.583 \\
Chlorobenzene & 65929 & 22.268 & 80397 & 21.968 & 85051 & 21.824 \\
1,2-dichlorobenzene & 87726 & 29.630 & 109342 & 29.876 & 116700 & 29.945 \\
Trichlorobenzene & 112455 & 37.983 & 140910 & 38.502 & 150623 & 38.649 \\
\bottomrule
\end{tabular}%

\end{sidewaystable}
\end{document}

附录解释一些编码选择:

  • \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

    \newcolumntype是包提供的宏array。它的用例是创建一个新的“列类型”,用于tabulararray和其他类似表格的结构。在这里,它用于创建基本p列类型的一个版本,该版本将材料居中,而不是完全对齐。

  • \begin{tabular}{@{} l *{3}{S[table-format=6.0]S[table-format=2.3]} @{}}

    由于数字列中的条目是数字,因此在我看来,将它们与小数点(当前或隐含的)对齐是个好主意。包S提供的列类型siunitx执行此类格式化。该选项table-format=6.0通知 LaTeX 在小数点(隐含的)标记前留出足够的空间容纳六位数字,在标记后留出零位数字。

    该结构*{3}{...}告知 LaTeX 应有三个实例,其中包含的内容...。再举一个例子,写作

    \begin{tabular}{*{10}{c}}
    

    比阅读和调试更容易\begin{tabular}{cccccccccc},对吗?

    这些@{}指令告诉 LaTeX不是在第一列的左侧或最后一列的右侧提供任何空格。

相关内容