在矩阵内部设置矩阵单元格样式

在矩阵内部设置矩阵单元格样式

我正在以编程方式生成 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}

在此处输入图片描述

相关内容