在 tcolorbox 中模拟(自适应)表格中的 \item

在 tcolorbox 中模拟(自适应)表格中的 \item

我正在尝试使用 tcolorbox 创建多项选择题的布局。有些问题带有图片。我考虑的布局是问题位于 tcolorbox 的上部,而下部包含一个表格,其中包含答案和图片。我快完成了,但有两个方面我想修复。

  1. 表格单元格中写的一些答案可能有点长,所以我想调整列宽以适应它们的长度,这样它们就不会“换行”。
  2. 有时答案确实太长,无法避免换行。如果是这种情况,我希望“勾选框”的行为像项目列表中的项目符号(即整个答案应正确悬挂在框上)。

我尝试了几种解决方案,但似乎无法得到我想要的结果。以下是我目前完成的工作

\documentclass{article}
\usepackage{graphicx} 
\usepackage{amsfonts}


\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage{tabularx}

\tcbset{enhanced,colframe=black!35,beforeafter skip=10pt,boxsep=0mm,left=1mm,right=1mm,sidebyside gap=3mm,top=3mm,bottom=2mm,boxrule=0.25mm} 

\begin{document}


% first tcolorbox. -------------
\begin{tcolorbox}
\lipsum[2][4]
\tcblower
\tcbsidebyside[sidebyside adapt=right, blanker,sidebyside gap=2mm,
]{% 
\begin{tabularx}{\textwidth}{lX}
$\Box$  answer  \hfill   & \hangindent=0.55cm $\Box$ answer  \vfill  \\
$\Box$ answer  & \hangindent=0.55cm $\Box$  this
answer is much longer than the others blah
\end{tabularx}


}{% 
\resizebox{0.25\textwidth}{!}{
\begin{tikzpicture}
\path[fill=yellow,draw=yellow!75!red] (0,0) circle (1cm);
\end{tikzpicture}
}
}
\end{tcolorbox}

% second tcolorbox. -------------
\begin{tcolorbox}
\lipsum[3][2]
\tcblower
\tcbsidebyside[sidebyside adapt=right, blanker,sidebyside gap=2mm,
]{% 
\begin{tabularx}{\textwidth}{Xl}
\hangindent=0.5cm $\Box$  this
answer is much longer than the others blah    & \hangindent=0.55cm $\Box$ answer \hfill   \\
$\Box$ answer  & \hangindent=0.55cm $\Box$ answer \hfill 
\end{tabularx}
}{% 
\resizebox{0.25\textwidth}{!}{
\begin{tikzpicture}
\path[fill=yellow] (0,0) circle (1cm);
\end{tikzpicture}
}
}
\end{tcolorbox}

\end{document}

我曾经\begin{tabularx}{\textwidth}{lX} 或曾经\begin{tabularx}{\textwidth}{Xl}将 tabularx 列调整为适合其内容。但是,我无法知道长答案是在第一列还是第二列,因为答案在问题的每个不同实例中都是随机排列的。

我曾经\hangindent=0.5cm“对齐”过“项目符号”框,但结果却不均匀......例如,如果答案很短(少于一行),则框和答案中第一个单词之间的距离就不一样。

我考虑使用单行两列的表格,并将答案放在每列一个分项列表中。但是我认为分项列表只能放在“p”列内,而自适应宽度似乎依赖于“X”列。

抱歉我的英语不好,感谢您的见解。Francesco

相关内容