如何在 R 帮助文件/roxygen2 中交叉引用方程

发布于 2025-01-07 17:06:55 字数 1014 浏览 0 评论 0 原文

我正在为我正在制作的 R 包记录一些函数。

我正在使用 roxygen 标记,尽管这与我的问题很大程度上无关。

我已使用 \deqn{...} 将方程式放入我的文档中。我的问题是: 以后有办法交叉引用这个方程吗?

例如,在我的 Rd 文件中:

\deqn{\label{test}
 y = mx + b
}

我以后可以做类似的事情吗?

参考方程 \ref{test}, ...

我尝试过\eqref{test}\ref{test}(它们都得到“未知宏”和don't get linked ),还有 \link{test} (它抱怨它找不到函数 test 因为它实际上只是用于链接到其他函数)。

否则我担心我可能不得不做一些 hacky 并在 -- (1) 中添加 -- (1)Refertoeq(1) 手动 Rd 文件中的 \deqn 等...

更新

一般答案似乎是“否”。 (awww...)

但是,我可以写一个小插图并在那里使用“普通”乳胶/包。无论如何,我刚刚注意到我花了很长时间放入 roxygen/Rd 文件中的矩阵方程在帮助的 ?myFunction 版本中看起来很糟糕(它们显示为几乎字面的乳胶)来源)。这是一个遗憾,因为它们在 PDF 版本的帮助中看起来很漂亮。

@Iterator 指出了条件文本的存在,所以我将在 .Rd 文件中进行 ASCII 数学运算,而在 pdf 手册/小插图中进行 Latex 数学运算。

I'm in the process of documenting some of my functions for an R package I'm making.

I'm using roxygen markup, though that is largely irrelevant to my question.

I have put equations into my documentation using \deqn{...}. My question is:
Is there a way to cross-reference this equation later on?

For example, in my Rd file:

\deqn{\label{test}
 y = mx + b
}

Can I later do something like:

Referring to equation \ref{test}, ...

I've tried \eqref{test}, \ref{test} (which both get "unknown macro" and don't get linked ), and also \link{test} (which complains it can't find function test because it's really just for linking to other functions).

Otherwise I fear I may have to do something hacky and add in the -- (1) and Refer to equation (1) manually within the \deqn etc in the Rd file...

Update

General answer appears to be "no". (awww...)

However, I can write a vignette and use "normal" latex/packages there. In any case, I've just noticed that the matrix equations I spent ages putting into my roxygen/Rd file look awful in the ?myFunction version of the help (they show up as just-about literal latex source). Which is a shame, because they look beautiful in the pdf version of the help.

@Iterator has pointed out the existence of conditional text, so I'll do ASCII maths in the .Rd files, but Latex maths in the pdf manual/vignette.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌化 2025-01-14 17:06:55

为了其他人的利益,我将上面的评论整理成答案。

首先,我实际上不知道 .Rd 是否支持方程标记。然而,.Rd 格式是 LaTeX 的严格子集,并且产生非常原始的文本输出,因此将大量方程硬塞到其格式中可能是一项痛苦的任务,对用户没有太多好处。

另一种方法是使用包vignettes ,甚至是外部托管的文档(正如 Hadley Wickham 为他的一些软件包所做的那样)。这将允许您随心所欲地使用 PDF 或其他文档。通过这种方式,您可以包含屏幕截图、图表、所有只有您拥有的最时髦的 LaTeX 扩展,以及最重要的是我们都知道和喜爱的 AMS 扩展。

尽管如此,人们可以根据界面指定给定文档部分(在 .Rd 中)的不同呈现方式,例如控制台文本、HTML 的漂亮字符等,以及 条件文本 支持这种格式变化。

这是一个好问题。我不知道有关可行性的答案,但我对一起记录函数和方程有类似的问题,并且对 .Rd 文件的可行性的调查使我确信使用 PDF 插图而不是 .Rd 文件。

I'm compiling my comments above into an answer, for the benefit of others.

First, I do not actually know whether or not .Rd supports tagging of equations. However, the .Rd format is such a strict subset of LaTeX, and produces very primitive text output, that shoehorning extensive equations into its format could be a painful undertaking without much benefit to the user.

The alternative is to use package vignettes, or even externally hosted documentation (as is done by Hadley Wickham, for some of his packages). This will allow you to use PDFs or other documentation, to your heart's content. In this way, you can include screenshots, plots, all of the funkiest LaTeX extensions that only you have, and, most significantly, the AMS extensions that we all know and love.

Nonetheless, one can specify different rendering of a given section of documentation (in .Rd) based on the interface, such as text for the console, nice characters for HTML, etc., and conditional text supports that kind of format variation.

It's a good question. I don't know the answer regarding feasibility, but I had similar questions about documenting functions and equations together, and this investigation into what's feasible with .Rd files has convinced me to use PDF vignettes rather than .Rd files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文