首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R/exams中的答案列表按多个列分布,以节省试卷空间

R/exams中的答案列表按多个列分布,以节省试卷空间
EN

Stack Overflow用户
提问于 2021-03-24 18:52:13
回答 1查看 49关注 0票数 1

我想将R/exams中的答案列表配置为按列分发:

答1。答3。

B.答案2. D.答案4。

在LaTeX中,我使用了multicol包。这对于R/exams也是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 10:31:25

用于生成在纸上打印的PDF文件的R/exams接口是exams2pdf()exams2nops() (构建在exams2pdf()之上)。这两种方法都在后台使用LaTeX,并允许调整用于呈现答案列表的环境。所以答案是:是的,您也可以使用multicol LaTeX包中的{multicols}环境来实现这一点。

更具体地说,在LaTeX代码中,您的答案列表将被写为:

代码语言:javascript
复制
\begin{answerlist}
  \item Answer 1.
  \item Answer 2.
  \item Answer 3.
  \item Answer 4.
\end{answerlist}

然后,此{answerlist}的呈现取决于文档头中对此环境的定义。随软件包一起提供的exams2nops()exams2pdf()演示模板中的默认设置为:

代码语言:javascript
复制
\newenvironment{answerlist}%
  {\renewcommand{\labelenumii}{(\alph{enumii})}\begin{enumerate}}%
  {\end{enumerate}}

简而言之,这只是使用标准{enumerate}环境并将计数器切换到(\alph{...})格式,即(a)、(b)、...在exams2nops()中,默认情况下会生成以下输出:

或者,您可以按照以下方式(重新)定义此环境,即使用{multicols}{2}布局并将计数器的格式切换为A、B、...

代码语言:javascript
复制
\newenvironment{answerlist}%
  {\renewcommand{\labelenumii}{\Alph{enumii}.}\begin{multicols}{2}\begin{enumerate}}%
  {\end{enumerate}\end{multicols}}

当您使用exams2pdf()时,您可以简单地在传递给exams2pdf(..., template = ...)的LaTeX主模板中定义{answerlist}环境。

当您使用exams2nops()时,您可以在header中动态重新定义{answerlist}环境

代码语言:javascript
复制
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}的更多变体。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66779499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档