Espía Tikz - zoom vacío con pdflatex

Espía Tikz - zoom vacío con pdflatex

Tengo problemas para que la spybiblioteca funcione en mi instalación actual. Estoy ejecutando TeXmaker con MikTeX 2.9 (con todos los paquetes actualizados) en Win8.1x64.

Leí sobre los problemas que otros tienen con esto.aquíyaquí, pero todavía no consigo que funcione usando PdfLaTeX con salida directa en PDF.

Este es el MWE que estoy usando:

\documentclass{minimal}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,spy}

\begin{document}
\begin{tikzpicture}
    % Using Wikipedia's image of the day
    \node[anchor=south west,inner sep=0] (image) at (0,0){\includegraphics[width=0.65\textwidth]{Coiled_Galaxy.jpg}};
        \begin{scope}[x={(image.south east)},y={(image.north west)},
                  spy using outlines={red,circle,magnification=4, size=3cm,connect spies}]

%       \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
%       \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
        \spy on (0.70,0.95) in node  at (0.5,1.2);
        \end{scope}
\end{tikzpicture}
\\
Pgf Version: \pgfversion

\end{document}

% Log 
% This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9) (preloaded format=pdflatex 2015.7.29)

Y este es mi resultado:

MWE_salida

EDITAR: Mi error fue, como señaló Ulrike Fischer, que no había ninguna imagen con la que trabajar el espía, nada que ver con mis paquetes.

La solución fija es:

\documentclass{minimal}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,spy}

\begin{document}
\begin{tikzpicture}[ spy using outlines={red,circle,magnification=4, size=3cm,connect spies}]
    % Use Wikipedias image of the day
    \node[anchor=south west,inner sep=0] (image) at (0,0){\includegraphics[width=0.65\textwidth]{Coiled_Galaxy.jpg}};
        \begin{scope}[x={(image.south east)},y={(image.north west)}]

        \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
        \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
        \end{scope}
    \spy on ($0.95*(image.south east)+0.95*(image.north west)$) in node at ([yshift=1cm]image.north);
\end{tikzpicture}
\\
Pgf Version: \pgfversion

\end{document}

Resultando en: Ejemplo fijo

Respuesta1

Estoy seguro de que he visto algo muy similar a esta respuesta en algún otro lugar, pero no puedo encontrarlo. Pero de todos modos, aquí hay un imagesistema de coordenadas que proporciona una manera de hacer referencia a las coordenadas en la imagen (en realidad, el nodo que contiene la imagen que debería tener cero innersepy outersep) usando coordenadas relativas (de 0a 1) y coordenadas exactas (es decir, con unidades).

En este ejemplo he usado universe.jpgdesde elconferenciantepaquete. No image csproducirá grandes resultados si hace algo "inteligente" como rotar o inclinar el nodo.

\documentclass[tikz, border=5]{standalone}
\usetikzlibrary{spy}
\tikzdeclarecoordinatesystem{image}{%
  \tikzset{image cs/.cd, #1}%
    \pgfpointdiff%
      {\pgfpointanchor{\graphicname}{south west}}%
      {\pgfpointanchor{\graphicname}{north east}}%
    \pgfgetlastxy\graphicwidth\graphicheight%
    \pgfmathparse{\graphicx}%
    \ifpgfmathunitsdeclared\def\graphicwidth{1}\fi%
    \pgfmathparse{\graphicy}%
    \ifpgfmathunitsdeclared\def\graphicheight{1}\fi%
    \pgfpointadd{\pgfpointanchor{\graphicname}{south west}}%
      {\pgfpoint{(\graphicx)*\graphicwidth}{(\graphicy)*\graphicheight}}%
}
\tikzset{image cs/.cd,
  x/.store in=\graphicx, y/.store in=\graphicy,
  image/.store in=\graphicname
}
\begin{document}
\begin{tikzpicture}
\begin{scope}[spy using outlines={white, ultra thick, 
  circle, magnification=4, size=3cm, connect spies}]
  \node  [inner sep=0, outer sep=0] (universe) 
    {\includegraphics[width=10cm]{universe.jpg}};
\foreach \x in {0,1,...,9}{ 
  \node [below] at (image cs:image=universe, x=\x/10, y=0) {0.\x};
  \node [above] at (image cs:image=universe, x=\x cm, y=1) {\x cm};
}
\foreach \y in {0,1,...,9}{
  \node [left]  at (image cs:image=universe, x=0, y=\y/10) {0.\y};
  \node [right] at (image cs:image=universe, x=1, y=\y cm) {\y cm};
}

\spy on (image cs:image=universe, x=0.69, y=0.88) in node at (-2, 5);
\spy on (image cs:image=universe, x=5cm,  y=5cm)  in node at (-5, 0);
\spy on (image cs:image=universe, x=0.41, y=0.12) in node at ( 5,-5);
\end{scope}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada