tikz 节点颜色重置

tikz 节点颜色重置

3\\ 4\\ 5\\ 6在为单个单词指定颜色后,我遇到了节点颜色重置问题。我有以下 MWE ,其中我指定了4be的字符串\red{},我需要其他剩余的作为次要颜色,在此示例中我选择了蓝色。请注意,出于此问题的目的,不应以任何方式更改字符串定义。几年前,我读过有关 tikz 或 xcolor 中与框相关的错误的类似问题,但我不确定此问题是否相关。

5 和 6 也应该涂成蓝色

\documentclass[10pt]{standalone}

\usepackage{xparse}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{tikz}
    \usetikzlibrary{arrows,automata,positioning,calc}


\NewDocumentCommand{\size}{m}{%
    \fontsize{#1}{#1}\selectfont%
}%
\NewExpandableDocumentCommand{\red}{m}{%
    {\color{red}#1}%
}%
\NewExpandableDocumentCommand{\mystring}{}{%
    3\\ \red{4}\\ 5\\ 6%
}%


\begin{document}

\begin{tikzpicture}[x=1in,y=1in]
    \node[draw, align=center, text=blue, font=\bfseries\size{80}] at (0,0) {\mystring};
\end{tikzpicture}

\begin{tikzpicture}[x=1in,y=1in]
    \node[draw, align=center, font=\bfseries\size{80}] at (0,0) {\color{blue} \mystring};
\end{tikzpicture}

\end{document}

编辑:观察,需要注意的是,如果没有指定红色,则第一列将全部为蓝色,而在第二个测试中只有第一个字母是蓝色。

答案1

您可以考虑使用 吗matrix?这样,您可以独立于矩阵的一般颜色来固定每一行的颜色。

\mystring行与行之间保持的语法\\。您可以使用矩阵选项上的选择行的颜色row x/.style,或者像 一样将其固定在列表或行内\mystringwithcolorsinside

矩阵TiKZ以 结尾\\。我已将其添加到\mystring命令后,但您可以将其插入为最后的列表字符。

\documentclass[10pt]{standalone}

\usepackage{xparse}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{tikz}
    \usetikzlibrary{arrows,automata,positioning,calc,matrix}


\NewDocumentCommand{\size}{m}{%
    \fontsize{#1}{#1}\selectfont%
}%
\NewExpandableDocumentCommand{\red}{m}{%
    {\color{red}#1}%
}%
\NewExpandableDocumentCommand{\mystring}{}{%
    3\\ 4\\ 5\\ 6%
}%

\NewExpandableDocumentCommand{\mystringiwthcolorsinside}{}{%
    3\\|[text=green]| 4\\ 5\\ 6%
}%

\tikzset{mycolumn/.style={matrix, matrix of nodes, draw, inner sep=0pt, 
    text=blue, font=\bfseries\size{80}, nodes={align=center, inner sep=.3333em},
    row 2/.style={text=red}}}
    
\begin{document}

\begin{tikzpicture}[x=1in,y=1in]
    \node[mycolumn] at (0,0) {\mystring\\};
\end{tikzpicture}

\begin{tikzpicture}[x=1in,y=1in]
    \node[mycolumn] at (0,0) {\mystringiwthcolorsinside\\};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容