如何解决R/exams 中的答案列表由几列分布以节省纸张空间
我想将 R/exams 中的答案列表配置为按列分发:
A.答案 1. C. 答案 3.
B.答案 2. D. 答案 4.
在 LaTeX 中,我使用了 multicol
包。 R/考试也可以这样做吗?
解决方法
用于生成打印在纸上的 PDF 文件的 R/exams 接口是 exams2pdf()
和 exams2nops()
(构建在 exams2pdf()
之上)。这两者都在后台使用 LaTeX,并允许调整用于呈现答案列表的环境。所以答案是:是的,您也可以为此使用 {multicols}
LaTeX 包中的 multicol
环境。
更具体地说,在 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()
时,您可以简单地在传递给 {answerlist}
的 LaTeX 主模板中定义这样的 exams2pdf(...,template = ...)
环境。
当您使用 exams2nops()
时,您可以在 {answerlist}
中即时重新定义 header
环境:
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-Forge 的 R/exams 论坛中的此主题中讨论了更多使用 LaTeX 环境 {paralist}
或 {enumitem}
而不是 {multicols}
的变体:{{3 }}。
https://R-Forge.R-project.org/forum/forum.php?thread_id=33823&forum_id=4377&group_id=1337
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。