使用一些自定义形状时,我发现文本标签不被考虑用于计算我的形状的边界框。我是否需要绘制一些(不可见的)形状来生成边界框,或者是否有直接的方法来指定它?
下面是显示问题的最小示例。我想要正确定义形状,以便文本保持在框架内。
\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}