【问题标题】:Can R help manuals have latex math in them?R帮助手册中可以包含乳胶数学吗?
【发布时间】:2023-03-17 04:32:01
【问题描述】:

我正在开发一个 R 包,我正在使用包 Roxygen2 为我的 R 函数编写帮助手册。我想知道的是是否可以在手册页中将乳胶用于数学方程式?

例如,如果我有一个名为 add2 的函数,它执行以下操作:

add2 = function(x,y){
       z = x+y
       return(z)
}

使用Roxygen2 文档,我得到了以下信息:

##' @include add2.R
{}

##' Compute the sum of x_1 and x_2
##'
##' Computes the sum of x_1 and x_2
##'
##' @param x_1 number of guys
##' @param x_2 number of girls
##' @return The sum of the two values x_1 and x_2
##'
##' @example examples/adding.R
##' @export
##' @author Name

这对我有用,但是这在帮助手册中将 x1 和 x2 显示为 x_1 和 x_2 而我希望它看起来像乳胶数学并且实际上在 x 上有下标,即 $x_1$ 和 $x_2 $乳胶。

有没有办法做到这一点,或者R 不接受这个?

【问题讨论】:

  • BenBolker 的回答是准确的。顺便说一句,我通常只对\eqn 和\deqn 的格式结果部分满意

标签: r latex roxygen2


【解决方案1】:

有点。如果您想在纯文本输出中使用(未处理)版本的 LaTeX 标记,请使用类似 \eqn{x_1} 的内容(或者您可以说类似 \eqn{x_1}{x1} 的内容)。 “某种”部分是我不确定 LaTeX 处理将针对哪些特定输出格式进行临时处理——例如,我猜测你会在(例如)中看到的输出的 HTML 格式版本RStudio 文档窗格将不尊重此标记。 (LaTeX 标记肯定将用在手册的 PDF 版本中,我几乎从不看...)

我将继续引用Mathematics section of Writing R Extensions ...

数学公式应该为印刷文档设置精美,但我们仍然需要一些对文本和 HTML 在线帮助有用的东西。为此,使用了 \eqn{latex}{ascii} 和 \deqn{latex}{ascii} 这两个命令。 \eqn 用于“内联”公式(对应于 TeX 的 $...$),\deqn 给出“显示方程”(如在 LaTeX 的 displaymath 环境中,或 TeX 的 $$...$$)。两个参数都被视为“逐字”文本。

这两个命令也可以用作 \eqn{latexascii}(只有一个参数),然后用于 latex 和 ascii。命令和第一个参数之间不允许有空格,第一个和第二个参数之间也不允许有空格。

以下示例来自 Poisson.Rd:

\deqn{p(x) = \frac{\lambda^x e^{-\lambda}}{x!}}{%

p(x) = \lambda^x exp(-\lambda)/x!} 对于 \eqn{x = 0, 1, 2, \ldots}。


截至 2020 年 5 月 8 日,Wolfgang Viechtbauer 的 mathjaxr package 在 CRAN 上。它

提供“MathJax”和宏,以便在 Rd 文件中使用它来呈现 HTML 帮助文件中的方程式。

来自README file:

[安装包后,适当编辑包DESCRIPTION文件,并将\loadmathjax{}添加到Rd文件...a]n内联方程然后可以使用\mjeqn{latex}{ascii}宏添加在第一组大括号之间给出的方程式(将在 HTML 和 PDF 帮助页面中呈现)和在第二组大括号之间给出的方程式的纯文本版本(将在纯文本帮助中显示) .使用\mjdeqn{latex}{ascii} 宏,可以添加“显示方程”(就像在 LaTeX 的 displaymath 环境中一样)。

【讨论】:

  • 更多关于mathjaxrhere。
【解决方案2】:

引用 Hadley Wickham 的 O'Reilly 的“R Packages”:

您可以使用标准的 LaTeX 数学(没有扩展)。选择内联或块显示:

  • \eqn{a + b}:内联方程
  • \deqn{a + b}:显示(块)方程

所以,使用\eqn 和\deqn 是推荐的官方方式。

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 2014-03-24
    • 2016-12-21
    • 1970-01-01
    • 2011-07-06
    • 2014-01-18
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多