外部化 pgfplots,并且只有 pgfplots

外部化 pgfplots,并且只有 pgfplots

我想将文档中的图外部化(使用pgplots),但不包含其他内联内容,例如由自动绘制的键chemmacros。即在以下测试文档中:

\documentclass{article}
\usepackage{chemmacros,pgfplots}

\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}
\ch{A-B}
\begin{tikzpicture}
 \begin{axis}[
   xlabel={\ch{A-B}},
   xmin = 0, xmax = 1,
   ymin = 0, ymax = 1,
]
%  \addplot {x*x};
 \end{axis}
\end{tikzpicture}
\end{document}

我想外部化tikzpicture环境,但不外部化\ch命令(如果可以的话,我也不希望\ch环境内的命令被递归外部化)。

我可以使用\tikzexternaldisable\tikzexternalenable在需要时关闭和打开外部化,但有没有更好、更自动化的方法来例如防止外部化\ch

附言pgplots。和之间存在一些不必要的交互。 如果取消注释,或者注释掉 x 和 y 限制,则chemmacros上述示例会产生错误的结果。 如果图中未使用 ,则不会发生这种情况。 然而,这与问题没有直接关系,可能值得提出一个新的问题。\addplot\ch

答案1

谢谢@JosephWright@percusse(提供并由 加载的chemformula包)的 4.1 版本可以在环境中使用,也可以与外部化结合使用。\chchemmacrosaxis

以下内容需要 4.1 版本chemformula(已包含在 TeX Live 2013 中)。它提供了新选项chemformula/tikz-external-disable=true|false(默认设置),通过在适当位置true本地添加来禁用键和箭头(使用 TikZ 绘制)的外部化。\tikzexternaldisable

但是,如果在that\ch内部使用tikzpicture要外化此功能,需要暂时关闭。以下代码

% arara: pdflatex: { shell: on }
\documentclass{article}

\usepackage{chemformula}[2013/08/24]
\usepackage{pgfplots}

\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}
\ch{A-B}
\begin{tikzpicture}
  \setchemformula{tikz-external-disable=false}
  \begin{axis}[
      xlabel={\ch{A-B -> A+ + B-}},
    ]
    \addplot {x*x};
  \end{axis}
\end{tikzpicture}

\end{document}

仅为 创建一个外部文件,tikzpicture但没有为\ch{A-B}之外调用的键 创建一个外部文件tikzpicture。结果也看起来应该如此:

在此处输入图片描述

相关内容