在 TikZ 中,\node
命令有很多可选参数可以用于控制节点的样式、位置和标签。下面是按照功能分类的各种可选参数(有机会补坑),具体内容参考 Tikz 官方开发文档:
有时间会补充对应的 key-val 值和具体例子
形状
draw
: 用于绘制节点的边框,可以通过指定颜色、线宽、线型等来控制边框的样式。例如\node[draw=red, line width=2pt, dashed] {...};
将创建一个红色、粗 2pt、虚线边框的节点。shape
: 用于指定节点的形状,可以选择预定义的形状(如 circle, rectangle 等)或自定义形状。例如\node[draw,shape=circle] {...};
将创建一个圆形节点。double
: 用于设置节点的边框为双线,可以指定不同的颜色和宽度。例如\node[double, draw=red, thick] {...};
将创建一个红色粗双线边框的节点。text width
,text height
: 用于控制节点内文本的宽度和高度,可以实现自动换行或截断等效果。例如\node[text width=3cm] {...};
将限制节点内文本的宽度不超过 3cm。scale
: 用于缩放节点的大小。例如\node[scale=2] {...};
将使节点大小扩大到原来的两倍。minimum size
: 用于指定节点的最小大小,如果节点内容比预设大小小,则会自动调整大小。例如\node[minimum size=2cm] {...};
将创建一个最小为 2cm 的节点。minimum width
,minimum height
: 用于指定节点的最小宽度和最小高度。例如\node[minimum width=2cm, minimum height=1cm] {...};
将创建一个最小宽度为 2cm、最小高度为 1cm 的节点。
位置
above
,below
,left
,right
: 用于控制节点相对于指定位置的偏移量。例如\node[right=1cm] {...};
将在节点"A"的右侧 1cm 处创建一个新的节点。还有一个用法是\node[right=1cm of A] {...};
需要使用\usetikzlibrary{positioning}
,A 为事先定义的一个点,如果想用具体坐标如(0,0)
来代替A
,那么需要使用{0,0}
或{(0,0)}
,可能是因为中间的逗号如果不放在{}
里边那么逗号后边的东西会被识别为一个单独的可选参数,具体机制不明。pos
: 用于控制标签在节点旁的位置,默认是居中对齐。可以使用类似above
,below
,left
,right
等标识符来指定相对位置,也可以使用百分比或其他数值来调整位置。例如\node[label={[pos=0.8]above:$A$}] {...};
将在节点上方 80%处添加一个标签"A"。at
: 用于指定节点的精确位置。例如\node at (1,1) {...};
将在坐标(1,1)处创建一个节点。rotate
: 用于旋转节点以某个角度显示。例如\node[rotate=45] {...};
将使节点顺时针旋转 45 度显示。xshift
,yshift
: 用于控制节点相对于指定位置的水平和垂直偏移量。例如\node[xshift=1cm, yshift=-0.5cm] {...};
将使节点向右平移 1cm,向下平移 0.5cm。
文本
font
: 用于设置节点内文本的字体、大小、颜色等属性。例如\node[font=\bfseries\large] {...};
将使节点内文本加粗并放大到"large"大小。label
: 用于在节点旁边添加一个标签,可以是普通文本或 LaTeX 公式。例如\node[label=right:$A$] {...};
将在节点右侧添加一个标签"A"。align
: 用于设置文本在节点内部的对齐方式,可以是左对齐、右对齐、居中对齐等。例如\node[align=center] {...};
将使节点内文本居中对齐。
颜色
fill
: 用于填充节点内部的颜色,可以通过指定颜色、渐变等方式来控制填充的样式。例如\node[fill=blue!20] {...};
将创建一个蓝色 20%的填充节点。text
: 用于设置节点内部的文本标签,可以是普通文本、LaTeX 公式或其他图形对象等。例如\node[text=red] {Hello World};
将在节点内部创建一个红色的文本标签。draw opacity
,fill opacity
: 用于设置边框和填充的透明度。例如\node[draw opacity=0.5, fill opacity=0.2, fill=blue] {...};
将创建一个蓝色半透明填充、半透明边框的节点。shadow
: 用于添加节点的阴影效果,可以指定不同的颜色和模糊程度。例如\node[shadow, fill=blue!20] {...};
将创建一个带有蓝色填充和阴影效果的节点。
连接
name
: 用于给节点命名,以便在后续的 TikZ 命令中引用该节点。例如\node[name=A]{...};
将创建一个名为"A"的节点。inner sep
: 用于控制节点内部内容与边框的距离。例如\node[inner sep=5pt] {...};
将在节点内容周围留出 5pt 的空白区域。outer sep
: 用于控制节点与其他图形对象之间的距离。例如\node[outer sep=10pt] {...};
将在节点周围留出 10pt 的空白区域,以便与其他对象保持一定距离。execute at begin node
: 用于在节点开始时执行一些 TikZ 命令,可以改变节点的样式、属性等。例如\node[execute at begin node=\color{red}] {...};
将设置节点内文本颜色为红色。execute at end node
: 用于在节点结束时执行一些 TikZ 命令,可以改变节点的样式、属性等。例如\node[execute at end node=\filldraw[fill=red] (current bounding box.south west) rectangle (current bounding box.north east);] {...};
将在节点结束时在节点周围添加一个红色填充矩形。rounded corners
: 用于设置节点的圆角弧度。例如\node[rounded corners=5mm] {...};
将创建一个圆角弧度为 5mm 的节点。anchor
: 用于设置节点的锚点,即节点的哪个位置对齐到指定的位置。例如\node[anchor=south west] {...};
将使节点的左下角与指定位置对齐。path
: 用于在节点周围绘制自定义路径。例如\node[path={circle [radius=10mm]}] {...};
将在节点周围绘制一个半径为 10mm 的圆形路径。