\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{CJK}
\usepackage{longtable}
\begin{document}
\begin{CJK*}{GBK}{song}
\setlength{\LTleft}{0pt} \setlength{\LTright}{0pt} %表格与页面左右边缘之间的矩离均为0
\begin{longtable}{|l@{\extracolsep{\fill}}lrr|}% @{\extracolsep{\fill}} 设置使得后面所有列间距可以伸展到预定义的表格宽度。
\caption{\label{tab:test}我的跨页表格}\\
\hline
\multicolumn{4}{|c|}{\bf 国际电话通达国家、代码及资费标准} \\ \hline
国家 & 中文国名 & 代码 & 资费/分钟 \\ \hline \hline \endfirsthead %1第一页表头
\multicolumn{4}{r}{续表 ~??????} \\ \hline
国家 & 中文国名 & 代码 & 资费/分钟 \\ \hline \hline \endhead %2续页表头
\hline
\multicolumn{2}{|c|}{前两列为字符串} & \multicolumn{2}{|c|}{后两列为数字} \\ \hline \endfoot %3除最后一页表尾
\multicolumn{2}{|c|}{最后一页字符串} & \multicolumn{2}{|c|}{最后一页数字} \\ \hline \endlastfoot % 4最后一页表尾
Afghanistan &阿富汗& 93 & 23.00\\\hline
Albania &阿尔巴尼亚& 356 & 20.70\\\hline
Algeria &阿尔及利亚& 213 & 27.60\\\hline
Andorra &安道尔& 376 & 20.70\\\hline
Angola &安哥拉& 244 & 27.60\\\hline
Argentina &阿根廷&“& 27.60\\\hline
Armenia &亚美尼亚& 374 & 18.90\\\hline
Ascension &阿森松(英)&247 & 27.60\\\hline
Australia &澳大利亚& 61 & 18.40\\\hline
Austria &奥地利& 43 & 20.70\\\hline
Azerbaijan &阿塞拜-M & 994 & 18.90\\\hline
Bahrain &巴林& 973 & 27.60\\\hline
Bangladesh &加拉国& 880 & 17.20、\\\hline
Belarus &白俄罗斯& 375 & 18.90\\\hline
Afghanistan &阿富汗& 93 & 23.00\\\hline
Albania &阿尔巴尼亚& 356 & 20.70\\\hline
Algeria &阿尔及利亚& 213 & 27.60\\\hline
Andorra &安道尔& 376 & 20.70\\\hline
Angola &安哥拉& 244 & 27.60\\\hline
Argentina &阿根廷&“& 27.60\\\hline
Armenia &亚美尼亚& 374 & 18.90\\\hline
Ascension &阿森松(英)&247 & 27.60\\\hline
Australia &澳大利亚& 61 & 18.40\\\hline
Austria &奥地利& 43 & 20.70\\\hline
Azerbaijan &阿塞拜-M & 994 & 18.90\\\hline
Bahrain &巴林& 973 & 27.60\\\hline
Bangladesh &加拉国& 880 & 17.20、\\\hline
Belarus &白俄罗斯& 375 & 18.90\\\hline
Afghanistan &阿富汗& 93 & 23.00\\\hline
Albania &阿尔巴尼亚& 356 & 20.70\\\hline
Algeria &阿尔及利亚& 213 & 27.60\\\hline
Andorra &安道尔& 376 & 20.70\\\hline
Angola &安哥拉& 244 & 27.60\\\hline
Argentina &阿根廷&“& 27.60\\\hline
Armenia &亚美尼亚& 374 & 18.90\\\hline
Ascension &阿森松(英)&247 & 27.60\\\hline
Australia &澳大利亚& 61 & 18.40\\\hline
Austria &奥地利& 43 & 20.70\\\hline
Azerbaijan &阿塞拜-M & 994 & 18.90\\\hline
Bahrain &巴林& 973 & 27.60\\\hline
Bangladesh &加拉国& 880 & 17.20、\\\hline
Belarus &白俄罗斯& 375 & 18.90\\\hline
Afghanistan &阿富汗& 93 & 23.00\\\hline
Albania &阿尔巴尼亚& 356 & 20.70\\\hline
Algeria &阿尔及利亚& 213 & 27.60\\\hline
Andorra &安道尔& 376 & 20.70\\\hline
Angola &安哥拉& 244 & 27.60\\\hline
Argentina &阿根廷&“& 27.60\\\hline
Armenia &亚美尼亚& 374 & 18.90\\\hline
Ascension &阿森松(英)&247 & 27.60\\\hline
Australia &澳大利亚& 61 & 18.40\\\hline
Austria &奥地利& 43 & 20.70\\\hline
Azerbaijan &阿塞拜-M & 994 & 18.90\\\hline
Bahrain &巴林& 973 & 27.60\\\hline
Bangladesh &加拉国& 880 & 17.20、\\\hline
Belarus &白俄罗斯& 375 & 18.90\\\hline
\end{longtable}
\end{CJK*}
\end{document}
2 LaTeX使用笔记:长表格longtable(附实例)
2.1. 一个简单实例
最简单的longtable使用跟table一样,下面给出一个简单的实例。
\documentclass[twoside,12pt]{article}
\usepackage{longtable}
\begin{document}
% An illustration of longtable
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\caption{caption}
\label{table:label} \\ % add \\ command to tell LaTeX to start a new line
\hline
line1 & line2 & $t_1$ & $t_{12}$ & $t_2$ & $r$(\%)& $D$(GB)& $D_{nc}(GB)$&$G_t$(\%)&Station\\
\hline
% data begins here
10 & 2 & 0:22:00 & 9:46:00 & 2:00:00 & 80.49 & 159.18 & 302.25 & 89.88 & Cours Dillon \\
204 & 205 & 2:01:00 & 2:57:00 & 1:11:00 & 47.97 & 95.21 & 138.43 & 45.38 & Ayguevives Collège \\
% more data here
\hline
\end{longtable}
\end{document}
这里提醒一点,如果把表标题\caption{}
或者标签\label{}
放在前面,要在其后添加换行\\
,否则会报“! Misplaced \noalign.
”错误。
如果是表头单元的宽度与其他行不一致,多编译几次就行了,这是因为longtable为了节省内存和避免溢出采取分块处理表格带来的副作用。
2.2. 重复表头、表尾
长表格有时会跨越很多页,为了便于阅读,在每一页重复表头或者表尾,这涉及到4个命令,如下:
\endhead
, specify rows (比如表头) to appear at the top of every page (under the headline, but before the other lines of the table)
\endfoot
, specify rows (比如水平线\hline
) to appear at the bottom of each page.
\endfirsthead
,只作用于表格的第一页。
\endlastfoot
,只作用于表格的第一页。
值得注意的是,这些命令需要放在表格开始处(at the start of the table)。以下是一个实例,每一页头部重复表头,每一页尾部重复水平线(\hline
)。
\documentclass[twoside,12pt]{article}
\usepackage{longtable}
\begin{document}
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\caption{caption}
\label{table:label} \\ % add \\ command to tell LaTeX to start a new line
% Appear table header at the first page as well
\hline
line1 & line2 & $t_1$ & $t_{12}$ & $t_2$ & $r$(\%)& $D$(GB)& $D_{nc}(GB)$&$G_t$(\%)&Station\\
\hline
\endfirsthead
% Appear the table header at the top of every page
\hline
line1 & line2 & $t_1$ & $t_{12}$ & $t_2$ & $r$(\%)& $D$(GB)& $D_{nc}(GB)$&$G_t$(\%)&Station\\
\hline
\endhead
% Appear \hline at the bottom of every page
\hline
\endfoot
% data begins here
10 & 2 & 0:22:00 & 9:46:00 & 2:00:00 & 80.49 & 159.18 & 302.25 & 89.88 & Cours Dillon \\
204 & 205 & 2:01:00 & 2:57:00 & 1:11:00 & 47.97 & 95.21 & 138.43 & 45.38 & Ayguevives Collège \\
% more data here
\hline
\end{longtable}
\end{document}
2.3. 适应页面宽度
上面的方法解决了表格纵向显示问题。对于横向,如果一行有太多数据,默认情况下表格会截断超出的部分。解决方法无非是改变字体大小,缩小列间的间距,调整表格边缘,多行显示,纵向显示。
2.3.1 改变字体大小
在表格开始前声明字体大小,比如\small
或者\tiny
,为了不影响表格后面的字体大小,用{}
括起来,如下:
\begin{document}
% Temporarily change the font size
\small
\tiny
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\end{longtable}
} % End of changing the font size
\end{document}
或者用\begin{footnotesize}...\end{footnotesize}
括起来,
\begin{document}
\begin{footnotesize}
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\end{longtable}
\end{footnotesize}
\end{document}
2.3.2 缩小列间的间距
默认情况下,表格单元左侧和右侧会有填充(padding),被定义为\tabcolsep
,默认值为6pt。使用命令\setlength{\tabcolsep}{6pt}
调整列间的间距。
\begin{document}
% Change the intercolumn space
\setlength{\tabcolsep}{2pt}
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\end{longtable}
\end{document}
2.3.3 调整表格边缘
减少表格的边缘(margins),这样就可以放入更多的内容。
\begin{document}
% Adjust margins
\setlength\LTleft{-1in}
\setlength\LTright{-1in plus 1 fill}
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\end{longtable}
\end{document}
2.3.4 多行显示
使用longtabu(tabularx + longtable)将长文本在单元格多行显示。
\documentclass[twoside,12pt]{article}
\usepackage{longtable}
\usepackage{tabu}
\begin{document}
% Use longtabu
\begin{longtabu} to \textwidth {|X|X|X|X|X|X|X|X|X|X|}
\end{longtabu}
\end{document}
2.3.5 纵向显示
使用\begin{landscape}...\end{landscape}
将表格纵向显示。
\documentclass[twoside,12pt]{article}
\usepackage{longtable}
\usepackage{lscape} % for landscape
\begin{document}
\begin{landscape}
\begin{longtable}{|c|c|r|r|r|r|r|r|r|l|}
\end{longtable}
\end{landscape}
\end{document}
3 How to solve longtable is not in 1-column mode error?
在python中变量可以理解为在计算机内存中命名的一个存储空间,可以存储任意类型的数据。
变量名可以使用英文、数字和_命名,且不能用数字开头使用赋值运算符等号“=”用来给变量赋值。
等号“=”左边为变量名,右边为值。 #变量赋值示例:
var1 = 1 数据类型 数据类型分为:不可变类型(3 个):Number(数字)、String(字符串)、Tuple(元