如何设置对“判例”的引用?

时间:2019-02-10 06:57:54

标签: r r-markdown knitr pandoc csl

尽管我在bibliography.bib中的条目全部用大写字母写成句子,但我的引用却变成了标题用例(红色下划线)。我该怎么解决?

编辑: @ user2554330的回答表明必须编辑*.csl文件。由于rmarkdown默认情况下使用Chicago author-date format for citations and references,因此知道要在*.csl中准确编辑'text case'的位置会很有帮助。

enter image description here

Rmarkdown代码:

---
title: 'Untitled'
output: pdf_document
bibliography: "bibliography.bib"
---

Lorem ipsum dolor sit amet [@einstein_ist_1905; @hawking_thermodynamics_1983].

# References 
<div id="refs"></div>

bibliography.bib的内容:

@article{einstein_ist_1905,
    title = {Ist die {Trägheit} eines {Körpers} von seinem {Energieinhalt} abhängig?},
    volume = {323},
    url = {https://s3.amazonaws.com/objects.readcube.com/articles/downloaded/wiley/a56a92baf12b80889d9de6f28f51f22f8bec1a2b366de4e8171f0d47e890d37a.pdf?response-content-disposition=attachment%3B%20filename%3D%22Einstein-1905-Annalen_der_Physik.pdf%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIS5LBPCM5JPOCDGQ%2F20170830%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170830T124037Z&X-Amz-Expires=127162&X-Amz-SignedHeaders=host&X-Amz-Signature=3de93a7b9a7edbcc0676232820c448641df14f4a22d339ad07a8cc06200d7632},
    doi = {doi:10.1002/andp.19053231314},
    urldate = {2017-08-30},
    journal = {Ann. Phys.},
    author = {Einstein, Albert},
    year = {1905},
    pages = {639--641},
    file = {a56a92baf12b80889d9de6f28f51f22f8bec1a2b366de4e8171f0d47e890d37a.pdf:C\:\\Users\\jay\\Zotero\\storage\\TTPHSMIX\\a56a92baf12b80889d9de6f28f51f22f8bec1a2b366de4e8171f0d47e890d37a.pdf:application/pdf}
}

@article{hawking_thermodynamics_1983,
    title = {Thermodynamics of black holes in anti-de {Sitter} space},
    volume = {87},
    issn = {0010-3616, 1432-0916},
    url = {http://link.springer.com/10.1007/BF01208266},
    doi = {10.1007/BF01208266},
    language = {en},
    number = {4},
    urldate = {2017-10-13},
    journal = {Communications in Mathematical Physics},
    author = {Hawking, S. W. and Page, Don N.},
    month = dec,
    year = {1983},
    pages = {577--588},
    file = {57cae4b908ae3ac722b1eaa1.pdf:C\:\\Users\\jay\\Zotero\\storage\\DZ38DDCK\\57cae4b908ae3ac722b1eaa1.pdf:application/pdf}
}

会话信息

> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.5.2  backports_1.1.3 rprojroot_1.3-2 htmltools_0.3.6 tools_3.5.2    
 [6] yaml_2.2.0      Rcpp_1.0.0      rmarkdown_1.8   knitr_1.21      xfun_0.4       
[11] digest_0.6.18   evaluate_0.12  

> rmarkdown::pandoc_version()
[1] ‘1.19.2.1’

# MiKTeX 2.9

1 个答案:

答案 0 :(得分:2)

您可以使用YAML标头中的csl字段指定所需的样式,例如

---
title: 'Untitled'
output: pdf_document
bibliography: "bibliography.bib"
csl: the-astronomical-journal.csl
---

http://zotero.org/styles可以浏览大量样式,在https://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html可以找到更多的书目处理细节。

编辑后添加:如果您有一个csl文件,但除大写字母之外都很好,那么只需删除上面写着text-case="capitalize-first"text-case="title"text-case="lowercase"之类的行即可具有不良情况处理的字段,以及您在bib文件中使用的任何大写字母都将被复制到书目中。

进一步编辑:如果要输出PDF,则可以使用natbibbiblatex来生成书目,并使用与之兼容的任何BibTeX样式。您甚至可以使用命令行命令latex makebst来定制样式。如果您选择将样式foo.bstnatbib一起使用,则您的YAML应该看起来像

---
title: 'Untitled'
output: 
  pdf_document:
    citation_package: natbib
bibliography: "bibliography.bib"
biblio-style: foo
---

csl样式相比,它具有一个优势,它会尊重bib文件中的大写标记,同时允许进行更改以适合您的口味。