从 LaTeX 文章内部,我想将代码的几个部分渲染到单独的 png 中(“渲染过程”)

从 LaTeX 文章内部,我想将代码的几个部分渲染到单独的 png 中(“渲染过程”)

我有一篇很长的文章,其中包含许多 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库自动生成您的tikzpictures 的 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} 

相关内容