plume workflow

Data

plume is designed to work with spreadsheets, which makes it easy to store, maintain and share data with co-authors. I recommend using Google Sheets to take advantage of the R interface provided by the googlesheets4 package.

First, you’ll need to create a spreadsheet. plm_template() provides a default template for that purpose.

library(googlesheets4)

gs4_create(
  name = "authors",
  sheets = plm_template()
)

The above will create a sheet named authors with the columns defined by plm_template().

Enter your information and share the sheet with your collaborators so they can add theirs too.

Note that if it’s the first time you use googlesheets4, you’ll need to grant the package permission to work with Google Sheets. You can read more about googlesheets4 authentication here.

Once the sheet is online, use read_sheet() to read it in R.

read_sheet(gs4_find("authors"))

Set up

Plume

If you use Plume, put the code directly in your R Markdown or Quarto document as shown in the example below:

---
title: An awesome publication
execute:
  echo: false
---

```{r}
#| label: setup
#| include: false

library(googlesheets4)
library(plume)

tbl_authors <- read_sheet(gs4_find("sheet_name"))

aut <- Plume$new(tbl_authors)
aut$set_corresponding_authors(1)
```

`r aut$get_author_list("^a,^co")`

```{r}
#| results: asis
aut$get_affiliations() |> cat(sep = "\n\n")
```

\*Correspondence to: `r aut$get_contact_details()`

## Main text

Lorem ipsum...

## Contributions

```{r}
#| results: asis
aut$get_contributions() |> cat(sep = "; ")
```

To modify author data, simply edit the spreadsheet. All author information in the document will update automatically the next time you render it.

PlumeQuarto

If you use PlumeQuarto to inject author information in a Quarto document, you’ll have to pass the data from a separate R script.

library(googlesheets4)
library(plume)

tbl_authors <- read_sheet(gs4_find("sheet_name"))

aut <- PlumeQuarto$new(tbl_authors, file = "file.qmd")
aut$set_corresponding_authors(1)
aut$to_yaml()

Remember to run the script everytime the spreadsheet is updated to implement the changes in your document.