sweave - 如何将 r-exams 问题中的小数点分隔符更改为逗号?

标签 sweave r-exams

我正在尝试在使用“r-exams/sweave”创建的问题中显示逗号作为小数分隔符。但是,我无法加载 siunitx 包或进行任何其他允许此更改的配置。我打算使用函数exams2moodle 将问题导出到moodle。

最佳答案

通过 LaTeX 包
siunitx 这样的 LaTeX 包或 icomma只能在通过 LaTeX 生成输出时使用(例如,exams2pdf 等)。但是,当 LaTeX 代码转换为 HTML 时(例如,在 exams2moodle 中),我不知道将带小数点的数字转换为小数点逗号的一般解决方案。
通过options(OutDec = ",")在 R 中
不过比较简单的是设置options(OutDec = ",")在 R 内。这项工作提供了:

  • 所有相关数字要么用逗号硬编码在文本中,要么用 r ... 动态生成或 \Sexpr{...} ,分别为
  • 可以保证 exsolutionnum练习仍然使用小数点。

  • 例如,考虑 schoice运动 deriv2 .它满足以上两项:1.所有数字都是从R动态插入的,2.它不是num锻炼。
    library("exams")
    options(OutDec = ",")
    exams2html("deriv2.Rmd")
    
    deriv2
    这同样适用于练习的 Rnw 版本。
    如果练习应始终生成带逗号的数字,您还可以包括 options(OutDec = ",")在练习文件开头的第一个代码块中并恢复为options(OutDec = ".")在最后的代码块中。
    使用 num运动 deriv也是可能的。但为了确保第 2 项,您要么需要写 fmt(res, decimal.mark = ".")而不仅仅是 fmt(res)exsolution或者恢复为 options(OutDec = ".")在添加元信息之前。
    通过fmt(..., decimal.mark = "{,}")在 R 中
    上述方法的一个小缺点是关注细节的观众可能会注意到在 LaTeX 数学模式下 $...$逗号后插入一个小空格。有关示例,请参见上面的屏幕截图。
    如果你想避免这种情况,那么 {,}需要用作小数点分隔符。不幸的是,options(OutDec)不支持这一点,因为它需要是长度为 1 的字符串。另外,OutDec可能还不够,因为数学模式中的数字需要 {,}而纯文本中的数字只需要 , .
    在这种情况下,最简单的解决方案是离开 options(OutDec)在系统默认。而是使用 fmt(..., decimal.mark = "{,}")对于数学模式中的数字和 fmt(..., decimal.mark = ",")纯文本。为了减少打字,您还可以添加两个便利功能,例如:
    cfmt <- function(x, ...) fmt(x, ..., decimal.mark = ",")
    mfmt <- function(x, ...) fmt(x, ..., decimal.mark = "{,}")
    
    而不是在 exams::fmt() 上构建函数你也可以使用函数base::format(..., decimal.mark = ...)如果您想自己处理任何舍入。
    要求
    请注意,传递 decimal.markfmt()至少需要 2.4-0 版的 R/exams。在撰写本文时,这是 R-Forge 提供的当前开发版本,但很快将发布到 CRAN。

    关于sweave - 如何将 r-exams 问题中的小数点分隔符更改为逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64027171/

    相关文章:

    r - 将 latex 添加到 knitr 多图

    r - 如何在R中设置用于编织的 latex 路径?

    r - 在 R 3.0.1 中使用 pdflatex 或类似的东西

    R/考试 : prevent page breaks between two paragraphs in exams2nops

    r - 如何在使用 Sweave 的投影仪演示文稿中更改字体?

    r - ESS和针织/编织: How to source the Rnw file into an interactive session?

    markdown - 使用 r-exams 包含 circuitikz 包

    r-exams - 添加跳过/未评分的开放式问题

    javascript - 倒数计时器问题

    r - 是否可以使用相同的问题但在每个版本中使用不同的顺序来分析不同考试的项目表现?