![用于总结表格的图像](https://linux22.com/image/276500/%E7%94%A8%E4%BA%8E%E6%80%BB%E7%BB%93%E8%A1%A8%E6%A0%BC%E7%9A%84%E5%9B%BE%E5%83%8F.png)
我正在建立一个表格,总结一些演示方法。我想放置一些彩色图像,以便一目了然地掌握一些信息。
这是问题定义。我的问题分为 3 个不同的阶段。有些方法论解决了所有阶段,有些方法论只解决了部分阶段,有些方法论融合了部分阶段。为了解决这些阶段,可以使用几个特征来解决其中任何一个阶段。
因此,我想建立一个表格,对方法进行分类并添加描述,并添加额外的列,在其中放置如示例中的图像。
我猜正确的方法是使用\tikzset
,拥有与颜色组合一样多的宏并使用参数来着色。但是当我想融合阶段时,我的问题就出现了。
有没有什么优雅的解决方案呢?
答案1
我给出了一个\icon
宏,它接受两个强制参数和一个可选参数。强制参数是主色(左侧)和次色(右侧),可选参数是“e”,表示它是椭圆形,而不是圆形。如果#3
保留为{}
,它将仅填充颜色#2
。如果#2
和都#3
保留为{}
,您将得到一个带有黑色边框的空图标。
\documentclass{article}
\usepackage{stackengine}
\usepackage{xcolor}
\usepackage{bbding}
\usepackage{scalerel}
\usepackage{graphicx}
\usepackage{ifthen}
\newcommand\icon[3][c]{%
\if e#1\def\cstretch{2}\else\def\cstretch{1}\fi%
\kern-1pt%
\hstretch{\cstretch}{%
\raisebox{3pt}{\rotatebox{-45}{%
\ifthenelse{\equal{#2}{}}{%
\stackinset{c}{}{c}{}%
{\scalebox{.9}{\textcolor{white}{\CircleSolid}}}%
{\textcolor{black}{\CircleSolid}}%
}{%
\ifthenelse{\equal{#3}{}}{%
\mbox{\textcolor{#2}{\CircleSolid}}%
}{%
\stackengine{0pt}{\textcolor{#2}{\CircleSolid}}%
{\textcolor{#3}{\HalfCircleRight}}{O}{r}{F}{F}{L}%
}%
}%
}}%
}%
\kern-.8pt%
}
\newcommand\X{\textsf{X}\,\,}
\parskip 2em
\begin{document}
x \icon[e]{blue}{black}\icon{red}{}\icon{}{}\icon{black}{yellow}
\begin{tabular}{c|c|lc}
& STAGE &&\\
CLASS & 1\,~~2~~\,3 & CHARACTERISTICS & \\
\hline
& \icon{}{}\icon{black}{red}\icon{yellow}{} &
USES A, BBB, CCC, DDD; & [xx]\\
& ~~\X \icon[e]{green}{} & BBB & [xx]\\
& \icon[e]{green}{red}\icon{green}{blue} & BBB, CCC, EEE & [xx]\\
\end{tabular}
\end{document}