我怎样才能制作这张桌子?

我怎样才能制作这张桌子?

考虑:

在此处输入图片描述

我想复制这个精确的表格。我被难住了。我该怎么做?

到目前为止我已经尝试过这个代码:

\begin{center}
\begin{tabular}{|c|c|c|c|c|}
\hline \multicolumn{2}{|c|}{Color} & Numerical Value & Color & Numerical Value \\
\hline Black & \colorbox{black}{} & 0 & Green & \colorbox{green}{} \\
\hline Brown & \colorbox{brown}{} & 1 & Blue & \colorbox{blue}{}\\
\hline Red & \colorbox{red}{} & 2 & Violet & \colorbox{violet}{} \\
\hline Orange &  \colorbox{orange}{} & 3 & Gray & \colorbox{gray}{} \\
\hline Yellow & \colorbox{yellow}{} & 4 & White & \colorbox{white}{} \\
    \hline
\end{tabular}
\end{center}

使用上面的代码,我看起来像这样:我想修复表格的右侧,使其看起来像左侧。

在此处输入图片描述

如何才能使彩色表格与上面的表格宽度相同?

在此处输入图片描述

答案1

我会避免这种夸张的间距以及太大的方块。

我也会尽可能地避免规则,参见第二种实现。

\documentclass{article}
\usepackage{xcolor} % for '\fcolorbox' macro
\usepackage{booktabs} % for the second instance

