Arbeitsbeispiel

Arbeitsbeispiel

Bei der Verwendung einiger benutzerdefinierter Formen habe ich festgestellt, dass die Textbeschriftungen bei der Berechnung des Begrenzungsrahmens meiner Formen nicht berücksichtigt werden. Muss ich eine (unsichtbare) Form zeichnen, um den Begrenzungsrahmen zu generieren, oder gibt es eine direkte Möglichkeit, dies anzugeben?

Unten sehen Sie ein Minimalbeispiel, das das Problem veranschaulicht. Ich möchte eine korrekte Definition der Form, sodass der Text innerhalb des Rahmens bleibt.

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

Im Wesentlichen möchte ich folgendes nachbilden

\framebox{%
\begin{tikzpicture}
\draw node[inner sep=0] {Some text};
\end{tikzpicture}
}

Vergleicht man die beiden, so ergibt sich folgendes Ergebnis:

Bildbeschreibung hier eingeben

Antwort1

\inheritsavedanchorsSie können es verwenden \inheritbackgroundpath, wenn Sie die Drecksarbeit nicht machen möchten.

Arbeitsbeispiel

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

verwandte Informationen