我想创建一个节点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}