如何提取/转换 tikz 为适合 powerpoint 的格式

如何提取/转换 tikz 为适合 powerpoint 的格式

我正在尝试提取/转换tikzpicture为适合 powerpoint 的格式,而不会损失质量。我找到并调整的代码如下:

\documentclass[a4paper]{scrartcl}
\usepackage{pgfplots, tikz}

\pgfrealjobname{mytikzpicture}

\begin{document}
\beginpgfgraphicnamed{outputpicture}%

\begin{tikzpicture}
\begin{axis} [height=7cm, width=10cm, title=\textbf{Title}, xlabel= XYZ, ylabel = ABC]
\addplot coordinates {(0,-30) (30,-30) (60, 0) (90, 30) (120, 60) (150, 90) (200, 140)} node[pos=0.115,pin=-360:{A}] {};
\addplot coordinates {(0, -40) (30, -40) (30, 60) (60, 60) (90, 60)(120, 60) (150, 60) (200, 60)} node[pos=0.734,pin=-90:{B}] {};
\legend {{XYZ}, {ABC}}
\end{axis}
\end{tikzpicture}
\endpgfgraphicnamed
\end{document}

mytikzpicutre是包含初始图表的文件的名称。我将输出命名为outputpicture;整个代码都保存在名称 output 下。但是我收到一个错误:

pgf: Sorry, image externalization failed: the resulting image wdpgfgraphicnamed'. 

有人能帮我解决这个问题吗?

答案1

您可以使用 Python 脚本“tikz2pdf”(http://kogs-www.informatik.uni-hamburg.de/~meine/software/scripts/tikz2pdf): 将 tikz 图像保存在单独的文件中(例如 foo.tex):

\begin{tikzpicture}
\begin{axis} [height=7cm, width=10cm, title=\textbf{Title}, xlabel= XYZ, ylabel = ABC]
\addplot coordinates {(0,-30) (30,-30) (60, 0) (90, 30) (120, 60) (150, 90) (200, 140)} node[pos=0.115,pin=-360:{A}] {};
\addplot coordinates {(0, -40) (30, -40) (30, 60) (60, 60) (90, 60)(120, 60) (150, 60) (200, 60)} node[pos=0.734,pin=-90:{B}] {};
\legend {{XYZ}, {ABC}}
\end{axis}
\end{tikzpicture}

运行“tikz2pdf foo.tex”。

请注意,如果您之前没有运行该脚本,它将生成一个名为 .tikz2pdf.tex 的模板文件,并且它不包括“pgfplots”包默认值。

如果您不想使用 tikz2pdf 脚本,您可以复制它提供的模板文件:

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}

\usepackage[graphics,tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}
\newlength{\imagewidth}
\newlength{\imagescale}

\begin{document}

\begin{tikzpicture}
\begin{axis} [height=7cm, width=10cm, title=\textbf{Title}, xlabel= XYZ, ylabel = ABC]
\addplot coordinates {(0,-30) (30,-30) (60, 0) (90, 30) (120, 60) (150, 90) (200, 140)} node[pos=0.115,pin=-360:{A}] {};
\addplot coordinates {(0, -40) (30, -40) (30, 60) (60, 60) (90, 60)(120, 60) (150, 60) (200, 60)} node[pos=0.734,pin=-90:{B}] {};
\legend {{XYZ}, {ABC}}
\end{axis}
\end{tikzpicture}

\end{document}

使用 pdflatex 编译它,您将获得一个紧密裁剪图像的 pdf 文件。

我希望这有帮助!

相关内容