Tikz 改变节点背景颜色

Tikz 改变节点背景颜色

回答以下问题另一个问题,我正在使用 Milsymb 库并更改前景色。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{forest}
\usepackage{milsymb}

\makeatletter
\protected\def\tikz@fig@main#1{%
  \expandafter\gdef\csname labeltextof@\tikz@fig@name\endcsname{#1}%
  \iftikz@node@is@pic%
    \tikz@node@is@picfalse%
    \tikz@subpicture@handle{#1}%
  \else%
    \tikz@@fig@main#1\egroup%
  \fi}
\makeatother

\newcommand\labeltextof[1]{\csname labeltextof@#1\endcsname}
\newcommand{\aftercolorof}[2]{% #1 is the color, #2 us the node
  \path (#2.center) node[#1] (#2-2) {\labeltextof{#2}};
}

\begin{document}

\begin{tikzpicture}
\node (nA) {\tikz{\MilLand[faction=friendly,monochrome,echelon=division,main=armoured]{}}};
\aftercolorof{red}{nA}
\end{tikzpicture}

\end{document}

这会产生红色的前景颜色。

在此处输入图片描述

我还如何更改节点背景颜色(即上面的浅灰色,而不是白色图像背景)?

答案1

您可以使用fill=...密钥(请注意,不建议嵌套 tikz 图片,并且可能会产生有趣的副作用。):

\documentclass{standalone}
\usepackage{tikz}
\usepackage{forest}
\usepackage{milsymb}

\begin{document}

\begin{tikzpicture}
\node (nA) {\tikz{\pgfsetstrokecolor{red}\MilLand[faction=friendly,monochrome,echelon=division,main=armoured,red,fill=green]{}}};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容