Emacs Writing Studio is a comprehensive guide and configuration
for authors using Emacs. The book covers everything from
organising ideas and writing distraction-free to publishing in
multiple formats. The book itself was fully written and published
with the configuration it describes. This talk outlines the proces
of developing this configuration and the book and some
perspectives on using Emacs as a tool to write for humans.
About the speaker:
Peter Prevos is a water engineer and social scientist. In this
talk Peter introduces Emacs Writing Studio, a starter kit and
associated manual for authors with no Emacs experience.
Discussion
Technical issues connecting to the BigBlueButton room, so no live Q&A
Q: What's Emacs composition proposition above focused/opinionated packages but below full config bases (Doom/Spacemacs) -- say for "js/ts devel with the kitchen sink", or "writer studio" like this? Akin to Doom/Spacemacs "modules" and such. Just other packages? If so, why haven't these caught up, and convenient libraries of those emerge? We're typically composing at the lowest levels of packaging, and proliferation of base configs could be a symptom(?)
A: (not yet answered)
Q: For writers who procrastinate, it's very tempting to fall into
the time sink of configuring Emacs rather than simply writing, even
with the optimal Emacs writing setup. Is this something you've
encountered, and do you have any suggestions for how to combat it?
A: As probably all beginning Emacs users I spent a lot of time
tinkering. I decided that I should work with rather than on
Emacs and thus EWS was born. My prod config is 99% EWS with some
enhancements. My config developed by just starting with vanilla
Emacs and only add what I needed, as the need arose.
Don't try to develop the ideal system in your mind and then
build it, let it grow organically.
Q: How much success have you had getting writers to use Emacs --
and stick with it -- using EWS? I've had people ask me about
using Emacs for technical writing and/or coding, and start off well,
but move to another editor in two months. The main reason is when
they want to do something with Emacs, can't figure out how, and
find a plugin (for Obsidian or VSCode, say) that does the thing they
want with no further setup or tweaking required.
A: I have had some good feedback from readers, but I cannot
attest to their personal success. The aim of EWS is to get
things working without the need for much config. However, Emacs
will never bny an easy point and click system such as the ones
you mention.
Q:When I was learining Emacs I bounced off it the first couple of
times, after reading Mastering Emacs and hearing it was the
tinkerers editor I got the right mental model to learn Emacs. Did
you have that? and what made it worth using and teaching others?
A: The best way to learn anything is to teach other people. So I
used EWS as a project to imporve my understanding of Emacs. Not
only did it force me to fully understand how things works, but
also develop new fucntions and packages where I saw a need.
Q: I love using org to write prose. For me, I like writing the final
version of the text in org, and I prefer paper to brainstorm ideas
and draft things. How was the brainstorming experience and the
process to organize your thoughts to write the book using org-mode?
A: I do my brainstorning in a paper notebook. The first EWS idea
is a sketch in my notebook. In my weekly review I transfer notes
worth keeping to Denote (scan graphic notes). Writing by hand
has many advantages for idea generation. Denote is my
repository, not a thinking tool.
Notes
Thanks for the great questions. Apologies for the technical glitch.
Hi, I'm Peter Prevos, and I'll be talking about EmacsWriting Studio. I'm a water engineer, a social scientist,and I dabble in theatrical magic. For each of thoseendeavors, I do a lot of writing. I take notes, I writereports, articles, books, and websites. I use Emacs for allmy research, my writing, and my publishing. Emacs WritingStudio is an opinionated starter kit for authors who writefor humans, not for programmers who write for computers.It consists of a configuration, some bespokefunctions, but are not yet a package, a website, and a book.The book is completely written with EWS itself. The targetaudience are authors who are frustrated with usingcommercial software and hopping from application toapplication to achieve an objective. These are peoplewithout any Emacs experience or coding skills.The objective is to teach these people how to use Emacs,not how to configure Emacs to manage a complete writing project.
So why did I write a book about Emacs when the documentation isalready so extensive? Most Emacs documentation focuses onconfiguration, burying potential new users with choices.It forces people to work on Emacs instead of with Emacs,and it quickly can become a productivity sink. Emacs is theultimate free software platform, but with this freedomalso comes a price. Barry Schwartz wrote about theparadox of choice, which is about the dramatic explosion inchoices in the modern world. Just think about the amount ofeffort it can take to decide what cereal to buy in asupermarket that you haven't been before. So manydifferent choices. Paradoxically, that's become aproblem instead of a solution. Emacs can perhaps sufferfrom the same issue. Another objective, using a COVID-19trope: EWS is about flattening the curve--that is, thelearning curve--by making these choicesfor the new Emacs user and avoiding the paradox.
What about this EWS configuration?I decided to stay as close as humanlybearable to vanilla Emacs. I say that tongue-in-cheek,but also with some realism, centered around Org modeand Denote for note tagging, and citar for accessingbibliographies, and other convenience packages such asvertico for minibuffer completion. There's adictionary, a thesaurus, and some other packages that are ofinterest to authors. EWS uses the standard keyboardshortcuts. Writing is much more about thinking than aboutmaximizing the amount of words per minute. Just thinkabout that the most used function for authors isself-insert. There's no need to use fancy keyboardshortcut systems when you write prose.
How did I go about developing Emacs? I declared Emacs bankruptcy,like we all have every now and then.I decided to write this book withvanilla Emacs and only configure the system as wasrequired. The first thing I did, I hooked visual-line-modeto text-mode and off I went. The configuration grew as theneed arose. I was actually surprised with how far you canget with just using Vanilla Emacs. I also developed twopackages to enhance how I can use Denote.
Well, let's get to a demo.EWS is based on a typical research and writing workflow.First step is you need to get some inspiration.Usually we do that by reading, by watching, bylistening. Then the next step is ideation. You develop yourideas, summarize ideas from other people, write down yourown ideas. For that, you need a note-taking system. EWSalso talks about managing bibliographies. The third stepis production. This is the actual writing process where, inthis case, the EWS book. Once that is finished, weconvert this Org mode file into something that can bepublished. That might be an e-book in an EPUB format, or aPDF for the interior of a a paperback book or perhaps as ane-book as well. There's also configuration in Emacs toproduce MS Word documents if you need to collaborate withother people. Let's jump in to Emacs and walk through thisworkflow, give you a very quick demonstration of what's inthe box.
So the first step in the EWS workflow is inspiration. We allstand on the shoulders of each other. Some giants; most ofthem are normal people. We get inspiration by reading,listening, and watching, and Emacs can help you accesstext, sound, and video. It depends on external software.Emacs acts as a beautiful interface, and EWS helps youwith the configuration. But we also need a tool to manage ourelectronic library, and BibTeXand citar package by Bruce D'Arcusprovides a perfect interface to manage thisliterature. If I open my bibliography here, you see thatI've got 1864 references in my BibTeX files. There's awhole bunch of stuff about, I guess, the weird things that Iread. Let's look for Emacs, right, because that's a jointinterest that we have. Let's open here this paper byMarcus Birkenkrahe, who did some research using Emacs to teachdata science. Data science is my day job, so that had myinterest. We have here a Denote file, which I'll talkabout in a second. There's a library file, which is a PDF, butit could be a whole collection of different files indifferent formats, even video or sound. We can create a newDenote file, or there's a link to the document objectidentifier. Let's go to the PDF. Here we can now do ourreading. We can get our inspiration by what Marcus haswritten here about teaching data science with literaryprogramming tools.
Next step is ideation. Taking notes isthe core of all creativity. When I read that paper, I mightwant to copy some ideas, I might get some of my own ideas, and Ineed to write that down. I basically write everything in apaper notebook, but then I transfer the things that areworth keeping to the Denote note-taking system. Now, thereare many systems that exist out there that promise younote-taking heaven when you just follow a certain process.My advice: don't worry about Zettelkasten, PARA, orwhatever is out there. Just write your notes and worry aboutstructure and all that later. Even Niklas Luhmann, theinventor of Zettelkasten, called his system a septic tankof ideas. I call my collection of notes a primordial soupfrom which my books emerge. Now, Denote by Prot Stavrou is aflexible note-taking system that can implement any of thepopular methods. I transferred thousands of files tothis format, so all my information is at my fingertips. Wecan jump to the Denote directory. In my case, that's~/documents/notes. We see here the marvel that is Denote,which is its ingenious file naming convention that has atimestamp, a title, and some (what do we call them) tags orcategories, whatever you please. This is a very quick wayto find things. Then there is an ews-dired-narrow function.For example, I can find anything,_ews means anything that has the EWS tag, andthere we go, it's narrowed down in my EWS notes.
Now, this is all very well, but I also decided towrite a package called denote-explore,which helps us sort of explore these collections of notes.One of the fancy things we can do isdo some visualization.Let's go to the network function and create a community ofnotes. A community is a collection of notes that match aregular expression, _ews. All the notes herethat are on this list, the ones with the EWS tag. In a second,my browser pops up. I shall move that to my other window in asecond. There we go. denote-explore creates a SVG file andit creates an arrow between all the nodes that are linked.It puts a title up there when the node has more than two linksgoing in or out. We can also click on the note to read it inthe browser, if you choose. If you set up Firefox properly,I'm sure it can also go into Emacs. This is the note taggingthat's available within EWS.
Now, we've taken all these notes. Now we need tostart writing stuff. Org mode, for me,is the ideal tool. Org mode is what you see is what youmean. The text and the syntax instruct the computer on how toproduce the final result. This means that one file canbecome many different formats, an e-book, a printed book,or a website. It doesn't matter. Now, a lot of people talkabout what you see, what you get, and that we should have awhat you see, what you get mode in Emacs. I think that'sirrelevant, because showing the final result while you'rewriting is actually a distraction. Traditional writing,producing the content, and designing the layout andtypesetting are separate processes done by differentprofessionals. In Emacs Writing Studio, the writing isstill done by a human. There are no provisions for largelanguage models in EWS. But layout and typesetting is doneby external software, be it CSS, LaTeX, or XML, all mediatedby Org mode.EWS also has some other tools for case conversion,thesaurus, a dictionary that I haven't got time to show,but what I will show you is how the book functions,and then how we create these publications.
Okay. Let's go to my project file.So these are the EWS chapters,and each chapter is an Org mode file.Let's go into the main document, which is set up witholivetti-mode just to make it easier to read. What we seehere is all the fluff from Org mode. These are all thevarious bits of metadata that I used to create the finalresult. Then for each chapter, I have an inclusion.This references another file. I've got some properties.In this case, the forward is unnumbered. There's some notes.In this case, Prot actually wrote this for me. Then wecan jump into that text. Then what we see at the bottomhere is some inclusions for HTML. This is the EPUB version,but it's different in LaTeX. Again, the same file canserve different purposes.So now let's, as the final part of this demonstration,actually create the book, because the book's freelyavailable. You can download the source files from GitHub,and you can roll your own. Let's open the dispatcher.We'll export the LaTeX and we want to open the file.Now this takes a minute because there's a lot happening withinall this code, so I'll shorten this video. I'll be silent now.There we are. This is the Emacs Writing Studio PDF version,which will eventually become the interior for thepaperback version.So the EWS book is available in all major e-book shops.I'm also working on a paperback, which I hope to finish whenEmacs 30 comes out. But the Org Mode files that I use toproduce the book, they're available in the GitHubrepository, so you can also roll your own, because the EWSconfiguration is the one that I use to produce the book.
Now, some conclusions from this journey is that the best way tolearn is to teach. That was my personal objective. Ilearned a lot from systematically working out how toimplement the EWS workflow. One of the surprising thingsthat I learned is to have reliance on external softwarethroughout the writing process. I spent a lot of time inthe book about explaining these connections that Emacs isnot just a text processor, it is also an interface with othersoftware. Now, future developments, as I mentioned,there'll be a paperback version of the book when Emacs 30comes out, and I might reconfigure things a little bit. I'monly planning to update the configuration when packagesbreak or with another major Emacs release, because I want towork with Emacs, not work on Emacs. A big thank you toProt Stavrou, who helped me with Denote packages, and healso wrote the forward to the book. There's also severaltest readers that I met through Mastodon that helped me outquite a bit. Of course, all the Emacs and packagedevelopers without which none of this would exist. Thankyou all for your attention, and I look forward to yourquestions and suggestions.