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

remember pictureこれは、 viaを使用した TikZ/pgf のバグです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}

ここに画像の説明を入力してください

関連情報