我是 stackexchange 的新手,没有找到有关此问题的任何信息。每当我尝试将 TikZ 的 externalize 与(与 TikZ 图片无关)一起使用时,我都会遇到错误。\linegoal
我的引擎是 Win7 上的带有 TeXstudio 的 MikTeX。一旦将linegoal
包与一起使用externalize
,linegoal
就会引发错误:
! Package linegoal Error: \linegoal does not work if output file are disabled
(linegoal) please check the value of \if@filesw!.
MWE 是:
\documentclass[11pt]{article}
\usepackage{linegoal}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (1,1);
\end{tikzpicture}
\parbox[t]{\linegoal}{test}
\end{document}
有人知道如何解决这个问题吗?
答案1
该external
库明确抑制了辅助 LaTeX 文件的生成(因为它们的生成不是线程安全的)。
它用于在生成外部图形时\nofiles
禁用文件处理.aux
。它将使用自定义功能来允许辅助数据,如\label
和\ref
。
因此,简短的回答是:抱歉,这两个包不兼容。
话虽如此,但还是存在或多或少可靠的解决方法。这就像打开保修封条一样……
您可以尝试暂时进行黑客攻击\nofiles
,使其tikz
认为已禁用它们,但事实并非如此:
\let\oldnofiles=\nofiles
\let\nofiles=\relax
\tikzexternalize
\let\nofiles=\oldnofiles
使用此 hack,您的最小示例可以编译。但是,它可能会彻底失败。也许您应该使用\tikzexternalize[mode=list and make]
或类似的东西 -mode=convert with system call
由于这些辅助文件周围不可避免的竞争条件,默认设置最终注定会失败。