我正在为表格使用以下代码。目前,它被设置为可以将所有列(第一列除外)的宽度更改为相同宽度。有人可以帮我发推文,以便我每次使用它时都可以指定列宽吗?谢谢。
\documentclass[twoside]{book}
\usepackage{tikz}
%%table
\usetikzlibrary{matrix}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=gray!50,
align=center
},
minimum height=1.5em,
text depth=0.5ex,
text height=2ex,
nodes in empty cells,
%%
every odd row/.style={
nodes={fill=gray!05}
},
column 1/.style={
nodes={text width=5em,font=\bfseries}
},
row 1/.style={
nodes={
fill=gray!25,
text=black,
text height=2.5ex,
font=\bfseries, purple!75!black
}
}
}
}
\begin{document}
\begin{tikzpicture}
\matrix[table,text width=12em]
{
first & 2nd column & 3rd column\\
&A & B \\
& C & D \\
};
\end{tikzpicture}
\end{document}
我想把这个放在序言中,但这意味着我必须让同一个文档中的所有表格都指定相同的宽度,从现在起。
谢谢。
答案1
您是否想要这样的东西,以便您可以调整第一列以及其他列的宽度?
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=gray!50,
align=center
},
minimum height=1.5em,
text depth=0.5ex,
text height=2ex,
nodes in empty cells,
%%
every odd row/.style={
nodes={fill=gray!05}
},
first column text width/.code={%
\tikzset{
column 1/.style={
nodes={text width=##1, font=\bfseries}
},
}
},
first column text width=5em,
row 1/.style={
nodes={
fill=gray!25,
text=black,
text height=2.5ex,
font=\bfseries, purple!75!black
}
}
}
}
\begin{document}
\begin{tikzpicture}
\matrix[table,text width=12em]
{
first & 2nd column & 3rd column\\
&A & B \\
& C & D \\
};
\end{tikzpicture}
\begin{tikzpicture}
\matrix[table,text width=6em, first column text width=3em]
{
first & 2nd column & 3rd column\\
&A & B \\
& C & D \\
};
\end{tikzpicture}
\end{document}