Использование коротких цитат авторов в bookdown / rmarkdown

В своем отчете я цитирую Стандарты образовательного и психологического тестирования, разработанные AERA, APA и NCME.

@Book{standards,
  title = {{Standards for Educational and Psychological Testing}},
  author = {{American Educational Research Association} and {American Psychological Association} and {National Council on Measurement in Education}},
  shortauthor = {AERA},
  publisher = {American Educational Research Association},
  address = {Washington, DC},
  year = {2014}
}

Согласно руководству по стилю APA, 6-е изд., Следует использовать узнаваемые сокращения для организаций-разработчиков. Когда я впервые цитирую эту книгу по тексту, она должна выглядеть так:

Вот несколько вспомогательных текстов (Американская ассоциация исследований в области образования [AERA], Американская психологическая ассоциация и Национальный совет по измерениям в образовании, 2014 г.). И еще несколько текстов-заполнителей (AERA et al., 2014).

Однако в настоящее время мои цитаты выглядят следующим образом:

Вот несколько вспомогательных текстов (Американская ассоциация исследований в области образования, Американская психологическая ассоциация и Национальный совет по измерениям в образовании, 2014 г.). А вот еще текст-заполнитель (Американская ассоциация исследований в области образования и др., 2014).

Есть ли способ разместить эти цитаты в резервной копии? Ниже приведен минимально воспроизводимый пример: https://github.com/wjakethompson/bookdown-citations


person Jake Thompson    schedule 17.01.2018    source источник
comment
Также полезно для Всемирной организации здравоохранения (ВОЗ), Центров по контролю и профилактике заболеваний (CDC). Возможно, доступно при использовании LaTeX; однако короткий автор в .bib у меня не работает.   -  person penguinv22    schedule 23.01.2018


Ответы (2)


Я разработал частично рабочее решение. Это решение выводит на печать длинный автор и сокращенную версию, но работает только для одного автора, а поскольку для настройки используется LaTeX, оно работает только для выходных PDF-файлов.

Адаптируя предоставленный вами пример, я создал библиографию test.bib следующим образом:

@Book{standards2,
  title = {{Standards for Educational and Psychological Testing}},
  author = {{American Educational Research Association}},
  shortauthor = {AERA},
  publisher = {American Educational Research Association},
  address = {Washington, DC},
  year = {2014}
}

Также создается файл header.tex. Это определяет новую команду LaTeX \citefull, которая распечатывает цитату в формате (author [shortauthor], year). Подход был основан на этом ответе здесь. Содержимое файла выглядит следующим образом:

\DeclareCiteCommand{\citefull}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \DeclareNameAlias{labelname}{first-last}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   (\printnames{author}
   [\printnames{shortauthor}],
   {\printdate})
   }

  {\usebibmacro{postnote}}

% Adds a comma between the author and year
\renewcommand*{\nameyeardelim}{\addcomma\space}

Ниже находится файл Rmarkdown. Внесены изменения для использования biblatex в качестве пакета цитирования. Чтобы получить полную цитату, можно использовать команду \citefull{}.

---
output: 
  pdf_document:
    includes:
      in_header:  header.tex
    citation_package: biblatex
bibliography: test.bib
biblio-style: authoryear

---

\citefull{standards2}

[@standards2]

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


Дополнительные замечания

Как я уже сказал, это частичное решение, поскольку оно не работает для нескольких авторов, и я должен признать, что мои знания о настройке цитирования LaTeX не так уж далеко! Надеюсь, кто-то сможет расширить этот ответ, чтобы улучшить эту функциональность.

Я попытался использовать решение, объясненное здесь, но поскольку оно требует пакетов LaTeX для загрузки перед biblatex потребуется изменить шаблон pandoc .tex. Я чувствовал, что это менее оптимально, чем использование файла заголовка.

Даже если бы я отредактировал исходный шаблон, у меня все еще были проблемы с тем, чтобы это решение работало. Я получал сообщение об ошибке \DeclareLanguageMappingSuffix и не мог понять, где я что-то испортил.

Я надеюсь, что эти заметки помогут всем, кто рассматривает поиск лучшего решения.

person Michael Harper    schedule 09.04.2018

Мне удалось улучшить решение, предложенное Майки Харпером. Это пока только частичное решение, поскольку оно использует пакеты LaTeX и поэтому работает только с PDF. Основная идея состоит в том, чтобы использовать это решение LaTeX и адаптировать его к RMarkdown. Содержание test.bib:

@Book{standards,
  title = {{Standards for Educational and Psychological Testing}},
  author = {{American Educational Research Association} and {American Psychological Association} and {National Council on Measurement in Education}},
  shortauthor = {{AERA et al.}},
  publisher = {American Educational Research Association},
  address = {Washington, DC},
  year = {2014}
}

Rmd файл:

---
output: 
  pdf_document:
    citation_package: biblatex
bibliography: test.bib
biblio-style: apa
biblatexoptions:
  - sortcites
header-includes:
  - \DeclareLanguageMapping{english}{american-apa}
---

[@standards]

[@standards]

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

Это не совсем требуемый формат, поскольку краткий автор находится в конце списка авторов, но согласно этот вопрос, лучшего решения нет. Поэтому я открыл https://github.com/plk/biblatex-apa/issues/63.

person Ralf Stubner    schedule 10.04.2018
comment
Хорошая работа: рад видеть, что внешний файл .tex не нужен. Работает ли это с исходной цитатой, предоставленной в вопросе с несколькими авторами? - person Michael Harper; 10.04.2018
comment
@MikeyHarper Только частично. даже с shortauthor = {AERA and APA and NCME} сокращения не сопоставляются с их длинными формами. - person Ralf Stubner; 10.04.2018