如何在papaja .Rmd文档中高亮含特定字符串的参考文献?
在papaja中给特定参考文献内容加强调的方法
可以实现,下面提供两种实用方案:
方案1:修改apa7.csl样式文件
- 把你当前使用的
apa7.csl复制一份到项目文件夹(别直接改系统里的文件,避免影响其他项目) - 用文本编辑器打开这份复制的csl文件,找到处理作者姓名的代码段(通常包含
<name variable="author">) - 添加条件判断逻辑,当匹配到目标作者姓名时,用粗体格式包裹。比如要加粗作者"Smith, J.",修改示例如下:
<name variable="author"> <choose> <if includes="Smith, J."> <text font-weight="bold"> <name-part name="family"/> <name-part name="given" initialize="true" form="short"/> </text> </if> <else> <name-part name="family"/> <name-part name="given" initialize="true" form="short"/> </else> </choose> </name> - 保存修改后的csl文件(比如命名为
bold-author-apa7.csl),然后在.Rmd的YAML头部指定使用这个修改后的样式:bibliography: your-references.bib csl: bold-author-apa7.csl
方案2:渲染后用脚本批量替换
如果不想修改csl文件,可在文档渲染完成后,用脚本替换目标内容:
- PDF输出:先渲染生成.tex文件,再替换目标字符串为粗体后重新编译:
# 第一步:渲染Rmd生成初始.tex和PDF rmarkdown::render("your-document.Rmd") # 第二步:读取并修改.tex文件 tex_text <- readLines("your-document.tex") tex_text <- stringr::str_replace_all(tex_text, "Smith, J.", "\\textbf{Smith, J.}") writeLines(tex_text, "your-document-bold.tex") # 第三步:重新编译修改后的.tex为PDF tinytex::latexmk("your-document-bold.tex") - HTML输出:直接修改生成的HTML文件,给目标字符串加上
<strong>标签,可通过R的rvest包或者JavaScript实现。
内容的提问来源于stack exchange,提问作者Ladislas Nalborczyk
相关产品推荐
相关产品推荐

