以下の表には、1 行を超えるファイルが含まれています。行数が 10000 の場合、出力に次のメッセージが表示され、コンパイルが失敗します。} を挿入しないようにする方法はありますか?
! Missing } inserted.
<inserted text>
}
l.10001 0
6-Jun-2014 & Chq - \#9113 & 60.60 & & 3,564,175.18 \\
! Argument of \LT@max@sel has an extra }.
<inserted text>
\documentclass{article}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{framed}
\usepackage{float}
\usepackage{lipsum}
\usepackage{import}
\usepackage{longtable}
\usepackage{tabu}
\usepackage[table]{xcolor} % loads also »colortbl«
\usepackage{pgf}
\usepackage[top=0.4in, bottom=0.5in, left=0.1in, right=0.1in, tmargin = 0.9in] {geometry}
\usepackage{lastpage}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
% define lightgray
\definecolor{lightgray}{gray}{0.9}
\definecolor{darkgray}{gray}{0.5}
\definecolor{darkgreen}{RGB}{0,63,55}
\let\oldlongtabu\longtabu
\let\endoldlongtabu\endlongtabu
\newenvironment{newlongtabu}{\rowcolors{2}{white}{white}
\oldlongtabu} {\endlongtabu}
\renewenvironment{longtabu}{
\rowcolors{2}{white}{lightgray}
\oldlongtabu} {\endoldlongtabu}
\begin{document}
\newdimen\mylength
\setlength{\mylength}{7.0in}
{\small \tabulinesep=1.2mm
\begin{longtabu}to\textwidth{Xp{10.0cm}rrr}
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & col5 \\
\rowcolor{white}\\
\endfirsthead
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & co5 \\
\rowcolor{white}\\
\endhead
\endfoot
\endlastfoot
\input blah_short.tex
\end{longtabu}
}
\end{document}
blah_short には以下が含まれます:
blah & blah & blah & blah & blah \\
blah & blah & blah & blah & blah \\
blah & blah & blah & blah & blah \\
blah & blah & blah & blah & blah \\
blah & blah & blah & blah & blah \\
blah & blah & blah & blah & blah \\
通常の場合、行数は 10000 を超えます。
答え1
入力ファイルを11001行に拡張すると、Tabuはメモリ不足エラーを発生します
! TeX の容量を超えました。申し訳ありません [メイン メモリ サイズ = 5000000]。表示されているエラーではなく?
基礎となる longtable コードは、基本的に任意の長さのテーブル (pdftex および pdf 形式によって課されるドキュメントの長さまで) に対応するように設計されています。
何かのようなもの
\documentclass{article}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{framed}
\usepackage{float}
\usepackage{lipsum}
\usepackage{import}
\usepackage{longtable}
\usepackage[table]{xcolor} % loads also »colortbl«
\usepackage{pgf}
\usepackage[top=0.4in, bottom=0.5in, left=0.1in, right=0.1in, tmargin = 0.9in] {geometry}
\usepackage{lastpage}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
% define lightgray
\definecolor{lightgray}{gray}{0.9}
\definecolor{darkgray}{gray}{0.5}
\definecolor{darkgreen}{RGB}{0,63,55}
\begin{document}
\newdimen\mylength
\setlength{\mylength}{7.0in}
{\small
\begin{longtable}{p{5cm}p{10.0cm}rrr}
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & col5 \\
\rowcolor{white}\\
\endfirsthead
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & co5 \\
\rowcolor{white}\\
\endhead
\endfoot
\endlastfoot
\input blah_short.tex
\end{longtable}
}
\end{document}
答え2
が必要な場合は、テーブルの作成時にカウンターlongtabu
をオーバーライドすることで、大きなデータ セットに作業スペースを与えることができます。LTChunkSize
\documentclass{article}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{framed}
\usepackage{float}
\usepackage{lipsum}
\usepackage{import}
\usepackage{longtable}
\usepackage{tabu}
\usepackage[table]{xcolor} % loads also »colortbl«
\usepackage{pgf}
\usepackage[top=0.4in, bottom=0.5in, left=0.1in, right=0.1in, tmargin = 0.9in] {geometry}
\usepackage{lastpage}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
% define lightgray
\definecolor{lightgray}{gray}{0.9}
\definecolor{darkgray}{gray}{0.5}
\definecolor{darkgreen}{RGB}{0,63,55}
\let\oldlongtabu\longtabu
\let\endoldlongtabu\endlongtabu
\newenvironment{newlongtabu}{\rowcolors{2}{white}{white}
\oldlongtabu} {\endlongtabu}
\renewenvironment{longtabu}{
\rowcolors{2}{white}{lightgray}
\oldlongtabu} {\endoldlongtabu}
\begin{document}
\newdimen\mylength
\setlength{\mylength}{7.0in}
{\small \tabulinesep=1.2mm
\begin{longtabu}to\textwidth{Xp{10.0cm}rrr}
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & col5 \\
\rowcolor{white}\\
\endfirsthead
\rowcolor{lightgray}
\textbf{col1} & \textbf{col2} & ~ & ~ & co5 \\
\rowcolor{white}\\
\endhead
\endfoot
\endlastfoot
\setcounter{LTchunksize}{250000}
\input blah_short.tex
\end{longtabu}
}
\end{document}
これにより、 \setcounter{LTchunksize}{250000}
テーブル サイズは 250000 レコードになります。これを 200000 行の入力ファイルと組み合わせると、lualatex では、コンパイル時に数分間 1.2 GB のメモリ フットプリントも発生します。