通过exsheets做5-选择题
我正在使用 exsheets 包为 Latex 书中的多项选择题编写一个模板,如下所示:
\documentclass[12pt]{book}
\usepackage{tasks}
\usepackage{exsheets}
\begin{document}
\chapter{}
\section{Section 1}
\begin{question}
Sample multiple-choice problem
\begin{tasks}(4)
\task Sample answer 1
\task Sample answer 2
\task Sample answer 3
\task Sample answer 4
\task Sample answer 5
\end{tasks}
\end{question}
\end{document}
上述代码对于多项选择题的输出不是期望的输出。我想要的输出是以下图像:
在上图中,每个 5 选择问题都有一些核心特征:
- 每个问题都有一个如图所示的模板
- 每个问题都按章节编号进行编号。问题编号
- 当我插入命令时,
\hint{some hint about the question}
提示会出现在章节提示中,同样,当我插入时,\nohint{}
提示章节中没有出现有关此问题的任何内容 - 当我插入
\correctanswer{}
命令时,答案键中指定了正确的选择。 - 此外,
\answer{}
请参阅解决方案章节中出现的问题的完整解决方案 - 我希望除了一些问题之外没有星号,或者有一星号或两星号的符号,并使用以下命令:
\nostar{}
,\onestar{}
\twostars{}
。
是非题
除了5个选择题外,在每一章的开头,还有一些是非题,如下图所示:
答案1
这是我使用任务所能达到的最接近的效果。使用表格或自定义环境可能会更好。
任务中有许多选项可用,但似乎都没有什么用。增加标签宽度会减少缩进,而不是答案宽度。这似乎由列数决定。
\documentclass[12pt]{book}
%\usepackage{tasks}% redundant
\usepackage{exsheets}
\usepackage{showframe}
\begin{document}
\chapter{}
\section{Section 1}
\begin{question}
Sample multiple-choice problem
\hfil\parbox{0.8\textwidth}{%
\begin{tasks}(2)
\task Sample answer 1
\task Sample answer 2
\task Sample answer 3
\task Sample answer 4
\task Sample answer 5
\end{tasks}}
\end{question}
\end{document}
以下是使用自定义环境实现所需格式的示例。请注意,\choice
将文本放入参数中(与\task
或不同\item
)。未尝试保存答案键。
\documentclass[12pt]{book}
\usepackage{exsheets}
\usepackage{showframe}% alignment tool
\newcounter{choice}
\renewcommand{\thechoice}{\fbox{\arabic{choice}}}
\newlength{\tempwidth}
\newcommand{\mychoice}[1]{% unlike \tem or task, this choiceuses an argument
\refstepcounter{choice}%
\rule[-1.2\dp\strutbox]{0pt}{1.2\baselineskip}% vertical spacing by strut
\makebox[\labelwidth][r]{\thechoice}\hskip\labelsep
\parbox[t]{\dimexpr \tempwidth-\labelwidth-\labelsep}{#1}% answer
\hskip\columnsep\allowbreak\ignorespaces}
\newenvironment{choices}[1][1]% #1 = number of columns
{\par\medskip% top
\noindent\hspace{0.1\textwidth}% left margin
\begin{minipage}{0.8\textwidth}% \textwidth-left and right margins
\tempwidth=\dimexpr \linewidth+\columnsep\relax% compute width of column
\count1=#1\relax% make sure it is a number
\divide\tempwidth by \count1
\advance\tempwidth by -\columnsep
\labelwidth=1.4em %note reuse
\labelsep=0.333em %note reuse
\let\choice=\mychoice
\centering}
{\end{minipage}\par\medskip}% bottom
\begin{document}
\chapter{}
\section{Section 1}
\begin{question}
Sample multiple-choice problem
\begin{choices}[2]
\choice{Sample answer 1}
\choice{Sample answer 2}
\choice{Sample answer 3}
\choice{Sample answer 4}
\choice{Sample answer 5}
\end{choices}
\end{question}
\end{document}