TikZ 外部化 → pdf → eps → Word 导入 = ☠

TikZ 外部化 → pdf → eps → Word 导入 = ☠

我有一系列 TikZ 图形需要包含在 Word 文档中(会议要求提交 Word)。允许的格式为 EPS 和 TIFF。这些图形显然是矢量图形;它们是

  1. pgfplots.external使用库和导出到单独的.pdf 文件\tikzexternalize

  2. 转换为 eps 使用pdftops -eps foo.pdf

  3. 导入到 Word 2003 中,出现不明确的错误(加载文件错误或类似情况)。

我找到了这个此主题关于这个话题,但还没有定论。奇怪的是,从使用 IPE 创建的 PDF 转换而来的 EPS 文件可以很好地导入。

我需要做哪些更改才能使导入工作正常?

答案1

我总结了我的发现。希望其他人会觉得它有用。

  1. 由于允许使用 EPS 和 TIFF 图形,因此在 Gimp 中以 600dpi 打开 EPS 文件(根据图形使用抗锯齿和颜色/黑白)并使用 LZW 压缩保存为 TIFF 后,便可生成可导入的图形。尽管位图大小为 4000x1600 左右,但文件大小与 EPS 图形相当,而且看起来不错。

    由于某种原因,尝试使用 ImageMagick 实现相同功能convert -density=600会导致生成奇怪的文件,有时文件大小还会非常大。

  2. 正如@JosephWright 所建议的,我尝试通过 dvips 来生成 eps。问题是 dvips 设置了错误的边界框:要么它生成非 EPS 文件,因此将整个页面作为边界框,要么使用 ,-E边界框太小(根据手册页,它仅从字形计算边界框,而不从可能出现在图中的线条和其他图形计算边界框)。

    解决方案是使用dvips -E错误边界框生成 EPS 文件,然后使用以下方法修复它:埃普斯工具(在 Debian 中,包epstool),如 @percusse 所建议的。它需要一个临时的 EPS 文件(我使用了后缀.foo.eps),tikz 的设置如下所示:

    \usetikzlibrary{pgfplots.external}
    \tikzexternalize[]
    \tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource" && dvips -E -o "\image".foo.eps "\image".dvi && epstool --copy --bbox "\image".foo.eps "\image".eps && rm "\image".foo.eps "\image".dvi }}
    

    生成的 EPS 确实可以导入到 Word 中,但是丑陋的(可能是因为没有抗锯齿功能)并且无法使用。

结论:

  1. 编辑 - 金牌得主:在 IrfanView 中打开,复制,直接粘贴到 Word 中(感谢 Joseph 的建议;我的情况无法做到这一点)

  2. 银奖得主:使用 Gimp(ghostscript)进行渲染,保存为 TIFF 并作为位图导入到 Word 中;即使 Word 能够加载 EPS,也无法很好地渲染 EPS。

  3. 避免参加必须使用 Word 格式提交文件的会议。

答案2

不久前,我在为 Word 生成 EPS 文件时也遇到了问题(不是 TikZ 内容,但无论如何)。不记得目标版本(可能是 2003 或 2007),但我花了一些时间才找到一个成功的工作流程。最后我这样做了:

$ pdf2ps file.pdf - | ps2eps | eps2eps - file.eps

希望它对你的情况也适用。

答案3

要创建 TIFF,我建议生成一个大约是所需图形大小两倍的 PDF,然后在 IrfanView 中查看 PDF 并保存为 TIFF,这样您就可以生成高质量的图像。请注意,当您生成较大的图形时,您需要改变标记大小、文本大小、线条粗细和刻度粗细,以便 Word 中的缩放图像产生理想的图形(请参阅下面的代码示例)。这与 @JosephWright 的方法非常相似,但保存了一个图像文件,一些期刊需要该文件,该文件与文本中的图像分开。

使用你的 LaTeX 前端生成图形的 PDF,我使用如下的 .tex 文件:

\documentclass{article}
\newlength\paperSize
\newlength\figureheight
\newlength\figurewidth
\newlength\markSize

\setlength{\paperSize}{6in}
\usepackage[paperheight=1\paperSize,paperwidth=1.25\paperSize,margin=0in]{geometry}

\usepackage{siunitx}

%for .tikz figures:
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{pgf}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\usetikzlibrary{plotmarks}

\begin{document}
    \setlength\figureheight{0.65\paperSize}
    \setlength\figurewidth{0.65\paperSize}
    \tikzstyle{every node}=[font=\huge] %vary font size in figure
    \setlength\markSize{5pt} %vary marker size
        \begin{figure}
            \input{sample_figure.tikz}
        \end{figure}
\end{document}

输入文件如下所示,其中使用 mat2tikz(用于生成 .tikz 的 Matlab 函数文件)自动包含变量:

\begin{tikzpicture}

\begin{axis}[%
major tick style={draw=black, thick},
width=\figurewidth,
height=\figureheight,
scale only axis,
xmin=0,
xmax=2,
xtick={0,0.5,...,2},
xlabel={x label text},
ymin=0,
ymax=2,
ytick={0,0.5,...,2},
ylabel={y label text},
legend style={at={(1.03,0.5)},anchor=west,draw=black,fill=white,legend cell align=left}
]
\addplot [
color=black,
only marks,
mark=triangle*,
mark options={mark size=1\markSize,solid}
]
table[row sep=crcr]{
0 0.75\\
1.5 1.25\\
};
\addlegendentry{Legend entry 1};

\addplot [
color=black,
only marks,
mark=square*,
mark options={mark size=0.85\markSize,solid}
]
table[row sep=crcr]{
0.25 1.0\\
0.75 1.75\\
};
\addlegendentry{Legend entry 2};

\end{axis}
\end{tikzpicture}

PDF 版本如下所示: 未改变的 PDF

一旦你有了你的图形的 PDF,用IrfanView打开并执行以下操作:

  1. 转换为灰度(ctrl+G)
  2. 自动裁剪(ctrl+shift+Y)
  3. 将图像分辨率更改为 300 dpi (ctrl+R, 96>300)
  4. 另存为 TIFF(S,将“保存类型”更改为“TIF”)

右键单击并查看属性应显示 300 dpi,而不是 96 dpi。

答案4

我一直在努力尝试将standaloneLaTeX 生成的 PDF 导入 Word,找到了可接受的答案,但它没有提供比使用 IrfanView 和使用复制和粘贴选项更多的信息,但质量仍然不足以用于 Word(用于发布论文),因为当您放大图像时,它会扭曲。我也尝试使用 ImageMagick 和 Adob​​e Acrobat Pro DC 转换 PDF,但质量太差了。还将 LaTeX 文件导出为pdftopsEPS,但图像看起来真的很糟糕。

standalone使用pgfplots和创建了一个图表tikzpicture

解决方案:

  1. 打开 IrfanView(已安装 Ghostscript 插件)
  2. 在“选项”-“属性/设置”-“Postscript 选项”中设置要导入的 PDF 的质量 - 将 DPI 设置为适合您的 DPI(我使用了 1000 x 1000)
  3. 打开 PDF 文件
  4. 使用文件导出图像 — 另存为...
  5. 将“保存类型:”更改为 EMF - 增强窗口图元文件并保存文件
  6. 在 Office Word 中,转到插入 — 插入图像并插入 EMF 文件

OP 需要 EPS 或 TIFF,您也可以另存为 TIF 并将图像导入 Office Word,但质量不如使用 EMF 时好。我尝试了很多次使用 EPS,但没有找到从 PDF 转换为真正高质量的图像的解决方案。

相关内容