我正在构建一个包含多个表格的报告,但这些表格即使足够小以容纳一页上的文本,也会一直浮动到下一页。我该怎么办?以下是我正在使用的代码。提前致谢。
\documentclass[openany]{book}
\usepackage[USenglish]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{url}
\usepackage[hyperref,dvipsnames]{xcolor}
\usepackage[a4paper,pdftex]{geometry}
\usepackage{fix-cm}
\usepackage{fancyhdr, blindtext}
\usepackage{graphicx}
\usepackage[colorlinks=true,%
linkcolor=blue,%
citecolor=blue]{hyperref}
\usepackage[Sonny]{fncychap}
\usepackage{graphicx} %%For loading graphic files
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage[toc,page]{appendix}
\usepackage[utf8]{inputenc}
\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{8pt}
\renewcommand{\arraystretch}{1.5}
\usepackage[english]{babel}
\addto\captionsenglish
\begin{document}
\begin{table}
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}|p{3cm}| }
\hline
\multicolumn{4}{|c|}{Country List} \\
\hline
Country Name or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 Code&ISO numeric Code\\
\hline
Afghanistan & AF &AFG& 004\\
Aland Islands& AX & ALA &248\\
Albania &AL & ALB& 008\\
Algeria &DZ & DZA& 012\\
American Samoa& AS & ASM&016\\
Andorra& AD & AND &020\\
Angola& AO & AGO&024\\
\hline
\end{tabular}
\end{table}
答案1
我不确定我是否理解了你的目的,但听起来你可能想要使用一个longtable
环境,它(a)不会“浮动”并且(b)必要时可以跨页。相反,环境table
偶尔会“浮动”到下一页,但永远不会跨页。
关于您的代码的一些其他评论(无特定顺序列出):
如果你加载该
fix-cm
包,它应该在文档的最开始处加载,即前指令\documentclass
。但是,由于您的代码加载了字体系列,因此一开始lmodern
加载就没有任何意义。fix-cm
不要多次加载包(例如
babel
),尤其是使用不兼容的选项(例如,inputenc
它首先使用选项加载ansinew
,然后使用选项加载utf8
)。由于您使用了异常粗的线条,因此最好加载包来
array
使表格边缘的垂直线和水平线之间的交叉点均匀分布。
%%\RequirePackage{fix-cm} % not needed since "lmodern" package is used
\documentclass[openany]{book}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{url}
\usepackage[hyperref,dvipsnames]{xcolor}
\usepackage[a4paper]{geometry}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage[Sonny]{fncychap}
\usepackage{amsmath,amsthm,amsfonts}
\usepackage[toc,page]{appendix}
\setlength{\arrayrulewidth}{0.5mm}
%\setlength{\tabcolsep}{8pt}
\renewcommand{\arraystretch}{1.5}
\usepackage{longtable,array,ragged2e}
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}}
\usepackage[colorlinks=true,%
linkcolor=blue,%
citecolor=blue]{hyperref}
\begin{document}
\begin{longtable}{ |P{2.7cm}|P{3.2cm}|P{3.2cm}|P{3.2cm}| }
%% headers and footers
\hline
\multicolumn{4}{|c|}{Country List} \\
\hline
Country Name or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 Code&ISO numeric Code\\
\hline
\endfirsthead
\hline
\multicolumn{4}{|c|}{Country List, continued} \\
\hline
Country Name or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 Code&ISO numeric Code\\
\hline
\endhead
\hline
\endfoot
%% body of table follows
Afghanistan & AF &AFG& 004\\
Aland Islands & AX & ALA &248\\
Albania &AL & ALB& 008\\
Algeria &DZ & DZA& 012\\
American Samoa& AS & ASM&016\\
Andorra & AD & AND &020\\
Angola & AO & AGO&024\\
\end{longtable}
\end{document}
答案2
嘿朋友,使用之后指定的位置\begin{table}
或\begin{longtable}
。这里是:
H
- 它将表格放在你放置 .tex 文件的位置,位于同一页上hp!
- 如果文本后面没有空格,它会将其放置在您提到的位置,并尝试将其放置在同一页面的其他位置。
\begin{table}[H]
\caption{Notations used in our work}
\label{tab:1} % Give a unique label
\begin{tabular}{c p{6.5cm}}
\end{tabular}
\end{table}