水平列出多个 tcolorbox

水平列出多个 tcolorbox

我正在使用 tcolorbox 来创建几个包含各种单词的框,以便拥有某种特征系统,就像他们在奥尼(见下图)。 特性

框创建如下:

\usepackage[most]{tcolorbox}
\definecolor{light-gray}{gray}{0.90}

\newtcolorbox{TraitBox}{
    enhanced,
    size=tight,
    height=1.2em,
    leftrule=0.3mm,
    rightrule=0.3mm,
    left=0.5mm,
    right=0.5mm,
    top=0.3mm,
    bottom=0.3mm,
    coltext=white,
    halign=center,
    valign=center,
    colback=gray,
    colframe=light-gray,
    hbox}

\begin{TraitBox} Agile \end{TraitBox}
\begin{TraitBox} Finesse \end{TraitBox}
\begin{TraitBox} Thrown 10 Ft. \end{TraitBox}
\begin{TraitBox} Versatile S \end{TraitBox}
\begin{TraitBox} Invest \end{TraitBox}

输出: TraitBox 作为 tcolorbox

这里理想的和想要的功能是框适合文本的宽度。

但是,我还希望框水平对齐,就像内联列表一样。此外,我想使用 foreach 循环简单地列出所有特征。

尝试使其成为一个内联列表,其中包括 foreach 循环,并制作了一个栅格:

\newcommand{\ListOfTraits}[1]{
    \begin{tcbraster}[ 
        raster before skip=0.5mm,
        raster after skip=0.5mm,
        % raster left skip=-0.5mm,
        raster columns=4, 
        % raster width=\textwidth -1pt,
        raster row skip = 0.5mm,
        raster equal height,
        enhanced,
        size=tight,
        leftrule=0.3mm,
        rightrule=0.3mm,
        % left=0.5mm,
        % right=0.5mm,
        top=0.3mm,
        bottom=0.3mm,% 
        coltext=white,
        halign=center,
        valign=center,
        colback=gray,
        colframe=light-gray,
        ]
        \hspace{-1mm}
        \foreach \traits in {#1}{
        \begin{tcolorbox}\traits\end{tcolorbox}}
    \end{tcbraster}
}

\ListOfTraits{Agile,Finesse,Thrown 10 Ft.,Versatile S,Invest}

输出: 光栅内联

但是,使用栅格时,必须使用列来定义宽度。并且如所观察到的,框不再适合单词的宽度。此外,由于“Thrown 10 Ft.”的特性,此条目对于列宽来说太长,因此会变成两行。

跳出思维定式(呵呵,抱歉),也许将 TraitBox 放在列表中,从中汲取灵感不带项目符号的逐项列举,但正如汤姆在文章中提出的那样,将其设为内联使用 paralist 在 LaTeX 中内联列表,暂时放弃 foreach 循环:

\begin{inparadesc}
    \item[] \begin{TraitBox} Agile \end{TraitBox}
    \item[] \begin{TraitBox} Finesse \end{TraitBox}
    \item[] \begin{TraitBox} Thrown 10 Ft. \end{TraitBox}
    \item[] \begin{TraitBox} Versatile S \end{TraitBox}
    \item[] \begin{TraitBox} Invest \end{TraitBox}
\end{inparadesc}

然而,这会产生与以前相同的结果: 带有 TraitBox 的内联列表

有谁能解决这个问题?

相关内容