在我的文档中,我有一个方程式,我想用箭头连接两个部分,就像 Alan Munn 做的那样这里。当我复制他的示例使用时\tikzexternalize
,我收到错误
! tikz 软件包错误:抱歉,系统调用“pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "texstudio_v59040-figure2" "\def\tikzexternalrealjob{texstudio_v59040}\input{texstudio_v59040}"”未产生可用的输出文件“texstudio_v59040-figure2”(预期为 .pdf:.jpg:.jpeg:.png: 之一)。请确认您已启用系统调用。对于 pdflatex,这是“pdflatex -shell-escape”。有时它也被命名为“write 18”或类似名称。或者命令可能只是失败了?错误消息可以在“texstudio_v59040-figure2.log”中找到。如果您现在继续,我会尝试排版图片。
和
!包 pgf 错误:没有已知的名为 a 的形状。
!包 pgf 错误:没有已知名为 b 的形状。
我的问题是,是否有办法解决这个问题。这是 MWE(再次感谢原始答案)
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\tikzset{square arrow/.style={
to path={-- ++(0,-.25) -| (\tikztotarget) \tikztonodes},below,pos=.25}}
\begin{document}
\begin{equation}
a\tikzmark{a}x^2 + bx + c = 5\tikzmark{b}x^2 + bx + c.
\tikz[overlay,remember picture]
{\path[draw,->,square arrow] (b.south) to node{x} (a.south) ;
}
\end{equation}
\end{document}
编辑:在 MWE 中,可以在解决问题的环境\tikzset{external/export=false}
之前和\tikzset{external/export=false}
之后添加equation
,但总的来说,将所有内容外部化以加快编译速度会更好。
答案1
与将其包含在内相比,在每个编译中创建此箭头可能并不需要花费太多时间\includegraphics
。
我建议你使用你的想法,禁用和启用方程周围的外部化。为了省去一些麻烦,你可以重新定义方程环境以包含这一点。
由于您正在使用amsmath
,环境的定义将是:
\renewenvironment{equation}{%
\incr@eqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
}{%
\endmathdisplay{equation}%
\mathdisplay@pop
\ignorespacesafterend
}
您可以在序言中用类似以下的方式更改此设置:
\makeatletter
\renewenvironment{equation}{%
\incr@eqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\tikzexternaldisable
\mathdisplay{equation}%
}{%
\endmathdisplay{equation}%
\tikzexternalenable
\mathdisplay@pop
\ignorespacesafterend
}
\makeatother
那么你肯定不会遇到这个问题。我认为将箭头外部化会很困难,因为它总共在三个 tikz 环境中使用,但其他人可能有解决方案!
更新
这里有一个更好的解决方案,可以帮你省去寻找正确定义的麻烦。使用
\usepackage{etoolbox}
\AtBeginEnvironment{equation}{\tikzexternaldisable}
\AtEndEnvironment{equation}{\tikzexternalenable}
并替代方程适用于您想要使用的任何环境。阅读更多内容etoolbox
手册