Skip to contents

Focus on your research: easypaper builds the project around your paper and gets it ready for submission.

Write it in Quarto, one section per file, with the analysis inside it. easypaper renders it in the citation style of any journal that has a CSL style, checks it before every render, and builds the folder you send.

  • 📄 One source, every output. The journal’s .docx, a .pdf for the preprint server, a working .html and the supplement, each in the citation style of the journal you name.
  • 🕶️ Double-blind review, prepared for you. A title page and an anonymous main text, figures at 600 dpi, a cover letter, and a copy of the data and code that names nobody, for the reviewers. What it sends is read back for your names, emails and ORCID: what your own text still says is reported, for you to rewrite.
  • 🌿 Scientific names checked against GBIF and Wikipedia. In italics in the reference list, where citeproc leaves them in roman, and reviewed in the text: italics, first mention, authority. The cases it cannot settle are reported, for you to decide.
  • ✅ Checks before every render. Citations with no entry, figures nobody cites, data nobody reads, packages nobody installed, and the word counts a submission form asks for.
  • 📦 Data and code ready to deposit. Open formats, metadata filled in from the manuscript, renv.lock included, and the DOI reserved on Zenodo before you publish.

Quick start

# install.packages("remotes")
remotes::install_github("danielsangarci/easypaper")

library(easypaper)
create_paper("my_paper")

Open the .Rproj it creates, write in _sections/, and:

set_paper(".")           # once a session: the project to work on

# while you write
render_html()            # the manuscript, in seconds
preview()                # live: reloads every time you save

# documents to read, in output/
render_docx()            # the .docx, in the journal's style
render_pdf()             # the .pdf
render_supplementary()   # the supplement, with its own references
render_all()             # the three above, and the analysis code

# what you send, in submission/
make_preprint()          # the preprint and its data deposit
make_submission()        # the journal's folder, double-blind

render_*() makes documents to read, as often as you like; make_*() assembles what you send, a few times per paper. They write only into the project you name, with set_paper() once a session or with path in a call – render_all(path = ".") – never into whatever the working directory happens to be. get_paper() says which project is named.

To see a finished paper first, create_example_paper("example_paper") writes the same project with a small study in it, ready to render.

Next: Get started walks through a paper from the first line to the submission, and ?easypaper lists every function.

Requirements

R >= 4.1 and Quarto, which ships with RStudio and Positron. The .pdf also needs LaTeX: tinytex::install_tinytex() is enough.

Citation

citation("easypaper")

Sanchez-Garcia, D. (2026). easypaper: Automate Reproducible Quarto Manuscripts Ready for Submission. R package version 0.1.0. https://github.com/danielsangarci/easypaper

Licence

MIT for the code. The projects it writes carry MIT for their code and CC BY 4.0 for their text, figures, tables and data, the pairing most journals and data repositories expect.

Contributing

Problems and ideas go in the issues; CONTRIBUTING says how to propose a change. Please note that easypaper is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.