如何在 tikz 中统一更改节点标签的字体大小

如何在 tikz 中统一更改节点标签的字体大小

我想通过 给节点添加标签\node [label=below:$1$] {$X$}。但标签的大小与“X”相同。我希望它是脚本大小。所以我可以输入\node [label=below:$\scriptstyle 1$] {$X$}。但我想要标记的节点不止一个。我尝试了选项\begin{tikzpicture}[commutative diagrams/every label]。但$X$也会变成脚本大小。

那么哪个选项可以将标签的大小设置为脚本大小,同时保持主节点的大小。

答案1

我不确定我是否理解了这个问题,但every label/.append style={text=red, font=\scriptsize}对我来说有用。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
  [every label/.append style={text=red, font=\scriptsize}]
\node[draw, label=label] (A) {node};
\node[draw, label=label,xshift=2cm] (B) {node};
\end{tikzpicture}
\end{document}

在此处输入图片描述


更新因为对这个答案的评论:

看看TikZ 文档第 17 章节点和边,了解哪种类型的节点自动使用哪种样式。

该样式every label会自动应用于所有标签节点,但不应用于边缘上的“普通”节点。请参见以下示例,其中边缘上的节点也获得label

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
    every label/.append style={text=red, font=\scriptsize}
  ]
  \node[draw, label=label] (A) {node};
  \node[draw, label=label,xshift=2cm] (B) {node};
  \path(A)edge["$\alpha$"'label=$x$](B);% quotes syntax

  \begin{scope}[xshift=4cm]
    \node[draw, label=label] (A) {node};
    \node[draw, label=label,xshift=2cm] (B) {node};
    \path(A)edge node[below,label=$x$]{$\alpha$}(B);% basic syntax
  \end{scope}
\end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

如果边上的所有节点也应该是red,那么\scriptsize您可以添加

every edge/.append style={nodes={text=red, font=\scriptsize}}

的选项tikzpicture

在此处输入图片描述

代码:

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
    every label/.append style={text=red, font=\scriptsize},
    every edge/.append style={nodes={text=red, font=\scriptsize}}
  ]
  \node[draw, label=label] (A) {node};
  \node[draw, label=label,xshift=2cm] (B) {node};
  \path(A)edge["$\alpha$"](B);% quotes syntax

  \begin{scope}[xshift=4cm]
    \node[draw, label=label] (A) {node};
    \node[draw, label=label,xshift=2cm] (B) {node};
    \path(A)edge node[above]{$\alpha$}(B);% basic syntax
  \end{scope}
\end{tikzpicture}
\end{document}

还可以将样式更改限制到由引号语法定义的边缘节点。此节点every edge quotes自动使用样式:

\begin{tikzpicture}[
    every label/.append style={text=red, font=\scriptsize},
    every edge quotes/.append style={text=red, font=\scriptsize}
  ]

结果:

在此处输入图片描述


请注意,您可以定义自己的样式,并以相同的方式将这种新样式添加到您想要更改的节点样式中:

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
    mylabels/.style={text=red, font=\scriptsize},
    every label/.append style={mylabels},
    every edge/.append style={mylabels}
  ]
  \node[draw, label=label] (A) {node};
  \node[draw, label=label,xshift=2cm] (B) {node};
  \path(A)edge["$\alpha$"](B);% quotes syntax

  \begin{scope}[xshift=4cm]
    \node[draw, label=label] (A) {node};
    \node[draw, label=label,xshift=2cm] (B) {node};
    \path(A)edge node[above]{$\alpha$}(B);% basic syntax
  \end{scope}
\end{tikzpicture}
\end{document}

相关内容