Как цитировать ссылку в сноске kableExtra? - PullRequest
1 голос
/ 04 марта 2020

Я пишу документ R Markdown, в котором есть таблица. В сноске этой таблицы я хотел бы привести автора. Однако использование @citationkey не работает в этой ситуации.

Кто-нибудь знает, как это сделать?

Вот воспроизводимый пример (я включил все пакеты LaTeX, необходимые в kableExtra, но некоторые из них здесь может быть ненужно):

---
title: "Untitled"
author: ""
date: ""
output: 
  bookdown::pdf_document2
bibliography: refs.bib
toc: false
header-includes:
  - \usepackage[utf8]{inputenc}
  - \usepackage[T1]{fontenc}
  - \usepackage{booktabs}
  - \usepackage{longtable}
  - \usepackage{array}
  - \usepackage{multirow}
  - \usepackage{wrapfig}
  - \usepackage{float}
  - \usepackage{colortbl}
  - \usepackage{pdflscape}
  - \usepackage{tabu}
  - \usepackage{threeparttable}
  - \usepackage{threeparttablex}
  - \usepackage[normalem]{ulem}
  - \usepackage{makecell}
  - \usepackage{xcolor}
---

Here, I can cite @abel2018.

```{r}
library(kableExtra)

kable(head(mtcars)) %>%
  footnote(general = paste0("A footnote in which I would like to cite @abel2018."))
```

# References {-}

и ссылка в refs.bib:

@article{abel2018,
  title = {Estimates of {{Global Bilateral Migration Flows}} by {{Gender}} between 1960 and 2015},
  author = {Abel, Guy J.},
  date = {2018-09},
  journaltitle = {International Migration Review},
  shortjournal = {International Migration Review},
  volume = {52},
  pages = {809--852},
  doi = {10.1111/imre.12327},
  url = {http://journals.sagepub.com/doi/10.1111/imre.12327},
  urldate = {2019-12-14},
  langid = {english},
  number = {3}
}

1 Ответ

1 голос
/ 04 марта 2020

Проблема вашего подхода в том, что paste() не распознает ключ, а просто обрабатывает его как текст.

Для записи в HTML можно использовать knitr::asis_output("@abel2018").

* 1006. * К сожалению, это не работает для уценки. Однако вы можете использовать текстовую ссылку, которая описана в bookdown :

Синтаксис для текстовой ссылки: (ref:label) text, где label - уникальная метка на всем протяжении документ для text. Он должен быть в отдельном абзаце с пустыми строками над и под ним. Абзац не должен быть заключен в несколько строк и не должен заканчиваться пробелом.

Тогда вы можете использовать (ref:foo) в заголовках вашей фигуры / таблицы

Например:

(ref:abel-citation) @abel2018 

```{r}
library("kableExtra")

kable(mtcars) %>%
    footnote(general = paste0("A footnote in which I would like to cite (ref:abel-citation)"))
```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...