我正在以编程方式生成 tikz 矩阵,有时,当我生成一个单元格时,我会从中学到一些东西,这将影响我如何设置后面单元格的样式。因此,我希望能够调用 tikzset 命令来修复特定单元格的样式。例如:
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello \tikzset{row 1 column 2/.style={red}}& world \\
};
\end{tikzpicture}
会将单词“world”渲染为红色。但事实并非如此,我认为这是由于某种分组级别造成的。我可以通过发出全局命令来解决这个问题
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello {\globaldefs=1%
\tikzset{row 1 column 2/.style={red}}}& world \\
};
\end{tikzpicture}
这也会为所有后续的 tikzpictures 设置样式(请参阅下面的完整 MWE)。当然,我可以稍后取消设置样式,但这感觉不太雅致。有没有更好的方法来设置样式(从一个单元格内影响另一个单元格)不同的,稍后的单元格)以便它仅适用于当前矩阵还是 tikzpicture?
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
%direct setting of the style doesn't work
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello \tikzset{row 1 column 2/.style={red}}& world \\
};
\end{tikzpicture}
%setting the global style works, but...
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello {\globaldefs=1%
\tikzset{row 1 column 2/.style={red}}}& world \\
};
\end{tikzpicture}
%...style is not local (obviously) and remains in effect on later pictures
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello & world \\
};
\end{tikzpicture}
\end{document}
输出:
答案1
您可以|[options list]|
在任何单元格中插入来决定特定选项:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
%direct setting of the style doesn't work
\begin{tikzpicture}
\matrix [matrix of nodes] {
hello &|[red]| world \\
hello &|[green, draw, font=\bfseries]| hello\\
};
\end{tikzpicture}
\end{document}