我是 TikZ 的新手,请耐心等待。
我看到很多问题
使用自定义脚本来检测 TikZ 代码的变化。最后一个问题的答案是
自 2012 年 5 月 17 日起,外部库支持校验和检查以及基于差异的检查
我看到 TikZ 生成了带有 MD5 扩展名的文件,但它仍然无法检测到更改。我的问题是:如何避免编写自定义脚本来检测 TikZ 代码中的更改,并让 TikZ 自动执行此操作,如我在引用的问题中所述?
我在 Windows 下使用最新的 MikTeX。
编辑:示例代码
\documentclass{article}
\usepackage{graphicx}
\usepackage{balance} % for \balance command ON LAST PAGE (only there!)
\usepackage{tikz}
\usetikzlibrary{patterns, arrows,matrix,positioning, decorations.markings}
\usetikzlibrary{external}
%\tikzset{external/force remake=true}
\tikzexternalize
\usepackage{environ}
\usepackage{textcomp}
\usepackage{gensymb}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\NewEnviron{mytikz}[3][]%
{\begin{figure}[htp]
\centering
\begin{tikzpicture}[#1]
\BODY
\end{tikzpicture}
\caption{#2}%
\label{#3}%
\end{figure}%
}
\begin{document}
\section{Title}
\def\mycolor{blue}
% Stackboxes
% http://blog.dorian-depriester.fr/latex/tikz/empilements-de-cubes-sous-tikz
\newcommand{\elemcube}[4][white]
{
\draw [\mycolor,fill=#1!30, thin] (#2+1,#3,#4) -- ++(0,1,0) -- ++(0,0,1) -- ++(0, -1, 0) -- cycle;
\draw [\mycolor,fill=#1!40, thin] (#2,#3+1,#4) -- ++(1,0,0) -- ++(0,0,1) -- ++(-1, 0, 0) -- cycle;
\draw [\mycolor,fill=#1!30, thin] (#2,#3,#4) -- ++(1,0,0) -- ++(0,1,0) -- ++(-1, 0, 0) -- cycle;
}
\begin{mytikz}[x=(90:0.4cm), y=(0:0.4cm), z=(40:0.25cm), axis/.style={->,\mycolor,thick}]{Array example}{fig:ArrayExample}
\def\latnum{3}
\def\lonnum{3}
\def\timenum{3}
\foreach \time in{\timenum,...,0} {
\foreach \lon in{0,...,\lonnum} {
\elemcube{\latnum}{\lon}{\time}
}
}
\node[\mycolor,anchor=west] at (0,\lonnum+1,0.2) {\tiny $0$};
\node[\mycolor,anchor=west] at (0,\lonnum+1.8,0.2) {\tiny 1970 Jan 01};
\end{mytikz}
\end{document}
我使用pdflatex -synctex=1 -interaction=nonstopmode -shell-escape test.tex
答案1
你不能在另一个环境中隐藏 tikzpicture。文档明确说明了
[外部化] 在此步骤中无法扩展宏,因此唯一的要求是每个图片的末尾都可以从其开头直接到达,而无需进一步扩展宏。