Definieren Sie die Textfarbe für alle Tikz-Knoten eines bestimmten Typs

Definieren Sie die Textfarbe für alle Tikz-Knoten eines bestimmten Typs

Ich möchte, dass ein bestimmter Knotentyp in Tikz eine bestimmte Textfarbe hat. Derzeit habe ich ein Makro für die Textfarbe definiert. Aber ich muss dieses Makro weiterhin bei jedem Knoten verwenden.

Gibt es nicht eine bessere Lösung? So wie wir die Hintergrundfarbe für einen Knoten definieren, können wir auch die Textfarbe in \tikzstyleder Anweisung definieren?

Hier ist das MWE:

\documentclass{article}

\usepackage[svgnames]{xcolor}                                                                                                         
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\newcommand{\whttxt}[1]{\textbf{\textcolor{LemonChiffon}{#1}}}
\begin{document}
\pagestyle{empty}

% Define block styles
\tikzstyle{block} = [rectangle, draw, fill=black, text width=5em, text centered, rounded corners, minimum height=4em]

\begin{tikzpicture}[node distance=1in]
  \node [block] (nodea) {\whttxt{Node A}};
  \node [block, below of=nodea] (nodeb) {\whttxt{Node B}};
\end{tikzpicture}

\end{document}

Antwort1

Sie können text=LemonChiffondie Option zum Festlegen der Textfarbe zusammen mit der font=Option zum Anwenden verwenden \bfseries. Unten habe ich das \whttxtMakro durch die whttxtOption zum Anwenden dieser beiden ersetzt:

Bildbeschreibung hier eingeben

Anmerkungen:

Code:

\documentclass{article}

\usepackage[svgnames]{xcolor}                                                                                                         
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
%\newcommand{\whttxt}[1]{\textbf{\textcolor{LemonChiffon}{#1}}}

\begin{document}
\pagestyle{empty}

% Define block styles
%\tikzstyle{block} = [rectangle, draw, fill=black, text width=5em, text centered, rounded corners, minimum height=4em]
\tikzset{block/.style={rectangle, draw, fill=black, text width=5em, text centered, rounded corners, minimum height=4em}}
\tikzset{whttxt/.style={text=LemonChiffon, font=\bfseries}}

\begin{tikzpicture}[node distance=1in]
  \node [block, whttxt] (nodea) {Node A};
  \node [block, below of=nodea, whttxt] (nodeb) {Node B};
\end{tikzpicture}

\end{document}

verwandte Informationen