Tikz-Knotenabmessungen

Tikz-Knotenabmessungen

Wie kann ich tikzKnotenabmessungen wie Höhe und Breite ermitteln? Ich möchte diese Parameter verwenden, um die Platzierung von Objekten präzise zu berechnen, z. B. anhand <a.height>des folgenden Beispiels:

\documentclass{article}
\thispagestyle{empty}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node(a) {
      \includegraphics[width=0.8\textwidth]{example-image-a}
    };
    \node(b) at (0, <a.height>*3/4){label};
  \end{tikzpicture}
\end{figure}
\end{document}

Antwort1

Zwei Beispiele, bei denen das gewünschte Ergebnis erreicht wird, ohne die Knotendimensionen zu kennen. Das zweite verwendet calctikzlibrary

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
  \begin{tikzpicture}
    \node(a) {
      \includegraphics[width=0.8\textwidth]{example-image-a}
    };
    \path (a.center)--(a.north) node[pos=.75, right] {label without calc};
    \node[left] at ($(a.center)!.75!(a.north)$) {label with calc};
  \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Aktualisieren:

Nehmen wir an, wir möchten das Etikett label without calc2 cm rechts und 1 cm über seiner tatsächlichen Position im vorherigen Beispiel platzieren: \path (a.center)--(a.north) node[pos=.75, right] {label without calc}. Wir können positioningdie Bibliothek verwenden, um den Knoten relativ zum entsprechenden Punkt auf dem Pfad zu verschieben. In diesem Fall können wir sagen, above right=1cm and 2cmaber dies wird south westeinen Anker für die Platzierung verwenden und wir möchten west, dann fügen wir die Option anchor=westnach hinzu above right:

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, positioning}
\begin{document}
  \begin{tikzpicture}
    \node[inner sep=0pt] (a) {
      \includegraphics[width=0.8\textwidth]{example-image-a}
    };
    \path (a.center)--(a.north) node[draw, pos=.75, above right=1cm and 2cm, anchor=west, red] (b) {label without calc};
    \node[left] (c) at ($(a.center)!.75!(a.north)$) {label with calc};

    %Some auxiliary elements.
    \draw[red,<->] (a.center)--(c.east) node[midway, right] {75\%};
    \draw[red,<->] (c.east)--(a.north) node[midway,right] {25\%};
    \fill[red] (c.east) circle (1pt);
    \draw[red,<->] (c.east)-|(b.west)  node[pos=0.25,below] {2 cm} node[pos=0.75,left] {1 cm};
  \end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen