我正在尝试使用 tcolorbox 创建多项选择题的布局。有些问题带有图片。我考虑的布局是问题位于 tcolorbox 的上部,而下部包含一个表格,其中包含答案和图片。我快完成了,但有两个方面我想修复。
- 表格单元格中写的一些答案可能有点长,所以我想调整列宽以适应它们的长度,这样它们就不会“换行”。
- 有时答案确实太长,无法避免换行。如果是这种情况,我希望“勾选框”的行为像项目列表中的项目符号(即整个答案应正确悬挂在框上)。
我尝试了几种解决方案,但似乎无法得到我想要的结果。以下是我目前完成的工作
\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