Горизонтальный список нескольких tcolorbox

Горизонтальный список нескольких tcolorbox

Я использую tcolorbox для создания нескольких полей, содержащих различные слова, чтобы иметь своего рода систему черт, как это делают вАон(см. изображение ниже). AoNTraits

Ящики создаются следующим образом:

\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

Желательной и востребованной особенностью здесь является то, что рамки подгоняются под ширину текста.

Однако я также хотел бы, чтобы поля были выровнены по горизонтали, как в списке inline. Кроме того, я хочу использовать цикл 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}

Выход: Растровый инлайн

Однако с растром ширина должна быть определена с помощью колонок. И, как было замечено, поле больше не подгоняется под ширину слов. Кроме того, с чертой "Бросок 10 футов" эта запись слишком длинная для ширины колонки и, таким образом, занимает две строки.

Думая нестандартно (хе-хе, извините), возможно, стоит поместить TraitBox в список, черпая вдохновение изПеречислить без маркеров, но сделать его встроенным, как представлено Томом в статьеВстроенные списки в LaTeX с использованием paralist, откажемся пока от цикла 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

Есть ли у кого-нибудь решение этой проблемы?

Связанный контент