Файл CSL не применяется везде, если имеется две библиографии - PullRequest
3 голосов
/ 29 мая 2020

Следуя этому ответу о наличии двух библиографий в документе R Markdown, я только что увидел, что файлы CSL применяются не везде.

Действительно, в приведенном ниже примере:

---
title: "Cite R packages"
author: ''
date: ""
output:
  pdf_document:
    pandoc_args: --lua-filter=multiple-bibliographies.lua
bibliography_software: packages.bib
bibliography_normal: test.bib
csl: anabases.csl
---

This is a citation of a paper: @mayer2011.
This is a citation of an R package @R-dplyr
And another @R-knitr

# Bibliography{-}
\setlength{\parindent}{-0.2in}
\setlength{\leftskip}{0.2in}
\noindent
<div id = "refs_normal"></div>
\setlength{\parindent}{0in}
\setlength{\leftskip}{0in}
\setlength{\parskip}{0pt}

# Software used{-}
\setlength{\parindent}{-0.2in}
\setlength{\leftskip}{0.2in}
\noindent
<div id = "refs_software"></div>
\setlength{\parindent}{0in}
\setlength{\leftskip}{0in}
\setlength{\parskip}{0pt}

```{r cite-packages, echo=FALSE}

packages_used <- c("dplyr", "ggplot2", "knitr")

knitr::write_bib(packages_used, file = "packages.bib", tweak = TRUE)

```

Чтобы сообщение не было слишком длинным, см. здесь для содержимого multiple-bibliographies.lua и test.bib (packages.bib создается в конце файла .Rmd).

В этом примере я использую anabases.csl просто потому, что легко увидеть, был ли применен файл csl или нет. Посмотреть как это выглядит и скачать можно здесь . Проблема в том, что этот файл R Markdown применяет csl к цитатам в тексте, но не к библиографиям. На рисунке ниже вы можете видеть, что заглавные буквы нанесены на цитаты в тексте, но не в библиографиях, тогда как это должно быть так.

Это почему? Как я могу применить csl везде в документе?

Я думаю, что это нужно сделать в файле .lua, но не уверен.

Также спрашивается Сообщество RStudio

1 Ответ

0 голосов
/ 01 июня 2020

Решение можно найти в комментариях к этому ответу . Единственное, что нужно сделать, это заменить:

local tmp_meta = pandoc.Meta{bibliography = doc_meta['bibliography' .. name]}

на

local tmp_meta = pandoc.Meta{bibliography = doc_meta['bibliography' .. name], csl = doc_meta.csl}

в multiple-bibliographies.lua

...