2013-03-04 90 views
5

在试图为this question寻找解决方案时,我发现自己试图编写有效的Rd标记。我想要的是添加一个名为Raw Function Code的部分,并将该函数的代码放在它下面。我已经写一个脚本来修改Rd文件实现在这方面有限的成功,包括如何在编写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中,并且都没有产生想要的结果。我能做些什么来保持我最初的空白空间?

+0

当您使用R CMD Rd2pdf时,您是否尝试过'\ begin {verbatim} ... \ end {verbatim}' – 2013-03-04 05:30:11

+0

\ begin和\ end是未知的宏。也许我必须使用Rdconv,然后在乳胶中添加我的额外代码而不是Rd。看起来很奇怪,没有办法给代码添加缩进。 – russellpierce 2013-03-04 05:50:55

回答

1

\section宏包含文本的乳液型,但只要你想编写代码,你可以使用\synopsis宏,即

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

有一个问题,这虽然;你不能给这个部分命名,它会自动命名为另一个使用部分。通过使用\examples宏也可以达到同样的效果,但是现在该部分的名称是Examples,这可能更加可疑(更不用说您可能已经有了Examples部分)。

+0

哇,令人沮丧。 '\ examples'和'\ usage'宏正是我想要的。他们处于类似R的模式。 '\ synopsis'处于逐字模式,这是可行的,但低于标准。看起来\ Sexpr应该能够提供我想要的,但部分? ==有时候......所以谁知道这意味着什么。 – russellpierce 2013-03-04 21:31:15

+1

它看起来像'\ Sexpr'可以在部分工作,并与选项eval = FALSE,results = rd和echo = TRUE它会做你想要的,但我可以得到它正常工作... – 2013-03-05 04:58:32

+0

它应该工作在理论。在实践中,我无法实现它的工作。我偶然发现了“舞台”和“结果”选项,但还没有找到可靠的组合。我不知道你是说你还是无法工作。如果你是,请分享.Rd代码作为答案。 – russellpierce 2013-03-05 06:08:05

1

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

(这个答案设为社区维基的情况下的事务改变这种状态。这样的结果是R-2.15.1的电流)

0

如果你想要一个超级哈克的方式做到这一点,你可以用\Sexpr使零个字符宽度以及它们之间添加空格:但是

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

一个警告 - 你的包将建立罚款,但[R CMD检查将抛出一个合适的。

相关问题