¿Por qué la definición de "mira espía" implica un cambio en el color de primer plano?

¿Por qué la definición de "mira espía" implica un cambio en el color de primer plano?

Noté que el color de primer plano cambia al agregar un spy scopea mi tikzpicture.

Comparar:

\documentclass[]{beamer}                                                    

\usepackage{tikz}                                                           
\usetikzlibrary{spy}                                                        
\usepackage{lmodern}                                                        
\begin{document}                                                            
\begin{frame}                                   
  \centering                                    
  \begin{tikzpicture}[green!50!black,     
       %spy using outlines            
      ]                                                                     
      \fill (0,0) rectangle (1,1);                                          
     % \spy[size=0.3\linewidth] on (nitscheInit)  
     %   in node at (1.7,1.7);   
  \end{tikzpicture}                                   
\end{frame}                                                                 
\end{document}                                                              

Esto produce un cuadrado verde como se esperaba. Cuando incluyo la línea

spy using outlines

arriba, ¡el cuadrado se vuelve negro! Tenga en cuenta que ni siquiera uso el \spycomando real. Me gustaría utilizar el color de primer plano para el contorno de los nodos espía. No he encontrado la definición predeterminada para espía en los documentos, ¿tal vez haya una clave para anularla?

Editar:

Encontré cuál podría ser el entorno ofensivo entexmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryspy.code.tex

\tikzset{
  tikz@lib@reset@gs/.style={black,thin,solid,opaque,line cap=butt,line join=miter}
}

si cambionegroa otro color, ese color aparecerá al invocar dicha línea. Siento que esto es un error, pero mi conocimiento de los aspectos internos de TeX no es suficiente para solucionarlo yo mismo.

Respuesta1

Supongo que eso spy using outlinescambia el color. beameres irrelevante aquí.

Aquí hay una solución que creo que hará lo que quieras. Sin embargo, tenga en cuenta que nunca antes había usado esta biblioteca y no se ha probado exhaustivamente. Básicamente, creo que simplemente no especificar el color en la definición es probablemente lo correcto. Cuando pruebo esto, obtengo contornos en el color de primer plano, independientemente del color utilizado para el área que se está espiando, y una solicitud de color explícita anula este valor predeterminado como se esperaba. Utilicé un MWE algo diferente para aislar el problema y aclarar lo que está sucediendo. (Al menos, para que quede más claro, no puedo hablar por los demás).

Para modificar el código que identificaste en la biblioteca, lo único que debes hacer es agregar

\makeatletter
  \tikzset{%
    tikz@lib@reset@gs/.style={thin,solid,opaque,line cap=butt,line join=miter}
  }
\makeatother

a su preámbulo. Por ejemplo:

\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{spy}
\makeatletter
  \tikzset{%
    tikz@lib@reset@gs/.style={thin,solid,opaque,line cap=butt,line join=miter}
  }
\makeatother
\begin{document}

  \begin{tikzpicture}
    [
      green!50!black,
      spy using outlines={magnification=2, connect spies},
    ]
    \fill (0,0) rectangle (1,1);
    \spy[size=0.1\linewidth] on (.5,.5) in node at (4,5);
    % check with a case where the target area's colour is different from the outline colour
    \fill [blue] (10,0) rectangle (9,1);
    % check that an explicit colour specification does what we expect
    \spy[red,size=0.1\linewidth] on (9.5,.5) in node at (6,5);
    % and that we get the expected default again when we don't specify one
    \spy[size=0.05\linewidth] on (9.5,.5) in node at (6,3);
  \end{tikzpicture}

\end{document}

Espiando en color

Por favor, déjame saber si esto es lo que querías. Como no estoy familiarizado con la biblioteca, es posible que haya entendido mal la intención.

información relacionada