TikZ 外部化为 png – 图形包错误:除以 0

TikZ 外部化为 png – 图形包错误:除以 0

我需要外化我的 TiZ 图片到.png文件并将它们包含到我的最终文档中。事实上,我将生成两个文档,一个包含矢量图形,一个包含位图。在网络上搜索自动生成位图的方法时,我发现了这个解决方案,它甚至记录在 PGF/Ti 中Z 文档。(第 618 页文档版本 3.0.1a)

此方法的要求是正在运行安装ImageMagick

\tikzset{
    % Defines a custom style which generates BOTH, .pdf and .png export
    % but prefers the .png on inclusion.
    %
    % This style is not pre-defined, you may need to copy-paste and
    % adjust it.
    png export/.style={
        external/system call/.add=
            {}
            {; convert -density 300 -transparent white "\image.pdf" "\image.png"},
        %
        /pgf/images/external info,
        /pgf/images/include external/.code={%
            \includegraphics
                [width=\pgfexternalwidth,height=\pgfexternalheight]
                {##1.png}%
        },
    }
}

要自动激活脚本以将其应用于整个文档,可以添加png export\tikzset命令中。

我确实重新编译了我的文档,在序言中加入了这段代码,然后等了一段时间,然后我就被错误信息淹没了。每个图表都会出现这个错误信息。

[8] (./img/graphs/foobar.tex ====='mode=convert with system call': 调用'xelatex -shell-escape -halt-on-error -interaction=batchmode -jobname "img/build/foobar" "\def\tikzexternalrealjob{main}\input{main}"; convert -density 300 "img/build/foobar.pdf" "img/build/foobar.png"' ======== \openout5 = `main.auxlock'。

runsystem(xelatex -shell-escape -halt-on-error -interaction=batchmode -jobname "img/build/foobar" "\def\tikzexternalrealjob{main}\input{main}"; convert -density 300 "img/build/foobar.pdf" "img/build/foobar.png")...已执行。

\openout5 = `main.auxlock'。

LaTeX 警告:在输入行 66 中未找到文件“.png”。

./img/graphs/foobar.tex:66: 无法加载图片或 PDF 文件“.png”。

<待重读>

          }

l.66 \end{tikzpicture}

无法读取所请求的图像,因为它不是可识别的图像格式。

./img/graphs/foobar.tex:66:包图形错误:除以 0。

请注意,和.png都已.pdf正确生成,并且位于./img/graphs目录中。我还检查了.dpth文件。这些都包括相应图像的宽度和高度。

为什么 LaTeX 会graphics抱怨找不到.png图像(如果图像确实存在)?

任何想法都将不胜感激。


麦当劳

\documentclass[11pt]{article}

% %%%%%%%%
% Preamble
% %%%%%%%%

% Drawing Packages
\usepackage{graphicx, tikz, pgfplots}

% pgfplots
\pgfplotsset{compat=1.15}

% TikZ
\usetikzlibrary{external}
\tikzexternalize

\newcommand\usepng{
    \tikzset{external/force remake} % otherwise will use external pdf if it exists
    \tikzset{
        png export/.style = {
            % First we call ImageMagick
            external/system call/.add = {}{; convert -density 300 "\image.pdf" "\image.png"},
            % Now we force the PNG figure to be used instead of the PDF
            /pgf/images/external info,
            /pgf/images/include external/.code = {%
                \includegraphics
                [width=\pgfexternalwidth,height=\pgfexternalheight]
                {##1.png}%
            },
        },
        % Activate the script
        png export,
    }
}

% Use bitmap images in this document
\usepng



% %%%%%%%%%%%%%%%%%%
% Begin the document
% %%%%%%%%%%%%%%%%%%

\begin{document}

    \tikzsetnextfilename{foobar}
    \begin{tikzpicture}[baseline]
        \begin{axis}[
            xlabel = {x},
            ylabel = {y},
        ]

            \addplot+[mark=none] coordinates {
                (2,-2.8559703)
                (3,-3.5301677)
                (4,-4.3050655)
                (5,-5.1413136)
                (6,-6.0322865)
                (7,-6.9675052)
                (8,-7.9377747)
            };

        \end{axis}
    \end{tikzpicture}

\end{document}

相关内容