ロングテーブル環境での自動行番号付け

ロングテーブル環境での自動行番号付け

各章が個別のファイルに分かれている文書があります。表に自動番号を付けようとしましたが、欠落している\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}

関連情報