Verwenden Sie tikzpicture-Vektorlängen, um die Knotendimension anzugeben

Verwenden Sie tikzpicture-Vektorlängen, um die Knotendimension anzugeben

Ich möchte einen Knoten mit erstellen minimum width=αx, wobei x die Länge des in der Tikzpicture-Umgebung angegebenen X-Koordinatenvektors ist, z. B. \begin{tikzpicture}[x=0.1cm,y=2.5ex]. Ist das möglich?

Antwort1

Wie vorgeschlagen indiese Antwortkönnen Sie Variablen definieren, um Ihre X- und Y-Skalen und einen Stil für Ihren Knoten festzulegen, wie im folgenden Beispiel:

\documentclass{article}
\usepackage{tikz}

\newcommand{\unitx}{1cm}
\newcommand{\unity}{1cm}

\tikzset{%
    box/.style 2 args = {%
        rectangle,
        draw,
        minimum width  = #1*\unitx,
        minimum height = #2*\unity
    },
    every tikzpicture/.append style = {
        x = \unitx,
        y = \unity
    }
}

\begin{document}

    \begin{tikzpicture}

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\renewcommand{\unitx}{5cm}
\renewcommand{\unity}{3cm}

    \begin{tikzpicture}

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\end{document}

Damit legen Sie für jede Umgebung einen bestimmten Maßstab fest xund ydefinieren tikzpictureeinen Stil für einen Rechteckknoten mit diesem Maßstab minimum widthund minimum heightbasierend auf diesem Maßstab.

Die Skalen werden in den Variablen \unitxund gespeichert \unity, die Sie überall in Ihrem Dokument neu definieren können, um die Skala zu ändern.

Wenn Sie die Skalierung nicht global anwenden möchten, entfernen Sie das every tikzpictureArgument des \tikzsetBefehls und wenden Sie die Skalierung lokal an, wie im folgenden Beispiel:

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\unitx}{2cm}
\newcommand{\unity}{1cm}

\tikzset{%
    box/.style 2 args = {%
        rectangle,
        draw,
        minimum width  = #1*\unitx,
        minimum height = #2*\unity
    }
}

\begin{document}

    \begin{tikzpicture}[x = \unitx, y = \unity]

        \node[box={2}{3}] at (0, 0) {Hello};

    \end{tikzpicture}

\end{document}

verwandte Informationen