Latex:制表环境无法在 fancyhdr 页脚和 longtabu 的使用中工作

Latex:制表环境无法在 fancyhdr 页脚和 longtabu 的使用中工作

当我尝试在 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,但作者已宣布他不会查看当前版本的错误报告。

相关内容