无法从 pgfplots 示例代码生成有效的 PDF

无法从 pgfplots 示例代码生成有效的 PDF

我使用以下 pgfplots 示例代码:

\documentclass[varwidth=true, border=2pt]{standalone}

\usepackage{pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            symbolic x coords={a small bar, a medium bar, a large bar},
            xtick=data
          ]
            \addplot[ybar,fill=blue] coordinates {
                (a small bar,   42)
                (a medium bar,  50)
                (a large bar,   80)
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

我成功地将它编译为 .dvi 文件,但是当我从 .dvi 文件创建 PDF 时(使用dvipdfmdvipdfmx),我得到了一张空白页,上面有一些分散的标记!没有条形图!

这在两台机器上都重现了 - Windows 和 Linux。当我使用包的示例代码时,我得到了非常相似的行为bchart

答案1

PGF 需要知道如何在输出文件中生成特殊的图形指令,并且这些指令在pdflatex和之间有所不同latex/dvipdfm

因此,您可以使用pdflatex(或latex / dvips)并且不进行任何特殊配置,或者您必须使用文件中的特殊条目.tex以使 PGF 了解以下 dvi 实用程序(这超出了 PGF 的知识范围)。

该手册的以下引文中描述了“特殊条目” pgfplots

此外,pgf 需要知道驱动程序,以便将 DVI 文件转换为所需的输出。根据您的系统,您需要以下选项:

- latex/dvips does not need anything special because dvips is the default driver if you invoke latex.
- pdflatex will also work directly because pdflatex will be detected automatically.
- latex/dvipdfm requires to use
   \def\pgfsysdriver{pgfsys-dvipdfm.def}
   %\def\pgfsysdriver{pgfsys-pdftex.def}
   %\def\pgfsysdriver{pgfsys-dvips.def}
   %\def\pgfsysdriver{pgfsys-dvipdfmx.def}
   %\def\pgfsysdriver{pgfsys-xetex.def}
   \usepackage{pgfplots}.

未注释的命令可用于明确设置其他驱动程序。如果您有其他问题,请阅读 [pgfmanual.pdf,第 7.2.1 和 7.2.2 节] 中的相应部分。这些部分还包含特定驱动程序的限制。

完全不会产生任何问题的选择是pdflatex。

相关内容