我目前正在使用R / exams软件包,特别是使用typeof(Y)
#[1] "double"
typeof(x)
#[1] "double"
函数创建考试,并且问题的顺序是随机的。除一个细节外,其他所有东西都工作正常:exams2nops
选项仅防止段落内的分页符。出于我的目的,有必要不要拆分任何练习。在一个文本中,仍然可以只写一个段落(尽管这对清晰性没有帮助)。不幸的是,每当我需要包括一个表时,我都被迫开始一个新的段落,该段落没有“保护”以防止分页。由于随机化,总会有一些副本,其中文本和表格被分成多页。我尝试了.Rmd和.Rnw文件,还尝试集成了某些LaTeX函数,例如samepage = TRUE
和\nopagebreak
,但没有成功。到目前为止,我对LaTeX的经验还不太丰富,在Google的帮助下,我也没有找到解决方案。
这里是我正在谈论的哪种练习的最小示例:
.Rmd
\needspace
.Rnw
Question
========
Some kind of question:
| A | B | C |
|:-:|:-:|:-:|
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
Answerlist
----------
* First option
* Second option
* Third option
Some further informational text.
我不确定该怎么做。
答案 0 :(得分:3)
samepage = TRUE
选项仅强制执行{answerlist}
在{samepage}
环境中,而不强制整个{question}
。
完成您想要做的事情的最简单的选择似乎是在{question}
参数中重新定义header =
环境。您可以尝试通过
{samepage}
环境中
exams2nops(...,
header = "\\renewenvironment{question}{\\item \\begin{samepage}}{\\end{samepage}}")
这可能必须与段落之间的某些\nopagebreak
命令结合使用。 (请参阅:Make an unbreakable block in TeX)
一个简单的解决方案可能是将每个练习放在自己的页面上,方法是在每个练习的末尾添加一个分页符:
exams2nops(...,
header = "\\renewenvironment{question}{\\item}{\\newpage}")
如果您不熟悉上述LaTeX语法:
\renewenvironment{foo}{...}{...}
重新定义环境“ foo”。...
是在环境开始时执行的。...
在结尾处执行。\item
,以增加练习的枚举计数器。\\item
),以便转义反斜杠,因为它们是特殊字符。