表格不在同一页上

表格不在同一页上

早上好。

我使用 tabularx 包制作了一个表格。但是,当我将其放入代码中时,尽管表格很小,但它一半在一个页面中,一半在另一个页面中。

我知道我可以将它包装到表格环境中:但是,从美学上讲,它变得相当丑陋(间距与 tabularx 中的不一样)。

编辑:代码:

\documentclass[12pt,english,twoside,openright]{report}
\usepackage[a4paper]{geometry}
\geometry{verbose,
           % tmargin=2cm,bmargin=2cm,
            lmargin=2.5cm,rmargin=2.5cm}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{url}
\setstretch{1.3}
\usepackage[utf8]{inputenc}
\usepackage{graphicx} 
\usepackage{rotating}
\usepackage{subfiles}
\usepackage[capposition=top]{floatrow}
\usepackage{appendix}
\usepackage{chngcntr}
\usepackage{mathtools}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{mathbbol}
\usepackage{relsize}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{lscape}
\usepackage{adjustbox,lipsum}
\usepackage{enumitem}
\usepackage{tabularx}
\usepackage[english]{babel,subcaption,cleveref}
\usepackage{ltablex}
\usepackage{setspace}

\newsavebox{\mybox}
\newenvironment{mytabularwrap}{\begin{lrbox}{\mybox}}
  {\end{lrbox}%
  \setbox0\hbox{\usebox\mybox}%
  \ifdim\wd0<\textwidth
      \usebox\mybox%
  \else
      \resizebox{\textwidth}{!}{\usebox\mybox}%
  \fi
  }

\title{...}


\begin{document}

\maketitle


\section{Section A}

\subsection{Subsection A.A}
\lipsum[1-2]
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.  Ut purus elit, vestibulum ut,placerat ac, adipiscing vitae, felis.  Curabitur dictum gravida mauris.  Nam arcu libero,nonummy  eget,  consectetuer  id,  vulputate  a,  magna.   




\begin{center}
\small
\newcolumntype{Y}{>{\raggedleft\arraybackslash}X}
\begin{tabularx} {14cm} {@{} l Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y@{}} \caption{Frequencies}\\
\toprule
\textbf{}&No.&Freq.&Cum. \\
\midrule
0-5&1279&87.2&87.2 \\
5-10 p.&156&10.6&97.8 \\
15-20 p.&30&2.0&99.9 \\
20-25 & 0 & 0.0 & 99.9 \\
25-30 &2&0.1&100.0 \\
\hline
\textbf{Total}&1467&100.0& \\
\bottomrule
\addlinespace[.75ex]
\end{tabularx}
\par
\normalsize
\end{center}


\end{document}

我得到的是类似这样的信息:

休息

您可以看到表格从一页移动到另一页。

答案1

表格的放置是使用ltablex包的结果。它是组合tabularxlongtable包。因此,它允许在包之间拆分表格。如果您不喜欢这样,您需要将表格封装到浮动table环境中(最佳解决方案)或 中minipage

使用ltablex还可以重新格式化X列。如果其内容短于其自然宽度,它将适应内容宽度。相反,我宁愿使用xltabular这也是tabularxlongtable包的组合(没有改变列类型行为)。

对于您的表格,我宁愿使用简单的 tabular环境和S带有数字的列类型:

\documentclass[12pt,english,twoside,openright]{report}
\usepackage[a4paper]{geometry}
\geometry{verbose,
           % tmargin=2cm,bmargin=2cm,
            lmargin=2.5cm,rmargin=2.5cm}
\usepackage{setspace}
\setstretch{1.3}
\usepackage{booktabs}
\usepackage{ltablex}    % cause your problem
\newcolumntype{Y}{>{\raggedleft\arraybackslash}X}
\usepackage{adjustbox,lipsum}
\usepackage{setspace}
\usepackage[skip=1ex]{caption}  % new
\usepackage{siunitx}            % new
\usepackage{hyperref}   % had to be load last
%\usepackage{url}       % loaded by hyperref

\title{...}

\begin{document}

%\maketitle

\section{Section A}

\subsection{Subsection A.A}
\lipsum[1-2]

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.  Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero,nonummy  eget, consectetuer  id, vulputate a, magna.
    \begin{table}[ht]   
    \centering
\caption{Frequencies}
\begin{tabular}{l   S[table-format=4.0]
                    S[table-format=2.1] 
                    S[table-format=3.1]
                }
    \toprule
            & {No.} & {Freq.}   & {Cum.}    \\
    \midrule
 0-5        & 1279  & 87.2      &  87.2     \\
 5-10 p.    & 156   & 10.6      &  97.8     \\
15-20 p.    &  30   &  2.0      &  99.9     \\
20-25       &   0   &  0.0      &  99.9     \\
25-30       &   2   &  0.1      & 100.0     \\
    \midrule
\textbf{Total}
            & 1467  & 100.0 &       \\
    \bottomrule
\end{tabular}
    \end{table}
\end{document}

在此处输入图片描述

相关内容