我想将文档中的图外部化(使用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 版本可以在环境中使用,也可以与外部化结合使用。\ch
chemmacros
axis
以下内容需要 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
。结果也看起来应该如此: