
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}
두 가지 해결 방법을 생각해 볼 수 있습니다.
inner sep
테두리 너비의 절반으로 설정합니다 . 이렇게 하면 테두리에 필요한 공간이 정확하게 있어야 합니다.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}