'스파이 범위' 정의가 전경색의 변경을 의미하는 이유는 무엇입니까?

'스파이 범위' 정의가 전경색의 변경을 의미하는 이유는 무엇입니까?

spy scopetikzpicture에 을 추가하면 전경색이 변경되는 것을 확인했습니다 .

비교하다:

\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}                                                              

예상대로 녹색 사각형이 생성됩니다. 내가 그 줄을 포함시킬 때

spy using outlines

위에서 사각형이 검게 변합니다! 실제 명령을 사용하지도 않습니다 \spy. 스파이 노드의 윤곽선에 전경색을 사용하고 싶습니다. 문서에서 스파이에 대한 기본 정의를 찾지 못했습니다. 아마도 이를 무시할 수 있는 열쇠가 있을까요?

편집하다:

불쾌한 설정이 무엇인지 찾았습니다.texmf-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}
}

내가 변하면검은색다른 색상으로 변경하면 해당 행을 호출하면 해당 색상이 나타납니다. 나는 이것이 버그라고 생각하지만 TeX 내부에 대한 나의 지식은 그것을 직접 고치기에는 충분하지 않습니다.

답변1

spy using outlines색깔이 변하는 것 같아요 . beamer여기서는 관련이 없습니다.

여기 당신이 원하는 것을 할 것이라고 생각하는 해결 방법이 있습니다. 그러나 저는 이 라이브러리를 이전에 사용해 본 적이 없으며 광범위하게 테스트되지 않았습니다. 기본적으로 단순히 정의에서 색상을 지정하지 않는 것이 아마도 옳은 일이라고 생각합니다. 이것을 테스트할 때 감시되는 영역에 사용된 색상에 관계없이 전경 색상의 윤곽선을 얻었으며 명시적인 색상 요청이 예상대로 이 기본값을 재정의합니다. 저는 문제를 분리하고 무슨 일이 일어나고 있는지 더 명확하게 하기 위해 다소 다른 MWE를 사용했습니다. (적어도 나에게는 더 명확하게 하기 위해 - 나는 다른 사람들을 대신하여 말할 수 없습니다.)

라이브러리에서 식별한 코드를 수정하려면 다음을 추가하면 됩니다.

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

당신의 전문에. 예를 들어:

\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}

컬러 스파이

이것이 당신이 원하는 것인지 알려주십시오. 제가 도서관에 익숙하지 않아서 의도를 오해했을 수도 있습니다.

관련 정보