工作示例

工作示例

使用一些自定义形状时,我发现文本标签不被考虑用于计算我的形状的边界框。我是否需要绘制一些(不可见的)形状来生成边界框,或者是否有直接的方法来指定它?

下面是显示问题的最小示例。我想要正确定义形状,以便文本保持在框架内。

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

相关内容