长表环境中的自动行编号

长表环境中的自动行编号

我有一个文档,每个章节都在一个单独的文件中。我尝试对表格进行自动编号,但它会丢失缺少 \endcsname 插入当我想步进计数器时出错。主文件:

\documentclass[11pt,twoside]{report}
\usepackage{calc}
\usepackage[paperwidth=297mm,%
    paperheight=210mm,%
    inner=.12\paperwidth,%
    outer=.08\paperwidth,%
    top=.05\paperheight,%
    bottom=.05\paperheight,%
    xetex]{geometry}
\usepackage{longtable}
\usepackage[magyar]{babel}

\title{\textbf{Tanmenetek}\\Matematika}
\author{Benkó Tamás}

\newcounter{serial}[chapter]
\newcommand{\serie}{\stepcounter{serial}\arabic{serial}.}

\begin{document}

\maketitle

\chapter{9. osztály}
    \input{nine.tex}
\end{document}

nine.tex 文件是:

\begin{longtable}{@{\makebox{\serie}}llll}
    \multicolumn{1}{@{}l}{Óra címe}&Óra témája&Kompetencia-területek&Eszközök\\
    \endhead
    Bevezetés&Bevezetés&-&-\\
\end{longtable}

当我直接将 \serie 命令写入每一行时,它工作正常。当我将 \stepcounter 写入每一行时,它仍然有效,但从 0 开始。当 \stepcounter 进入 @{} 描述符时,我收到上述错误。我无法找出问题所在,因为它与常用的 tabular 命令一起使用时有效。

答案1

如果添加\usepackage{array}表格前导码,则会以更安全的方式进行处理,而不会破坏脆弱的命令。

\documentclass[11pt,twoside]{report}
\usepackage{calc}
\usepackage[paperwidth=297mm,%
    paperheight=210mm,%
    inner=.12\paperwidth,%
    outer=.08\paperwidth,%
    top=.05\paperheight,%
    bottom=.05\paperheight,%
    ]{geometry}
\usepackage{longtable}
\usepackage[magyar]{babel}
\usepackage{array}
\title{\textbf{Tanmenetek}\\Matematika}
\author{Benkó Tamás}

\newcounter{serial}[chapter]
\newcommand{\serie}{\stepcounter{serial}\theserial.}

\begin{document}

\maketitle

\chapter{9. osztály}



\begin{longtable}{@{\serie}llll}
    \multicolumn{1}{@{}l}{Óra címe}&Óra témája&Kompetencia-területek&Eszközök\\
    \endhead
    Bevezetés&Bevezetés&-&-\\
\end{longtable}
\end{document}

相关内容