我想建立一個帶有 的節點minimum width=αx
,其中 x 是 tikzpicture 環境中指定的 x 座標向量的長度,例如\begin{tikzpicture}[x=0.1cm,y=2.5ex]
。這可能嗎?
答案1
正如建議的這個答案,您可以定義變數來設定 x 和 y 比例以及節點的樣式,如下例所示:
\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}
這樣,您就可以為每個環境施加給定的比例,x
並y
根據該比例tikzpicture
為矩形節點定義樣式。minimum width
minimum height
比例儲存在\unitx
和\unity
變數中,您可以在文件中的任何位置重新定義這些變數以變更比例。
如果您不想全域套用縮放,請刪除命令every tikzpicture
的參數\tikzset
並在本機套用縮放,如下例所示:
\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}