At the moment I'm using this command in the preamble to fill the color of the specified row with grey:
row 2/.style={
nodes={fill=gray!10}
}
Unfortunately I have to write this for every line.
Can't I say something like
row 1-10/.style={
nodes={fill=gray!10}
}
Copy from answer:
Thanks for your answers. Though I'm not sure what's not clear in my example the problem is that I wanted to use the row option (within \tikzset{}
before \begin{document}
) because (maybe I don't know how else to do it) I only want certain rows to be colored that way not everything. Other rows have a different color such that everything looks nice and colorful as it should be. Since I'm very new to tikz
I solved this in an awkward way by writing
\tixset{
row 2/.style={
nodes={fill=gray!10}
},
row 3/.style={
nodes={fill=gray!10}
},
row 4/.style={
nodes={fill=gray!10}
},
column 1/.style={
nodes={text width=14em}
},
column 3/.style={
nodes={text width=9em}
},
column 4/.style={
nodes={text width=9em}
}
}
Here I also specified different widths for the columns. Probably as well this one can solve better by not writing the entire ./style
every time…
@last: myrowstyle
is just a name or? so my new definition to later call it am I right?
MWE [copied from deleted answer by cfr]
\documentclass[table]{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=black,
align=center,
},
%baseline={([yshift=-0.5ex]current bounding box.center)},
minimum height=1.5em,
text depth=0.5em,
text height=1em,
text centered,
nodes in empty cells,
%%
row 1/.style={
nodes={
fill=black,
text=white,
%font=\bfseries
}
},
myrowstyle/.style={
row #1/.style={nodes={fill=gray!10}}
},
column 1/.style={
nodes={text width=14em}
},
column 3/.style={
nodes={text width=9em}
},
column 4/.style={
nodes={text width=9em}
}
}
}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\matrix (first) [table,text width=4em, myrowstyle/.list={1,2,3}, row 2/.style={text depth=1.5em}, ampersand replacement=\&]
{
... \& \# ...\& \# ... \& ... \\
01.06.-02.06. \break (hello world) \& 1 \& 2 \& \\
02.06.-03.06. (hello) \& 3 \& 3 \& \\
};
\end{tikzpicture}
\end{frame}
\end{document}
Best Answer
You can use the
/.list
handler.and later in the picture you can then use
or any other argument list.