\documentclass[a5paper,10pt]{article}
\usepackage{array,tabularx,longtable,tabu}
\usepackage{colortbl,tikz}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\rhead{\thepage/\pageref{LastPage} page}
\cfoot{
\hrule
\vspace{1mm}
{ \footnotesize %
This is line one with some text. \linebreak % Replace \linebreak with \\ here to reproduce the error
This is line two with some more text.}}
\begin{document}
\begingroup
\footnotesize
\begin{longtabu} to \textwidth {Xrlrr}
\rowfont{\bfseries}
Name %
& \multicolumn{2}{c}{Qty}
& Price %
& NET
\\ \endhead
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
\end{longtabu}
\endgroup
\end{document}
上面的例子编译得很好。如果我在 cfoot 中用 \\ 替换 \linebreak,则会收到错误:
ABD:EveryShipout 初始化宏!放错 \cr。\reserved@c ->\ifnum 0=`{}\fi \cr
但是,如果我从表格中删除大约 10 行,那么表格将适合一页。然后 \\ 也将在 cfoot 中工作。没有错误消息。
我对此不太确定,但 longtabu 和 cfoot 不应该在某种程度上相互独立吗?我认为,如果 cfoot 内容在包含常规文本的页面上有效,那么相同的 cfoot 应该可以与任何其他内容一起使用。这是错误吗?如果这不是错误,那么这一定是初学者难以理解的东西的副作用。
答案1
这是 中的一个错误longtabu
。
\newline
并且\linebreak
在整个 LaTeX 中具有(或多或少)恒定的定义,但\\
根据上下文具有不同的定义。\\
在数组中与\\
在中完全不同center
,并且两者都不同于\\
在普通文本中。这里发生的情况是,在标题中您处于范围内,\centering
但\\
有其longtabu
行结束定义,而不是它此时应该具有的“结束线和中心”定义。
tabu
做:
%% No need for \arraybackslash ! ------------------------------------
\def\tabu@latextwoe {%
\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
\tabu@temp \tabu@centering \centering \arraybackslash
\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash
\tabu@temp \tabu@raggedright \raggedright \arraybackslash
这使得行为\centering
变得像\centering\arraybackslash
\arraybackslash
是一个命令(最初来自我的tabularx
包),它重新定义为\\
结束表格行。tabular
array
由于 TeX 输出例程的异步特性,将调用分页器来插入页头之内表的范围。
这意味着当fancyhdr
调用来\centering
将头部和脚部的中间部分居中时,它不会获得其期望的定义,并且\\
局部定义为具有其longtable
含义。
每当允许分页的环境进行局部重新定义时,它应该确保它们都在输出例程中本地重置,以便页面主体中的定义不会泄漏到头部。
在这种情况下,我认为实际上tabu
这并不是您真正想要的。使用X
只会使第一列数据不必要地远离表格的其余部分,从而使表格难以阅读。比较两个版本:
原始longtable
代码没有\centering
以这种方式重新定义。
无关,但你应该这样做
\cfoot{
\hrule
\vspace{1mm}
\footnotesize %
This is line one with some text. \\%\linebreak%\\%\linebreak % Replace \linebreak with \\ here to reproduce the error
This is line two with some more text.
}
不是
\cfoot{
\hrule
\vspace{1mm}
{\footnotesize %
This is line one with some text. \\%\linebreak%\\%\linebreak % Replace \linebreak with \\ here to reproduce the error
This is line two with some more text.
}}
您的版本中的额外内容在段落结束之前{}
就结束了范围,\footnotesize
因此脚注设置了正常基线上的小文本。请注意,一旦移除括号,脚注中的线条就会闭合。
\documentclass[a5paper,10pt]{article}
\usepackage{array,tabularx,longtable,tabu}
\usepackage{colortbl,tikz}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\makeatletter
\rhead{\thepage/\pageref{LastPage} page}
\cfoot{
\hrule
\vspace{1mm}
\footnotesize %
This is line one with some text.\\
This is line two with some more text.
}
\begin{document}
\begingroup
\footnotesize
\begin{longtable}{lrlrr}
Name %
& \multicolumn{2}{c}{\bfseries Qty}
& \bfseries Price %
& \bfseries NET
\\ \endhead
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
E2014-SPAMA-GLOB & -1.0 & db & 31\,833 & -31\,833 \\
\end{longtable}
\endgroup
\end{document}