在加载“大型”数据表时,3D 图(表面、轮廓等)出现问题。我收到错误! TeX capacity exceeded, sorry [main memory size=3000000].
。
我找到了答案这里,特别是使用pdflatex --enable-write18 --extra-mem-bot=10000000 --synctex=1 <filename>
(因为我是 MikTeX 用户),但它根本不起作用,我只是得到! TeX capacity exceeded, sorry [main memory size=13000000].
。
也许使用 TeXnicCenter 很重要,所以我只需输入--extra-mem-bot=10000000
正确的选项,如你所见这里( -synctex=-1 -interaction=nonstopmode "%Wm" -synctex=1 -shell-escape --extra-mem-bot=10000000
),但我总是遇到内存错误。为了提供最大限度的信息,我上传了日志文件也是如此。
MWE 如下(如果它包含的软件包多于必要,我深表歉意,但现在我完全慌了)。如您所见,我尝试将其外部化,但无论如何都行不通。
如果您需要更多信息来帮助我,请告诉我。
\documentclass[a4paper,11pt]{book}
\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{geometry}
\usepackage{bm}
\usepackage{calc}
\usepackage{tikz}
\usetikzlibrary{calc,decorations,patterns,shapes.arrows}
\usepackage{mathtools}
\usepackage{tikzscale}
\usetikzlibrary{external}
\tikzexternalize
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{groupplots,colormaps}
\usepackage[font=small,
format=hang,
labelfont={sf,bf},
tableposition=top,
figureposition=bottom]{caption}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}
\begin{axis}[mesh]
% the following works (it's 31x31 grid)
%\addplot3[mesh/rows=31,mesh/cols=31,mesh/ordering=colwise,shader=interp] table[x=X,y=Y,z=psi] {immagini/data/SPIKE_30x30_Re1000_it10000_psi.dat};
% whereas the following doesn't, for being 101x101
\addplot3[mesh/rows=101,mesh/cols=101,mesh/ordering=colwise,shader=interp] table[x=X,y=Y,z=psi] {immagini/data/SPIKE_100x100_Re1000_it10000_psi.dat};
\end{axis}
\end{tikzpicture}
\caption{Stream lines and contours of pressure.}
\label{fig:SPIKE_30x30_Re1000_it10000_p_psi}
\end{figure}
\end{document}
数据文件可供下载这里
编辑:我在 Mac OS X 上使用 TeXLive 发行版(使用 TeXShop 作为编辑器)时遇到了同样的问题。这里是我发布的问题以及我的自我回答,也可以作为当前问题的答案(使用 LuaLaTeX)。
答案1
它为我编译了--extra-mem-top=10000000
(我没有使用外部化,如果你使用它,你将必须将选项添加到外部化代码使用的程序调用中,请参阅文档。)。