使用带有rmarkdown的bib2gls无法呈现词汇表

时间:2018-05-31 17:04:52

标签: latex r-markdown knitr

我想在我的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]

编织rmarkdown文档时的输出如下: enter image description here

什么有效:

删除\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}

enter image description here

如果可能的话,我想在第一种方法中使用单独的.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  

1 个答案:

答案 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")
```