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 x
und y
definieren tikzpicture
einen Stil für einen Rechteckknoten mit diesem Maßstab minimum width
und minimum height
basierend auf diesem Maßstab.
Die Skalen werden in den Variablen \unitx
und 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 tikzpicture
Argument des \tikzset
Befehls 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}