pgfplots 表的大型数据文件内存不足

pgfplots 表的大型数据文件内存不足

在加载“大型”数据表时,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(我没有使用外部化,如果你使用它,你将必须将选项添加到外部化代码使用的程序调用中,请参阅文档。)。

相关内容