Tikz 外部化:Latex dvi/ps 生成围绕图形的 a4paper 边界框

Tikz 外部化:Latex dvi/ps 生成围绕图形的 a4paper 边界框

我已经成功地将 tikz 与 externalization 和 pdflatex 结合使用了一段时间。但现在我需要切换到 latex->dvi->ps。我遵循了 tikz 文档中的说明并阅读了大量用户帖子。

我可以编译最小示例(见下文)而不会出现任何错误,但 dvi2ps 生成的外部图像(ps)的大小与 a4 纸相当。因此 latex 将图形放在“文本在图像之前”和“文本在图像之后”之后。

边界框是否可能未正确确定?

几个月前我在 Mac OS X 系统上尝试过类似的方案,并且成功了。现在,我正在运行装有最新版 MikTeX 的 Windows 系统(我更新了所有软件包)。

有人知道这是 dvips 还是 tikz 中的错误吗?或者我可能做错了什么。谢谢你的帮助!

PS:我还尝试了许多其他系统调用(pdflatex -> pdftops)以及这里的所有内容: 从 TikZ 导出 eps 图形 但没有成功。

\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{external}

\tikzset{external/system call={latex \tikzexternalcheckshellescape -halt-on-error
-interaction=batchmode -jobname "\image" "\texsource" &&
dvips -o "\image".ps "\image".dvi }}

\tikzexternalize

\begin{document}

Text before image.

\begin{figure}[h]
\centering
    \begin{tikzpicture}
    \clip (0,0) rectangle (1,1);
    \draw[red] (0,0) -- (1,1);
    \draw[red] (1,0) -- (0,1);
    \draw[blue] (0,0) rectangle (1,1);
    \end{tikzpicture}
\end{figure}

Text after image.

\end{document}

编辑:我在另一个 Windows 系统上尝试了最小示例,得到了相同的 a4paper 框。调用

dvips -E* -o "\image".ps "\image".dvi 

上面的代码会导致没有任何边界框的图形。因此 latex 将图像插入到文本顶部。也可以将格式作为 dvips 的参数进行更改,但我无意将固定边界框指定为一般情况。

答案1

这是(曾经是) PGF CVS 中的一个错误。显然,它是在 PGF 3.0.0 中出现的,并且可以与较早的 PGF 版本配合使用。

我几周前就修复了这个问题;它将随着下一个版本的external发布而消失。

您的选择是

  • 等待下一个稳定的 PGF 版本(漫长)
  • 等待下一个稳定的 pgfplots 版本 1.11 并使用\usepgfplotslibrary{external}(未来几周内)
  • 安装 PGF 不稳定版本http://pgf.sourceforge.net/
  • 修改系统调用,使其用作pstoeps最后一项(在 Windows 中可能不可用)

相关内容