当我尝试使用 PgfPlots 编译一些图表时,Tectonic 出现了内存不足错误。因此,我四处寻找解决方案,Tikz 外部化提出了一个解决方案。不幸的是,这种模式需要使用标志来操作tex引擎--shell 转义或等效的。尽管 Tectonic 的理念反对使用这种范例,但它最近被实现以允许使用某些包。话虽如此,外部化不起作用。事实上,通过运行tectonic --keep-logs -Z shell-escape exampl.tex
我遇到了以下错误:
note: running shell command: `xelatex -shell-escape -halt-on-error -interaction=batchmode -jobname "exampl-figure0" "\def\tikzexternalrealjob{exampl}\input{exampl}"`
This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022/Arch Linux) (preloaded format=xelatex)
\write18 enabled.
entering extended mode
warning: command exited with error code 1
error: failed to execute the shell-escape command "xelatex -shell-escape -halt-on-error -interaction=batchmode -jobname "exampl-figure0" "\def\tikzexternalrealjob{exampl}\input{exampl}"": execution of the request failed
error: exampl.tex:26: Package tikz Error: Sorry, the system call 'xelatex -shell-escape -halt-on-error -interaction=batchmode -jobname "exampl-figure0" "\def\tikzexternalrealjob{exampl}\input{exampl}"' did NOT result in a usable output file 'exampl-figure0' (expected one of .pdf:.jpg:.jpeg:.png:.bmp:). Please verify that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or something like that. Or maybe the command simply failed? Error messages can be found in 'exampl-figure0.log'. If you continue now, I'll try to typeset the picture.
我的 tex 文件包含有关 Tikz 和 Pgfplots 的以下条目:
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units}
\usepgfplotslibrary{groupplots}
\usepgfplotslibrary{external}
\tikzexternalize
\usetikzlibrary{fit}
通过排除内存密集型图表,我可以通过注释掉条目来编译文件\tikzexternalize
。当我包含它时,引擎会产生上面报告的错误。日志文件不包含任何其他信息。
有人知道发生了什么事以及我该如何解决吗?
感谢您的时间。
正如善意指出的那样,我还没有想到放一些可用于重现错误的可用代码。这里:
\documentclass[11pt]{article}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units}
\usepgfplotslibrary{groupplots}
\usepgfplotslibrary{external}
\tikzexternalize
\title{Title}
\author{}
\date{}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[]
\addplot[] coordinates{
(-1,1)
(1,1)
};
\end{axis}
\end{tikzpicture}
\caption{}
\end{figure}
\end{document}
\tikzexternalize
当注释掉该代码时,该代码有效。