我想将R/exams中的答案列表配置为按列分发:
答1。答3。
B.答案2. D.答案4。
在LaTeX中,我使用了multicol包。这对于R/exams也是可能的吗?
发布于 2021-03-25 10:31:25
用于生成在纸上打印的PDF文件的R/exams接口是exams2pdf()和exams2nops() (构建在exams2pdf()之上)。这两种方法都在后台使用LaTeX,并允许调整用于呈现答案列表的环境。所以答案是:是的,您也可以使用multicol LaTeX包中的{multicols}环境来实现这一点。
更具体地说,在LaTeX代码中,您的答案列表将被写为:
\begin{answerlist}
\item Answer 1.
\item Answer 2.
\item Answer 3.
\item Answer 4.
\end{answerlist}然后,此{answerlist}的呈现取决于文档头中对此环境的定义。随软件包一起提供的exams2nops()和exams2pdf()演示模板中的默认设置为:
\newenvironment{answerlist}%
{\renewcommand{\labelenumii}{(\alph{enumii})}\begin{enumerate}}%
{\end{enumerate}}简而言之,这只是使用标准{enumerate}环境并将计数器切换到(\alph{...})格式,即(a)、(b)、...在exams2nops()中,默认情况下会生成以下输出:

或者,您可以按照以下方式(重新)定义此环境,即使用{multicols}{2}布局并将计数器的格式切换为A、B、...
\newenvironment{answerlist}%
{\renewcommand{\labelenumii}{\Alph{enumii}.}\begin{multicols}{2}\begin{enumerate}}%
{\end{enumerate}\end{multicols}}当您使用exams2pdf()时,您可以简单地在传递给exams2pdf(..., template = ...)的LaTeX主模板中定义{answerlist}环境。
当您使用exams2nops()时,您可以在header中动态重新定义{answerlist}环境
multicol <- "\\renewenvironment{answerlist}{\\renewcommand{\\labelenumii}{\\Alph{enumii}.}\\begin{multicols}{2}\\begin{enumerate}}{\\end{enumerate}\\end{multicols}}"
exams2nops(..., header = multicol)这会产生以下结果:

当然,根据答案列表中项目的典型长度,您还可以使用更多的列,例如{multicols}{4}。
此外,还有一个内置选项exams2nops(..., twocolumn = TRUE),它可以将整个文档的布局切换到两列(而不仅仅是答案列表)。下面是一个演示屏幕截图。
最后,在R- LaTeX:https://R-Forge.R-project.org/forum/forum.php?thread_id=33823&forum_id=4377&group_id=1337上的R/exams论坛上的这个帖子中讨论了一些使用{paralist}或{enumitem}而不是{multicols}的更多变体。

https://stackoverflow.com/questions/66779499
复制相似问题