Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-help手册中可以包含latex数学吗?_R_Latex_Roxygen2 - Fatal编程技术网

R-help手册中可以包含latex数学吗?

R-help手册中可以包含latex数学吗?,r,latex,roxygen2,R,Latex,Roxygen2,我正在开发一个R软件包,我正在使用该软件包Roxygen2为我的R功能编写帮助手册。我想知道的是,是否有可能在手册页面中使用latex作为数学方程 例如,如果我有一个名为add2的函数,它执行以下操作: add2 = function(x,y){ z = x+y return(z) } ##' @include add2.R {} ##' Compute the sum of x_1 and x_2 ##' ##' Computes the sum of x_1

我正在开发一个
R
软件包,我正在使用该软件包
Roxygen2
为我的
R
功能编写帮助手册。我想知道的是,是否有可能在手册页面中使用latex作为数学方程

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

add2 = function(x,y){
       z = x+y
       return(z)
}
##' @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
使用
Roxygen2
文档,我得到了以下信息:

add2 = function(x,y){
       z = x+y
       return(z)
}
##' @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,而我希望它看起来像latex数学,实际上在x上有下标,即,latex中的$x_1$和$x_2$


有没有办法做到这一点,或者
R
不适应这一点?

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

我将继续引用

数学公式应该设置精美的印刷文档,但我们仍然需要一些有用的文本和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)的研究报告已在CRAN上发表。它

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

从:

[安装软件包后,适当编辑软件包描述文件,并将
\loadmathjax{}
添加到Rd文件中…然后可以使用
\mjeqn{latex}{ascii}
宏添加一个内联方程式,并在第一组花括号之间为方程式提供latex命令(将在HTML和PDF帮助页面中呈现)以及在第二组花括号(将在纯文本帮助中显示)之间给出的方程式的纯文本版本。使用
\mjdeqn{latex}{ascii}
宏,可以添加“显示的方程式”(如latex的
displaymath
环境中)

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

您可以使用标准LaTeX math(无扩展)。在内联显示或块显示之间进行选择:

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

因此,使用
\eqn
\deqn
是推荐的官方方法。

本博克的答案是准确的。顺便说一句,我通常对
\eqn
\deqn
的格式结果只感到部分满意