当我尝试在 fancyhdr 页脚中使用制表环境并在文档中使用 longtabu 表时遇到了问题。
错误信息是:
! LaTeX Error: Undefined tab position.
我尝试使用\linebreak
,\newline
和\let\ORInewline\\
,但没有成功。
我应该怎么办?
这是我的代码示例:
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{ngerman}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{fancyhdr}
\begin{document}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L]{
\begin{tabbing}
aaaaaaaaaaaaaaaaa\=bbbbbbbbb\\
ccccc\>dddddddddddddddddd\\
\end{tabbing}
}
\begin{longtabu} to 3cm {|X|X|}
A\vspace{40cm} & B \\ % vspace needed to create table bigger than one page
\end{longtabu}
\end{document}
感谢您的帮助。
答案1
使用 atabular
而不是 atabbing
环境:
\fancyfoot[L]{%
\begin{tabular}{@{} l l @{}}
aaaaaaaaaaaaaaaaa & bbbbbbbbb\\
ccccc & dddddddddddddddddd\\
\end{tabular}%
}
但是,使用longtable
更有意义,因为tabu
不再受支持。
答案2
这是 中的一个错误tabu
。
tabu
对 LaTeX 命令进行了许多更改,并且没有在输出例程中恢复它们,因此页眉和页脚出现问题。
这里它修补了trivlist
(或多或少所有的 LaTeX 显示环境,包括tabbing
)并添加了
\tabu@normalcrbackslash
它的定义。
因此,您需要在页脚本地重新定义此命令以不执行任何操作,以便恢复正常行为。
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{ngerman}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{fancyhdr}
\begin{document}
\pagestyle{fancyplain}
\fancyhf{}
\makeatletter
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L]{\let\tabu@normalcrbackslash\relax
\begin{tabbing}
aaaaaaaaaaaaaaaaa\=bbbbbbbbb\\
ccccc\>dddddddddddddddddd\\
\end{tabbing}%
}
\makeatother
\begin{longtabu} to 3cm {|X|X|}
A\vspace{40cm} & B \\ % vspace needed to create table bigger than one page
\end{longtabu}
\end{document}
答案3
重新定义的输出例程tabu
似乎与 的工作方式相冲突tabbing
。您可以使用间接方法:
\newsavebox{\footbox}
\sbox{\footbox}{% <-- Look out for spaces
\begin{minipage}{\textwidth}
\begin{tabbing}
aaaaaaaaaaaaaaaaa\=bbbbbbbbb\\
ccccc\>dddddddddddddddddd\\
\end{tabbing}
\end{minipage}% <-- Look out for spaces
}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L]{\usebox{\footbox}}
这显然是 的一个错误tabu
,但作者已宣布他不会查看当前版本的错误报告。