添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

3 How to solve longtable is not in 1-column mode error?

3.2 As suggested by egreg, xtab is another choice. xtab is built on supertabular while avoiding its weaknesses.

3.3 If you still want to stick to longtable (e.g. because you are generating LaTeX through pandoc) you could redefine the \longtable command.

3.4 Another option, not covered in the previous answers, is to force single column mode along with a \clearpage before your longtable and then reset it to two column mode after. This would look like


1 Latex跨页表格
\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}
How to solve longtable is not in 1-column mode error? 在python中变量可以理解为在计算机内存中命名的一个存储空间,可以存储任意类型的数据。 变量名可以使用英文、数字和_命名,且不能用数字开头使用赋值运算符等号“=”用来给变量赋值。 等号“=”左边为变量名,右边为值。 #变量赋值示例: var1 = 1 数据类型 数据类型分为:不可变类型(3 个):Number(数字)、String(字符串)、Tuple(元