tikz:扩展矩形大小以完全覆盖矩形内的文本

tikz:扩展矩形大小以完全覆盖矩形内的文本

我定义了以下命令,它只绘制四个彩色矩形,其中包含一些文本:

\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}

相关内容