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