Longtabu-Tabelle mit über 10000 Zeilen fügt ein } ein und gibt dann einen Fehler aus

Longtabu-Tabelle mit über 10000 Zeilen fügt ein } ein und gibt dann einen Fehler aus

Die folgende Tabelle umfasst eine Datei mit > 1 Zeilen. Wenn die Anzahl der Zeilen = 10000 ist, wird in der Ausgabe die folgende Meldung angezeigt und die Kompilierung schlägt fehl. Irgendwelche Ideen, wie man das Einfügen von } verhindern kann?

   ! 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}

der blah_short enthält:

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 \\

bei einer normalen Version wäre die Zeilenanzahl über 10.000.

Antwort1

Wenn ich Ihre Eingabedatei auf 11001 identische Zeilen erweitere, gibt Tabu Speicherfehler aus

! TeX-Kapazität überschritten, Entschuldigung [Hauptspeichergröße=5000000]. statt des Fehlers, den Sie anzeigen?

Der zugrunde liegende Longtable-Code ist für die Verarbeitung von Tabellen praktisch beliebiger Länge ausgelegt (bis zu den von pdftex und dem PDF-Format vorgegebenen Dokumentlängen).

etwas wie

\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}

Antwort2

Wenn ein Wert longtabubenötigt wird, können Sie einem großen Datensatz den erforderlichen Speicherplatz zum Arbeiten geben, indem Sie LTChunkSizebeim Erstellen der Tabelle den Zähler überschreiben.

\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}

Damit \setcounter{LTchunksize}{250000}erhalten Sie eine Tabellengröße von 250.000 Datensätzen. Kombinieren Sie dies mit einer 200.000 Zeilen umfassenden Eingabedatei, und Sie müssen beim Kompilieren von lualatex einige Minuten lang mit einem Speicherbedarf von 1,2 GB rechnen.

verwandte Informationen