TikZ는 이미지 위에 노드 테두리를 그립니다.

TikZ는 이미지 위에 노드 테두리를 그립니다.

TikZ 노드 내부에 이미지가 있습니다. 이미지 주위에 간격 없이 테두리가 있어야 합니다. 테두리에는 지정된 선 너비가 있어야 합니다.

내 문제는 이미지 아래에 테두리가 그려지는 것 같습니다. inner sep=0이미지와 테두리 사이의 간격을 제거하는 데 사용합니다 . 첫 번째 예에서 설명한 것처럼 효과는 의도한 선 너비의 절반인 테두리입니다.

\documentclass[tikz,margin=10pt]{standalone}
\begin{document}

    % Red border to distinguish from example image, which also has a border
    \begin{tikzpicture}
        \node[draw=red, inner sep=0mm, line width=10mm] {\includegraphics{example-image-a}};
    \end{tikzpicture}

    % Shows that part of the border was hiding behind the image
    \begin{tikzpicture}
        \node[draw=red, inner sep=10mm, line width=10mm] {\includegraphics{example-image-a}};
    \end{tikzpicture}

\end{document}

두 가지 해결 방법을 생각해 볼 수 있습니다.

  1. inner sep테두리 너비의 절반으로 설정합니다 . 이렇게 하면 테두리에 필요한 공간이 정확하게 있어야 합니다.
  2. inner sep=0선 너비를 의도한 값의 두 배로 유지 하고 설정합니다. 국경이 절반으로 줄어들었다는 점을 인정하므로 미리 두 배로 늘리십시오.

더 우아한 솔루션이 있습니까? TikZ에게 이미지 뒤에 노드 테두리를 그리도록 지시할 수 있나요? 나는 이미지의 작은 부분이 경계선으로 가려진 채로 살아갈 수 있었다.


질문이 중복으로 종료된 후 업데이트:

연결된 질문은 상당히 중복되며 내 특정 상황에 도움이 됩니다. 좋은! 그러나 노드 콘텐츠 위에 테두리를 그릴 수 있는지 여부에 대한 질문은 다른 질문에 의해 답변되지 않고 계속 열려 있습니다. 이 질문에 대한 대답은 다른 이유로 노드 경계를 마지막으로 그리려는 사람들에게 유용할 수 있습니다. 연결된 질문은 그들에게 유용하지 않을 수 있습니다.

답변1

여기에 이미지 설명을 입력하세요

왼쪽 이미지는 inner sep=0.5\pgfplinewidth, 오른쪽 이미지는 입니다 inner sep=0pt. 최근에는 semitransparent더 잘 보이는 옵션이 추가되었습니다. 해당 이미지는 노드 경계선의 안쪽 절반으로 덮여 있습니다.


    \documentclass[margin=5mm]{standalone}
    \usepackage{duckuments}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \begin{document}
        \begin{tikzpicture}
    \node (n1) [draw=red, line width=10mm, semitransparent,
                inner sep=0.5\pgflinewidth] % <---
                {\includegraphics{example-image-duck}};
    \node (n2) [draw=red, line width=10mm, semitransparent,
                inner sep=0, % <---
                right=of n1] 
                {\includegraphics{example-image-duck}};
       \end{tikzpicture}
    \end{document}

답변2

나는 그것을 위해 a를 사용할 것입니다 tcolorbox. 선이 겹치는 문제는 이미 거기에 고려되어야 합니다.
그림에 TikZ 자료가 필요한 경우 tcolorbox를 사용해도 가능합니다.

여기에 이미지 설명을 입력하세요

%\documentclass[tikz,margin=10pt]{standalone}
\documentclass[a4paper]{article}
\usepackage[showframe]{geometry}
\usepackage[most]{tcolorbox}
\begin{document}
\tcbset{sharp corners,
NoGaps/.style={boxsep=0mm, left=0pt, right=0pt, top=0pt, bottom=0pt, before skip=0pt, after skip=0pt,}, 
}

\begin{tcolorbox}[NoGaps, 
colframe=red, boxrule=10mm,
hbox, % box as wide as the content
]
\includegraphics{example-image-a}
\end{tcolorbox}
\end{document}

관련 정보