
일부 사용자 정의 모양을 사용하여 내 모양의 경계 상자 계산에 텍스트 레이블이 고려되지 않는다는 것을 발견했습니다. 경계 상자를 생성하려면 일부 (보이지 않는) 모양을 그려야 합니까, 아니면 이를 지정하는 직접적인 방법이 있습니까?
다음은 문제를 보여주는 최소한의 예입니다. 텍스트가 프레임 내에 유지되도록 모양을 적절하게 정의하고 싶습니다.
\documentclass{article}
\usepackage{tikz}
\pgfdeclareshape{test}{
\anchor{center}{\pgfpointorigin}
\anchor{text}{\pgfpointorigin}
}
\begin{document}
\framebox{%
\begin{tikzpicture}
\draw node[test] {Some text};
\end{tikzpicture}
}
\end{document}
기본적으로 다음을 복제하고 싶습니다
\framebox{%
\begin{tikzpicture}
\draw node[inner sep=0] {Some text};
\end{tikzpicture}
}
두 가지를 비교한 결과는 다음과 같습니다.
답변1
더러운 일을 하고 싶지 않다면 사용할 수 있습니다 \inheritsavedanchors
.\inheritbackgroundpath
실제 사례
\documentclass{article}
\usepackage{tikz}
\pgfdeclareshape{test}{
\anchor{center}{\pgfpointorigin}
\anchor{text}{\pgfpointorigin}
\inheritsavedanchors[from=rectangle]
\inheritbackgroundpath[from=rectangle]
}
\begin{document}
\framebox{%
\begin{tikzpicture}
\draw node[test] {Some text};
\end{tikzpicture}
}
\end{document}