与this question一样,我想在函数文档中引用文章。我对所有文档都使用了roxygen2
,并且看起来pull request到roxygen2
具有必要的功能,但是Hadley在roxygen2
处于维护模式时将其拒绝了。从那时起事情发生了变化?是否有其他方式引用/包含以BibTeX格式存储的文章引用?
答案 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()
或其他合适的命令来更新文档。