1
votes

I am unable to render the citations inside a kable table using neither default pdf_document nor bookdown::pdf_document2 nor html_document. As is shown below, forcing quotes (") around the citation does not

(Note: the "nocite" is there as a control, nothing in .bib). File 'bib.bib' is in the same directory and is as follows:

@article{roy2019growth,
  title={Growth pattern and oxygen isotopic systematics of modern freshwater mollusks along an elevation transect: Implications for paleoclimate reconstruction},
  author={Roy, Rupsa and Wang, Yang and Jiang, Shijun},
  journal={Palaeogeography, Palaeoclimatology, Palaeoecology},
  pages={109243},
  year={2019},
  publisher={Elsevier}
}

Reprex code

---
 output:
    bookdown::pdf_document2
# output: pdf_document
bibliography: bib.bib
---

Citation works, see [@roy2019growth]?


```{r results="asis"}
# using "asis" results
a <- c(1,2)
b <- c("@roy2019growth", "@nocite")
df <- data.frame(a,b)
kableExtra::kable(df)
```


```{r}
# without as is results
kableExtra::kable(df)
```

```{r}
# Try explicit '"' quotes
df <- data.frame(a,b = paste0('"',b,'"'))
kableExtra::kable(df)
```

# My Reference

Session Info

R version 3.5.3 (2019-03-11) Platform: i386-w64-mingw32/i386 (32-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1

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

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] kableExtra_1.0.1

loaded via a namespace (and not attached): [1] Rcpp_1.0.1 rstudioapi_0.10 knitr_1.23 xml2_1.2.0 magrittr_1.5 hms_0.4.2
[7] rvest_0.3.4 munsell_0.5.0 viridisLite_0.3.0 colorspace_1.4-1 R6_2.4.0 rlang_0.4.0
[13] highr_0.8 stringr_1.4.0 httr_1.4.0 tools_3.5.3 webshot_0.5.1 xfun_0.8
[19] htmltools_0.3.6 yaml_2.2.0 digest_0.6.20 tibble_2.1.3 bookdown_0.9 crayon_1.3.4
[25] readr_1.3.1 glue_1.3.1 evaluate_0.14 rmarkdown_1.14 stringi_1.4.3 compiler_3.5.3
[31] pillar_1.4.2 scales_1.0.0 pkgconfig_2.0.2

Rendering .md from .rmd produces desirable output

Citation works, see (Roy, Wang, and Jiang 2019)?

    # using "asis" results
    a <- c(1,2)
    b <- c("@roy2019growth", "@nocite")
    df <- data.frame(a,b)
    kableExtra::kable(df)

<table>
<thead>
<tr>
<th style="text-align:right;">
a
</th>
<th style="text-align:left;">
b
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right;">
1
</td>
<td style="text-align:left;">
Roy, Wang, and Jiang (2019)
</td>
</tr>
<tr>
<td style="text-align:right;">
2
</td>
<td style="text-align:left;">
(<span class="citeproc-not-found"
data-reference-id="nocite">**???**</span>)
</td>
</tr>
</tbody>
</table>

    # without as is results
    kableExtra::kable(df)

<table>
<thead>
<tr>
<th style="text-align:right;">
a
</th>
<th style="text-align:left;">
b
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right;">
1
</td>
<td style="text-align:left;">
Roy, Wang, and Jiang (2019)
</td>
</tr>
<tr>
<td style="text-align:right;">
2
</td>
<td style="text-align:left;">
(<span class="citeproc-not-found"
data-reference-id="nocite">**???**</span>)
</td>
</tr>
</tbody>
</table>

    # Try explicit '"' quotes
    df <- data.frame(a,b = paste0('"',b,'"'))
    kableExtra::kable(df)

<table>
<thead>
<tr>
<th style="text-align:right;">
a
</th>
<th style="text-align:left;">
b
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right;">
1
</td>
<td style="text-align:left;">
"(<span class="citeproc-not-found"
data-reference-id="roy2019growth&amp;quot">**???**</span>);
</td>
</tr>
<tr>
<td style="text-align:right;">
2
</td>
<td style="text-align:left;">
"(<span class="citeproc-not-found"
data-reference-id="nocite&amp;quot">**???**</span>);
</td>
</tr>
</tbody>
</table>

My Reference
============

Roy, Rupsa, Yang Wang, and Shijun Jiang. 2019. “Growth Pattern and
Oxygen Isotopic Systematics of Modern Freshwater Mollusks Along an
Elevation Transect: Implications for Paleoclimate Reconstruction.”
*Palaeogeography, Palaeoclimatology, Palaeoecology*, 109243.
1
Did you try to produce markdown from rmarkdown first and look at the markdown document?January
Yes the citation is produced within the table when producing .md from .rmd. I have appended the resulting .md to the OP.Jessica Burnett

1 Answers

3
votes

@hao-ye found a great solution, specifying 'markdown' format in kable():enter code here

kableExtra::kable(dat,
      format = "markdown")