![tikzexternalize は FreeBSD 上で壊れた makefile を生成します](https://rvso.com/image/400381/tikzexternalize%20%E3%81%AF%20FreeBSD%20%E4%B8%8A%E3%81%A7%E5%A3%8A%E3%82%8C%E3%81%9F%20makefile%20%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3%81%BE%E3%81%99.png)
以下はmwe.tex
、FreeBSD では動作しない makefile を作成します。ほとんどはpgfplots
マニュアルから取得したものです。
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{external}
\tikzexternalize[mode=list and make]
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\caption{Our first external graphics example}
\end{figure}
\end{document}
コンパイルされpdflatex mwe.tex
、次の makefile が生成されます。
ALL_FIGURE_NAMES=$(shell cat mwe.figlist)
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.
mwe-figure0.pdf:
pdflatex -halt-on-error -interaction=batchmode -jobname "mwe-figure0" "\def\tikzexternalrealjob{mwe}\input{mwe}"
mwe-figure0.pdf: mwe-figure0.md5
呼び出しは失敗しmake -f mwe.makefile
、次の出力が表示されます。
/tmp/tmp.GXQ4YxVM [ make -f mwe.makefile ] 4:18 nachm.
make: "/tmp/tmp.GXQ4YxVM/mwe.makefile" line 9: Could not find .dep
make: Fatal errors encountered -- cannot continue
make: stopped in /tmp/tmp.GXQ4YxVM
答え1
フリーBSD独自の実装があり、make
完全に互換性がありませんGNU実装; ライブラリによって生成されたmakefileはexternalize
、POSIXの機能セットmake
。
使用方法GNU make
FreeBSDが提供するコマンドではgmake
、コマンドはgmake -f mwe.makefile
次の出力を生成します。
mkdir -p "./"
touch "mwe-figure0.dep" # will be filled later.
pdflatex -halt-on-error -interaction=batchmode -jobname "mwe-figure0" "\def\tikzexternalrealjob{mwe}\input{mwe}"
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
All images exist now. Use make -B to re-generate them.