R /考试:防止在两次考试中的两个段落之间出现分页符

时间:2020-09-26 22:53:07

标签: r latex r-exams

我目前正在使用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.

我不确定该怎么做。

1 个答案:

答案 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,以增加练习的枚举计数器。
  • R中必须使用双反斜杠(例如\\item),以便转义反斜杠,因为它们是特殊字符。