我希望在我的rmarkdown文档中使用bib2gls latex包来插入一个.bib文件中的缩略词列表,当我编织到一个pdf文档时。
不工作:
使用.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 发布于 2018-06-01 10:58:45
问题是bib2gls需要运行一个额外的程序,该程序从bib文件中提取术语表条目,但是rmarkdown不知道这一点。一般来说,如果您想在LaTeX方面做一些更复杂的事情,那么很可能latexmk已经知道如何这样做了。我不确定情况是否如此,c.f。https://tex.stackexchange.com/questions/400325/latexmkrc-for-bib2gls。但是,您可以尝试使用
```{r echo=FALSE}Sys.setenv(RSTUDIO_PDFLATEX = "latexmk")
https://stackoverflow.com/questions/50629413
复制相似问题