使用 pdflatex 编译的带有“记住图片”的 TikZ 与 dvips -> ps2pdf 相比产生不同的结果

使用 pdflatex 编译的带有“记住图片”的 TikZ 与 dvips -> ps2pdf 相比产生不同的结果

以下文件

\documentclass[11pt,a4paper]{report}

\usepackage{tikz}
\usetikzlibrary{shapes}
\usetikzlibrary{arrows}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[remember picture]
  \node [draw] (a) {%
    \begin{tabular}{l}
      line 1 \\
      line 2
      \begin{tikzpicture}[remember picture]
        \coordinate (line2);
      \end{tikzpicture}
      \\
      line 3 \\
      line 4 \\
    \end{tabular}
  };

  \node [draw, right=5cm of line2] (a) {a};

  \draw (line2) -- (a);
\end{tikzpicture}
\end{document}

当我使用 将其编译为 PDF 时,与pdflatex使用 相比,会产生不同的结果。dvipsps2pdf

例如,这里是产生的(预期)数字pdflatex在此处输入图片描述

dvips这是由和产生的(错误)图形ps2pdf在此处输入图片描述

为什么会这样?我该如何修复它,以便结果总是像产生的结果一样pdflatex

答案1

这是 TikZ/pgf 的一个错误,remember picture通过latex-dvips-ps2pdf...

在这种特殊情况下,该matrix库提供了一种优雅的解决方法(通过pdflatex和通过工作latex-dvips-ps2pdf):

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[remember picture]
  \matrix [draw,matrix of nodes] (m){
    line 1 \\ % node m-1-1
    line 2 \\ % node m-2-1
    line 3 \\
    line 4 \\
  };
  \node [draw, right=5cm of m-2-1] (a) {a};
  \draw (m-2-1) -- (a);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容