引用使用roxygen2的文章

时间:2015-01-28 11:16:49

标签: r

this question一样,我想在函数文档中引用文章。我对所有文档都使用了roxygen2,并且看起来pull requestroxygen2具有必要的功能,但是Hadley在roxygen2处于维护模式时将其拒绝了。从那时起事情发生了变化?是否有其他方式引用/包含以BibTeX格式存储的文章引用?

2 个答案:

答案 0 :(得分:4)

Rdpack package承诺提供您请求的功能。

要进行设置,您还需要将行RdMacros: Rdpack添加到包的DESCRIPTION文件中(注意大写字母M),然后将Rdpack添加到Imports:字段。

然后您可以将bibtex库保存到inst/REFERENCES.bib,并在文档中引用它们:

#' @references{
#'   \insertRef{bibtexKey}{YourPackageName}
#' }
#'
#' # The below line ought to be included in at least one of your documentation
#' # sections, so that roxygen2 adds Rdpack to your NAMESPACE file.
#'
#' @importFrom Rdpack reprompt

我第一次使用这个包时最初遇到了一些错误;重新启动R似乎可以解决问题。

如果使用unknown macro '\insertRef'构建文档,则会遇到有关devtools::document()的警告,因为devtools不会读取DESCRIPTION文件的'RdMacros'行;他们可以安全地被忽略。 devtools可能无法正确呈现引用,但最终将构建包时;要在过渡期间以正确的格式查看它们,您可以从单独的命令窗口运行R CMD Rd2pdf

答案 1 :(得分:1)

由ms609很好地概括。我要补充一点的是,Rdpack在2018年的发布中还提供了用于引用的宏,以及使用单个命令$(".commentbt").click(function(){ var status_id = $(this).closest("div.img-push").find("input[name='status_id']").val(); var comment = $(this).closest("div.img-push").find("textarea[name='comment']").val(); alert(comment); var dataString = 'status_id='+ status_id +'&comment='+ comment; if(comment==''||status_id==''){ alert('Can not send empty comment') } else{ $('#display_comment').show(); //$("#display_comment").fadeIn(100).html('<img src="<?php //echo base_url();?>uploads/ajax-loader.gif" />Loading Comment...'); $.ajax({ type:"POST", url:"<?php echo site_url('user/postcomment')?>", data:dataString, cache:false, success: function () { $(document).ready(function(){ var status_id = $("#stid").val(); $.post('<?php echo site_url('user/getcomments');?>', { status_id:status_id }, function(data){ $("#display_comment").html(data); }); }); $('#com')[0].reset(); } }); }return false; }); }); 生成参考书目的能力。也通过ms609链接的小插图Inserting_bibtex_references提供了最新信息。

insertAllCited{}可用于查看渲染的引文,而无需构建程序包,例如:

Rdpack::viewRd()

这对Rdpack::viewRd("./man/filename.Rd") # text Rdpack::viewRd("./man/filename.Rd", type = "html") # html 用户特别有用,因为roxygen2处理Rd文件但不呈现引用。只是不要忘记在调用roxygen2之前使用devtools::document()或其他合适的命令来更新文档。