Creates and builds reproducible scientific manuscripts written
in 'Quarto'. create_paper() writes a project that holds only the paper:
its sections as separate files, its references and journal style as a
CSL (Citation Style Language) file, the setup of the analysis and the
data. The functions of the package then render it for any journal, check
citations and cross-references before every render, export figures to
PNG, JPEG and TIFF at 600 dpi, give the supplementary material a
document and a bibliography of its own, and build the submission folder:
the manuscript split for double-blind review, together with a data and
code compendium ready for a data repository. Every render records the
versions of the packages it used, 'easypaper' included, with 'renv', so
the manuscript can be rebuilt years later. Every render also sets the
scientific names of the reference list in italics, checking genera and
species against the Global Biodiversity Information Facility (GBIF)
Backbone Taxonomy

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 for any journal, checks it before every render, and builds the folder you send.
.docx, a .pdf for the
preprint server, a working .html and the supplement, each in the citation
style of the journal you name.renv.lock included, and the DOI reserved on Zenodo before
you publish.# 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.
R >= 4.1 and Quarto, which ships with RStudio and Positron. The .pdf also
needs LaTeX: tinytex::install_tinytex() is enough.
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
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.