系统规格:MiKTeX 2.9、Windows 8.1、-shell-escape
已添加、已安装 MinGW。
梅威瑟:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{external}
\tikzexternalize[mode=list and make]
\tikzsetexternalprefix{tikz/}
\graphicspath{{./gfx/}}
\begin{document}
\begin{figure}[htbp]
\centering
{
\tikzsetnextfilename{figure-line}
\begin{tikzpicture}
\draw (0,0) -- (1,0);
\end{tikzpicture}
}
\end{figure}
\end{document}
运行pdflatex
文件test.makefile
创建后。ALL_FIGURE_NAMES
由于 Windowsmake
上指出的问题,我将 更改为硬编码图形名称stackexchange
:
ALL_FIGURE_NAMES=tikz/figure-line
ALL_FIGURES=$(ALL_FIGURE_NAMES:%=%.pdf)
allimages: $(ALL_FIGURES)
@echo All images exist now. Use make -B to re-generate them.
FORCEREMAKE:
include $(ALL_FIGURE_NAMES:%=%.dep)
%.dep:
mkdir -p $(dir $@)
touch $@ # will be filled later.
tikz/figure-line.pdf:
pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "tikz/figure-line" "\def\tikzexternalrealjob{test}\input{test}"
tikz/figure-line.pdf: tikz/figure-line.md5
现在我运行mingw32-make -f .\test.makefile
但失败了:
.\test.makefile:9: figure-line.dep: No such file or directory
mkdir -p ./
The syntax of the command is incorrect.
.\test.makefile:12: recipe for target 'figure-line.dep' failed
mingw32-make: *** [figure-line.dep] Error 1
知道原因吗?
答案1
看来问题(在 下使用 构建外部)pgfplots
与包无关(也与 中的代码无关),而是与附带的工具有关。中的工具可以很好地构建所有内容,而无需对 中的代码进行任何更改。Windows
MinGW
pgfplots
MWE
make
MinGW
make
cygwin
MWE
答案2
我遇到了同样的错误,结果发现只有当我启动 cygwin 的 bash 控制台并运行带有选项的 make 命令时它才起作用--login
。
所以我使用命令
C:\cygwin64\bin\bash.exe --login -c "cd /cygdrive/c/<path>; make -f <file>.makefile"
建造地块。