Quarto: An 'evolved' technical and scientific publishing system compatible with Scrivener

There is a great new technical and scientific publishing tool now available:

Based on Pandoc, it integrates several additional filters and an opinionated (and IMO elegant and practical) set of publishing templates for a pretty comprehensive feature-set. Given this is Pandoc based, a wide range of output formats is available, all driven by meta-data. The Quarto command itself bundles all this together so a Pandoc install itself is not required. The documentation is really excellent, making some quite complex features (like sub-figure layout) very accessible.

Scrivener’s amazingly flexible Markdown output and its post-processor makes Scrivener+Quarto a very viable workflow. One minor wrinkle is for Quarto’s optional project system (to generate complete websites or books) where multiple files define multiple chapters, but a small pre-processor script to take Scrivener’s output and split it on # Headings would be trivial and solve this issue. You don’t need to use this one file per chapter mode if you don’t want, in which case Scrivener’s output will be fine…

EDIT: For macOS, quarto can be easily installed by homebrew: brew install quarto — for Windows users, there is also a scoop bucket containing quarto: GitHub - cderv/r-bucket: Personal scoop bucket I use as an R user and software engineer

6 Likes

Hi nontroppo,

Thanks for the info … I’ve just installed Quarto … and checked the install with:

quarto check install

and everything came back as ā€˜OK’.

Do I also need to install scoop? and if so, how (on MacOS)?

Thanks again
scrive
:thinking:

No, scoop is an equivalent package manager to brew on macOS, you can only use scoop on Windows. You don’t need to use a package manager, as quarto is also available as a a standalone install package.

As an aside, quarto itself can install and maintain a minimal LaTeX system for you: quarto tools install tinytex and quarto tools update tinytex — installing this customised mini TeX Live distribution: TinyTeX - A lightweight, cross-platform, portable, and easy-to-maintain LaTeX distribution based on TeX Live - Yihui Xie | č°¢ē›Šč¾‰ - which at least for R users can fully automated installing missing LaTeX packages etc.

Remember that quarto is ā€œopinionatedā€ in its final layout, a layout that has been assigned with specific templates for HTML, PDF, DOCX etc. — as Pandoc sits underneath you can still tweak away under the curtain, but that is not really the point. For users who want maximum control, stick to Pandoc…

1 Like

I wish there is a way to render Markdown on Scrivener while editing a document. Not really that important tho :grin:

Well, if you used macOS you could use the wonderful Marked2 — it can run pandoc with options directly on a Scrivener project to live render your Scrivener project while writing… :stuck_out_tongue_winking_eye:

(It wouldn’t be too difficult to do something similar on Windows if you were proficient at coding: the Scrivener files that represent the binder are simple RTF files and an RTF>MD converter trigger by a file watcher could get source that could be rendered using quarto or pandoc directly. But yeah, you’d need to be a proficient geek for that…)

1 Like

By the way, what is your workflow to trigger Quarto from Scrivener?

I made a small wrapper script to allow most quarto features to work with Scrivener styles:

Just popping in to say: I think I’ll still use my Scrivener+Pandoc+pandoc-crossref workflow when I’m writing on my own. But I just used Quarto (in rstudio) for the first time in preparation for collaborating with another, and I gotta say I like it a lot. It is amazing to have a free writing environment that…just works with Pandoc. The fact that you can easily output to pdf and docx without having to change anything except the format specification is amazing. In order to implement that with Scrivener, I had to create two formats, one that put ā€œ\noindentā€ before text I didn’t wanted indented (e.g. ones that follow blockquotes or equations), and one that wrapped the text in a div span that pandoc used in conjunction with a docx reference file. That is how I still roll, but since setting that up I’ve learned about this wonderful lua filter that works for both outputs with no changes needed. The filter also works with Quarto in rstudio, which is a wonderful development indeed.