Сортировка записей библиографии Pandoc citeproc выполняется в соответствии с порядком записей в файле bib

#pandoc #csl #pandoc-citeproc

Вопрос:

Когда я конвертирую файл markdown в pdf, порядок ссылок в списке литературы такой же, как и в .bib файле. В результате ссылки в тексте отображаются в неправильном порядке. В результате я могу иметь в тексте предложения, подобные ... reported in [2] after [1] ... тем, которые я хотел бы, чтобы ссылки были отсортированы в библиографии по мере их появления в тексте, как это было бы при использовании unsrt.bib .

Вопрос в следующем: как мне добиться сортировки записей в разделе библиографии в порядке их появления в тексте?

MWE, скомпилированный с использованием pandoc -C -f markdown testing.md -o testing.pdf

testing.md:

 ---
bibliography: test.bib
csl: aps.csl
---

The first reference [@second_title_2015]

The second reference [@author_title_2014]
 

тест.нагрудник

 @article{author_title_2014,
  title = {The title},
  author = {Author, A. B. and Other, C. D.},
  year = {2014},
}

@article{second_title_2015,
  title = {The other title},
  author = {Second, T. A. and First, F. G.},
  year = {2015},
}
 

Вывод

Иллюстрация порядка ссылок

Изменение порядка @article ‘s в test.bib приводит к желаемому результату: The first reference [1] the second reference [2] .

Я использую aps.csl репозиторий стиля, взятый из zotero: https://www.zotero.org/styles/american-physics-society?источник=1

причина проблемы:

У меня был устаревший pandoc, установленный conda (pandoc является необходимым условием для некоторых важных пакетов, в которых я нуждался), и эта версия имела приоритет над установкой arch по умолчанию из $PATH -за того, что ранее был каталог исполняемых файлов conda /bin/ .

Ответ №1:

Вы использовали устаревший pandoc? Я протестировал ваш код с помощью pandoc 2.13, который выдал правильный вывод. Вы можете получить последнюю версию здесь.

 pandoc --version
pandoc 2.13
Compiled with pandoc-types 1.22, texmath 0.12.2, skylighting 0.10.5,
citeproc 0.3.0.9, ipynb 0.1.0.1

pandoc -C -f markdown testing.md -o testing.pdf
 

введите описание изображения здесь

Комментарии:

1. Да, я это сделал. Кто бы ни столкнулся с той же проблемой: у меня был устаревший pandoc, установленный conda (pandoc является необходимым условием для некоторых важных пакетов, в которых я нуждался), и эта версия имела приоритет над установкой arch по умолчанию из-за того, что каталог исполняемых файлов conda был $PATH перед `/bin/.