我有一篇很长的文章,其中包含许多 TikZ 图像。假设它看起来像:
\documentclass{article}
\usepackage{tikz}
\begin{document}
...much more stuff...
\begin{tikzpicture}
\draw[red] (0,0) -- (1,1);
\end{tikzpicture}
...much more stuff...
\end{document}
现在,我想从这个文件将整个文章渲染成 pdf,并将 tikzpicture 渲染成 PNG。这必须使用 latex 自动完成,因为我想编写一个使用它的包。
(因此回答“哦,只需将图像代码复制并粘贴到单独的文件中。”是没有帮助的。)
答案1
您可以使用 TikZexternal
库自动生成您的tikzpicture
s 的 PNG。
样式
\tikzset{
png export/.style={
external/system call={
pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource";
convert -density 300 -transparent white "\image.pdf" "\image.png"
}
}
}
指定在tikzpicture
使用 编译之后pdflatex
,ImageMagick ( convert
) 用于从 PDF 生成 PNG。这需要pdflatex
使用 进行调用-shell-escape
。
这是一个完整的例子:
\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzset{
png export/.style={
external/system call={
pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource";
convert -density 300 -transparent white "\image.pdf" "\image.png"
}
}
}
\tikzexternalize
\tikzset{png export}
\begin{document}
\tikzset{external/force remake}
\begin{tikzpicture}
\node [orange,scale=10] {1};
\end{tikzpicture}
\begin{tikzpicture}
\node [cyan,scale=10] {2};
\end{tikzpicture}
\end{document}