Search code examples
rr-markdownknitrpandocflextable

Citing inside the cell of flextable


I'm trying to create a table with rmarkdown and flextable where I am citing various works.

my Rmakrdown file:

---
title: "Innovative title"
author: "Vag Vaf"
date: '2021-12-29'
bibliography: references.bib
csl: apa-6th-edition.csl
output:
  bookdown::word_document2:
    fig_caption: yes
  pdf_document:
    toc: true
    toc_depth: 2
    citation_package: natbib
    keep_tex: true
    extra_dependencies: rotating, bookmark
  fontsize: 12pt
  geometry: margin=1in
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
knitr::opts_chunk$set(fig.retina = 3, warning = FALSE, message = FALSE)
```

```{r studies-table}
studies.table <- tibble (
  Authors = c("@Author1",
              "@Author2"),
  Area = c("Area1",
           "Area2")
    )
ft <- flextable(studies.table)
```

in my references.bib:

@article{Author1,
author = {Author, Solo},
journal = {Journal of Reproducible Examples},
pages = {1--18},
title = {{Yet another Test Title}},
volume = {1},
year = {2022}
}
@article{Author2,
author = {Author, Two and Author, Four},
journal = {Journal of Reproducible Examples},
pages = {75--82},
title = {{Awesome title}},
volume = {1},
year = {2022}
}

I am trying with this code, but @Author1 and @Author2 are not converted to the actual citation. They are displayed as @Aurthor1 and @Author2 in the table. Is there any way to indicate that this should be converted to a citation?


Solution

  • The package ftExtra is required for markdown syntaxes work in flextable cells:

    ```{r setup, include=FALSE}
    library(easypackages)
    packages(
      "tidyverse",
      "flextable",
      "ftExtra"
    )
    knitr::opts_chunk$set(echo = FALSE)
    knitr::opts_chunk$set(fig.retina = 3, warning = FALSE, message = FALSE)
    ```
    
    ```{r studies-table}
    studies.table <- tibble(
      Authors = c(
        "@Author1",
        "@Author2"
      ),
      Area = c(
        "Area1",
        "Area2"
      )
    )
    flextable(studies.table) %>%
      ftExtra::colformat_md()
    ```
    

    answer result