我正在使用 tcolorbox 來創建幾個包含各種單字的框,以擁有某種 Trait 系統,就像他們在奧諾(見下圖)。
這些框的建立方式如下:
\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}
這裡理想且想要的功能是框適合文字的寬度。
但是,我也希望這些框水平對齊,就像內聯列表一樣。此外,我想使用 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}
有人能解決這個問題嗎?