我有这个:
\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{@{}>{\rule[0.5\dimexpr-#1+1.2ex]{0pt}{#1}\hfil$}p{#1} <{$\hfil}@{}}
\begin{document}
\begin{center}
\Huge
$\begin{array}{|C{2.5cm} | C{2.5cm} |C{2.5cm} |}\hline
hello & hello & hello\\\hline
hello & hello & hello\\\hline
hello & hello & hello\\\hline
\end{array} $
\end{center}
\end{document}
生产:
遗憾的是,我的代码无法实现我的目标。我想要一个更大的矩阵,每个方块中都有一个标题,下面是文字。所有文本的宽度都最大。此外,方块外还有文字。
像这样:
你能帮助我吗?谢谢!:)
答案1
像这样?
我在您的表格中添加了另一列和一行。我为它们定义了新命令:mct
针对“表格”上方的文本和mcl
“表格”左侧的文本:
\documentclass{article}
\usepackage{array}
\newcommand\mct[2]{\multicolumn{1}{@{} >{\raggedright\arraybackslash}p{#1} @{} }{#2}}
\newcommand\mcl[2]{\multicolumn{1}{ >{\raggedleft\arraybackslash}p{#1}|}{#2}}
\begin{document}
\begin{center}
\large
\setlength\extrarowheight{4pt}
\setlength\arrayrulewidth{1pt}
\begin{tabular}{p{2.5cm}|
*{3}{>{\raggedright\arraybackslash}p{2.5cm}|}}
\mct{2.5cm}{}
& \mct{2.5cm}{hello hello hello}
& \mct{2.5cm}{hello hello hello}
& \mct{2.5cm}{hello hello hello} \\
\cline{2-4}
\mcl{2.5cm}{hello hello hello}
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello \\
\cline{2-4}
\mcl{2.5cm}{hello hello hello}
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello \\
\cline{2-4}
\mcl{2.5cm}{hello hello hello}
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello
& \textbf{\Large HELLO}\newline
hello hello hello \\
\cline{2-4}
\end{tabular}
\end{center}
\end{document}
答案2
这里有一个替代方案,它可以给你更多的控制权并且更短。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{positioning}
\tikzset{m-node/.style={text
width=1.8cm,font=\sffamily,align=center,inner sep=6pt}}
\begin{document}
\begin{tikzpicture}
\matrix (hello) [matrix of nodes,nodes={m-node,draw},node distance=-\pgflinewidth] {
{{\Large Hello}\\ Hello Hello Hello Hello} & {{\Large Hello}\\ Hello Hello Hello Hello}
& {{\Large Hello}\\ Hello Hello Hello Hello} \\
{{\Large Hello}\\ Hello Hello Hello Hello} & {{\Large Hello}\\ Hello Hello Hello Hello}
& {{\Large Hello}\\ Hello Hello Hello Hello} \\
{{\Large Hello}\\ Hello Hello Hello Hello} & {{\Large Hello}\\ Hello Hello Hello Hello}
& {{\Large Hello}\\ Hello Hello Hello Hello} \\
};
\foreach \X in {1,2,3}
{\node[m-node,above=2mm of hello-1-\X]{hello hello hello};
\node[m-node,left=2mm of hello-\X-1]{HELLO HELLO};}
\end{tikzpicture}
\end{document}