使用多页表时如何避免超出 TeX 容量?

使用多页表时如何避免超出 TeX 容量?

我正在使用longtable包装(连同xcolor用于交替行颜色和booktabs(用于优雅的表格标题)来生成一个巨大的表格。我说的巨大是指它有超过 900 行,占用超过 29 页。但是,我收到以下错误:

TeX capacity exceeded, sorry [main memory size=3000000].

我的代码与此类似:

\newcolumntype{D}{>{\raggedright\arraybackslash}m{54mm}}
% Plus a few other new column types

% Alternating colors starting on 3rd row
\definecolor{tabular-odd-color}{gray}{0.90}
\definecolor{tabular-even-color}{gray}{0.97}
\rowcolors{3}{tabular-odd-color}{tabular-even-color}

\begin{longtable}{DTCNAHHHHHH}

\toprule
col1 & col2 & col3 & col4 & col5 & col6 & col7 & col8 & col9 & col10 & col11 \\
\midrule
\endhead

% LOTS of rows here. I mean, maybe a few thousand, taking up 30, 40 or more pages.

\bottomrule

\end{longtable}

我怎样才能避免超出 TeX 容量?

(我已经读过这一页,但我的行之间已经有空行,因此该解决方案不适用于我。)

答案1

使用 luatex 它会动态分配内存,因此您会受到据我所知可用物理内存的限制(没有示例文件可以供我测试以判断它是否真的有效)。

答案2

第一种可能性是将选项添加--extra-mem-top=n到您的调用中pdflatexn用您认为足够大的数字替换。

更持久的解决方案是使用 调用initexmf --edit-config-file=latex并更改行main_memory。之后,您必须使用 重建格式文件initexmf --dump=latex。对 执行相同操作以pdflatex获取所有配置。

但这些只是解决方法,您的文档中可能存在其他问题,导致超出容量错误。您的文档是否使用行的子集进行编译?您确定所有\newcolumntype's 等都是正确的吗?

相关内容