我定义了以下命令,它只绘制四个彩色矩形,其中包含一些文本:
\newcommand{\fourcards}[4]{
\begin{figure}
\centering
\begin{tabular}{cccc}
\centering
\tikz \draw[fill=green!50] (0,0) rectangle (1,1) node[pos=.5] {#1}; &
\tikz \draw[fill=magenta] (0, 0) rectangle(1, 1) node[pos=.5]{#2}; &
\tikz \draw[fill=orange] (0, 0) rectangle(1, 1) node[pos=.5]{#3}; &
\tikz \draw[fill=yellow] (0, 0) rectangle(1, 1) node[pos=.5]{#4};
\end{tabular}
\end{figure}
}
我想知道是否有某种方法可以动态更改矩形的尺寸,以便它们可以容纳其中的文本。我发现这讨论类似问题的线程,但那里的 OP 要求矩形遵循施加的约束外部矩形:我希望矩形能够自行调整以适应约束里面它。
答案1
这就是 a 的作用node
,而且它可以有填充。figure
环境的目的是什么?
\documentclass{article}
\usepackage{tikz}
\newcommand{\fourcards}[4]{%
\begin{figure}
\centering
\begin{tabular}{cccc}
\tikz \node[draw,fill=green!50] {#1}; &
\tikz \node[draw,fill=magenta] {#2}; &
\tikz \node[draw,fill=orange] {#3}; &
\tikz \node[draw,fill=yellow] {#4};
\end{tabular}
\end{figure}%
}
\begin{document}
\fourcards{TexT}{Lorem upsum}{Whatnot}{woooooooord}
\end{document}
略有不同的方法:
\documentclass{article}
\usepackage{tikz}
\newcommand{\fourcards}[4]{%
\begin{tikzpicture}[every node/.append style={text depth=3pt,text height=10pt}]
\matrix [ampersand replacement=\&,column sep=5pt] {
\node[draw,fill=green!50] {#1}; \&
\node[draw,fill=magenta] {#2}; \&
\node[draw,fill=orange] {#3}; \&
\node[draw,fill=yellow] {#4}; \\
};
\end{tikzpicture}}
\begin{document}
\fourcards{TexT}{Lorem upsum}{Whatnot}{woooooooord}
\end{document}