在编写Rd文档时,如何保留行中的初始空格?

时间:2013-03-04 04:53:29

标签: r literate-programming roxygen2 rd

在尝试为this question寻找自己的解决方案时,我发现自己陷入了尝试编写有效的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- 喜欢,像R,和逐字。我试图将我的功能代码放在\ code和\ verb中,似乎都没有产生预期的结果。我该怎么做才能抓住我最初的空白区域?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如果你想要一个超级hacky方法,你可以使用\Sexpr制作零宽度字符并在它们之间添加空格:

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

但是警告 - 你的包装会很好,但是R CMD CHECK会合适。