Я хочу, чтобы определенный тип узла в tikz имел определенный цвет текста. В настоящее время я определил макрос для цвета текста. Но мне нужно продолжать использовать этот макрос в каждом узле.
Разве нет лучшего решения? Так же, как мы определяем цвет фона для узла, мы можем также определить цвет текста в \tikzstyle
операторе?
Вот 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}
решение1
Вы можете использовать text=LemonChiffon
option для указания цвета текста вместе с font=
option для применения \bfseries
. Ниже я заменил \whttxt
макрос на whttxt
option для применения этих двух:
Примечания:
- Вы должны использовать
\tikzset
вместо\tikzstyle
согласноСледует ли использовать \tikzset или \tikzstyle для определения стилей TikZ?.
Код:
\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}