R 可以帮助手册中包含乳胶数学吗?

问题描述 投票:0回答:2

我正在开发一个

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
不适应这个?

r latex roxygen2
2个回答
31
投票

有点。如果您想在纯文本输出中使用 LaTeX 标记的(未处理的)版本,请使用类似

\eqn{x_1}
的内容(或者您也可以说类似
\eqn{x_1}{x1}
的内容)。 “某种程度上”的部分是,我不确定 LaTeX 处理将针对哪种特定输出格式进行——例如,我猜测您会在(例如) RStudio 文档窗格将尊重此标记。 (LaTeX 标记肯定用在手册的 PDF 版本中,我几乎从不看……)

我将继续引用 Writing R Extensions ...

数学部分

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

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

以下示例来自 Poisson.Rd:

\deqn{p(x) = rac{\lambda^x e^{-\lambda}}{x!}}{%
p(x) = \lambda^x exp(-\lambda)/x!} 对于 qn{x = 0, 1, 2, \ldots}。


这个答案,上面指定的 LaTeX 表达式现在将以 HTML 和 PDF 格式呈现:

R 4.2.0 中添加了对 Rd 文件 HTML 渲染中 KaTeX 的支持。 R 4.2.2 中添加了 Rd 文件 PDF 渲染中对 amsmath 的支持。因此,带有 Depends: R (>= 4.3) 的包可以使用 \deqn 安全地指定多行方程。


12
投票

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

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

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

因此,使用

\eqn
\deqn
是推荐的官方方式。

© www.soinside.com 2019 - 2024. All rights reserved.