\newcommand{\showcolor}[1]{%
  \raisebox{\depth}{\fcolorbox{black}{#1}{}}%
}

\begin{document}

\begin{center}
\begin{tabular}{|l|c|c||l|c|c|@{\vphantom{$\bigg|$}}}
\hline 
\multicolumn{2}{|c|}{Color} & Numerical Value &
\multicolumn{2}{c|}{Color} & Numerical Value \\
\hline
Black  & \showcolor{black}  & 0 & Green  & \showcolor{green}  & 5 \\ \hline
Brown  & \showcolor{brown}  & 1 & Blue   & \showcolor{blue}   & 6 \\ \hline
Red    & \showcolor{red}    & 2 & Violet & \showcolor{violet} & 7 \\ \hline
Orange & \showcolor{orange} & 3 & Gray   & \showcolor{gray}   & 8 \\ \hline
Yellow & \showcolor{yellow} & 4 & White  & \showcolor{white}  & 9 \\ \hline
\end{tabular}
\end{center}

\begin{center}
\begin{tabular}{@{} lcc @{\hspace{4em}} lcc @{}}
\toprule
Color && \begin{tabular}{@{}c@{}}Numerical \\ Value \end{tabular} &
Color && \begin{tabular}{@{}c@{}}Numerical \\ Value \end{tabular} \\
\midrule 
Black  & \showcolor{black}  & 0 & Green  & \showcolor{green}  & 5 \\
Brown  & \showcolor{brown}  & 1 & Blue   & \showcolor{blue}   & 6 \\
Red    & \showcolor{red}    & 2 & Violet & \showcolor{violet} & 7 \\
Orange & \showcolor{orange} & 3 & Gray   & \showcolor{gray}   & 8 \\
Yellow & \showcolor{yellow} & 4 & White  & \showcolor{white}  & 9 \\
\bottomrule
\end{tabular}
\end{center}

\end{document}

在此处输入图片描述

答案2

我猜你想要的是\fcolorbox,而不是\colorbox,因为模板在颜色框周围有黑色框线。而且,如果必须严格遵守模板,你还应该修改环境,tabular使其有 6 列而不是 5 列。

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor} % for '\fcolorbox' macro
\newcommand\mybox[1]{\fcolorbox{black}{#1}{\phantom{::}}}

\begin{document}

\begin{center}
\renewcommand\arraystretch{1.25}
\begin{tabular}{|*{2}{l|c|c|}}
\hline 
\multicolumn{2}{|c|}{Color} & Numerical Value & 
\multicolumn{2}{|c|}{Color} & Numerical Value \\ \hline 
Black  & \mybox{black}  & 0 & Green  & \mybox{green}  & 5 \\ \hline 
Brown  & \mybox{brown}  & 1 & Blue   & \mybox{blue}   & 6 \\ \hline 
Red    & \mybox{red}    & 2 & Violet & \mybox{violet} & 7 \\ \hline 
Orange & \mybox{orange} & 3 & Gray   & \mybox{gray}   & 8 \\ \hline 
Yellow & \mybox{yellow} & 4 & White  & \mybox{white}  & 9 \\ \hline
\end{tabular}
\end{center}

\end{document}

附录回答 OP 的后续请求:就我个人而言,我认为将表格宽度一直增加到 40em 不是一个好主意。(您不能将另一个框缩小很多吗?)但如果您必须将表格宽度设置为 40em,我建议您从 a 环境切换tabular到 a环境,省略所有垂直规则,并用包的线条绘制宏tabular*替换所有指令。hlinebooktabs

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{xcolor} % for '\fcolorbox' macro
\newcommand\mybox[1]{\fcolorbox{black}{#1}{\phantom{::}}}

\begin{document}

\begin{center}
\setlength\tabcolsep{0pt}
\renewcommand\arraystretch{1.15}
\begin{tabular*}{40em}{@{\extracolsep{\fill}} lcc lcc }
\toprule
\multicolumn{2}{l}{Color} & Numerical Value &
\multicolumn{2}{l}{Color} & Numerical Value \\ \midrule
Black  & \mybox{black}  & 0 & Green  & \mybox{green}  & 5 \\ \addlinespace
Brown  & \mybox{brown}  & 1 & Blue   & \mybox{blue}   & 6 \\ \addlinespace
Red    & \mybox{red}    & 2 & Violet & \mybox{violet} & 7 \\ \addlinespace
Orange & \mybox{orange} & 3 & Gray   & \mybox{gray}   & 8 \\ \addlinespace
Yellow & \mybox{yellow} & 4 & White  & \mybox{white}  & 9 \\ \bottomrule
\end{tabular*}
\end{center}

\end{document}

答案3

我怎样才能使彩色表格与上面的表格宽度相同。

或许应用该包tabularx是实现此目的的最简单方法。它允许您指定整个表格的宽度,而其X-column 可用于使列自动调整大小,以便表格达到所需的宽度。

我还添加了两个包:makecelltikzmakecell它有两点用处:(1)单元格接受\\以插入换行符和(2)在单元格周围添加额外空间。后一个功能可防止内容遵守表格规则。

tikz另一方面,包允许在 LaTeX 中绘制复杂形状。在这里,它创建一个填充颜色的框。我制作了一个宏以避免重复并帮助使代码更清晰。

下面是比你的表格更紧凑的代码。我建议尽可能保留最少的规则,只是为了清晰起见;也许将两个组分开的栏是有意义的,因此我在下面的代码中包含了它

\documentclass{article}
\usepackage{tabularx}            % X-column and a thick bar
\usepackage{makecell}            % Multi lined cells with extra spaceing
\usepackage[svgnames]{xcolor}    % Custom colour definitions
\usepackage{tikz}                % Colourful boxes

\newcommand\cbox[1]{%
    \tikz[baseline=-0.7ex]
        \node [minimum size=3mm, draw, fill=#1] {};}
\newcommand\xrule[1]{\noalign{\hrule height #1}}
\renewcommand\cellgape{\Gape[3pt]}


\begin{document}
\begin{table}[tbh]
    \renewcommand*\arraystretch{1.2}
    \centering
    \begin{tabularx}{0.7\linewidth}{ % <--- Specify width here
            Xcc
            !{\vrule width 1pt}
            Xcc
        }
        \xrule{1pt}
        \multicolumn{2}{c}{Color}
        & \makecell{Num.\\Value}
        & \multicolumn{2}{c}{Color}
        & \makecell{Num.\\Value} \\
        \xrule{0.6pt}
        Black  & \cbox{Black}  & 0 & Green  & \cbox{Green}  & 5 \\
        Brown  & \cbox{Brown}  & 1 & Blue   & \cbox{Blue}   & 6 \\
        Red    & \cbox{Red}    & 2 & Violet & \cbox{Violet} & 7 \\
        Orange & \cbox{Orange} & 3 & Gray   & \cbox{Gray}   & 8 \\
        Yellow & \cbox{Yellow} & 4 & White  & \cbox{white}  & 9 \\
        \xrule{1pt}
    \end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

相关内容