我想在我的rmarkdown文档中使用bib2gls
latex包,在我编写pdf文档时插入.bib文件中的首字母缩略词列表。
不起作用:
使用.bib文件存储我的首字母缩略词。例如:
abbreviations.bib文件:
@abbreviation{ecoli,
short={E.~coli},
long={Escherichia coli}
}
@abbreviation{raustralis ,
short ={R.~ australis},
long={Rickettsia australis}
}
preamble.tex
% fixes problem with glossaries causing mathspec
% to return an error asking for amsmath to be loaded first
\makeatletter
\let\RequirePackage\original@RequirePackage
\let\usepackage\RequirePackage
\makeatother
% using bib2gls
\usepackage[record,abbreviations,style=index]{glossaries-extra}
\setabbreviationstyle{long-short}
\GlsXtrLoadResources[src={abbreviations},selection={all}]
rmarkdown文件:
---
output:
pdf_document:
latex_engine: xelatex
includes:
in_header: preamble.tex
title: "mwe"
---
## R Markdown
This is the first instance \gls{ecoli}, \gls{raustralis}. This is the second instance: \gls{ecoli}, \gls{raustralis}.
\printunsrtglossary[title={Abbreviations},type=abbreviations]
什么有效:
删除\GlsXtrLoadResources[src={abbreviations},selection={all}]
并将我的条目添加到序言中。
% using bib2gls
\usepackage[abbreviations,style=index]{glossaries-extra}
\setabbreviationstyle{long-short}
\newabbreviation{ecoli}{E.~coli}{Escherichia coli}
\newabbreviation{raustralis}{R.~australis}{Rickettsia australis}
如果可能的话,我想在第一种方法中使用单独的.bib文件。除非有更好的方法在R中执行此操作。会话信息如下:
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
答案 0 :(得分:2)
问题是bib2gls
需要运行一个额外的程序,它从bib
文件中提取词汇表条目,但rmarkdown
不知道这一点。一般来说,如果你想在LaTeX方面做一些更复杂的事情,latexmk
很有可能已经知道如何做到这一点。我不确定这是否是这种情况,c.f。 https://tex.stackexchange.com/questions/400325/latexmkrc-for-bib2gls。但是,您可以尝试使用
```{r echo=FALSE}
Sys.setenv(RSTUDIO_PDFLATEX = "latexmk")
```