6

在尝试为自己找到关于这个问题的解决方案的同时,我发现自己陷入了尝试编写有效的 Rd 标记的过程中。我想要的是添加一个名为的部分并将Raw Function Code函数的代码放在它下面。通过编写脚本来修改 Rd 文件以包含

\section{Raw Function Code}{\code{
# some piece of R script will eventally provide this part of the text
}}

但是,即使我在 .Rd 文件中手动正确分隔文本(使用空格或制表符),每行的初始空白似乎也会被剥离,留下一个不受欢迎的功能。我注意到,如果我在空白之前提供一个起始字符,则会保留空白。但是,我不想提供起始字符,因为我希望人们能够直接从生成的 PDF 中复制和粘贴。

我已经查看了parseRd,并且我知道有三种类型的文本 LaTeX-like、R-like 和 verbatim。我试图将我的函数代码放在 \code 和 \verb 中,但似乎都没有产生预期的结果。我能做些什么来保持我最初的空白?

4

3 回答 3

1

宏包含 LaTeX 类型的\section文本,但是当你想编写代码时,你可以使用\synopsis宏,即

\synopsis
# some piece of R script will eventally provide this part of the text
} 

但是,这有一个问题;你不能给这个部分命名,它会自动命名为另一个使用部分。同样的事情可以通过使用\examples宏来实现,但是现在该部分的名称是示例,这可能更加可疑(更不用说您可能已经有了示例部分)。

于 2013-03-04T20:51:26.270 回答
1

如果不修改 Rd 代码的用法或示例部分,这是不可能的。有关可用的解决方法,请参阅 Hemmo 的答案。它以逐字模式生成文本,这是次优的,但总比没有好。

(这个答案设置为社区 Wiki,以防这种情况发生变化。这个结果是 R-2.15.1 的最新结果)

于 2013-03-05T07:13:28.920 回答
0

如果您想要一种超级 hacky 的方式来做到这一点,您可以使用\Sexpr零宽度字符并在它们之间添加空格:

#' first line \cr
#'\Sexpr{"\u200B"} \Sexpr{"\u200B"} \Sexpr{"\u200B"} \Sexpr{"\u200B"} indented line

然而,一个警告 - 你的包会构建得很好,但 R CMD CHECK 会抛出一个合适的。

于 2016-04-22T12:03:40.253 回答