<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Emacs on Lucid Manager</title>
    <link>https://lucidmanager.org/tags/emacs/</link>
    <description>Recent content in Emacs on Lucid Manager</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <managingEditor>Peter Prevos</managingEditor>
    <webMaster>Peter Prevos</webMaster>
    
    
    <lastBuildDate>Sun, 10 Dec 2023 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://lucidmanager.org/tags/emacs/index.xml" rel="self" type="application/rss+xml" />
    
    
    
    <item>
      <title>Why Use Emacs</title>
      <link>https://lucidmanager.org/productivity/why-use-emacs/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/why-use-emacs/</guid>
      <description>
	
&lt;p&gt;
Most people believe that the first step in becoming more productive is finding the perfect suite of software tools to manage the vast amounts of information we consume daily. I also used to hop from application to application to perform what I needed—jumping from the action list to my schedule, onward to the word processor and spreadsheet, PDF reader and so on. Wouldn&amp;#39;t it be nice if there was one program that could help you with almost all your tasks?&lt;/p&gt;
&lt;p&gt;
Welcome to the Emacs computing system, the Swiss army chainsaw of productivity.&lt;/p&gt;
&lt;p&gt;
This article explains why you should use Emacs for writing and undertake almost every task in your writing project, from ideation to publication in one application. This article is part of the &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt; starter kit, which explains how to use Emacs to write and publish articles, books, theatre or film scripts and websites. &lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the most recent configuration files on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
What is Emacs?
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The official tagline of &lt;a href=&#34;https://www.gnu.org/software/emacs/&#34;&gt;GNU Emacs&lt;/a&gt; is that it is an &amp;#34;extensible self-documenting text editor&amp;#34;. However, these words barely do justice to Emacs because they focus on its original purpose as a software development tool.&lt;/p&gt;
&lt;p&gt;
Emacs is a multi-purpose computing environment that can help you manage your information, track projects, write and publish articles, books, websites and any other text-based activity. Emacs is a text processor on steroids. The first version of Emacs was released forty years ago, which might seem obsolete software. However, a vibrant community of developers continually improves the system.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Emacs is not a productivity hack; it is a productivity hacking system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The term text editor requires clarification because it is more akin to developing software. Emacs is not merely a text editor but a &lt;em&gt;text processor&lt;/em&gt;, which is more than just a word processor. Editing is the last step in the process of writing an article or book. Software developers refer to the whole process as editing.&lt;/p&gt;
&lt;p&gt;
When you use a computer, you more than likely write a memo in a word processor, then switch to a spreadsheet to create a graph, which you copy and paste into your memo. Next, you open your email client to send the message to your colleague. The last step is to close the action in your productivity tool. After this hard work, you might play a game and open Tetris. When using these pieces of software, you have to learn different skills for each program. You have to use the software the way the developers intended you to use it.&lt;/p&gt;
&lt;p&gt;
Working with Emacs is a different experience. You write the memo in Emacs, create the graph with Emacs, email the result and close the action with Emacs. Finally, you &lt;a href=&#34;https://www.masteringemacs.org/article/fun-games-in-emacs&#34;&gt;play the game&lt;/a&gt;, you guessed it, within Emacs. If you use Emacs, you only need to learn one piece of software, and you can configure and extend it to how you prefer to use it, not how a programmer wants you to use the software.&lt;/p&gt;
&lt;p&gt;
At first instance, Emacs looks more like an &lt;a href=&#34;https://www.urbandictionary.com/define.php?term=angry%20fruit%20salad&#34;&gt;angry fruit salad&lt;/a&gt; than a modern piece of software. The default interface looks dreary, but don&amp;#39;t let these simple looks fool you. Under the hood, Emacs is a modern and robust computing environment that is &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;fully configurable&lt;/a&gt; to your liking.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Why use Emacs?
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is a &lt;a href=&#34;https://malleable.systems/blog/2020/04/01/the-most-successful-malleable-system-in-history/&#34;&gt;malleable software&lt;/a&gt; platform, which means that you are free to change and enhance how it works. This malleability ensures that  Emacs can perform any task that you can undertake with a keyboard. Emacs is, as such, the Swiss Army Chainsaw of productivity.&lt;/p&gt;
&lt;p&gt;
The first principle of malleable software is that it is easy to change. You can build applications using the Emacs LISP language (Elisp). This task might sound daunting, but it is about the possibility. Writing code is optional because most Emacs users share what they have developed through thousands of external packages you can freely install.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; makes it easy for you to get started as this configuration has almost everything you need to write prose.&lt;/p&gt;
&lt;p&gt;
Users can configure almost everything in the system with little knowledge of Elisp. This knowledge requirement might seem like a hurdle, but learning how to use it will give you virtually unlimited power over how you use your computer. Software should adjust to the user, not vice versa, as is the case with most modern packages.&lt;/p&gt;
&lt;p&gt;
The advantage of this approach is that you have complete freedom in using this software. You can instruct it to do almost anything you like and configure it to your specific needs. The disadvantage is that it requires a different computing approach than contemporary software. Using Emacs throws you back to the original intent of using a computer and genuine user-friendliness.&lt;/p&gt;
&lt;p&gt;
Are you ready to change the way you use your computer? To paraphrase a famous scene from The Matrix:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You take the blue Microsoft pill—the story ends, and everything stays the same. You take the purple Emacs pill—you stay in Wonderland, and I show you how deep the rabbit hole goes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Redefining user-friendliness
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs&amp;#39; lack of a slick graphical interface might discourage new users. Unfortunately, most software developers confuse user-friendliness with a smooth design and using a mouse. However, the graphical mouse-driven approach is not user-friendly because your dominant hand constantly moves between the mouse and the keyboard. Graphically-driven software is a gilded cage. It might be pleasant, but it is still a cage.&lt;/p&gt;
&lt;p&gt;
Emacs is a &lt;a href=&#34;https://en.wikipedia.org/wiki/Plain_text&#34;&gt;plain text&lt;/a&gt; editor, which means that there is limited markup, such as images, bold and italics. Plain text is not the same as &lt;a href=&#34;https://en.wikipedia.org/wiki/Plain_English&#34;&gt;plain English&lt;/a&gt;; it relates to how the information is stored on disk. Plain text is the opposite of rich text, which includes hidden definitions for font sizes, colours and other text and formatting attributes.&lt;/p&gt;
&lt;p&gt;
Plain text is not formatted and most commonly has a &lt;code class=&#34;verbatim&#34;&gt;.txt&lt;/code&gt; extension. There are, however, many other plain text formats, such as HTML, Markdown, LaTeX and Emacs Org Mode. Windows users might be familiar with the venerable Notepad software (which is, by the way, almost as old as Emacs, but with only limited functionality).&lt;/p&gt;
&lt;p&gt;
Plain text is intelligible across computer systems, so you never have to worry about locking your writing into a proprietary format and being locked-in by a software package. The internet runs on plain text files, which is highly unlikely to change in the long term.&lt;/p&gt;
&lt;p&gt;
Text modes can display ‘graphics’. In primary school in the 1970s our teacher showed us some art printed with a computer. The art consisted of a series of keyboard characters that resemble a picture, such as this cute stegosaurus below, borrowed from the &lt;a href=&#34;https://www.asciiart.website/index.php?art=creatures/dragons&#34;&gt;ASCII Art Website&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&#34;example&#34;&gt;
                         .       .
                        / `.   .’ \
                .---.  &amp;lt;    &amp;gt; &amp;lt;    &amp;gt;  .---.
                |    \  \ - ~ ~ - /  /    |
                 ~-..-~             ~-..-~
             \~~~\.&amp;#39;                    `./~~~/
   .-~~^-.    \__/                        \__/
 _/  O    \     /               /       \  \
(_____,    `._.&amp;#39;               |         }  \/~~~/
 `----.          /       }     |        /    \__/
       `-.      |       /      |       /      `. ,~~|
           ~-.__|      /_ - ~ ^|      /- _      `..-&amp;#39;   f: f:
                |     /        |     /     ~-.     `-. _||_||_
                |_____|        |_____|         ~ - . _ _ _ _ _&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
The main benefit of using plain text over rich text is that it provides a distraction-free writing environment. In word processors, the screen looks like a printed page. While this might be aesthetically pleasing, it distracts the writer from creating content and instead fiddle with the design.&lt;/p&gt;
&lt;p&gt;
Only a tiny part of written text is printed on paper, so the &lt;a href=&#34;https://en.wikipedia.org/wiki/WYSIWYG&#34;&gt;What You See is What You Get&lt;/a&gt; (WYSIWYG) approach does not make much sense in the digital age. Plain text writing follows a different philosophy and uses the &lt;a href=&#34;https://en.wikipedia.org/wiki/WYSIWYM&#34;&gt;What You See Is What You Mean&lt;/a&gt; (WYSIWYM) approach.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
What You See is What You Mean
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Graphical interfaces simulate the physical world by making objects on the screen look like pieces of paper and folders on a desk. You point, click and drag documents into folders; documents appear as they would on paper and when done, they go into the rubbish bin. Graphical interfaces are a magic trick that makes you believe you are doing something physical. This approach might be convenient, but it moves the user away from understanding how a computer works.&lt;/p&gt;
&lt;p&gt;
The WYSIWYG approach distracts the mind from the content and lures the user into fiddling with style instead of writing text. Office workers around the globe waste a lot of time trying to format or typeset documents. Following the Emacs way will help you become more productive by not worrying about the document’s design until you complete the text. As I write this book, it only takes a few keystrokes to convert the text into a fully formatted ebook or web page, ready for distribution.&lt;/p&gt;
&lt;p&gt;
As I write this website, I don’t see what it will look like in published form. In Emacs, I only see text, images and some instructions for the computer on what the final product should look like (the What You Mean  part of WYSIWYM). This approach lets me focus on writing text instead of worrying about the end product.&lt;/p&gt;
&lt;p&gt;
The image below shows what this looks like in action. The left side shows this article while writing it. The right side shows the result after creating the content. The colours on the screen indicate the function of the text, such as headers, italic text, or metadata, instead of the actual colour. The fonts are uniform, and Org mode hides images to allow me to focus on the text. Org mode can show the images inside the text with a simple keystroke. The image and the text remain separate files. I rarely view a live preview of the eventual output, as that negates the benefits of writing in plain text. &lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/wysiwym.jpg&#34; alt=&#34;The WYSIWYM approach with Emacs Org mode and Hugo.&#34; title=&#34;The WYSIWYM approach with Emacs Org mode and Hugo.&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
The WYSIWYM approach: Left: this article as I am writing it in Emacs. Right: The exported result in Firefox.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Principles of writing plain text
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When I export this document to a web page or any other format, a template and/or style sheet are attached to the text, which define the design of the published work. Another advantage of this approach is that your text can be easily exported to multiple formats.&lt;/p&gt;
&lt;p&gt;
In my workflow, the &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Hugo software&lt;/a&gt; converts the text in Emacs to a usable website using my &lt;a href=&#34;https://github.com/pprevos/hugo-thirdhemisphere&#34;&gt;custom template&lt;/a&gt; and a CSS style sheet. When I convert a text to PDF, the LaTeX software attaches a document class to the text to define the layout and typography. Each export format has its own method to convert plain text to published content.&lt;/p&gt;
&lt;p&gt;
To publish any text your text will have four elements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Content: The text itself.&lt;/li&gt;
&lt;li&gt;Semantics: Context (markers for headings, rich text, tables, images and so on).&lt;/li&gt;
&lt;li&gt;Template: Translates the structure of the document&lt;/li&gt;
&lt;li&gt;Style sheet: The design of the publication.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In a WYSIWYG word processor, all these elements are embedded in one file, but only the text is visible with the semantics and style sheet applied to show the printed result. In plain text, the content and semantics are directly visible, depending on the text format. Please note that &lt;code class=&#34;verbatim&#34;&gt;TXT&lt;/code&gt; files don’t contain any semantics; they are the simplest form of plain text. The table below shows how italic text is signified in four common plain text formats.&lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Italic semantics&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://www.w3.org/&#34;&gt;HTML&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;&amp;lt;i&amp;gt;Italic Text&amp;lt;/i&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://www.latex-project.org/&#34;&gt;LaTeX&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;\emph{Italic Text}&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://www.markdownguide.org/&#34;&gt;Markdown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;**Italic Text**&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://orgmode.org/&#34;&gt;Org mode&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;/Italic Text/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Italic text in common plain text formats.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The style sheet exists separate from the text. This means that you can easily export your document to various formats with fine control over the end result. &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;Org mode has a versatile export engine&lt;/a&gt; that allows you to convert your writings to a website, ebook or physical book with just a few keystrokes and some configuration.&lt;/p&gt;
&lt;p&gt;
These are only some example of using plain text for writing projects. Many other markup and markdown formats are available to turn your thoughts into a published work. For example, &lt;a href=&#34;https://lilypond.org/index.html&#34;&gt;LilyPond&lt;/a&gt; is a plain text music notation format and &lt;a href=&#34;https://fountain-mode.org/&#34;&gt;Fountain&lt;/a&gt; is a format to write screenplays.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
The Emacs learning curve
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The second hurdle is the steep learning curve. To make Emacs work for you, you will need to learn the &lt;a href=&#34;https://lucidmanager.org/productivity/getting-started-with-emacs/&#34;&gt;basics principles&lt;/a&gt; and learn some of the associated add-on packages. As Emacs is old software, some default settings and terminology differ from contemporary graphical software. For example, opening a file is &amp;#39;visiting a file&amp;#39;. Pasting a text is&amp;#39; yanking&amp;#39;; cutting it is the same as killing. Emacs terminology is certainly more poetic than the current handicraft terms, such as cutting and pasting. Closing Emacs itself is called killing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The steeper the learning curve, the bigger the reward.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The key to learning Emacs is to not get overwhelmed by the virtually infinite configuration options but to only learn those bits of functionality that you need to do what you need to do. Even without any configuration, you can do a lot with Emacs. &lt;/p&gt;
&lt;p&gt;
Learning some Elisp enables you to configure the software to your wishes. While that might sound daunting, you can simply copy and paste (kill and yank) examples from the Internet. Even better, &lt;em&gt;Emacs Writing Studio&lt;/em&gt; is a starter kit to shorten this learning curve as it optimises Emacs for the writing workflow.&lt;/p&gt;
&lt;p&gt;
The articles on this website guide you through what you need to know for Emacs to become your favourite writing tool. You can also download and use the complete configuration file from these articles to get you started.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Advantages of using Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;In summary, these are some of the significant advantages of using Emacs to create written content:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One piece of software to undertake most of your computing activities makes you more productive because you only need to master one system.&lt;/li&gt;
&lt;li&gt;You store all your information in plain text files. You will never have any problems with compatibility due to esoteric file formats.&lt;/li&gt;
&lt;li&gt;You can modify almost everything in the software to suit your workflow.&lt;/li&gt;
&lt;li&gt;Emacs runs on all major operating systems: All Linux flavours, &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-windows/&#34;&gt;Windows&lt;/a&gt;, &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-chromebook/&#34;&gt;Chrome OS&lt;/a&gt;, and macOS.&lt;/li&gt;
&lt;li&gt;Emacs is open source and supported by a large community willing to help.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Limitations of Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After singing the praises of this multi-functional editor, you would almost think that Emacs is the omnipotent god of software. Some people even have established the &lt;a href=&#34;https://www.emacswiki.org/emacs/ChurchOfEmacs&#34;&gt;Church of Emacs&lt;/a&gt; as a mock religion to express their admiration.&lt;/p&gt;
&lt;p&gt;
Emacs can display images and integrate them with text. Still, it has limited functionality to create or &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;modify graphical files&lt;/a&gt;. If you need to create or edit pictures, consider using GIMP (&lt;a href=&#34;https://www.gimp.org/&#34;&gt;GNU Image Manipulation Program&lt;/a&gt;). Video content is currently not supported and cannot be easily integrated with text other than hyperlinks to a file or web page.&lt;/p&gt;
&lt;p&gt;
The focus on text limits working in Emacs to serial thinking to the exclusion of &lt;a href=&#34;https://en.wikipedia.org/wiki/Visual_thinking&#34;&gt;visual thinking&lt;/a&gt;. I like to scribble little diagrams in my notebook to help me solve problems. Emacs is limited to text. But you can import your doodles as images.&lt;/p&gt;
&lt;p&gt;
The second disadvantage is that Emacs does not have a fully operational web browser. There are packages to surf the web within Emacs, but they have limited functionality.&lt;/p&gt;
&lt;p&gt;
Emacs has the risk of becoming a productivity sink. But remember that just because you can configure everything does not mean you should. Don&amp;#39;t spend too much time worrying about the minutia of your workflow. Spend this time inside your workflow and create new things. Most productivity hacks do not affect your output because you write with your mind, not the keyboard.&lt;/p&gt;
&lt;p&gt;
The best way to learn Emacs is one step at a time. Start with a simple configuration and then build on this starting point once you need further enhancements.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses &lt;a href=&#34;https://lucidmanager.org/productivity/getting-started-with-emacs/&#34;&gt;getting started with Emacs&lt;/a&gt; and introduces the basic principles.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Getting Started with Emacs</title>
      <link>https://lucidmanager.org/productivity/getting-started-with-emacs/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/getting-started-with-emacs/</guid>
      <description>
	
&lt;p&gt;
Emacs has a reputation for being hard to use. This article crushes that myth and describes getting started with Emacs without any configuration. Once you understand the basic principles, you will soon play the software like a virtuoso plays the piano.&lt;/p&gt;
&lt;p&gt;
Emacs will take some getting used to because the first version of the software was released almost forty years ago. Although Emacs is one of the oldest continuously developed software packages, it has evolved into a versatile contemporary computing system. But, just like biological organisms have vestigial features that originated in the distant past, Emacs also has some quirky features and terminology that stem from its long history. This article guides you through the basics of using Emacs to get you started by explaining the principles.&lt;/p&gt;
&lt;p&gt;
This article is an abridged chapter of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt; (EWS) — a configuration, website and book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is available as an e-book with expanded content from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Installing Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The first point of call is to install Emacs on your computer. The Emacs computing environment works on almost all operating systems, but best integrates with GNU / Linux. You can install it on your Linux distribution with the relevant package manager. If you use another OS, follow the links below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/emacs-windows/&#34;&gt;Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/emacs-chromebook/&#34;&gt;Chromebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://brew.sh/&#34;&gt;Apple&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The EWS configuration is independent of your operating system.&lt;/p&gt;
&lt;p&gt;
This video by Marcus Birkenkrahe provides a succinct overview of installing Emacs on Windows or MacOS.&lt;/p&gt;
&lt;p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/maNgdDV7cIA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Emacs is also an interface to various other free software packages for such tasks as checking spelling, read PDF files or typesetting and formatting (e)books. The &lt;a href=&#34;https://github.com/pprevos/emacs-writing-studio/&#34;&gt;EWS GitHub repository&lt;/a&gt; contains a list of these programs and their function.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Getting Started with Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Now that you have cleared the first hurdle, it is time to open Emacs and look around. When you first start Emacs, you see a splash screen with links to help files. Click on the link to read the tutorial, or press the &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; button to remove the screen and keep reading this article.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-splash-screen.png&#34; alt=&#34;The Emacs splash screen.&#34; title=&#34;The Emacs splash screen.&#34; width=&#34;500&#34;/&gt;
&lt;figcaption&gt;
The Emacs splash screen (Emacs 29.1).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Pressing &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; is the standard method to close (kill) read-only screens in Emacs. When the splash screen closes, you enter the ’scratch buffer’, which you can use for temporary notes. Emacs does not save the content of the scratch buffer, so don’t start writing your dissertation just yet.&lt;/p&gt;
&lt;p&gt;
Emacs has a mouse-driven menu system, with drop-down menus on the top of the screen. Most users ignore this convenience and rely on keyboard-driven instructions. There is no real agreement on whether using a keyboard or a mouse is most efficient. What is clear is that regularly moving your hands between the keyboard and the mouse can be annoying and impede your workflow. When you misspell a word in most software, you move your hand from the keyboard to the mouse, click on the offending word and select the desired spelling. In Emacs, you use one keystroke and the misspelled word automatically changes to the most likely correct version, and you keep on writing.&lt;/p&gt;
&lt;p&gt;
One advantage of the menu system is that it helps discovering functionality in Emacs, but you don&amp;#39;t need a mouse for this. Just press &lt;code class=&#34;verbatim&#34;&gt;F10&lt;/code&gt; and use the arrow keys to find what you need.&lt;/p&gt;
&lt;p&gt;
Emacs is mostly written in the Emacs Lisp (Elisp) language, which means that every action runs an Elisp function. Most functions are only for internal processes, but the user can call some functions (the commands) interactively. So every command is a function, but not every function is a command.&lt;/p&gt;
&lt;p&gt;
The default way to activate commands is by typing &lt;code&gt;ALT-x&lt;/code&gt; and then the name of the command and the enter key. For example type &lt;code&gt;ALT-x tetris ENTER&lt;/code&gt; to play tetris. Don&amp;#39;t get too distracted, just press &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; three times to exit the game.&lt;/p&gt;
&lt;p&gt;
Typing the full function name every time is too much work for us Emacs users who seek ultimate efficiency. The &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion&lt;/a&gt; system helps you to find the command you seek. In standard Emacs, that would be &lt;code&gt;ALT-x tet TAB ENTER&lt;/code&gt;. But that method is not on the efficiency frontier. To meet this demand, Emacs uses keyboard shortcuts.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Working with the keyboard
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is a keyboard-driven system. You can use the mouse, but you;ll find that there is no need to remove your hand from the keyboard. The standard computer keyboard has five types of keys: alphanumeric / punctuation, editing, function, escape key, and modifier keys. &lt;/p&gt;
&lt;p&gt;
Alphanumeric and punctuation keys activate the &lt;code&gt;self-insert&lt;/code&gt; function, which adds text to the computer’s memory and displays it on the screen. The editing keys, such as arrow keys, page up and down, delete, backspace, enter and tab, do what it says on their label. These are the only keys you need to writing prose, but we like to do more than insert text.&lt;/p&gt;
&lt;p&gt;
Function and multimedia keys perform specified tasks. For example, pressing &lt;code class=&#34;verbatim&#34;&gt;F10&lt;/code&gt; in Emacs show the menu bar. Multimedia keys activate predefined tasks, such as increasing the screen brightness or playing music.&lt;/p&gt;
&lt;p&gt;
The escape key is the most potent key on the board. Like Dorothy’s Ruby Slippers in the &lt;em&gt;Wizard of Oz&lt;/em&gt;, this key gets you out of trouble by clicking it three times.&lt;/p&gt;
&lt;p&gt;
These keys cover about 100 options, but more are needed to manage the thousands of possible commands you might want your computer to perform. The modifier keys on a modern PC or Apple keyboard are shift, control, alt/option and windows/command. Some programmable keyboards might have additional modifier keys, such as &lt;code class=&#34;verbatim&#34;&gt;Fn&lt;/code&gt;. Modifier keys have no effect when pressed by themselves. As the name suggests, these keys modify other keys when pressed simultaneously. In Emacs vocabulary, these are called chords.&lt;/p&gt;
&lt;p&gt;
Emacs documentation uses a special notation for key chords. Some of the Emacs terminology for modifier keys stems from a time when the current standard keyboard layout did not yet exist. What we now call the Alt key used to be the &lt;em&gt;Meta&lt;/em&gt; key. What was the &lt;em&gt;Super&lt;/em&gt; key in the olden days is now the Windows key on PC keyboards. The image below shows an old Space-Cadet keyboard with now non-existing modifier keys.&lt;/p&gt;
&lt;figure&gt;
&lt;a title= “Retro-Computing Society of Rhode Island
, CC BY-SA 3.0 &amp;lt;https://creativecommons.org/licenses/by-sa/3.0&amp;gt;, via Wikimedia Commons&#34; href=&#34;https://commons.wikimedia.org/wiki/File:Space-cadet.jpg&#34;&gt;&lt;img width=&#34;512&#34; alt=&#34;Space-cadet keyboard&#34; src=&#34;https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Space-cadet.jpg/512px-Space-cadet.jpg&#34;&gt;&lt;/a&gt;
&lt;figcaption&gt;
Symbolics LM-2 Lisp machine space-cadet keyboard.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Emacs documentation uses abbreviations, such as &lt;code class=&#34;verbatim&#34;&gt;C-a&lt;/code&gt;, which stands for the Control and &lt;code class=&#34;verbatim&#34;&gt;a&lt;/code&gt; keys, or &lt;code class=&#34;verbatim&#34;&gt;M-a&lt;/code&gt;, which stands for &lt;code class=&#34;verbatim&#34;&gt;Alt-a&lt;/code&gt;. Each modifier key has its own letter, as shown in the table below. The dash indicates that the keys are pressed while keeping the modifier key down. You can combine modifier keys, occasionally leading to awkward combinations, such as &lt;code class=&#34;verbatim&#34;&gt;C-M-S a&lt;/code&gt; (Control, Alt and Shift &lt;code class=&#34;verbatim&#34;&gt;a&lt;/code&gt;), which requires the nimble fingers of a sleight-of-hand artist to execute smoothly. The shift modifier is often not mentioned in Emacs notation, &lt;code class=&#34;verbatim&#34;&gt;C-M A&lt;/code&gt; is the same as &lt;code class=&#34;verbatim&#34;&gt;C-M-S a&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The most critical chord is &lt;code class=&#34;verbatim&#34;&gt;C-g&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;keyboard-quit&lt;/code&gt;), which cancels a partially typed command or one still running. This command can quit running functions, unlike the triple escape key.&lt;/p&gt;
&lt;p&gt;
The Windows key on PC keyboards is mapped to the old Super key. Your operating system uses Chords with this key, so Emacs does not use this modifier by default. Lastly, the Hyper key is a leftover from the old keyboards.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modifier&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Shift&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;S-8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;*&lt;/code&gt; sign on US keyboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;End of line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alt&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete (kill) word&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;s-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Used by the operating system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hyper&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;H-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Not mapped to regular keys&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
These modifier keys provide thousands of possible key chords to instruct Emacs. But wait, there is more. Emacs also uses prefix keys. When you press these, the system will wait for further input. For example, &lt;code class=&#34;verbatim&#34;&gt;C-x C-f&lt;/code&gt; means that you first press Control and &lt;code class=&#34;verbatim&#34;&gt;x&lt;/code&gt; and then Control and &lt;code class=&#34;verbatim&#34;&gt;f&lt;/code&gt;, the default sequence for finding a file to open with the &lt;code&gt;find-file&lt;/code&gt; function. The standard prefix keys are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;C-x&lt;/code&gt;: Mostly used for built-in Emacs commands&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c&lt;/code&gt;: Mostly used by packages&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;C-h&lt;/code&gt;: Help functions&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-x&lt;/code&gt;: Execute commands&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means that the standard &lt;a href=&#34;https://en.wikipedia.org/wiki/IBM_Common_User_Access&#34;&gt;Common User Access&lt;/a&gt; keyboard shortcuts for cutting text (&lt;code class=&#34;verbatim&#34;&gt;Ctrl+x&lt;/code&gt;) does not work in Emacs.&lt;/p&gt;
&lt;p&gt;
If you want to find out which command relates to a specific shortcut, then use &lt;code class=&#34;verbatim&#34;&gt;C-h k&lt;/code&gt; and enter the key sequence to see what it is bound to for the mode you currently use. If you want to read the Emacs tutorial, the use &lt;code class=&#34;verbatim&#34;&gt;C-h t&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Two more prefix keys need mentioning. Lots of commands have alternative states, which means that they can do things in different ways. You activate an alternative state by adding &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt; before the regular key-chord.&lt;/p&gt;
&lt;p&gt;
Lastly, adding a number after &lt;code class=&#34;verbatim&#34;&gt;Control&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;Alt&lt;/code&gt; repeats the next keystroke. For example &lt;code class=&#34;verbatim&#34;&gt;M-80 *&lt;/code&gt; adds eighty asterisks to your text.&lt;/p&gt;
&lt;p&gt;
You can change how a keyboard behaves at three levels. Some high-end keyboards are programmable and let you define the output of each key. You could map the right control key as the Hyper key so you can use it in key chords. At the second level, your operating system interprets the input from the keyboard. In Windows, &lt;code class=&#34;verbatim&#34;&gt;s-E&lt;/code&gt; opens the file explorer, but you can erase this binding so that it becomes available in Emacs. Each operating system has its own methods to change keyboard maps (keymaps). Some experienced Emacs users remap the caps lock key to act as the control key to make it easier to use.&lt;/p&gt;
&lt;p&gt;
Last but not least, you can define keys within Emacs itself. Some people don’t like the Emacs defaults because it requires frequent use of the &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;Control&lt;/code&gt; keys. These people suggest that repetitive use of these keys causes a strain injury, the dreaded’ Emacs pinky’. Several packages, such as &lt;a href=&#34;https://github.com/emacs-evil/evil&#34;&gt;Evil Mode&lt;/a&gt; or &lt;a href=&#34;https://www.emacswiki.org/emacs/ViperMode&#34;&gt;Viper mode&lt;/a&gt;, exist within the Emacs ecosystem that changes the default keybindings to a different model. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; follows the standard conventions.&lt;/p&gt;
&lt;p&gt;
You might be dazzled by this detailed description of how Emacs uses the keyboard. Don’t worry about it for now. You will gradually understand its intricacies and eventually drive the system like a virtuoso.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Modes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is a versatile tool that accomplishes the different tasks it is capable of through the use of major and minor modes. &lt;/p&gt;
&lt;p&gt;
A major mode determines the main functionality for an open buffer. Each buffer has at least one major mode and each major mode has its own functionality and key bindings. The articles on this website mainly describe how to use &lt;a href=&#34;https://orgmode.org/&#34;&gt;Org mode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
A major mode is like opening an app within the Emacs environment. For example, Org mode provides a task management system and publication tools. Artist mode is a quirky tool in Emacs to create plain text drawings with the mouse and keyboard. Other common plain text writing major modes are plain text, Markdown and Fountain. All major modes provide specialise functions for working with these text formats. All major modes share the same underlying Emacs functionality, such as copying and pasting (killing and yanking). &lt;/p&gt;
&lt;p&gt;
Minor modes provide additional functionality, such as spell-checking, text completion or displaying line numbers. A minor mode is an auxiliary program that enhances the functionality of a major mode. While each buffer has only one major mode, a buffer can have one or more active minor modes. A minor mode can also apply to the whole Emacs session.&lt;/p&gt;
&lt;p&gt;
Each mode defines how a buffer displays text. For example, each heading level in Org mode has a different colour (depending on your theme). The different colours and fonts help finding your way around the text. However, how the text looks on the screen differs from how it will look when you print it or export it to a PDF of another format. This is a &lt;em&gt;What you See is What You Mean&lt;/em&gt; approach, which &lt;a href=&#34;https://lucidmanager.org/productivity/why-use-emacs/&#34;&gt;this article explains in more detail&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Emacs automatically selects the relevant major mode using the extension of the file and displays it in the mode line below each buffer. Minor modes have to be enabled explicitly on top of a major mode.&lt;/p&gt;
&lt;p&gt;
The available keyboard shortcuts depend on the major and minor modes that are active at the time. Each mode can have its own keymap. Some keymaps are global and apply to the whole of Emacs, other maps are specific to a mode. Some shortcuts remain the same for all modes (such as &lt;code class=&#34;verbatim&#34;&gt;M-u&lt;/code&gt;, which converts a word to uppercase), unless a mode overrides this binding. Packages can change or add shortcuts, depending on the required functionality. So a shortcut like &lt;code class=&#34;verbatim&#34;&gt;C c c-c&lt;/code&gt; is used by different modes for different actions, depending on the context it is used.&lt;/p&gt;
&lt;p&gt;
If you are lost and like to see all possible keyboard shortcuts for the active buffer (screen), call &lt;code class=&#34;verbatim&#34;&gt;C-h b&lt;/code&gt; to view a list of all available shortcuts. Note that some shortcuts can relate to a specific mode and will thus only work when the mode is active.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Frames and Windows
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When you open Emacs, the software runs within a frame. In most operating systems, a frame is called a window. To confuse matters further, you can divide an Emacs frame into windows. You can also open multiple frames on a desktop, for example, one on each monitor. &lt;/p&gt;
&lt;p&gt;
By default, a frame has one window. You can duplicate the current window horizontally or vertically by pressing &lt;code class=&#34;verbatim&#34;&gt;C-x 2&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;C-x 3&lt;/code&gt; (&lt;code&gt;split-window-below&lt;/code&gt; and &lt;code&gt;split-window-right&lt;/code&gt;). The &lt;code class=&#34;verbatim&#34;&gt;C-x 0&lt;/code&gt; shortcut (&lt;code&gt;delete-window&lt;/code&gt;) removes your current window, and &lt;code class=&#34;verbatim&#34;&gt;C-x 1&lt;/code&gt; removes all other windows (&lt;code&gt;delete-other-windows&lt;/code&gt;), so you work in the full frame again.&lt;/p&gt;
&lt;p&gt;
When splitting a window, the same buffer can appear on both sides, each with point at a different location in the text. Using &lt;code class=&#34;verbatim&#34;&gt;M-x&lt;/code&gt; &lt;code&gt;follow-mode&lt;/code&gt; flows the text so it becomes like a two-column document. This function toggles the follow function as a minor mode, so you can switch it on and off with the same function.&lt;/p&gt;
&lt;p&gt;
To move between windows, use the &lt;code class=&#34;verbatim&#34;&gt;C-x o&lt;/code&gt; shortcut (&lt;code&gt;other-window&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
The bottom of each window has a mode line, and the bottom of the frame contains the mini buffer. The mode line provides information, such as the open file name, current line number and other helpful information. The mini buffer is where Emacs provides feedback or seeks your input.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-frame-components.jpg&#34; alt=&#34;Emacs frame with three windows.&#34; title=&#34;Emacs frame with three windows.&#34;/&gt;
&lt;figcaption&gt;
Emacs frame with three windows.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Buffers
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A buffer holds the text that is displayed in a window. Buffers can also contain a user interface or output from functions. The name of the buffer or its associated file is shown in the status bar at the bottom of the window. Special buffers, such as &lt;code class=&#34;verbatim&#34;&gt;*Messages*&lt;/code&gt; start with an asterisk. This buffer shows the output of any commands you run.&lt;/p&gt;
&lt;p&gt;
You can have multiple buffers open at the same time so that you can easily switch between buffers. Emacs is highly stable and some Emacs users have hundreds of open buffers as they rarely need to restart the program. The &lt;code class=&#34;verbatim&#34;&gt;C-x b&lt;/code&gt; shortcut (&lt;code&gt;switch-to-buffer&lt;/code&gt;) lets you select another buffer to move to.&lt;/p&gt;
&lt;p&gt;
With the &lt;code class=&#34;verbatim&#34;&gt;C-x left&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;C-x right&lt;/code&gt; key sequences (&lt;code&gt;previous-buffer&lt;/code&gt; and &lt;code&gt;next-buffer&lt;/code&gt;), you can move between buffers in chronological activation order.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Most buffers, except those surrounded by an asterisk, are linked to a file. Like office software, you are working on the version in memory (the buffer), and the previous version is on disk (the file). Emacs works precisely the same way.&lt;/p&gt;
&lt;p&gt;
Opening files in Emacs is called &lt;em&gt;visiting a file&lt;/em&gt;. You first need to find it with the &lt;code&gt;find-file&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-x C-f&lt;/code&gt;) to visit a file.  Emacs will open the file and display the contents in the buffer. Emacs will create a new file when you type a name that does not yet exist. If you open a directory, Emacs will show the contents of that directory in &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;the file manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Emacs will ask you to nominate a file or folder in the mini buffer. When you hit the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; button twice, all the available files and folders appear in the mini buffer. To complete the file name, start typing the filename and hit &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; again.&lt;/p&gt;
&lt;p&gt;
After you complete your edits, &lt;code class=&#34;verbatim&#34;&gt;C-x C-s&lt;/code&gt; (&lt;code&gt;save-buffer&lt;/code&gt;) saves your buffer. To save all open buffers, press &lt;code class=&#34;verbatim&#34;&gt;C-x s&lt;/code&gt; (&lt;code&gt;save-some-buffers&lt;/code&gt;) and follow the prompts in the minibuffer at the bottom of the screen. To save a buffer under a new name, you can use &lt;code class=&#34;verbatim&#34;&gt;C-x C-w&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Keystroke&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-x C-f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;find-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find (open) a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-x C-s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;save-buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save the current buffer to its file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-x s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;save-some-buffers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save all open buffers (with confirmation)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-x C-w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;write-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write current buffer to a file (Save as)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Exiting Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After your first practice round, it is time to close (kill) Emacs. The &lt;code class=&#34;verbatim&#34;&gt;C-x C-c&lt;/code&gt; kills the Emacs session, checking for unsaved buffers first (&lt;code&gt;save-buffers-kill-terminal&lt;/code&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Learn more
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This article only discussed the basic principles of using Emacs. If you like to know more, then I encourage you to follow the built-in Emacs tutorial, which you activate with &lt;code class=&#34;verbatim&#34;&gt;C-h t&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
There are many great YouTube videos that explain how to use Emacs. The video below by David Williamson provides a detailed introduction into how to use Emacs. The blog posts and YouTube videos by &lt;a href=&#34;https://protesilaos.com/&#34;&gt;Protesilaos Stavrou&lt;/a&gt; also provide useful insights.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/48JlgiBpw_I?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
The Absolute Beginner&amp;#39;s Guide to Emacs (System Crafters).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
You can do a lot with Emacs without any configuration, but you will need to configure the system to make it behave how you want it to. The next article introduces the principles of &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configuring Emacs&lt;/a&gt; to convert it into your own writing studio.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Configure Emacs Writing Studio</title>
      <link>https://lucidmanager.org/productivity/configure-emacs/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/configure-emacs/</guid>
      <description>
	
&lt;p&gt;
Commercial software is usually good at doing one thing really well. You write documents in LibreOffice Writer or Google Docs. You create presentation slides in PowerPoint or Keynote and manage tasks with Trello or Todoist. If you are lucky, the developers let you change the configuration to customise the software’s behaviour and optimise your workflow. In most cases, however, you are bound by the choices the developers have made for you. Linking the information that is held in these programs can be problematic. Emacs does not have such limitations. You do almost all tasks in one program, but you have to configure it to make it behave the way you want.&lt;/p&gt;
&lt;p&gt;
This article explains how to configure Emacs to transform it into a personalised productivity suite for authors. Please note that this configuration assumes that you are using the latest version of Emacs, which at the time of writing is 29.4.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Configuring Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A vanilla version of Emacs has a lot of functionality out of the box and you could easily write a book without any configuration. But to truly leverage its capabilities, Emacs needs external packages and additional configuration.&lt;/p&gt;
&lt;p&gt;
Some Emacs users use pre-configured systems, such as &lt;a href=&#34;https://github.com/hlissner/doom-emacs&#34;&gt;Doom Emacs&lt;/a&gt;,  or &lt;a href=&#34;https://github.com/syl20bnr/spacemacs/tree/develop&#34;&gt;Spacemacs&lt;/a&gt;, or one of the other &lt;a href=&#34;https://www.emacswiki.org/emacs/StarterKits&#34;&gt;starter kits&lt;/a&gt;. While these configurations are helpful, they sometimes provide ‘everything but the kitchen sink’.&lt;/p&gt;
&lt;p&gt;
On the other side of the spectrum, you can configure your system from scratch, which can become a productivity sink as you wade your way through highly technical instructions written by experts.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; (EWS) seeks the golden mean by providing a minimal configuration. The main objective of EWS is to get you started writing in Emacs and generate sufficient curiosity for you to further develop your skills and keep improving your configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
The Initialisation File
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When you start Emacs, it loads the &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html&#34;&gt;initialisation file&lt;/a&gt;, or init file in short. This file contains Lisp code that configures Emacs and loads additional packages. &lt;/p&gt;
&lt;p&gt;
The first time you start Emacs, it will create the configuration directory. The init file lives in this location, which will also contain the packages and other files needed to personalise your system.&lt;/p&gt;
&lt;p&gt;
Emacs looks for a file called &lt;code class=&#34;verbatim&#34;&gt;.emacs&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;.emacs.el&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt;. The dot in front of the file means that it is hidden from view to prevent cluttering your directories. The location of the configuration folder depends on your operating system and Emacs version. The Emacs help functionality can tell you where to store the &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;
Type &lt;code class=&#34;verbatim&#34;&gt;C-h v&lt;/code&gt; (&lt;code&gt;describe-variable&lt;/code&gt;), and type &lt;code class=&#34;verbatim&#34;&gt;user-emacs-directory&lt;/code&gt; and Enter (or &lt;code class=&#34;verbatim&#34;&gt;user-e TAB&lt;/code&gt;) in the minibuffer at the bottom of the screen. The help buffer that now appears provides the correct folder name, for example &amp;#34;&lt;code class=&#34;verbatim&#34;&gt;Its value is &amp;#34;~/.config/emacs/&lt;/code&gt;&amp;#34;.&lt;/p&gt;
&lt;p&gt;
You can now visit (open or create) the &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt; file in your Emacs directory and copy and write your configuration. Your init file will become active after you restart Emacs (use &lt;code&gt;M-x restart-emacs&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
You can download the complete EWS configuration file from GitHub and save it in the user directory. Copy the &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;ews.el&lt;/code&gt; files to your user directory. The first file contains the Emacs configuration and the second file contains bespoke EWS functions.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Please note that when you start Emacs with the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration for the first time, Emacs will download several packages from their online repositories and compile them. This process might generate scary-looking text, but you can ignore it, as it only appears when you install new packages.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Emacs Lisp
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;While using commercial software is like renting a fully furnished house, using Emacs is more like buying a new empty house. Your new digital home needs some paint and new carpets, which means you need to configure Emacs to make it your digital home.&lt;/p&gt;
&lt;p&gt;
Commercial software provides graphical menus to define how the software operates. Like the examples below, you might tick a box, select an item in a list, or enter a value in a text box to configure the program to your wishes. &lt;/p&gt;
&lt;figure&gt;
&lt;div class= &#34;tile is-ancestor&#34;&gt;
  &lt;div class=&#34;tile is-12 is-horizontal is-parent&#34; style= &#34;text-align: center; border-style: ridge; border-color: lightgray;&#34;&gt;
    &lt;div class= &#34;tile is-child box&#34;&gt;
      &lt;div class=&#34;field&#34;&gt;
	&lt;label class=&#34;label&#34;&gt;Inhibit startup message&lt;/label&gt;
	&lt;div class=&#34;control&#34; style=&#34;text-align: center;&#34;&gt;
	  &lt;label class=&#34;checkbox&#34;&gt;
	    &lt;input type=&#34;checkbox&#34; name=&#34;question&#34; checked&gt;
	  &lt;/label&gt;
	&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class= &#34;tile is-child box&#34;&gt;
      &lt;div class=&#34;field&#34;&gt;
	&lt;label class=&#34;label&#34;&gt;Initial scratch message&lt;/label&gt;
        &lt;textarea class=&#34;textarea&#34; rows=&#34;2&#34; placeholder=&#34;Hello world&#34;&gt;&lt;/textarea&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class= &#34;tile is-child box&#34;&gt;
      &lt;div class=&#34;field&#34;&gt;
	&lt;label class=&#34;label&#34;&gt;Cursor Type&lt;/label&gt;
	&lt;div class=&#34;select&#34;&gt;
	  &lt;select name=&#34;color&#34;&gt;
	    &lt;option value=&#34;nil&#34;&gt;Nil&lt;/option&gt;
	    &lt;option value=&#34;box&#34;&gt;Box&lt;/option&gt;
	    &lt;option value=&#34;hollow&#34;&gt;Hollow&lt;/option&gt;
	    &lt;option selected value=&#34;bar&#34;&gt;Bar&lt;/option&gt;
	  &lt;/select&gt;
	&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;figcaption&gt;
Typical graphical configuration screen.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Being a plain text program, Emacs doesn&amp;#39;t use a graphical interface but a programming language called Lisp. The code below is equivalent to the graphical user interface shown above. &lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;inhibit-startup-message&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#963&#34;&gt;initial-scratch-message&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Hello world&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#963&#34;&gt;cursor-type&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;bar&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Although the text-based method is superficially more complex than ticking boxes, writing text and selecting a drop-down list, it is far more potent than a graphical interface.  Writing code to configure your computer may not seem user-friendly initially because we are used to the graphical interface. However, once you learn how to write simple Emacs Lisp programs, you will find that Emacs is the most user-friendly system because it gives you so much power over your computer. But with that power comes great responsibility and a steep learning curve.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Using Emacs Lisp is the epitome of ease of use. You control how your computer behaves instead of the computer controlling your behaviour.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
A Lisp program consists of expressions, which are statements enclosed in parentheses. Each expression starts with the name of a function (&lt;code class=&#34;verbatim&#34;&gt;setq-default&lt;/code&gt;), followed by some parameters.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;setq-default&lt;/code&gt; function is commonly used to set the default value of a parameter. For example, &lt;code class=&#34;verbatim&#34;&gt;(setq-default inhibit-startup-message t)&lt;/code&gt; has the same effect as putting a checkmark in the inhibit-startup-message box, while &lt;code class=&#34;verbatim&#34;&gt;inhibit-startup-message nil&lt;/code&gt; is the same as removing the checkmark in that box. The expression in this example determines whether Emacs displays a startup message when you open it for the first time.&lt;/p&gt;
&lt;p&gt;
You don’t have to learn to program Lisp to configure Emacs. The examples on this site provide sensible defaults to turn vanilla Emacs into your personal writing studio. Each article offers a thoroughly documented configuration. Many Emacs users share their configuration with the community so that you can copy their code. The copy-and-paste method is a shortcut to learning more about Emacs Lisp because you can change the settings and examine the results of your changes.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
The Emacs Writing Studio Configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Checking external software requirements
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs is not just a text editor but a Lisp computing environment that can interface with command line tools. For &lt;em&gt;Emacs Wring Studio&lt;/em&gt; to function fully, it needs to have access to a bunch of external programs, which are listed in the relevant articles. &lt;/p&gt;
&lt;p&gt;
A bespoke &lt;em&gt;Emacs Writing Studio&lt;/em&gt; function (&lt;code&gt;ews-missing-executables&lt;/code&gt;) tests wether the relevant external executable files are available. This function displays an error message into the &lt;code class=&#34;verbatim&#34;&gt;*Messages*&lt;/code&gt; buffer if it cannot find one or more of the external tools. Emacs will still work, but some functionality might be unavailable.&lt;/p&gt;
&lt;p&gt;
Each article in the Emacs Writing Studio series explains which external software is required an how to obtain it. The core functionality of Emacs will work fine without these, but some specialised tasks require assistance from this software.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;soffice&lt;/code&gt; (&lt;a href=&#34;https://www.libreoffice.org/&#34;&gt;LibreOffice&lt;/a&gt;): View and create office documents&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;zip&lt;/code&gt;: Unpack ePub documents&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;pdftotext&lt;/code&gt; (&lt;a href=&#34;https://poppler.freedesktop.org/&#34;&gt;poppler-utils&lt;/a&gt;): Convert PDF to text&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;djvu&lt;/code&gt; (&lt;a href=&#34;http://djvu.org/&#34;&gt;DjVuLibre&lt;/a&gt;): View DjVu files&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;curl&lt;/code&gt;: Reading RSS feeds&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;dot&lt;/code&gt; (&lt;a href=&#34;https://graphviz.org/&#34;&gt;GraphViz&lt;/a&gt;): Create note network diagrams&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Convert image files&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;convert&lt;/code&gt; (&lt;a href=&#34;https://imagemagick.org/&#34;&gt;ImageMagick&lt;/a&gt;)  &lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;gm&lt;/code&gt; (&lt;a href=&#34;http://www.graphicsmagick.org/&#34;&gt;GraphicsMagick&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code class=&#34;verbatim&#34;&gt;latex&lt;/code&gt; (&lt;a href=&#34;https://www.latex-project.org/get/&#34;&gt;TexLive, MacTex or MikTeX&lt;/a&gt;): Preview LaTex and export Org to PDF&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;divpng&lt;/code&gt;: Part of LaTeX&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;hunspell&lt;/code&gt;: Spellcheck. Also requires a hunspell dictionary&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Search inside files&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;ripgrep&lt;/code&gt;: Faster alternative for grep&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;View PDF files&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;gs&lt;/code&gt; (&lt;a href=&#34;https://www.ghostscript.com/&#34;&gt;GhostScript&lt;/a&gt;): View PDF files&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;mutool&lt;/code&gt; (&lt;a href=&#34;https://mupdf.com/&#34;&gt;MuPDF&lt;/a&gt;): View PDF files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Play music&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;mpg321&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;ogg123&lt;/code&gt; (&lt;a href=&#34;https://www.xiph.org/&#34;&gt;vorbis-tools&lt;/a&gt;), &lt;code class=&#34;verbatim&#34;&gt;mplayer&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;mpv&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;vlc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Loading Packages
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Emacs base system has extensive functionality, but you can extend its capability with external packages. Many people write packages in Emacs Lisp to improve or enhance what the system can do. You can also download Lisp files directly from GitHub or other sources. Developers of these packages often share their work through public package repositories, which are websites that let you easily download and install packages. The two most important ones are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ELPA: &lt;a href=&#34;https://elpa.gnu.org/&#34;&gt;GNU Emacs Lisp Package Archive&lt;/a&gt; — the official package archive, enabled by default.&lt;/li&gt;
&lt;li&gt;MELPA: &lt;a href=&#34;https://melpa.org/&#34;&gt;Milkypostman’s Emacs Lisp Package Archive&lt;/a&gt; — Unofficial archive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next blob of Elisp (Emacs Lisp) code adds the MELPA archive to the packages archive list. The ELPA archive is installed by default. This code appends the configuration (&lt;code&gt;add-to-list&lt;/code&gt;) and does not override the default. Just ensure you add a trailing slash (at the end of the URL), otherwise, Emacs gets confused when downloading the package index.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;package&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;add-to-list&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;package-archives&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;melpa&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;https://melpa.org/packages/&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;package-initialize&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can explore the list of packages with the &lt;code class=&#34;verbatim&#34;&gt;list-packages&lt;/code&gt; function. This function has no keyboard shortcut, so first press &lt;code class=&#34;verbatim&#34;&gt;M-x&lt;/code&gt; and type the function name, followed by the Enter key.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Configuring Packages
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;John Wiggle has developed the &lt;code class=&#34;verbatim&#34;&gt;use-package&lt;/code&gt; software, which simplifies configuring packages. Computer scientists call this approach ‘syntactic sugar’ because it makes the syntax of a configuration file a bit easier to read and write. Most configurations on this website use this method to install and configure Emacs extensions.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;use-package-always-ensure&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;package-native-compile&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;warning-minimum-level&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:error&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This is the basic setup required to run any other configurations in this series of articles.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Keeping your packages up-to-date
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Packages are constantly updated by their developers. To ensure you get the latest version, you can use the &lt;code class=&#34;verbatim&#34;&gt;package-upgrade-all&lt;/code&gt; function, which has no default keybinding. This might seem a strange name for this function, &lt;code class=&#34;verbatim&#34;&gt;upgrade-all-packages&lt;/code&gt; would seem a bit more linguistically sound. However, the convention for naming Emacs Lisp functions is that the first word is the package name, which is &lt;code class=&#34;verbatim&#34;&gt;package&lt;/code&gt;. So, for example, all &lt;em&gt;Emacs Writing Studio&lt;/em&gt; functions start with &lt;code class=&#34;verbatim&#34;&gt;ews-&lt;/code&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Changing keyboard shortcuts
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://lucidmanager.org/productivity/getting-started-with-emacs/&#34;&gt;previous article&lt;/a&gt; explained how Emacs uses the keyboard and the use of shortcuts to run functions. Emacs comes with a lot of default key bindings, all of which you can change or you can add new ones for functions you need to use regularly that don&amp;#39;t have a default shortcut.&lt;/p&gt;
&lt;p&gt;
For example, adding this line to your configuration lets you play Tetris whenever you hit &lt;code class=&#34;verbatim&#34;&gt;F8&lt;/code&gt;.  So this line associates the keyboard shortcut &lt;code&gt;(kbd &amp;#34;&amp;lt;f8&amp;gt;&amp;#34;)&lt;/code&gt; in the global keymap with the &lt;code&gt;tetris&lt;/code&gt; function.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#963&#34;&gt;keymap-set&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;global-map&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;f8&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;tetris&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
EWS deploys the &lt;code class=&#34;verbatim&#34;&gt;use-package&lt;/code&gt; configuration, which has a slightly different convention. You can as such change any of the keyboard shortcuts in this EWS configuration to your preference by simply changing the bit between quotation marks. Please note that function keys and other special keys are between &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;&amp;gt;&lt;/code&gt; to prevent them being interpreted as individual keys.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emacs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt; (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;f8&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;tetris&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Emacs Writing Studio configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Besides crafting your own configuration or using a starter kit, Emacs has a customisation menu that lets you configure Emacs without writing code. This system writes the required Emacs Lisp code to the init file.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Wring Studio&lt;/em&gt; uses two separate init files to prevent Emacs from changing your hand-crafted config. The configuration below changes the automated configuration file’s name to &lt;code class=&#34;verbatim&#34;&gt;custom.el&lt;/code&gt; and evaluates it when it exists.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;custom-file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;expand-file-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;custom.el&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;user-emacs-directory&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;when&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;file-exists-p&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;custom-file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;load&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;custom-file&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The first lines of code instruct Emacs to use a separate file for the internal configuration system (&lt;code class=&#34;verbatim&#34;&gt;custom.el&lt;/code&gt;). The &lt;code class=&#34;verbatim&#34;&gt;expand-file-name&lt;/code&gt; expression adds the filename to the location of the Emacs user directory. This method ensures the code works irrespective of the Emacs user directory location.&lt;/p&gt;
&lt;p&gt;
The last two lines load this file when it exists (&lt;code class=&#34;verbatim&#34;&gt;file-exists-p&lt;/code&gt;). As this is the first action in the configuration, your personal init file will override any settings in the custom file.&lt;/p&gt;
&amp;nbsp;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Emacs Writing Studio variables
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;For convenience, the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; defines some variables to configure the system. &lt;/p&gt;
&lt;p&gt;
You can change these, and any other variable in Emacs, variables with the &lt;code&gt;customize-variable&lt;/code&gt; function, search for &lt;code class=&#34;verbatim&#34;&gt;ews&lt;/code&gt;, and pick the variable you seek to change. Alternatively, use &lt;code&gt;customize-group&lt;/code&gt; and search for &lt;code class=&#34;verbatim&#34;&gt;ews&lt;/code&gt; to see all variables. You can then change the entry in the text field to your preference and hit the &lt;code class=&#34;verbatim&#34;&gt;Apply and save&lt;/code&gt; button. Emacs saves the new value(s) to the &lt;code class=&#34;verbatim&#34;&gt;custom.el&lt;/code&gt; file and they will be loaded next time you start Emacs.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/customisation-menu.png&#34; alt=&#34;Emacs customisation screen&#34; title=&#34;Emacs customisation screen&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Emacs customisation screen.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The Emacs customisation functionality is a low-code option to configure your system and the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; is configured so that the variables set with this method will override the default configuration presented in these pages. Alternatively you can of course hack your init file directly.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; also includes a handful of bespoke convenience functions, which are discussed in their relevant pages. All bespoke configuration is stored in the &lt;code class=&#34;verbatim&#34;&gt;ews.el&lt;/code&gt; file on GitHub. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Is Emacs a Productivity Sink?
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Configuring Emacs can be a daunting task and become a productivity sink because of the ease by which it can be done. Within the Emacs community, a discussion emerges every now and then about the need to make so many changes to the vanilla software to get it to behave how you like it.&lt;/p&gt;
&lt;p&gt;
A commonly asked question is why can&amp;#39;t Emacs have &amp;#39;sensible default&amp;#39; values? This may seem like a reasonable question, but what is sensible to one user is an annoyance for another. Emacs developers are as such quite conservative when it comes to changing the default settings.&lt;/p&gt;
&lt;p&gt;
The Emacs developers cannot cater to every personal preference, so they provide a skeleton system you must enhance to suit your workflow. Emacs Lisp is like a box of Lego. You can play with it out of the box using vanilla Emacs, but it is much more fun when you create your own toys. Working on your Emacs configuration is like building with Lego and eventually you configure Emacs to perfectly meet your needs.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-configuration-lego.jpg&#34; alt=&#34;Emacs configuration and Lego&#34; title=&#34;Emacs configuration and Lego&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Emacs configuration and Lego.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
It can be tempting to constantly fine-tune your configuration. Wielding the power to create a bespoke Emacs system is a temptation that can lead to fake productivity, which is one of the three forms of procrastination:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Nihilistic procrastination&lt;/em&gt;: Watching TV or playing computer games.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sophisticated procrastination&lt;/em&gt;: Fake productivity, e.g. Emacs hacking, switching productivity tools, taking notes for volume instead of quality.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Productive procrastination&lt;/em&gt;: Daydreaming.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tinkering with your Emacs configuration is not as bad as nihilistic procrastination but can become a form of fake productivity. The productivity gains from fine-tuning your Emacs to cut out a few keystrokes can take more time than you will save with your new workflow. Writing is more than the number of words you can type into your buffer. Writing is as much a contemplative act as it is about productivity. Don’t get sucked into trying as many packages as possible. It will lead to what Emacs aficionados call Dot Emacs bankruptcy, which occurs when your init file is so enormous and disorganised that it becomes unmanageable.&lt;/p&gt;
&lt;p&gt;
The best way to learn how to configure your Emacs system is to search the web for examples and copy them to your init file. Initially, the code might look gibberish, but its logic will become more apparent as you do this more often. Emacs has an extensive help system that you can use to explore functions or variables you like to know more about. Use &lt;code class=&#34;verbatim&#34;&gt;C-h o&lt;/code&gt; (&lt;code&gt;describe-symbol&lt;/code&gt;) to search for any function or variable.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://imgs.xkcd.com/comics/is_it_worth_the_time.png&#34; alt=&#34;https://imgs.xkcd.com/comics/is_it_worth_the_time.png&#34; title=&#34;https://imgs.xkcd.com/comics/is_it_worth_the_time.png&#34; /&gt;&lt;figcaption&gt;
Source: xbd.com
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Hopefully, the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration will help you reduce the time it takes to configure Emacs to suit your preferred workflow.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-13&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the contact form to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
 The next article explains the principles of &lt;a href=&#34;https://lucidmanager.org/productivity/writing-prose-with-emacs/&#34;&gt;writing prose in Emacs&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Writing Prose with Emacs</title>
      <link>https://lucidmanager.org/productivity/writing-prose-with-emacs/</link>
      <pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/writing-prose-with-emacs/</guid>
      <description>
	
&lt;p&gt;
Emacs is known as an extensible text editor, but this is a confusing description to authors. Computer programmers refer to writing code as editing, while for an author, the term editing refers to the last stage in the writing process. A text editor is a tool to write text for computers to read. However, Emacs can be a tool for editing code and writing for humans.&lt;/p&gt;
&lt;p&gt;
This article explains the basics of how to write prose using Emacs as an advanced typewriter. This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, which explains how to use Emacs to undertake research and write and publish articles, books, and websites. &lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Writing modes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is like a Swiss Army knife in that it can undertake several different functions through so-called major modes.&lt;/p&gt;
&lt;p&gt;
An Emacs major mode controls how a buffer (the currently open file) behaves. A text file could be a movie script, a to-do list, the next great novel, computer code, or however you express your creativity. In commercial software, each file could be a different file type that you can only read in specialised software. Emacs automatically recognises the type of file you open and modifies its behaviour accordingly.&lt;/p&gt;
&lt;p&gt;
In Emacs, text mode is for simple text files. &lt;a href=&#34;https://fountain-mode.org/&#34;&gt;Fountain mode&lt;/a&gt; helps you write movie or theatre scripts. &lt;a href=&#34;https://orgmode.org/&#34;&gt;Org mode&lt;/a&gt; excels at managing your to-do lists and creative writing. Many other modes with specialised functions are available in the package repositories.&lt;/p&gt;
&lt;p&gt;
Each buffer can only have one major mode operating at a time, but it can have several minor modes. A minor mode provides optional extras, such as Flyspell, for on-the-fly spell checking.&lt;/p&gt;
&lt;p&gt;
Org mode is arguably the most versatile major mode in Emacs. A large portion of these articles describe how to use this package.&lt;/p&gt;
&lt;p&gt;
The remainder of this article focuses on the principles that apply to all text modes.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Basic principles
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The foundational &lt;a href=&#34;https://lucidmanager.org/productivity/getting-started-with-emacs/&#34;&gt;major mode&lt;/a&gt; for writing prose is &lt;code&gt;text-mode&lt;/code&gt;. Emacs documentation describes it as the mode for writing text for humans to read, in contrast to &lt;code&gt;prog-mode&lt;/code&gt;, which is for writing code that computers read. Text mode forms the foundation for all other prose formats. This means that all these modes use the same basic functionality for writing.&lt;/p&gt;
&lt;p&gt;
The basic principle of writing in Emacs is easy: you just start. However, some differences exist between standard word processors and the Emacs way. Once you get used to the convenience of writing in Emacs, you never want to use other software again, as you will miss the extensive editing functionality to jump around your text with ease.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Moving around in a buffer
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You can move the cursor with arrow keys and other standard navigation keys. Emacs documentation sometimes refers to the cursor as a point; technically, the cursor is the character displayed on the screen (a line or a box), and a point indicates where the next typed character will appear. In most situations, the terms cursor and point are used interchangeably.&lt;/p&gt;
&lt;p&gt;
In addition to the standard methods to move around a buffer, Emacs provides additional functionality to help you navigate your project. For example, &lt;code class=&#34;verbatim&#34;&gt;C-p&lt;/code&gt; (&lt;code&gt;previous-line&lt;/code&gt;) does the same as the up key (see table below). Some people prefer these keys so their hands can stay in the default position for fast touch-typing. However, writing is more about thinking than maximising keystrokes per minute, but feel free to try them out.&lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Left&lt;/td&gt;
&lt;td&gt;&lt;code&gt;left-char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-b&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;left&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Right&lt;/td&gt;
&lt;td&gt;&lt;code&gt;right-char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-f&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;right&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Up&lt;/td&gt;
&lt;td&gt;&lt;code&gt;previous-line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-p&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;up&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Down&lt;/td&gt;
&lt;td&gt;&lt;code&gt;next-line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-n&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;down&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous word&lt;/td&gt;
&lt;td&gt;&lt;code&gt;backwar-word&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-b&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;left&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next word&lt;/td&gt;
&lt;td&gt;&lt;code&gt;forward-word&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-f&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;right&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scroll down&lt;/td&gt;
&lt;td&gt;&lt;code&gt;scroll-down-command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-v&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;PageDown&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scroll up&lt;/td&gt;
&lt;td&gt;&lt;code&gt;scroll-up-command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-v&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;PageUp&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Start of line&lt;/td&gt;
&lt;td&gt;&lt;code&gt;move-beginning-of-line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-a&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;home&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End of line&lt;/td&gt;
&lt;td&gt;&lt;code&gt;move-end-of-line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-e&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;end&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Start of buffer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;beginning-of-buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-&amp;lt;&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;home&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End of buffer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;end-of-buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-&amp;gt;&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;end&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Moving around a buffer in Emacs.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Making a mark
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;You will undoubtedly have the experience of moving from one part of a document to another and then like to jump back but lose your place, so you search through the document to get back to where you left off.&lt;/p&gt;
&lt;p&gt;
In Emacs, you can save the cursor&amp;#39;s current position with &lt;code class=&#34;verbatim&#34;&gt;C-space&lt;/code&gt;, which marks the current location of the point. You can now move to another part of your document, edit or read what you need, and jump back with &lt;code class=&#34;verbatim&#34;&gt;C-u C-space&lt;/code&gt;. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Focusing
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Getting lost in a sea of words on your screen is easy. Some simple keystrokes can help you to focus your eyes quickly. Keying &lt;code class=&#34;verbatim&#34;&gt;C-l&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;recenter-top-bottom&lt;/code&gt;) moves the line that your cursor is on to the centre of the screen.&lt;/p&gt;
&lt;p&gt;
If you repeat this keystroke, the cursor will move to the top of the screen. If you do this three times in a row, the cursor moves to the bottom of the screen.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Copying and pasting text the Emacs way
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The most apparent difference between Emacs and typical word processors is that it does not use the standard &lt;a href=&#34;https://en.wikipedia.org/wiki/IBM_Common_User_Access&#34;&gt;Common User Access&lt;/a&gt; (CUA) keys standard for selecting, copying, cutting and pasting text used in modern applications. But the trade-off for the minor inconvenience of learning a new method to edit text is that the Emacs way is much more versatile than other software.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Selecting text
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;With the shift and arrow keys, you can select text in almost all major modes. Because the shift and arrow keys in Org mode are reserved for editing lists, you must use a more advanced way to select a text block. You first set a mark with &lt;code class=&#34;verbatim&#34;&gt;C-space&lt;/code&gt; and then move to the end of the section to select your text, which is highlighted.&lt;/p&gt;
&lt;p&gt;
To select a complete paragraph, use the &lt;code class=&#34;verbatim&#34;&gt;M-h&lt;/code&gt; key. Repeatedly pressing &lt;code class=&#34;verbatim&#34;&gt;M-h&lt;/code&gt; will select subsequent sections. Using &lt;code class=&#34;verbatim&#34;&gt;C-x h&lt;/code&gt; will select all text in the buffer.&lt;/p&gt;
&lt;p&gt;
Once the text is marked, you can act on this block by deleting, copying or moving it.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Copy and paste text
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;In modern computing language, copying and pasting are handicraft analogues for moving text from one place to another. Emacs terminology is more evocative. Copying a text is the same as saving it to the &amp;#39;kill-ring&amp;#39; and yanking a text retrieves it from that seemingly bleak location.&lt;/p&gt;
&lt;p&gt;
While the clipboard in most systems only retains the last entry, the kill ring provides access to a  history of killing actions. In other words, Emacs stores a history of all text you copy and cut from a buffer to the kill ring. The length of this history is stored in &lt;code&gt;kill-ring-max&lt;/code&gt;, which is 60 entries by default. Once the kill ring is full, the oldest item vanishes. Emacs erases the content of the kill ring when you exit the program. Use the following keyboard shortcuts to copy and move the text to and from the kill ring:&lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-w&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kill-ring-save&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy a selection to the kill ring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-W&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kill-region&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move a selection to the kill ring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yank&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Paste the most recent entry in the kill ring to the buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yank-pop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace the previously yanked text with the next kill ring entry&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Copying and pasting in Emacs.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The &lt;code&gt;kill*&lt;/code&gt; commands copy or move text to the kill ring and the system clipboard. The &lt;code&gt;yank*&lt;/code&gt; commands copy an entry from the kill ring to the current buffer. The &lt;code&gt;yank-pop&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;M-y&lt;/code&gt;) command cycles through the contents of the kill ring so you can access the history. When you use advanced &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;completion systems&lt;/a&gt;, you see a list of all available previous selections in the minibuffer. Use the arrow keys or search to pick what you like to yank into the active buffer. &lt;/p&gt;
&lt;p&gt;
If you prefer using the familiar keyboard shortcuts, enable &lt;code&gt;cua-mode&lt;/code&gt; for convenience. With this mode, you can use &lt;code class=&#34;verbatim&#34;&gt;C-z&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-x&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-c&lt;/code&gt;, and &lt;code class=&#34;verbatim&#34;&gt;C-v&lt;/code&gt; to undo, cut, copy, and paste in addition to the standard Emacs bindings. The &lt;code class=&#34;verbatim&#34;&gt;C-x&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;C-c&lt;/code&gt; keys only activate when you mark a region. You can enable this mode by adding &lt;code&gt;(cua-mode t)&lt;/code&gt; to your init file. This mode is not enabled in the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Search and replace
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The most common search method in Emacs is incremental. An incremental search (&lt;code class=&#34;verbatim&#34;&gt;C-s&lt;/code&gt;) begins searching as soon as you type the first character of the search string. As you type in the search term, Emacs shows you where the term is found. When you have typed enough characters to identify the place you want, you can terminate the search explicitly with &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;C-g&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;C-s&lt;/code&gt; shortcut searches incrementally from the cursor. You cycle through the search results by repeatedly pressing &lt;code class=&#34;verbatim&#34;&gt;C-s&lt;/code&gt;. Using &lt;code class=&#34;verbatim&#34;&gt;C-r&lt;/code&gt; searches the text before the cursor.&lt;/p&gt;
&lt;p&gt;
Emacs saves search terms in the search ring. Typing &lt;code class=&#34;verbatim&#34;&gt;C-s C-s&lt;/code&gt; will show the previous search term. Using &lt;code class=&#34;verbatim&#34;&gt;C-p&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;C-n&lt;/code&gt; lets you scroll through previous search terms.&lt;/p&gt;
&lt;p&gt;
To search and replace text in a buffer, use &lt;code class=&#34;verbatim&#34;&gt;M %&lt;/code&gt; and follow the prompts in the mini buffer.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Correcting mistakes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The most convenient aspect of writing on an electric screen is that it is easy to change your mind or correct a mistake without having to resort to correction fluids or other archaic methods. The following basic editing commands are available to modify text. Please note that commands that start with &lt;code class=&#34;verbatim&#34;&gt;kill&lt;/code&gt; store the deleted text on the kill ring. &lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Delete character after point&lt;/td&gt;
&lt;td&gt;&lt;code&gt;delete-char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-d&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;delete&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delete character before point&lt;/td&gt;
&lt;td&gt;&lt;code&gt;delete-backward-char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;&amp;lt;backspace&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delete the next word&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kill-word&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;M-d&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;delete&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delete to the end of the line&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kill-line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-k&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Emacs deletion commands.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Besides removing unwanted characters, you can also swap them with a series of transposing commands. When you accidentally reverse two letters in a word, you can switch their order with the &lt;code&gt;transpose-char&lt;/code&gt; command with the cursor between them (&lt;code class=&#34;verbatim&#34;&gt;C-t&lt;/code&gt;). Swapping words is quickly done with the &lt;code&gt;transpose-words&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;M-t&lt;/code&gt;) command.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Undo the Emacs way
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Emacs &lt;code&gt;undo&lt;/code&gt; command is mapped to &lt;code class=&#34;verbatim&#34;&gt;C-/&lt;/code&gt;. If you need to undo the step, use &lt;code class=&#34;verbatim&#34;&gt;C-?&lt;/code&gt; (&lt;code&gt;undo-redo&lt;/code&gt;). Each consecutive command will undo earlier changes. Any command other than an undo command breaks the sequence. &lt;/p&gt;
&lt;p&gt;
Although each editing command usually makes a separate entry in the undo records, simple commands (single key press) may be grouped together.&lt;/p&gt;
&lt;p&gt;
The Emacs undo system recovers any past text version. In contrast, the standard undo/redo system can lose past edits as soon as you redo. Getting lost in a sequence of undo and redo commands is easy. The &lt;a href=&#34;https://www.dr-qubit.org/undo-tree.html&#34;&gt;Undo Tree&lt;/a&gt; package by Toby Cubitt helps you keep track of your changes by visualising them as a tree. Use the ~ undo-tree-visualise ~ (&lt;code class=&#34;verbatim&#34;&gt;C-x u&lt;/code&gt;) command to walk through previous versions of your text.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/undo-tree.png&#34; alt=&#34;Example of an undo tree&#34; title=&#34;Example of an undo tree&#34; width=&#34;300&#34;/&gt;
&lt;figcaption&gt;
Example of an undo tree.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The current buffer will change as you work your way through its history with the arrow keys where &lt;code class=&#34;verbatim&#34;&gt;x&lt;/code&gt; marks the spot of the selected step. Use &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; to select the chosen edit and continue writing. The &lt;code class=&#34;verbatim&#34;&gt;C-q&lt;/code&gt; chord jumps out of the undo tree without making changes.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;undo-tree&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;global-undo-tree-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;undo-tree-auto-save-history&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
There is also a nuclear option. You can discard all the changes since the buffer was last visited or saved with &lt;code&gt;M-x revert-buffer&lt;/code&gt;, which reloads the file from the disk.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Configure text modes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The original purpose of Emacs is to edit computer code, so by default, the editor does not wrap lines at the end of the screen. While this behaviour is great for developing software, it isn&amp;#39;t very pleasant for writing prose. The &lt;code class=&#34;verbatim&#34;&gt;visual-line-mode&lt;/code&gt; minor mode enables line-wrapping, which is common in word processors. You can run the function separately for each buffer, but ideally, you link (hook) it to all text modes.&lt;/p&gt;
&lt;p&gt;
The second change is that when you select (mark) a section of text and start typing, Emacs will not replace the selected text by default. To enable Emacs to overwrite selected text, you set the &lt;code class=&#34;verbatim&#34;&gt;delete-selection-mode&lt;/code&gt; variable, as below.&lt;/p&gt;
&lt;p&gt;
Another sensible default for authors is to ensure that Emacs lets you use the &lt;code class=&#34;verbatim&#34;&gt;page-up&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;page-down&lt;/code&gt; buttons to go all the way to the first and last line in the buffer.&lt;/p&gt;
&lt;p&gt;
The last line better integrates the system clipboard with the Emacs kill ring.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Sensible line-breaking&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;add-hook&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;text-mode-hook&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;visual-line-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Overwrite selected text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;delete-selection-mode&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Scroll to the first and last line of the buffer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;scroll-error-top-bottom&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Copy the system clipboard to the kill ring&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;save-interprogram-paste-before-kill&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-13&#34;&gt;
Checking spelling
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Emacs minor mode Flyspell provides an interface to the &lt;a href=&#34;https://hunspell.github.io/&#34;&gt;Hunspell spell-checking software&lt;/a&gt;. To enable spell-checking, you thus first need to ensure that Hunspell is available on your computer. Hunspell is easy to install on Linux computers but is also available for &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-windows/&#34;&gt;Windows&lt;/a&gt; and &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-chromebook/&#34;&gt;Chromebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The configuration below enables Flyspell for all text modes and sets Hunspell as the default checking program. The &lt;code class=&#34;verbatim&#34;&gt;M-F7&lt;/code&gt; key checks the spelling for all words in the buffer, and &lt;code class=&#34;verbatim&#34;&gt;F7&lt;/code&gt; checks the word on which the cursor is standing.&lt;/p&gt;
&lt;p&gt;
A more productive method is to use the &lt;code&gt;flyspell-auto-correct-previous-word&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-;&lt;/code&gt;) function. This function provides the most likely correction of the first spelling error before the cursor. Emacs will show the list of possible corrections in the mini buffer. Repeatedly pressing &lt;code class=&#34;verbatim&#34;&gt;C-;&lt;/code&gt; will cycle through the options until you return to the original. This function prevents you from having to jump to your spelling mistakes.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Spell-checking&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Requires Hunspell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;ispell-program-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;hunspell&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;ispell-default-dictionary&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;en_AU&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;text-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;M-&amp;lt;f7&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell-buffer&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell-correct&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:after&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;flyspell&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell-auto-correct-previous-word&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;f7&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;flyspell-correct-wrapper&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You must modify the configuration to set your preferred dictionary as the default. The available English dictionaries in Hunspell are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;en_US&lt;/code&gt; (American)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;en_CA&lt;/code&gt; (Canadian)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;en_GB&lt;/code&gt; (British)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;en_AU&lt;/code&gt; (Australian)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hunspell supports a lot of other dictionaries, so you can install and choose your own when English is not your preferred language. &lt;/p&gt;
&lt;p&gt;
If you are multilingual, you can set a different language for each buffer by adding a file variable to the relevant buffer. Ass the text below as the last lines in your Org mode file, where you replace &lt;code class=&#34;verbatim&#34;&gt;nederlands&lt;/code&gt; (Dutch) with your preferred language:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;,# Local Variables:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;,# ispell-local-dictionary: nederlands
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;,# End:&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Emacs evaluates this line and activates the dictionary when you run &lt;code class=&#34;verbatim&#34;&gt;M-x normal-mode&lt;/code&gt; and the next time you open the file. This dictionary only applies to the relevant file; all other buffers remain in the default language.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Counting words
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;To count the words in a buffer, or part thereof, use the &lt;code class=&#34;verbatim&#34;&gt;count-word-region-function&lt;/code&gt;, which is bound to &lt;code&gt;M-=&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The result appears in the minibuffer. When you select a portion of text, this function will count only the selection. Adding the &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt;, prefix counts the words for the hole buffer (&lt;code class=&#34;verbatim&#34;&gt;C-u M-=&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
For Org mode buffers, the &lt;code&gt;ews-org-count-words&lt;/code&gt; command counts the words in each section and adds the word count as a property. Refer to &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;Distration-Free Writing with Org mode&lt;/a&gt; for details.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-15&#34;&gt;
Text size
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;To temporarily increase the height of the text in the current buffer, type &lt;code class=&#34;verbatim&#34;&gt;C-x C-+&lt;/code&gt;. To decrease it, type &lt;code class=&#34;verbatim&#34;&gt;C-x C--&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
To restore the default (global) face height, type &lt;code class=&#34;verbatim&#34;&gt;C-x C-0&lt;/code&gt;. These keys are all bound to the &lt;code&gt;text-scale-adjust&lt;/code&gt; function, which looks at the last key typed to determine which action to take.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-16&#34;&gt;
Text Completion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs developers have also written many completion systems to help you write text. These packages fall into two categories: &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion&lt;/a&gt; and expansion systems for prose and code.&lt;/p&gt;
&lt;p&gt;
Expanding text in human languages comes in two forms. You either start typing a word, and Emacs predicts what should go next, or you write a predefined abbreviation that expands into a word, a paragraph, a table or whatever else you define it as.&lt;/p&gt;
&lt;p&gt;
Predictive text is one of these technologies that can be both a blessing and a curse. Use it cautiously because it can hinder your writing when used too eagerly.&lt;/p&gt;
&lt;p&gt;
Company mode is a versatile package that can help you with completing long words. Its primary purpose is to assist developers with writing code, but it can also help you complete words.&lt;/p&gt;
&lt;p&gt;
Company mode provides suggested completions in a dropdown menu whenever you type a defined number of characters. It derives these options from all open text buffers. Use the arrow keys and enter to select your option, or ignore the menu and keep typing.&lt;/p&gt;
&lt;p&gt;
This configuration only activates when entering at least four characters and only shows words of eight or more letters. The wraparound option lets you cycle through the completions menu with the down and up arrow keys.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Auto completion&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;company&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;company-minimum-prefix-length&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;company-dabbrev-minimum-length&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;8&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;company-selection-wrap-around&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;global-company-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
When using variable pitch fonts, the dropdown menu for text completion gets distorted because the letters are not all the same size. The &lt;a href=&#34;https://github.com/tumashu/company-posframe&#34;&gt;company-posframe package&lt;/a&gt; by Tumashu solves this problem. A post frame is a floating child frame that can pop up anywhere on the screen, usually to show additional information.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Required for variable pitch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;company-posframe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;company-posframe-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-17&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-17&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-17&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the contact form to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article dives into getting productive with Emacs by explaining how to &lt;a href=&#34;https://lucidmanager.org/productivity/improving-the-emacs-user-interface/&#34;&gt;improve the Emacs user interface&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Improving the Emacs User Interface</title>
      <link>https://lucidmanager.org/productivity/improving-the-emacs-user-interface/</link>
      <pubDate>Fri, 25 Aug 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/improving-the-emacs-user-interface/</guid>
      <description>
	
&lt;p&gt;
A minimalist interface means that your Emacs becomes a place of rest and contemplation away from the cacophony of contemporary software, filled with buttons and functionality you don&amp;#39;t need. Emacs is an ugly duckling that you can configure into a beautiful swan. This article further explains how to improve the Emacs user interface. These settings are obviously opinionated, so this article is, more than anything else, an example of how to configure Emacs to your personal preferences.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Improving the Emacs user interface
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The default Emacs user interface is a hybrid between keyboard and mouse-driven operations. While using the mouse might seem convenient, a keyboard-driven system is more efficient because you don&amp;#39;t have to move your hand that much and switch contexts when finding icons.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; is a keyboard-centric configuration and removed any distractions from the Emacs. The following code snippet modifies the Emacs interface to remove these distractions. The first line inhibits the splash or startup screen. If you want to see it again for nostalgia, use &lt;code class=&#34;verbatim&#34;&gt;C-h C-a&lt;/code&gt; (&lt;code&gt;about-emacs&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
Emacs has the &lt;a href=&#34;https://www.youtube.com/watch?v=ZFJlxBPvzE0&#34;&gt;paternalistic habbit&lt;/a&gt; of asking for confirmation with either &lt;code class=&#34;verbatim&#34;&gt;y / n&lt;/code&gt; or with &lt;code class=&#34;verbatim&#34;&gt;yes / no&lt;/code&gt;, depending on the situation. The basic philosophy is that typing the whole word prevents accidentally killing unsaved buffers. While this functionality is a nice gesture, it can be annoying and confusing. The last line sets all yes / no confirmations to the one-letter abbreviation. The &lt;code class=&#34;verbatim&#34;&gt;use-short-answers&lt;/code&gt; variable defines this behaviour.&lt;/p&gt;
&lt;p&gt;
The following three lines remove the tool, menu and scroll bars because we don&amp;#39;t need these in a keyboard-driven system. These lines don&amp;#39;t set a variable but disable the various minor modes that control these graphical elements.&lt;/p&gt;
&lt;p&gt;
This configuration also removes the menu bar. While the menus are a useful tool to discover functionality, there is no need to constantly keep it on the screen. You can access it by pressing &lt;code class=&#34;verbatim&#34;&gt;F10&lt;/code&gt; (&lt;code&gt;menu-bar-open&lt;/code&gt;) and selecting menu options with the arrow keys and &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt;. You exit the menu with &lt;code class=&#34;verbatim&#34;&gt;C-g&lt;/code&gt; (&lt;code&gt;keyboard-quit&lt;/code&gt;). But after using Emacs for a while, you&amp;#39;ll quickly build muscle memory and revert to keyboard shortcuts.&lt;/p&gt;
&lt;p&gt;
If you like to see the effect of each line of code, place your cursor at the end of each line and press &lt;code class=&#34;verbatim&#34;&gt;C-x C-e&lt;/code&gt; to evaluate the expression (&lt;code&gt;eval-last-sexp&lt;/code&gt;). If the cursor is inside the parenthesis, then use &lt;code class=&#34;verbatim&#34;&gt;C-M-x&lt;/code&gt; (&lt;code&gt;eval-defun&lt;/code&gt;). To evaluate all code in a buffer, run &lt;code class=&#34;verbatim&#34;&gt;M-x eval-buffer&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; LOOK AND FEEL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Keyboard-centric user interface&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;inhibit-startup-message&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#963&#34;&gt;use-short-answers&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;tool-bar-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;menu-bar-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;scroll-bar-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;-1&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Themes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A theme is a set of instructions describing the colours of headings and other text parts. Colours in a text editor play a different role than in a word processor. &lt;a href=&#34;https://lucidmanager.org/productivity/why-use-emacs/&#34;&gt;Colours in Emacs are semantic&lt;/a&gt;, meaning they indicate the type of text, not how it looks when published. A heading might have a different colour than the text or metadata, which helps you find your way through the document.&lt;/p&gt;
&lt;p&gt;
Emacs does this through &lt;code class=&#34;verbatim&#34;&gt;font-lock-mode&lt;/code&gt;. Font locking assigns faces to (or &amp;#39;fontifies&amp;#39; in Emacs speak) various parts of your text using logical rules. Typing &lt;code class=&#34;verbatim&#34;&gt;M-x font-lock-mode&lt;/code&gt; toggles between your buffer&amp;#39;s themed and plain versions. Try this to see the effect of themes.&lt;/p&gt;
&lt;p&gt;
Two basic classes of themes exist for text editors: light and dark. Light backgrounds, common with most modern word processing software, &lt;a href=&#34;https://www.thewindowsclub.com/is-dark-mode-better-for-your-eyes&#34;&gt;can cause asthenopia&lt;/a&gt; (eye strain) after you stare at the screen for a while. Many text editor users, therefore, prefer dark themes. Light themes are, however, useful when you work in a brightly lit room.&lt;/p&gt;
&lt;p&gt;
The code snippet below installs and activates the most recent version of Prot&amp;#39;s &lt;a href=&#34;https://protesilaos.com/emacs/modus-themes&#34;&gt;Modus themes&lt;/a&gt;. The Modus themes each have four versions. The &lt;code class=&#34;verbatim&#34;&gt;modus-operandi&lt;/code&gt; theme is the primary light theme, while &lt;code class=&#34;verbatim&#34;&gt;modus-vivendi&lt;/code&gt; is its dark counterpart.&lt;/p&gt;
&lt;p&gt;
The primary Modus themes maximise contrast between background and foreground following the Web Content Accessibility Guidelines (WCAG). The Modus themes comply with the triple-A standard of the WCAG, which specifies &lt;a href=&#34;https://www.w3.org/WAI/WCAG22/Understanding/contrast-enhanced.html&#34;&gt;contrast ratio between background and foreground of 7:1&lt;/a&gt;. This high contrast ratio is legible for people with moderately low vision. Prot has also optimised versions for red-green and blue-yellow colour blindness (deuteranopia and tritanopia).&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses the tinted versions as default. These versions have a slightly lower contrast ratio than the default and are as such suitable for people with normal vision. The Modus themes do not prescribe any keyboard shortcuts, so I have defined some for EWS. The &lt;code class=&#34;verbatim&#34;&gt;C-c w m&lt;/code&gt; shortcut toggles between the light and dark side (insert Star Wars pun here). Using &lt;code class=&#34;verbatim&#34;&gt;C-c w M&lt;/code&gt; provides a selection menu of all Modus themes. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses &lt;code class=&#34;verbatim&#34;&gt;C-c w&lt;/code&gt; as its default keybinding for its specific functionality, where the &lt;code class=&#34;verbatim&#34;&gt;w&lt;/code&gt; is a mnemonic for writing and &lt;code class=&#34;verbatim&#34;&gt;m/M&lt;/code&gt; for Modus themes.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Modus Themes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;modus-themes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;modus-themes-italic-constructs&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;modus-themes-bold-constructs&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;modus-themes-mixed-fonts&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;modus-themes-headings&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; (&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.5&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                             (&lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; (&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.3&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                             (&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; (&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.1&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;modus-themes-to-toggle&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;color:#963&#34;&gt;modus-operandi-tinted&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;modus-vivendi-tinted&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w m&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;modus-themes-toggle&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w M&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;modus-themes-select&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;load-theme&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;modus-operandi-tinted&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:no-confirm&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Let&amp;#39;s unpack what this piece of code means. The &lt;code class=&#34;verbatim&#34;&gt;use-package&lt;/code&gt; declaration has three sections.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;:custom&lt;/code&gt; section does the same as the &lt;code class=&#34;verbatim&#34;&gt;setq-default&lt;/code&gt; function described previously. This configuration adds more variety to the theme, such as italic text, bold text, mixed fonts, and headings are rendered a bit larger than the normal text. This configuration uses the &lt;code class=&#34;verbatim&#34;&gt;*-tinted&lt;/code&gt; versions of the Modus themes (medium contrast).&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;:bind&lt;/code&gt; section binds the relevant keys to the function that toggles between light and dark Modus themes.&lt;/p&gt;
&lt;p&gt;
Lastly, the &lt;code class=&#34;verbatim&#34;&gt;:init&lt;/code&gt; section defines the functions run when the package is loaded. In this case, we load the tinted version of the dark Modus theme without confirmation.&lt;/p&gt;
&lt;p&gt;
If you like your configuration to default to the high-contrast versions of the theme or one of the two colour blindness-safe versions, then customise the &lt;code&gt;modus-themes-to-toggle&lt;/code&gt; variable to override this default and change the init version to the one you like Emacs to start with.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Other Themes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Several themes are part of Vanilla Emacs, which you can customise with the &lt;code&gt;customize-themes&lt;/code&gt; function. When you click the &lt;em&gt;Save Theme Settings&lt;/em&gt; function, the theme will be loaded next time you start Emacs. You will have to remove the Modus themes code to ensure that your other choice is loaded. When the theme is used for the first time, Emacs might ask you to confirm that it can run Elisp code.&lt;/p&gt;
&lt;p&gt;
Emacs users have developed a ragtag collection of themes. You can browse the &lt;a href=&#34;https://emacsthemes.com/&#34;&gt;Emacs Themes Gallery&lt;/a&gt; to pick your favourite. If the theme is available in the ELPA or MELPA package repositories, change the package and theme name in the code below to match the name of your favourite theme.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dracula-theme&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;load-theme&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;dracula&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Setting the fonts
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The default font in Emacs is a fixed-pitch (mono-spaced) font designed for writing code. In a fixed-pitch font, all characters have the same width. An &lt;code class=&#34;verbatim&#34;&gt;i&lt;/code&gt; or an &lt;code class=&#34;verbatim&#34;&gt;m&lt;/code&gt; will use the same amount of space, just like the traditional typewriters. This type of letter is ideal when writing code because it helps to align the text. Mono-spaced fonts are also necessary to create fantastic ASCII art, such as the dinosaur shown in &lt;a href=&#34;https://lucidmanager.org/productivity/why-use-emacs/&#34;&gt;another article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
A variable-pitch font is easier on the eye when writing prose. Not all characters have the same width in a variable-pitch font, as is common in natural writing. Ideally, we want the best of both worlds and configure Emacs to use the best font category for the best situation. For example, Emacs can define a different font for certain parts of the text, for individual buffers, or for a major mode.&lt;/p&gt;
&lt;p&gt;
The configuration below uses Alex Branham&amp;#39;s &lt;a href=&#34;https://gitlab.com/jabranham/mixed-pitch&#34;&gt;mixed-pitch package&lt;/a&gt;, which assigns fixed and variable pitch fonts to the relevant elements in the buffer. For example, tables in Org mode become fixed pitch so that all columns are the same size. The &lt;code class=&#34;verbatim&#34;&gt;use-package&lt;/code&gt; call hooks the mixed-pitch mode to all text modes, including Org mode.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Set default, fixed and variable pitch fonts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;mixed-pitch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;text-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;mixed-pitch-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration does not specify any particular fonts and use your system&amp;#39;s defaults. You can configure your favourite fonts, provided they are available on your computer. You need to define three font variable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;default&lt;/code&gt;: The default face settings when nothing else is specified (a fixed-pitch font).&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;fixed-pitch&lt;/code&gt;: The font used for computer code .&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;variable-pitch&lt;/code&gt;: The settings for prose.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Emacs, a &amp;#39;face&amp;#39; is a collection of attributes for displaying text. It defines the font, foreground colour, background colour, optional underlining, etc. Various &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Attributes.html&#34;&gt;face attributes&lt;/a&gt; are available for configuration. The ones we use here are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;font&lt;/code&gt;: The name of the font&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;height&lt;/code&gt;: The font height as an integer in units of 1/10 point.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The settings of the last two categories override the default. The &lt;code class=&#34;verbatim&#34;&gt;nil&lt;/code&gt; in the &lt;code class=&#34;verbatim&#34;&gt;set-face-attribute&lt;/code&gt; function sets the parameters for all Emacs frames.&lt;/p&gt;
&lt;p&gt;
You can also use the customisation menu by evoking &lt;code&gt;customize-face&lt;/code&gt; and select &lt;code class=&#34;verbatim&#34;&gt;default&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;fixed-pich&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;variable-pitch&lt;/code&gt; and enter the font name in the &lt;em&gt;Font Family&lt;/em&gt; box. Click &lt;em&gt;Apply and Save&lt;/em&gt; for each font. This action saves the font settings to the &lt;code class=&#34;verbatim&#34;&gt;custom.el&lt;/code&gt; file, which Emacs evaluates at the end of the startup sequence. See &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;Configure Emacs&lt;/a&gt; for more information about the initialisation process.&lt;/p&gt;
&lt;p&gt;
Please note that anything you configure here will override the theme settings, so only customise font family and size.&lt;/p&gt;
&lt;p&gt;
To see which fonts are available, you can set the fonts in a graphical window, run &lt;code&gt;menu-set-font&lt;/code&gt;. When you use the GUI to set the default font, the change is immediate but transient. Use &lt;code&gt;menu-bar-options-save&lt;/code&gt; to save your default font and size to the &lt;code class=&#34;verbatim&#34;&gt;custom.el&lt;/code&gt; file. &lt;/p&gt;
&lt;p&gt;
Alternatively, add the following three lines, with your fonts of choice to your &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt; file.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;set-face-attribute&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;default&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:font&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;DejaVu Sans Mono&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:height&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;130&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;set-face-attribute&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;fixed-pitch&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:font&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;DejaVu Sans Mono&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;set-face-attribute&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;variable-pitch&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:font&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;DejaVu Sans&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This video by Prot explains the principles of setting fonts in Emacs beautifully.&lt;/p&gt;
&lt;p&gt;
#+caption:Emacs: customize fonts (generic method and &amp;#39;fontaine&amp;#39; package).
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/qR8JRYr4BKE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Tooltips
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs supports &lt;a href=&#34;https://www.gnu.org/s/emacs/manual/html_node/emacs/Tooltips.html&#34;&gt;tooltips&lt;/a&gt; when the mouse hovers over when there is a pause in mouse movement over parts of text in a window, the mode line, or some other part of the Emacs frame such as a tool bar button or menu item.&lt;/p&gt;
&lt;p&gt;
The layout and typography of these tooltips is in most cases controlled by the window manager. To disable this behaviour, customise the variable &lt;code&gt;use-system-tooltips&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
With this option you can finetune the appearance of the tooltip by customising `tooltip-frame-parameters` and change the font with for example: &lt;code&gt;(set-face-attribute &amp;#39;tooltip nil :font &amp;#34;Monospace-16&amp;#34;)&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; (EWS) book. this book explains everything you need to know to research, write and publish articles and books with Emacs in a no-code environment. &lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article dives into enhancing the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion system&lt;/a&gt; to make it easier to find files, buffers and other information.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Enhancing Minibuffer Completion</title>
      <link>https://lucidmanager.org/productivity/emacs-completion-system/</link>
      <pubDate>Sat, 03 Jul 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-completion-system/</guid>
      <description>
	
&lt;p&gt;
Even with the advent of speech-to-text software, the keyboard is still the most common method to convert thoughts to text. While computers might one day even read our minds, there is something to be said about using your fingers to do the talking. Who would want their’ ums’ and’ ahs’ written down, or their uncensored stream of consciousness committed to text? Writing is as much about thinking and crafting a stream of words as it is about maximising keystrokes per minute.&lt;/p&gt;
&lt;p&gt;
Completion systems are like predictive text on a mobile phone. You start typing some characters, and the computer lets you complete your choice. Emacs has an extendable completion system that helps you complete long words, find files, remember function names and other menial tasks. This article explains the basic minibuffer completion engine and introduces some packages extending this functionality.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Emacs Completion Systems
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs has three types of &lt;a href=&#34;https://www.emacswiki.org/emacs/Completion&#34;&gt;completion systems&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Minibuffer completion&lt;/em&gt; assists with picking choices in the minibuffer, such as function names, files and other selections.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Keychord completion&lt;/em&gt;: Systems to help with keyboard shortcuts.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Text completion&lt;/em&gt; helps you complete words you type in the buffer (see &lt;a href=&#34;https://lucidmanager.org/productivity/writing-prose-with-emacs/&#34;&gt;Writing Prose with Emacs&lt;/a&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Minibuffer completion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The minibuffer is where you find files, call functions and other vital aspects. The minibuffer completion system aims to make it easier to find what you need by providing a search mechanism that provides a list of possible options.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Completion.html&#34;&gt;standard minibuffer Emacs completion system&lt;/a&gt; focuses on entering functions, filenames, buffer names and any other selection process in the minibuffer. When typing a partial function or file name, you can hit the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key. Emacs will display completion candidates in the minibuffer.&lt;/p&gt;
&lt;p&gt;
For example, to evaluate the &lt;code class=&#34;verbatim&#34;&gt;visual-line-mode&lt;/code&gt; function to change how Emacs wraps paragraphs, you type &lt;code class=&#34;verbatim&#34;&gt;M-x visu&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt;. If you hit &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; after each letter, you’ll notice that Emacs narrows the completion candidates as you get closer to your desired selection.&lt;/p&gt;
&lt;p&gt;
This principle also works with variable names and filenames. As you start looking for a filename, use the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key to prevent having to type the whole filename. The &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key is your secret weapon to help you remember and discover functions, variables, file names, buffer names and other selection candidates.&lt;/p&gt;
&lt;p&gt;
The minibuffer completion system is highly configurable, and several packages extend this functionality. The approach in this configuration uses a stack of connected packages that provide a seamless experience. This approach showcases the extensibility of Emacs as a modular computing environment. &lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Vertico
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/minad/vertico&#34;&gt;Vertico&lt;/a&gt; package enhances minibuffer completion. This extension uses incremental search, meaning the list of completion candidates is shortened to match your entry as soon as you type a letter.&lt;/p&gt;
&lt;p&gt;
When, for example, opening a file with &lt;code class=&#34;verbatim&#34;&gt;C-c C-f&lt;/code&gt;, you can start typing any part of the filename to locate the file  you seek. Use &lt;code class=&#34;verbatim&#34;&gt;C-backspace&lt;/code&gt; keys to move to a higher directory.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;savehist&lt;/code&gt; package remembers your selections and saves your minibuffer history when exiting Emacs. This package ensures that your most popular choices remain on top for further convenience.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; MINIBUFFER COMPLETION&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Enable vertico&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;vertico&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;vertico-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;vertico-sort-function&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;vertico-sort-history-alpha&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Persist history over Emacs restarts.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;savehist&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;savehist-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-4&#34;&gt;
Orderless
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;To further enhance our ability to find completion candidates, the &lt;a href=&#34;https://github.com/oantolin/orderless&#34;&gt;orderless package&lt;/a&gt; matches patterns, irrespective of the order they are typed in.&lt;/p&gt;
&lt;p&gt;
For example, typing &lt;code class=&#34;verbatim&#34;&gt;use pack TAB&lt;/code&gt; provides the same results as &lt;code class=&#34;verbatim&#34;&gt;pack use TAB&lt;/code&gt;. The basic configuration sets some variables for integration with the Vertico completion package.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;orderless&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;completion-styles&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;color:#963&#34;&gt;orderless&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;basic&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;completion-category-defaults&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;completion-category-overrides&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;color:#963&#34;&gt;file&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;styles&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;partial-completion&lt;/span&gt;)))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-5&#34;&gt;
Marginalia
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Emacs is a self-documenting computing environment, which means that every function and variable includes a text describing what it does.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://github.com/minad/marginalia&#34;&gt;marginala&lt;/a&gt; package displays these texts next to your completion candidates. When you now type &lt;code class=&#34;verbatim&#34;&gt;M-x&lt;/code&gt;, you will see a list of functions and a brief description of what they do, making it even easier to find the function you need.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Enable richer annotations using the Marginalia package&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;marginalia&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;marginalia-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/mini-buffer-completion.jpg&#34; alt=&#34;Minibuffer completion with Vertico, Orderless and Marginalia&#34; title=&#34;Minibuffer completion with Vertico, Orderless and Marginalia&#34;/&gt;
&lt;figcaption&gt;
Minibuffer completion with Vertico, Orderless and Marginalia.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
This video by Emacs guru Prot explains minibuffer completion in great detail.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/d3aaxOqwHhI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs: modern minibuffer packages (vertico, consult etc.).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Help with keyboard shortcuts
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Completion shortens the amount of text you must type and is terrific for discovering new functionality you did not yet realise existed. However, we usually don’t type function names but use keyboard shortcuts.&lt;/p&gt;
&lt;p&gt;
The Marginalia package shows the relevant keyboard shortcut when displaying the completion candidates to help you discover these shortcuts.&lt;/p&gt;
&lt;p&gt;
Remembering which keyboard shortcut you need in your next action takes some effort. The &lt;a href=&#34;https://github.com/justbur/emacs-which-key#introduction&#34;&gt;which-key&lt;/a&gt; package is not so much a completion system but a great help when trying to remember which keyboard shortcut to use. This package provides a minor mode that displays the key bindings following the currently-entered incomplete command (a prefix) in a popup.&lt;/p&gt;
&lt;p&gt;
Many keyboard shortcuts have multiple parts, such as &lt;code class=&#34;verbatim&#34;&gt;C-x C-f&lt;/code&gt;. The which-key package shows a popup menu that lists all the available options. When, for example, you press &lt;code class=&#34;verbatim&#34;&gt;C-x&lt;/code&gt;, the menu will list all follow-up keys and the function they are bound to. Where it says &lt;code class=&#34;verbatim&#34;&gt;prefix&lt;/code&gt; in the popup, this means that there is a deeper level.&lt;/p&gt;
&lt;p&gt;
If the number of shortcuts is too large to fit in the popup window, then you can move to the next page with &lt;code class=&#34;verbatim&#34;&gt;C-h n&lt;/code&gt; and the previous page with &lt;code class=&#34;verbatim&#34;&gt;C-h p&lt;/code&gt;.  Just typing &lt;code class=&#34;verbatim&#34;&gt;C-h&lt;/code&gt; inside the Which-Key popup displays some additional options to navigate the list of key bindings.&lt;/p&gt;
&lt;p&gt;
The configuration below displays the popup at the bottom of the screen after you type the partial keyboard shortcut. &lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Improve keyboard shortcut discoverability&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;which-key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;which-key-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;which-key-setup-side-window-right&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/which-key-popup-screen.jpg&#34; alt=&#34;Which-Key popup window for Emacs Writing Studio&#34; title=&#34;Which-Key popup window for Emacs Writing Studio&#34;/&gt;
&lt;figcaption&gt;
Which-Key popup window for C-x-w (Emacs Writing Studio).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-workflow/&#34;&gt;Emacs Writing Studio workflow&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Emacs Workflow for Authors</title>
      <link>https://lucidmanager.org/productivity/emacs-workflow/</link>
      <pubDate>Tue, 27 Dec 2022 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-workflow/</guid>
      <description>
	
&lt;p&gt;
Emacs is the Swiss Army Chainsaw of productivity tools. This venerable software tool can help you undertake almost every task in the writing process, from idea generation to writing and publishing. Experienced users say they &amp;#34;live inside Emacs&amp;#34; as virtually all computing activities can be done in this software. This article describes a possible Emacs workflow for writers.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
The Emacs Workflow
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The process of writing can be chaotic as it involves many iterative cycles. But an orderly pattern emerges when we step back from our daily tasks. We read literature, develop new ideas, work on these ideas and publish the results. Even though reality is never as linear as this list suggests, it is a helpful guide to organise an Emacs configuration.&lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration follows a five-step workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Inspiration&lt;/em&gt;: Reading, listening and watching.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ideation&lt;/em&gt;: Cultivating ideas (taking notes).&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Production&lt;/em&gt;: Writing and editing.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Publication&lt;/em&gt;: Export Org mode to PDF, ePub or a website.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Administration&lt;/em&gt;: Manage your projects.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Communication&lt;/em&gt;: Tell others about your work and exchange ideas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The basic principle of this workflow is that the author collects information from literature, the web, email and so on (&lt;em&gt;inspiration&lt;/em&gt;), which they process in a note-taking system (&lt;em&gt;ideation&lt;/em&gt;). These notes are the central repository of information and can be linked to a bibliography. These notes form the foundation of the writing process (&lt;em&gt;production&lt;/em&gt;). When the work is finally completed, the author publishes it in its final format (&lt;em&gt;publication&lt;/em&gt;). Elated with the final result, the author communicates her new work through email or social media (&lt;em&gt;communication&lt;/em&gt;). At the end of a long work day, we must also do some &lt;em&gt;Administration&lt;/em&gt; to keep our systems in good shape, which is the bonus step.&lt;/p&gt;
&lt;p&gt;
The image below summarises the packages that &lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses to convert ideas into reality.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-workflow.png&#34; alt=&#34;Emacs Writing Studio workflow&#34; title=&#34;Emacs Writing Studio workflow&#34; width=&#34;500&#34;/&gt;
&lt;figcaption&gt;
Emacs Writing Studio workflow.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Inspiration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Ideas don&amp;#39;t pop into your mind out of thin air. Our thoughts, plans and inspirations depend on what we read, hear or watch.&lt;/p&gt;
&lt;p&gt;
Emacs has extensive facilities to read any plain text format imaginable. Emacs can also display PDF files, ebooks, and images out of the box. Listening to a podcast or watching a video is impossible within an Emacs frame. Still, the system does integrate with external multimedia applications.&lt;/p&gt;
&lt;p&gt;
You can also maintain a bibliography in Emacs with BibTeX files and link these to electronic files for reading inside Emacs or with another program. The &lt;a href=&#34;https://github.com/emacs-citar/citar&#34;&gt;Citar package&lt;/a&gt; by Bruce D&amp;#39;Arcus provides a fast and efficient interface to your bibliography.&lt;/p&gt;
&lt;p&gt;
The Emacs internet browser is called &lt;code class=&#34;verbatim&#34;&gt;eww&lt;/code&gt; (Emacs Web Wowser). This is not a fully-featured browser but a tool that displays the website you like to read to a plain text file. While this approach creates readable websites without distracting crud, it cannot render more complex internet functionality.&lt;/p&gt;
&lt;p&gt;
Elfeed is an extensible web feed reader for Emacs, supporting both Atom and RSS feeds. You can use this package to follow your favourite websites. If you like to keep up to date on Emacs articles on this website, then &lt;a href=&#34;https://lucidmanager.org/tags/emacs/index.xml&#34;&gt;use this feed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Emacs can also interface with multimedia players and, as such, be configured to become a complete music and video platform.&lt;/p&gt;
&lt;p&gt;
The following articles on this website discuss how to configure Emacs to read literature or listen to music or podcasts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/reading-ebooks-with-emacs/&#34;&gt;Reading eBooks and Websites with Emacs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;Manage your literature with Emacs BibTeX Mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/read-rss-feeds-with-emacs-and-elfeed/&#34;&gt;Read RSS feeds with Emacs and Elfeed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/configure-emms/&#34;&gt;Configure EMMS — Emacs Multi-Media System on GNU/Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ingesting so many new ideas is only worthwhile if you keep a record of your new-found inspirations. Hence, maintaining research notes is essential to facilitate the ideation process.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/RGUvNnO7lj4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio: Inspiration (Read e-books, manage a bibliography, surf the web and play music).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Ideation
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;My personal ideation process starts with a physical notebook. This might be a strange thing to admit as somebody who professes admiration for the electronic virtues of Emacs. Physical notebooks have some advantages in the creative process. Firstly, you can use it everywhere. The only exception might be the shower, which is paradoxically where we get our best ideas. Using a notebook is also a slower process than using a keyboard. Writing with a pen forces you to think a bit more deeply about what you are writing. Apparently, writing on paper triggers &lt;a href=&#34;https://doi.org/10.3389/fnbeh.2021.634158&#34;&gt;different neural pathways&lt;/a&gt; than writing electronically.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-writing-studio-workflow.jpg&#34; alt=&#34;Physical notes on the Emacs workflow&#34; title=&#34;Physical notes on the Emacs workflow&#34; width=&#34;400&#34;/&gt;
&lt;figcaption&gt;
My physical notes on the Emacs workflow.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Once ideas have germinated in my notebook, some of these will find a place in my electronic system inside Emacs. As part of my weekly action list, I review my physical notes and transfer the ideas that require archiving to my digital system.&lt;/p&gt;
&lt;p&gt;
Emacs is an ideal tool for storing notes in plain text. Several packages are available to manage your digital brain. The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; revolves around the &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote&lt;/a&gt; package by Protesilaos (Prot) Stavrou.&lt;/p&gt;
&lt;p&gt;
I don&amp;#39;t follow any specific, such as &lt;a href=&#34;https://zettelkasten.de/introduction/&#34;&gt;Zettelklasten&lt;/a&gt; or &lt;a href=&#34;https://bulletjournal.com/&#34;&gt;Bullet Journal&lt;/a&gt;, to manage my notes. My collection of notes is a primordial soup of my ideas, categorised using tags and opportunistically linked. Besides extracts from my physical notebooks, Denote collects information I find online, extracts from my email inbox, social media or journal articles and books. Everything worth keeping goes to my Denote collection.&lt;/p&gt;
&lt;p&gt;
Most note-taking systems contain five types of notes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Fleeting notes&lt;/em&gt;: Quickly take a note while doing something else.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Permanent notes&lt;/em&gt;: Contains new ideas, project files and anything else worth keeping.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bibliographic notes&lt;/em&gt;: Notes about a book or article linked to the bibliography.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Journals&lt;/em&gt;: Daily or weekly reflections.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Attachments&lt;/em&gt;: Read-only files, such as images, PDFs, videos and anything else that supports the content of the written notes.&lt;/li&gt;
&lt;/ol&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-4&#34;&gt;
Fleeting notes
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Fleeting notes are collected in the central inbox. The Org mode capture mechanism provides a distraction-free tool to collect and store random ideas for later review.&lt;/p&gt;
&lt;p&gt;
A fleeting note can be an idea, an action item, a URL to review later or whatever else comes my way that has yet to require my attention.&lt;/p&gt;
&lt;p&gt;
Regularly reviewing your fleeting notes will turn them into actions to do later or convert them into permanent notes.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-5&#34;&gt;
Permanent notes
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;The permanent notes form your second brain. Using the Denote package, your collection of notes is structured using a tagging system, and they link together to connect your ideas and form a network of thoughts.&lt;/p&gt;
&lt;p&gt;
Denote can help you implement formal systems, such as Zettelkasten, or lets you use a more organic approach.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-6&#34;&gt;
Bibliographic notes
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Literature is the lifeblood of the researchers. Every new thought finds its origin in the ideas of others. Therefore, managing a bibliography is an essential skill for a researcher. Many commercial and free tools are available to help you manage your literature. These tools store a literature list and provide access to notes and attachments. &lt;/p&gt;
&lt;p&gt;
Bibliographic notes reference one or more bibliographic items, such as a book or an article. A bibliographic note contains a summary or interpretation of the literature you read. For that purpose, I have written the &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;Citar-Denote package&lt;/a&gt;, which provides functionality to write bibliographic notes. This package enables a many-to-many relationship between notes and bibliographic items. This means you can add multiple notes per bibliographic item or one note for more than one piece of literature.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-7&#34;&gt;
Journals
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A journal is your personal diary where you can reflect on the past day or week. The Denote package can help you build a journal, whether you like to document your travels or jot down personal reflections.&lt;/p&gt;
&amp;nbsp;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/HFUAKJI0_SI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio: Ideation (Taking fleeting and permanent notes).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Production
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Once you have gathered your thoughts, it is time to start writing. Emacs developers have published a lot of utilities to assist with the writing process, such as auto-completion, checking spelling and grammar, dictionaries, thesaurus and other tools indispensable to a writer.&lt;/p&gt;
&lt;p&gt;
Emacs Org mode is ideal for writing articles and books or developing websites. Another popular plain text format for writing is Markdown, which does not have the same flexibility as Org mode. Fountain mode is another plain text format designed to write scripts for theatre, film or a YouTube video.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://lucidmanager.org/productivity/writing-prose-with-emacs/&#34;&gt;Writing proce with Emacs&lt;/a&gt; article discusses how to write and edit text in Emacs. The &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;Distraction-Free Writing&lt;/a&gt; article discusses how to mange writing projects with Org mode.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Publication
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The glorious moment has arrived when you can publish the fruits of your labour. Emacs Org mode has powerful capabilities to export the text to various formats, most importantly PDF for physical books, ePub for ebooks and HTML for websites. The article on &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;Publishing Articles and Books with Org Mode Export&lt;/a&gt; discusses creating ebooks in detail.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
PDF format
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode exports files to PDF through the LaTeX document preparation system popular with technical authors and publishers. Emacs will export your Org files to LaTeX format, which then exports your file to a beautifully designed document. Many journals accept LaTeX submissions, so you can also export your Org mode to a &lt;code class=&#34;verbatim&#34;&gt;.tex&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;PDF&lt;/code&gt; file to send to the editor.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
ePub format
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode has built-in capabilities to export a file to HTML. The &lt;a href=&#34;https://github.com/ofosos/ox-epub&#34;&gt;ox-epub package&lt;/a&gt; by Mark Meyer leverages this functionality to produce a book in epub format.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-12&#34;&gt;
Word Processor
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Org mode export functionality has built-in capabilities to export to the standard open document format, which is compatible with all commercial word processors.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
Websites
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode can not only export to individual HTML files, but it can also publish them to a website. I use the &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo software&lt;/a&gt; to convert my collection or Org mode files into my websites. Hugo provides extensive capabilities to use templates for your websites, including shortcodes to dynamically insert HTML in your pages beyond the current capabilities of Org Mode.&lt;/p&gt;
&lt;p&gt;
The article &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Create Websites with org Mode and Hugo&lt;/a&gt; discusses how to create a website, such as the one you are reading now.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Communication
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs can also connect you to the world to communicate with other writers and your readers. &lt;/p&gt;
&lt;p&gt;
The software has built-in capabilities to read and write emails and several external packages, such as &lt;a href=&#34;https://www.djcbsoftware.nl/code/mu/&#34;&gt;mu4e&lt;/a&gt; and &lt;a href=&#34;https://www.cs.unb.ca/~bremner/scratch/notmuch-doc-wip/notmuch-emacs.html&#34;&gt;notmuch&lt;/a&gt; are available to make sense of your email. Using Emacs for email is a very efficient way to grind through your daily dose of electronic mail. Other packages let you connect to IRC, Reddit, Mastodon and other communication protocols.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; does not contain any configuration for communication packages.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-15&#34;&gt;
Administration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Working through a writing project is a fantastic journey in creative expression, but there is also some overhead in managing your projects.&lt;/p&gt;
&lt;p&gt;
Emacs interfaces with other GNU software to help you &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;manage your files&lt;/a&gt; using the powerful directory editor (dired). Managing your files is a breeze with this package. You can also use Emacs to manage your photograph collection with the &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;built-in image-dired package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Lastly, working on a big project means tracking many tasks. Org mode has a &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;fully functional task management system&lt;/a&gt; to help you keep track of your projects. You can implement your personal workflow or use a Getting Things Done (GTD) approach.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-16&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses how to use Emacs to &lt;a href=&#34;https://lucidmanager.org/productivity/reading-ebooks-with-emacs/&#34;&gt;read ebooks and other electronic documents&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Reading eBooks with Emacs</title>
      <link>https://lucidmanager.org/productivity/reading-ebooks-with-emacs/</link>
      <pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/reading-ebooks-with-emacs/</guid>
      <description>
	
&lt;p&gt;
The first step in the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-workflow/&#34;&gt;workflow&lt;/a&gt; is ingestion (reading, listening and watching) new content. Reading ebooks with Emacs is straightforward as it provides functionality to read several popular types of electronic documents, such as PDF and ePub. The software can also browse the web with an unobtrusive plain text browser.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/RGUvNnO7lj4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio video demonstration of reading e-books, managing a bibliography, reading websites and listening to music.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Reading Documents
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is excels at working with plain text in almost every imaginable format. However, it needs assistance from external software to display other document types, such as PDF or office formats. The diagram below shows the various external software packages necessary to render pages from the supported file formats. When you start the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration, you will receive a warning if any of the required packages is unavailable on your system.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/doc-view.png&#34; alt=&#34;Document conversion in Doc-View&#34; title=&#34;Document conversion in Doc-View&#34; width=&#34;300&#34;/&gt;
&lt;figcaption&gt;
Document conversion in Doc-View.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
ePub files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;An ePub file (Electronic Publication) is a widely used open standard format for digital books, magazines, and other written content. The content can adapt to different screen sizes, making it ideal for e-readers, tablets, and other devices.&lt;/p&gt;
&lt;p&gt;
An ePub file is a website in a box. The content and the layout are stored in a ZIP file. You can see the raw content of an ePub file with an archiving utility. You need to install the &lt;code class=&#34;verbatim&#34;&gt;unzip&lt;/code&gt; package to view the content.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;nov&lt;/code&gt; package by &lt;a href=&#34;https://depp.brause.cc/nov.el/&#34;&gt;Vasilij Schneidermann&lt;/a&gt; lets you read ePub books inside Emacs. The code after the &lt;code class=&#34;verbatim&#34;&gt;:init&lt;/code&gt; line associates files with the &lt;code class=&#34;verbatim&#34;&gt;.epub&lt;/code&gt; extension to this package.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Read ePub files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;nov&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;add-to-list&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;auto-mode-alist&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\.epub\\&amp;#39;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;nov-mode&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can now open ebooks like any other Emacs file. Use the arrow and &lt;code class=&#34;verbatim&#34;&gt;page-up&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;page-down&lt;/code&gt; keys to navigate each chapter. Several keyboard shortcuts are available to navigate the book:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt;: go Table of contents&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;n&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;[&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;]&lt;/code&gt;: Next or previous chapter&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;: Quit the ebook reader&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt;: Help file with list of other keyboard shortcuts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To increase or decrease the text, use the &lt;code class=&#34;verbatim&#34;&gt;C-x C-+&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;C-c C--&lt;/code&gt; shortcuts. To reset the length of the lines, press &lt;code class=&#34;verbatim&#34;&gt;g&lt;/code&gt; to re-render the document.&lt;/p&gt;
&lt;p&gt;
The ebooks are opened as a read-only file. You can copy and paste text into your bibliographic notes. Opening the file as an archive with the &lt;code class=&#34;verbatim&#34;&gt;a&lt;/code&gt; key shows the document&amp;#39;s structure. From here, you can also copy images from the book with the &lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt; keyboard shortcut. For more information about using files in Emacs, read &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;manage files with Emacs&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
PDF files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Portable Document Format (PDF) is a versatile format developed by Adobe in the early 1990s. This format presents documents consistently, regardless of the software, hardware, or operating system used to view them. This format is codified in an international standard and has become the de facto standard for electronic literature.&lt;/p&gt;
&lt;p&gt;
The layout of PDF documents is fixed, in contrast with other electronic formats, which can adjust to the screen size. A PDF file is usually designed for printing and, as such, follows a traditional physical layout and typography.&lt;/p&gt;
&lt;p&gt;
Emacs can display PDF files out of the box with the DocView major mode. However, you will need some external software for DocView to work. &lt;a href=&#34;https://www.ghostscript.com/&#34;&gt;GhostScript&lt;/a&gt; or &lt;a href=&#34;https://mupdf.com/&#34;&gt;MUPDF&lt;/a&gt; convert PDF files to images and provides them to DocView. This approach works because Emacs has built-in functionality to &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;display and manipulate images&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
This conversion means that DocView can be sluggish with large documents and will warn you. The &lt;code&gt;large-file-warning-threshold&lt;/code&gt; variable sets the threshold for these warnings, which is 10 Mb by default. This value is a bit low for modern systems and in &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, this threshold is 50 Mb.&lt;/p&gt;
&lt;p&gt;
Use the arrow and &lt;code class=&#34;verbatim&#34;&gt;page-up&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;page-down&lt;/code&gt; keys to turn pages. Several keyboard shortcuts are available to navigate the file:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;P&lt;/code&gt;: Zoom to the full page&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;W&lt;/code&gt;: Fit document width to window&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;H&lt;/code&gt;: Fit height to window&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;+&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;-&lt;/code&gt;: Zoom in and out&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-g g&lt;/code&gt;: Jump to page&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-&amp;lt;&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;M-&amp;gt;&lt;/code&gt;: Jump to first page or last page&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;k&lt;/code&gt;: Kill (close) the file&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt;: Help file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To enable searching in PDF and other supported document formats, you must have the &lt;code class=&#34;verbatim&#34;&gt;pdftotext&lt;/code&gt; software installed, which is part of the &lt;code class=&#34;verbatim&#34;&gt;poppler&lt;/code&gt; package, a PDF utility named after a &lt;a href=&#34;https://poppler.freedesktop.org/&#34;&gt;Futurama episode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
You can search within the document with &lt;code&gt;doc-view-search&lt;/code&gt; (bound to &lt;code class=&#34;verbatim&#34;&gt;C-s&lt;/code&gt;), which starts a search, creates a list of all matching pages and shows how many pages that contain the search query were found. After completing the search, you can jump to the next page containing a match with an additional &lt;code class=&#34;verbatim&#34;&gt;C-s&lt;/code&gt;.  DocView does not highlight the searched term, but pressing &lt;code class=&#34;verbatim&#34;&gt;C-t&lt;/code&gt; (&lt;code&gt;doc-view-show-tooltip&lt;/code&gt;) shows the search results for this page in a tooltip.&lt;/p&gt;
&lt;p&gt;
Poppler also allows you to view a PDF file as a plain text file with the &lt;code class=&#34;verbatim&#34;&gt;C-c t&lt;/code&gt; shortcut (&lt;code&gt;doc-view-open-text&lt;/code&gt;). This option makes it easier to search and copy relevant text. Return to the graphical view of the text by pressing &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt; twice.&lt;/p&gt;
&lt;p&gt;
We need some configuration to optimise how DocView displays pages. This code enhances the resolution of the page images to 300 DPI.&lt;/p&gt;
&lt;p&gt;
If you use Emacs 29.1 or higher and have the &lt;code class=&#34;verbatim&#34;&gt;MuPDF&lt;/code&gt; software available, then DocView will convert PDF pages to SVG files instead of PNG files, which provides a crisper image and better for zooming in closely.&lt;/p&gt;
&lt;p&gt;
Lastly, this configuration also moves the threshold for warning against opening large files to 50Mb ($50 \times 2^{20}$ bytes).&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Doc-View&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;doc-view&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;doc-view-resolution&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;300&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;doc-view-mupdf-use-svg&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;large-file-warning-threshold&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;50&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;expt&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;20&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This article on the &lt;a href=&#34;https://emacsnotes.wordpress.com/2018/08/09/222/&#34;&gt;Emacs Notes website&lt;/a&gt; also provides a detailed explanation of how to configure and use DocView and enhances the dropdown menu functionality.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
DjVu Books
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The DjVu format is designed primarily to store scanned documents. DocView can read DjVu files when &lt;a href=&#34;https://djvu.sourceforge.net/&#34;&gt;DjVuLibre&lt;/a&gt; is available on your system.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Office Suite Documents
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The built-in DocView package can read Microsoft Office and LibreOffice files (text documents and presentations), but you first need to install the &lt;a href=&#34;https://www.libreoffice.org/&#34;&gt;LibreOffice software&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
When opening an office document, Emacs invokes LibreOffice to convert the file to a PDF, from where the abovementioned functionality is available.&lt;/p&gt;
&lt;p&gt;
There is currently a confirmed bug in Org mode (version 9.6.6) that overrides the associations between LibreOffice and Doc View mode. The code below is a workaround to reinstate the desired behaviour and associates the various file extensions with Doc View. The bug is slotted to be resolved in version 9.7.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Reading LibreOffice files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ox-odt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:ensure&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Correct settings &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;add-to-list&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;auto-mode-alist&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\.\\(?:OD[CFIGPST]\\|od[cfigpst]\\)\\&amp;#39;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;doc-view-mode-maybe&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Reading websites
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs has a built-in web browser called &lt;code class=&#34;verbatim&#34;&gt;eww&lt;/code&gt; (The Emacs Web Wowser). This package provides a simple, no-frills experience focusing on readability by displaying a website as a plain text file. It can display images but does not render any CSS for formatting or JavaScript.&lt;/p&gt;
&lt;p&gt;
A wowser is somebody with strong moral views for temperance and abstinence. So perhaps the plain text approach to browsing is a moral stance on the current World Wide Web and its security and privacy issues.&lt;/p&gt;
&lt;p&gt;
You can open a URL or search the web with the command &lt;code class=&#34;verbatim&#34;&gt;M-x eww&lt;/code&gt;. If the input doesn&amp;#39;t look like a URL or domain name, Emacs searches the web with the DuckDuckGo search engine. &lt;/p&gt;
&lt;p&gt;
Use the arrow and page-up / page-down keys to navigate the page. Several keyboard shortcuts are available to navigate the webpage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;&amp;lt;&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;&amp;gt;&lt;/code&gt;: Beginning and end of the page&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;R&lt;/code&gt;: Readable format (only display the main text)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-I&lt;/code&gt;: Toggle images&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;H&lt;/code&gt;: Browsing history&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;&amp;amp;&lt;/code&gt;: Open the page in the external browser&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;G&lt;/code&gt;: New search or website&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;: Quit the window&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt;: Help file with list of other keyboard shortcuts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When opening a link to a website from inside Emacs, it will open the default browser on your operating system instead of &lt;code class=&#34;verbatim&#34;&gt;eww&lt;/code&gt;. If you prefer to use &lt;code class=&#34;verbatim&#34;&gt;eww&lt;/code&gt; as the default, add this to your configuration file: &lt;code&gt;(setq-default browse-url-browser-function &amp;#39;eww-browse-url)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Many blogs and podcasts use RSS feeds to notify their readers of new content. The &lt;a href=&#34;https://lucidmanager.org/productivity/read-rss-feeds-with-emacs-and-elfeed/&#34;&gt;Elfeed package&lt;/a&gt; lets you follow your favourite web content using these feeds.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Reading eBooks with Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This chapter focused on how to read documents in non-text formats. Reading these formats requires external software, in sumarry, to read all these formats you need to install:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ghostscript (&lt;code&gt;gs&lt;/code&gt;) or MuPDF (&lt;code&gt;mutool&lt;/code&gt;): Reading PDF files&lt;/li&gt;
&lt;li&gt;Poppler (&lt;code&gt;pdftotext&lt;/code&gt;): Converting PDF files to text&lt;/li&gt;
&lt;li&gt;LibreOffice (&lt;code&gt;soffice&lt;/code&gt;): Reading and exporting to office documents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unzip&lt;/code&gt;: Reading ePub ebooks&lt;/li&gt;
&lt;li&gt;DjVuLibre (&lt;code&gt;ddjvu&lt;/code&gt;): Reading DjVu ebooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration issues a warning when any of these packages is unavailable. Emacs will work normally, but some functionality might be unavailable.&lt;/p&gt;
&lt;p&gt;
Emacs can also publish documents in most of these formats, starting with an Org mode file and export this to the desired format. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; discusses:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;Publishing Articles and Books with Org Mode Export&lt;/a&gt; (PDF, office formats and ePub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Create websites with Emacs and Hugo&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses how to read &lt;a href=&#34;https://lucidmanager.org/productivity/read-rss-feeds-with-emacs-and-elfeed/&#34;&gt;RSS feeds&lt;/a&gt; to follow your favourite blogs and podcasts.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Read RSS and Atom feeds with Emacs and Elfeed</title>
      <link>https://lucidmanager.org/productivity/read-rss-feeds-with-emacs-and-elfeed/</link>
      <pubDate>Thu, 17 Dec 2020 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/read-rss-feeds-with-emacs-and-elfeed/</guid>
      <description>
	
&lt;p&gt;
Finding interesting content on the internet can be like sifting your way through a piles of garbage to discover something valuable. Social media can be fun and engaging, but the cacophony of irrelevant content driven by dark algorithms is disheartening. RSS and Atom let you subscribe to the websites and blogs you enjoy, without having to subscribe via email. A feed is an XML file on a web server with recent articles, either the complete text or an excerpt. This article describes reading RSS and Atom files with Org mode and the Elfeed package.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
RSS and Atom Feeds
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://www.technewsworld.com/story/86699.html&#34;&gt;RSS is an elegant mechanism to consume content&lt;/a&gt; because you only get to see those blogs or podcasts that you subscribe to. When you use RSS, no algorithm decides what you can and cannot see. Subscribing to RSS feeds is anonymous, so you will not be spammed with email funnels trying to sell you stuff or services. Some websites have multiple feeds, so readers can subscribe to specific topics. &lt;/p&gt;
&lt;p&gt;
Atom feeds are a newer feed format that clarifies some of the ambiguities in RSS. Both feeds are a form of XML, and you need an aggregator to display the content. Unfortunately, RSS and Atom feeds have lost importance due to the dominance of social media. However, the technology is still alive and used in most websites. Browsers no longer point them out, and websites rarely prominently link to them like they used to, but the feeds still exist.&lt;/p&gt;
&lt;p&gt;
Some websites that offer feeds use the RSS logo. When this is not the case, you can still find the feed. Over 40% of websites use WordPress. In these websites, you can find the feed by adding &lt;code class=&#34;verbatim&#34;&gt;feed&lt;/code&gt; to the end of the URL. If all else fails, you can find the feed by looking at the page source by right-clicking on the page. Search for &lt;code class=&#34;verbatim&#34;&gt;rss-xml&lt;/code&gt;, copy the URL in the &lt;code class=&#34;verbatim&#34;&gt;href&lt;/code&gt; specification and Bob&amp;#39;s your uncle. For example, the RSS feed for Emacs articles on this website is:&lt;/p&gt;
&lt;p&gt;
&lt;code class=&#34;verbatim&#34;&gt;https://lucidmanager.org/tags/emacs/index.xml&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Elfeed
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/skeeto/elfeed&#34;&gt;Elfeed&lt;/a&gt; Emacs package manages and reads your favourite RSS feeds. You can list your favourite feeds and categorise them. The Elfeed browser helps you to navigate through your collection of unread articles or podcasts.&lt;/p&gt;
&lt;p&gt;
The custom section sets the location of the downloaded content to your Emacs configuration folder instead of your home folder. You can remove this line or use a different directory. The second part in the custom section instructs Elfeed to open posts in a separate window. The last line sets the keyboard shortcut to start Elfeed to &lt;code class=&#34;verbatim&#34;&gt;C-c w e&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Configure Elfeed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;elfeed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;elfeed-db-directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;expand-file-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;elfeed&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;user-emacs-directory&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#963&#34;&gt;elfeed-show-entry-switch&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;display-buffer&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w e&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;elfeed&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/elfeed-screendump.jpg&#34; alt=&#34;Emacs Elfeed screendump&#34; title=&#34;Emacs Elfeed screendump&#34; width=&#34;800&#34;/&gt;
&lt;figcaption&gt;
Elfeed screendump.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
You must install the &lt;a href=&#34;https://curl.se/download.html&#34;&gt;cURL program&lt;/a&gt;, which stands for &amp;#39;Client for URLs&amp;#39;. This program assists with downloading files from the internet. If cURL is unavailable, then Elfeed uses the slower built-in Emacs method to extract data. which only works on Unix-based systems.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Adding RSS Feeds
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The basic configuration for Elfeed includes a list of RSS feeds by setting the &lt;code&gt;elfeed-feeds&lt;/code&gt; list variable. You can easily access this variable with the &lt;code&gt;customise-variable&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;
There is, however, a more convenient way to manage your collection of RSS feeds. The &lt;a href=&#34;https://github.com/remyhonig/elfeed-org&#34;&gt;elfeed-org&lt;/a&gt; package lets you configure your list of favourite websites in an Org mode file.&lt;/p&gt;
&lt;p&gt;
The package reads the nominated Org mode file(s) and collects all internet addresses or links in the headers with the &lt;code class=&#34;verbatim&#34;&gt;:elfeed:&lt;/code&gt; tag. You can also attach other tags to any link in a headline to organise your feed by topic.&lt;/p&gt;
&lt;p&gt;
The example below shows how you can structure your Elfeed Org Mode file. Note that a tag applies to all headings at a lower level, so the &lt;code class=&#34;verbatim&#34;&gt;:elfeed:&lt;/code&gt; tag also applies to the Emacs and news headings. To get started, you can copy and paste this example into an Org File. This sample file is also available on the &lt;a href=&#34;https://github.com/pprevos/emacs-writing-studio/&#34;&gt;EWS GitHub repository&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title: Elfeed configuration
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;Blogs                                             :elfeed:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ** Emacs                                            :emacs:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Anything Emacs related.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  *** https://lucidmanager.org/tags/emacs&lt;span style=&#34;font-style:italic&#34;&gt;/index.xml
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;font-style:italic&#34;&gt;  *** http:/&lt;/span&gt;/www.reddit.com/r&lt;span style=&#34;font-style:italic&#34;&gt;/emacs/&lt;/span&gt;.rss
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  *** https://www.youtube.com/feeds&lt;span style=&#34;font-style:italic&#34;&gt;/videos.xml?channel_id=UCEqYjPJdmEcUVfHmQwJVM9A
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;font-style:italic&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;font-style:italic&#34;&gt;  ** News                                             :news:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;font-style:italic&#34;&gt;  *** [[https:/&lt;/span&gt;/www.abc.net.au/news/feed/2942460/rss.xml][ABC Australia]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can either use the plain URL or an Org mode hyperlink. A hyperlink in Org mode consists of a nested set of square brackets &lt;code class=&#34;verbatim&#34;&gt;[[link][description]]&lt;/code&gt;. In Org mode, the link looks like a properly formatted hyperlink. You can insert a link with the &lt;code&gt;org-insert-ink&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c C-l&lt;/code&gt;) and follow the prompts in the minibuffer. You can select between many link types but need not worry about these when adding an internet link, just copy the URL and paste it in with &lt;code class=&#34;verbatim&#34;&gt;C-y&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://github.com/alphapapa/org-web-tools&#34;&gt;org-webtools package&lt;/a&gt; helps inserts fully formatted hyperlinks into Org mode. The &lt;code&gt;org-web-tools-insert-link-for-url&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w w&lt;/code&gt;) constructs an Org mode link from a web address in the kill-ring (when you copy a link) and extracts the link title from the website. &lt;/p&gt;
&lt;p&gt;
The only configuration you need for &lt;code class=&#34;verbatim&#34;&gt;elfeed-org&lt;/code&gt; is to set the name of the Org file(s) you like to use to store your feed links. To add or remove a feed, edit this file and update the feed database with &lt;code class=&#34;verbatim&#34;&gt;M-x elfeed-update&lt;/code&gt;. You can also add text comments, as Elfeed only reads headings.&lt;/p&gt;
&lt;p&gt;
In &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, the location of the Elfeed configuration is stored in the &lt;code&gt;ews-elfeed-config-file&lt;/code&gt; variable, defined in a &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;previous article&lt;/a&gt;. You can customise this variable to meet your needs or simple replace it with a string, e.g. &lt;code class=&#34;verbatim&#34;&gt;&amp;#34;~/Documents/elfeed.org&amp;#34;&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Configure Elfeed with org mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;elfeed-org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;elfeed-org&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;rmh-elfeed-org-files&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;list&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-elfeed-config-file&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Easy insertion of weblinks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-web-tools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w w&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-web-tools-insert-link-for-url&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
When &lt;em&gt;Emacs Writing Studio&lt;/em&gt; is first loaded, a special function creates an Elfeed note with the Denote package when such a note does not yet exist. You can then find the Elfeed Denote file and start entering your configuration.&lt;/p&gt;
&lt;p&gt;
If you don&amp;#39;t use the full &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration, then remote the &lt;code&gt;:after denote&lt;/code&gt; line and change the expression after &lt;code&gt;rmh-elfeed-org-files&lt;/code&gt; to another name, for example, &lt;code class=&#34;verbatim&#34;&gt;(list &amp;#34;~/Documents/elfeed.org&amp;#34;)&lt;/code&gt;. Please note that this variable has to be a list with the filename(s) as strings.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Using Elfeed
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You are now ready to read your RSS feeds. The first time you use Elfeed, use the &lt;code class=&#34;verbatim&#34;&gt;elfeed-update&lt;/code&gt; command to establish the database of feed content.&lt;/p&gt;
&lt;p&gt;
Press &lt;code class=&#34;verbatim&#34;&gt;C-c w e&lt;/code&gt; to start the Elfeed browser, which shows a list with the date and title of each entry, the feed&amp;#39;s name and any tags. When you hit &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt;, Elfeed displays the webpage or a summary with a hyperlink to the web version in another window. You can use the following keystrokes to manage your feed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;G&lt;/code&gt;: Fetch feed updates from the servers&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;s&lt;/code&gt;: Update the search filter&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;c&lt;/code&gt;: Clear the search filter&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;r&lt;/code&gt; Mark the entry as read&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;u&lt;/code&gt;: Mark the entry as unread&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;g&lt;/code&gt;: Refresh view of the feed listing (remove unread items)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;b&lt;/code&gt;: Open the article in the system browser&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;: Quit Elfeed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All new entries are tagged as unread by default. The other tags are derived from your list of RSS feeds.&lt;/p&gt;
&lt;p&gt;
When you remove a feed from your list, all articles that you previously downloaded will remain in the database and will show on your list until they are marked as read.&lt;/p&gt;
&lt;p&gt;
Elfeed has a powerful search filter that you can use to filter by tag, feed name and dates. The filter can process Regex queries. The &lt;a href=&#34;https://github.com/skeeto/elfeed/&#34;&gt;Elfeed manual&lt;/a&gt; describes the functionality in more detail than is warranted in this article.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/RGUvNnO7lj4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio video demonstration of reading e-books, managing a bibliography, reading websites and listening to music.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article in this series describes how to listen to music with the  &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emms/&#34;&gt;Emacs Multimedia System&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Configure EMMS: Emacs MultiMedia System on GNU/Linux</title>
      <link>https://lucidmanager.org/productivity/configure-emms/</link>
      <pubDate>Thu, 20 Aug 2020 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/configure-emms/</guid>
      <description>
	
&lt;p&gt;
Music is a great tool to boost your productivity. Playing the transcendental music of J.S. Bach or Sepultura&amp;#39;s screeching heavy metal soothes the soul while writing. Scientists have studied the &lt;a href=&#34;https://www.frontiersin.org/articles/10.3389/fnagi.2014.00284/full&#34;&gt;psychological effect of background music&lt;/a&gt; and found that it can improve episodic memory, intelligence, and verbal and visual processing speeds.&lt;/p&gt;
&lt;p&gt;
Emacs might be known as a text editor, but you can also play background music while you write, or listen to podcasts and videos in your information ingestion process. Emacs has several packages, such as &lt;a href=&#34;https://github.com/dbrock/bongo&#34;&gt;Bongo&lt;/a&gt; and &lt;a href=&#34;https://www.gnu.org/software/emms/&#34;&gt;EMMS&lt;/a&gt;, to help you access your collection of sound files. You might already have a great music player on your computer, but not having to switch applications to play music helps to retain your focus. &lt;/p&gt;
&lt;p&gt;
EMMS, the &lt;em&gt;Emacs Multimedia System&lt;/em&gt;, is a comprehensive music and video player for Emacs. It contains an intuitive browser that can show album covers and metadata. This article explains how to configure EMMS to convert your Emacs system into your personal jukebox.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Basic Installation
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;EMMS does not work out of the box when you install it via GNU ELPA. You will need some configuration and a music player. The minimum configuration for your &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;init file&lt;/a&gt; consists of these  lines:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Emacs Multimedia System&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;emms-setup&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;emms-mpris&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;emms-all&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;emms-default-players&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;emms-mpris-enable&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;emms-browser-covers&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;emms-browser-cache-thumbnail-async&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w m b&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms-browser&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w m e&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w m p&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms-play-playlist&lt;/span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;XF86AudioPrev&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms-previous&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;XF86AudioNext&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms-next&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;XF86AudioPlay&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emms-pause&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This configuration initiates EMMS with all its functionality and provides access to default music players. This setup is, however, not enough to fully enjoy your music. EMMS needs access to a music player to create sound and access to software to convert cover images to thumbnails.&lt;/p&gt;
&lt;p&gt;
To play sounds with Emacs, you must install one of the compatible sound players (ogg123, mpg321, mplayer, mpv or VLC). EMMS uses the &lt;code&gt;convert&lt;/code&gt; program of the &lt;a href=&#34;https://imagemagick.org/&#34;&gt;ImageMagick&lt;/a&gt;, a software suite to edit and manipulate digital images. When you run the complete &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration, the system will check whether one of the players and ImageMagick are available.&lt;/p&gt;
&lt;p&gt;
The last step to start playing music is to cache the music files. Evaluate the &lt;code&gt;emms-add-directory-tree&lt;/code&gt; command to scan your collection. EMMS creates a cache in your Emacs configuration directory.&lt;/p&gt;
&lt;p&gt;
EMMS can read metadata in music files for Ogg Vorbis, Opus, FLAC and MP3 files. This process might take a while, depending on the size of your collection. You can start playing music when &lt;code class=&#34;verbatim&#34;&gt;EMMS: All track information loaded&lt;/code&gt; shows in the minibuffer.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Play music with EMMS
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Phew, we can finally start enjoying the music collection. The basic principle is that you move tracks to the playlist buffer.&lt;/p&gt;
&lt;p&gt;
The browser is the most convenient way to select the music of your liking. You start the browser with &lt;code&gt;emms-browser&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w m b&lt;/code&gt;). Loading the browser for the first time in an Emacs session might take a while if you have an extensive music collection.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emms-screenshot.png&#34; alt=&#34;/images/emacs/emms-screenshot.png&#34; title=&#34;Screenshot of the EMMS browser&#34;/&gt;
&lt;figcaption&gt;
Screenshot of the EMMS browser.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
When in the EMMS browser, use the &lt;code class=&#34;verbatim&#34;&gt;b&lt;/code&gt; key followed by a number to browse by artist, album, genre, year, composer or performer. The browser is collapsed by default, showing only album covers, artist names, or whatever you select as the browsing category. The browser is hierarchical. When, for example, browsing by genre, the hierarchy has four levels &lt;em&gt;Genre&lt;/em&gt; &amp;gt; &lt;em&gt;Artist&lt;/em&gt; &amp;gt; &lt;em&gt;Album&lt;/em&gt; &amp;gt; &lt;em&gt;Track&lt;/em&gt;. Use the &lt;code class=&#34;verbatim&#34;&gt;1&lt;/code&gt; to collapse and the &lt;code class=&#34;verbatim&#34;&gt;2-4&lt;/code&gt; keys to expand the categories at levels 1 to 3. &lt;/p&gt;
&lt;p&gt;
As is the case in most Emacs applications, press &lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt; for a list of available keystrokes, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;r&lt;/code&gt;: Jump to a random entry&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;s&lt;/code&gt;: Search by album, artist, title, performer or composer&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;Enter&lt;/code&gt;: Add selection to playlist&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;C-j&lt;/code&gt;: Add selection to playlist and play&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;W&lt;/code&gt;: Lookup entry on Wikipedia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Being an Emacs buffer, standard search commands will also work for visible entries.&lt;/p&gt;
&lt;p&gt;
When the cursor is on a category, such as an album name or a composer, it will add all tracks belonging to that category. So when the cursor is on an album it will add all tracks. When the cursor is on a single track, it will only add that track to  the playlist.&lt;/p&gt;
&lt;p&gt;
You jump to the playlist with &lt;code&gt;emms&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w m e&lt;/code&gt;), from where you can manage what you play. Press &lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt; for a list of keyboard shortcuts, some of which are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;n&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt;: Next or previous track&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;r&lt;/code&gt;: Play a random track.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;D&lt;/code&gt;: Remove selected track from playlist&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt;: Clear playlist&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have curated a funky playlist, keep it for future reference. You can save a playlist buffer in &lt;code class=&#34;verbatim&#34;&gt;m3u&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;pls&lt;/code&gt; format for use in other multimedia players using the &lt;code&gt;save-buffer&lt;/code&gt; command (&lt;code class=&#34;verbatim&#34;&gt;C-x s&lt;/code&gt;). The &lt;code&gt;emms-play-playlist&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w m p&lt;/code&gt;) lets you load and play a saved playlist.&lt;/p&gt;
&lt;p&gt;
The configuration above also sets the multimedia buttons on your keyboard (play, pause, next, previous). The MPRIS (&lt;a href=&#34;https://www.freedesktop.org/wiki/Specifications/mpris-spec/&#34;&gt;Media Player Remote Interfacing Specification&lt;/a&gt;) extension ensures that these buttons also work when you are playing music with EMMS but are not in Emacs.&lt;/p&gt;
&lt;p&gt;
EMMS has many advanced features available for advanced control of your sound collection. Some other useful EMMS functions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;emms-play-directory&lt;/code&gt;: Add directory to playlist&lt;/li&gt;
&lt;li&gt;&lt;code&gt;emms-play-find&lt;/code&gt;: Plays all files in the music directory that match a given search criterion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is only the start of using EMMS. The Emacs Multimedia System has a plethora of options you can use to fine-tune your listening experience. Read the &lt;a href=&#34;https://www.gnu.org/software/emms/manual/&#34;&gt;EMMS manual&lt;/a&gt; with the info browser (&lt;code class=&#34;verbatim&#34;&gt;C-h i&lt;/code&gt;) for detailed information about the various options.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The ingestion process of the Emacs Writing Studio workflow is now complete. The next article in this series starts the ideation process and describes how to &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;take notes with Org mode&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Taking Notes With the Emacs Denote Package</title>
      <link>https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/</link>
      <pubDate>Mon, 28 Aug 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/</guid>
      <description>
	
&lt;p&gt;
Over the years I have tried a cornucopia of digital applications to take notes. Emacs has several note-taking packages that extend basic functionality to help you manage your solidified thoughts. This article explains how to use Org mode and the &lt;a href=&#34;https://protesilaos.com/emacs/denote&#34;&gt;Denote package&lt;/a&gt; by Protesilaos Stavrou.&lt;/p&gt;
&lt;p&gt;
Denote excels in its simplicity and the ease by which it can be extended. The most exciting aspect of Denote is that it can help you manage any file type, not only notes in Org mode. I use Denote extensively to manage my Org mode and other types of notes, PDF documents, photographs and videos and anything else. Another advantage is that Denote does not necessarily rely on Emacs, you can search and view your notes with any software that can process plain text files.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/HFUAKJI0_SI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio: Ideation (Taking fleeting and permanent notes).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Creating Notes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Note-taking seems to have gained popularity in recent years judging by the flood of blog pages and videos that tell you how to best take notes. Whether Luhmann&amp;#39;s &lt;em&gt;Zettelkasten&lt;/em&gt; or Carroll&amp;#39;s &lt;em&gt;Bullet Journal&lt;/em&gt;, they all profess to solve all your personal knowledge management challenges. In my personal experience with paper and digital journals for over thirty years, the structure of your notes is not that important. The sincerity and originality of the thoughts contained within your notes has primacy over following some rigid system. My methodology is a primordial soup of thoughts from which my writings emerge. Even Luhmann himself saw his &lt;a href=&#34;https://niklas-luhmann-archiv.de/bestand/zettelkasten/zettel/ZK_2_NB_9-8a2_V&#34;&gt;Zettelkasten as a septic tank for ideas&lt;/a&gt;. However, we can apply some logic to our workflow.&lt;/p&gt;
&lt;p&gt;
Not all notes are created equal and the relevant workflow depends on their purpose. Broadly speaking, we can distinguish between six types of notes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fleeting notes&lt;/li&gt;
&lt;li&gt;Permanent notes&lt;/li&gt;
&lt;li&gt;Bibliographic notes&lt;/li&gt;
&lt;li&gt;Journal entries&lt;/li&gt;
&lt;li&gt;Meta notes&lt;/li&gt;
&lt;li&gt;Attachments&lt;/li&gt;
&lt;/ol&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Fleeting notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Fleeting notes are transient thoughts you store for a future review. You might have a sudden insight or remember a task you need to do. You quickly jot it down in your notebook and move on with whatever you were doing.&lt;/p&gt;
&lt;p&gt;
Physical notebooks or mobile phone applications are good methods to capture fleeting notes. Imagine you are in the middle of writing an article and suddenly you remind myself to put the rubbish bins out. In Org mode you don&amp;#39;t open a special note-taking application and break your focus with a complex workflow. Adding a fleeting note is only a few keystrokes away.&lt;/p&gt;
&lt;p&gt;
When you feel the urge to write a note that is unrelated to the buffer you are currently working in, simply press &lt;code class=&#34;verbatim&#34;&gt;C-c c&lt;/code&gt; and a the Org mode capture screen pops up. You select the relevant template and write your thoughts into the popup buffer and press &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt; to save it. If you decide it was not worth storing after all, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-k&lt;/code&gt; to cancel the input. Org mode then returns to where you left off and you happily continue with your task with minimal disturbance.&lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration defines two types of fleeting notes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Textual notes&lt;/li&gt;
&lt;li&gt;New tasks&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you create a new fleeting note, Org mode asks you wether you need a new fleeting note or a task. Any entries are stored under the relevant heading and new notes are placed directly under previous entries.&lt;/p&gt;
&lt;p&gt;
The basic structure of your inbox looks like this:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title: Inbox
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;Notes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;Tasks&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The configuration below binds the keyboard shortcuts for capturing fleeting notes and links (see below on how to use links). The configuration also uses the &lt;code&gt;ews-inbox-file&lt;/code&gt; variable to store the filename of you fleeting note location, which is &lt;code class=&#34;verbatim&#34;&gt;~/Documents/inbox.org&lt;/code&gt; by default. You can of course customise this location to any filename of your choosing (see &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configure Emacs&lt;/a&gt; for details).&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Fleeting notes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:after&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#963&#34;&gt;denote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c c&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-capture&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c l&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-store-link&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-default-notes-file&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-inbox-file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-capture-bookmark&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Capture templates&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-capture-templates&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;f&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Fleeting note&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;item&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;file+headline&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-default-notes-file&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Notes&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;- %?&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;p&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Permanent note&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;plain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;file&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-last-path&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;denote-org-capture&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#007020&#34;&gt;:no-save&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#007020&#34;&gt;:immediate-finish&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#007020&#34;&gt;:kill-buffer&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#007020&#34;&gt;:jump-to-captured&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;t&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;New task&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;entry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;file+headline&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-default-notes-file&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Tasks&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;* TODO %i%?&amp;#34;&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
As you create more and more fleeting notes your inbox steadily fills with random musings and actions. In my personal &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;Getting Things Done&lt;/a&gt; setup I promise myself to review these notes once per week and process them. You can use the &lt;code class=&#34;verbatim&#34;&gt;C-u C-c c&lt;/code&gt; shortcut to jump to the inbox for your chosen template.&lt;/p&gt;
&lt;p&gt;
The weekly process involves reviewing these entries and either:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Undertaking the actions&lt;/li&gt;
&lt;li&gt;Move the actions to your calendar&lt;/li&gt;
&lt;li&gt;Convert the fleeting note to a permananet note.&lt;/li&gt;
&lt;li&gt;Trashing the fleeting note.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideally, your Inbox should trend towards zero content. &lt;/p&gt;
&lt;p&gt;
The Org mode capture templates are a versatile system that allows you to craft templates for different types of notes. You could, for example, create a separate entry for a shopping list that you synchronise with your mobile phone.&lt;/p&gt;
&lt;p&gt;
You can access the configuration in the capture menu with the &lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt; button, which pops up the customisation screen for the &lt;code&gt;org-capture-templates&lt;/code&gt; variable. Next click the &lt;code class=&#34;verbatim&#34;&gt;INS&lt;/code&gt; button to add another entry and complete the relevant fields as below and save the new variable. The example below create a shopping list stored in a file in your Dropbox folder. Several mobile apps exist that can read Org mode files, so you can take your list to the shops if you have a means to synchronise the relevant files.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-capture-customisation.png&#34; alt=&#34;Org capture customisation&#34; title=&#34;Org capture customisation&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Org capture customisation.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The possibilities for capture templates are extensive and depend on your individual use cases. Explaining the configuration of the Org capture options in detail is outside the scope of this website. &lt;a href=&#34;https://orgmode.org/manual/Capture.html&#34;&gt;Section 10.1 of the Org manual&lt;/a&gt; discusses developing capture templates in detail.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Creating notes with Denote
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Denote package is amazingly flexible and can implement whatever note-taking approach you like to use, including a fully-fledged Zettelkasten approach or just a freeform stream of consciousness.&lt;/p&gt;
&lt;p&gt;
The driving force of the Denote package is its file-naming convention. This approach embeds any metadata in the filename so there is no need for complex nested folder structures to find your way through your jungle of notes.&lt;/p&gt;
&lt;p&gt;
The Denote file naming convention has five parts (all in lowercase by default), of which only the first part and file extensions are required:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Timestamp in &lt;a href=&#34;https://en.wikipedia.org/wiki/ISO_8601&#34;&gt;ISO 8601&lt;/a&gt; format with a &lt;code class=&#34;verbatim&#34;&gt;T&lt;/code&gt; separating date and time, e.g. &lt;code class=&#34;verbatim&#34;&gt;20230930T160112&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The signature of the note (freeform letters and numbers), staring with a double equals sign, e.g. &lt;code class=&#34;verbatim&#34;&gt;==9a12&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;Note title separated by dashes (&lt;a href=&#34;https://www.freecodecamp.org/news/snake-case-vs-camel-case-vs-pascal-case-vs-kebab-case-whats-the-difference/&#34;&gt;kebab-case&lt;/a&gt;), staring with a double dash, e.g. &lt;code class=&#34;verbatim&#34;&gt;--taking-notes-with-denote&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Keywords separated by an underscore (&lt;a href=&#34;https://www.freecodecamp.org/news/snake-case-vs-camel-case-vs-pascal-case-vs-kebab-case-whats-the-difference/&#34;&gt;snake_case&lt;/a&gt;), starting with a double underscore, e.g. &lt;code class=&#34;verbatim&#34;&gt;__emacs_productivity&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Filename extension so Emacs recognises your file type.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The default setting is that filenames are in all lowercase. So a full Denote file name for this example looks like this:&lt;/p&gt;
&lt;p&gt;
&lt;code class=&#34;verbatim&#34;&gt;20230930T160112==9a12--taking-notes-with-denote__emacs_productivity.org&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
By default, Denote enforces lowercase characters in its filenames, but you can change his behaviour and &lt;a href=&#34;https://protesilaos.com/emacs/denote#h:6ae1ab8c-5e36-4216-8e93-f37f4447582c&#34;&gt;control the letter casing of file names&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The timestamp is a unique and immutable identifier that Denote uses for linking notes. The signature indicates a semantic order for notes, such as used in the . Semantic note-taking systems such Zettelkasten method. The keywords define categories the note belongs to. The signature, title and tags are flexible and can change over time without damaging the integrity of the system.&lt;/p&gt;
&lt;p&gt;
If you like to include signatures for your notes, then you need to use the &lt;code&gt;denote-signature&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;
All new notes are stored in the same folder, signified by the &lt;code&gt;denote-directory&lt;/code&gt; variable, which in EWS is mapped to &lt;code&gt;ews-notes-directory&lt;/code&gt;. There is technically no need to store notes in subdirectories, but you can do so with the &lt;code&gt;denote-subdirectory&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;
Using tags is a more versatile method to organise your information than subdirectories. If you use a subdirectory to order files, then part of the meta data for that file disappears as soon as you move or copy the file to another location. Also, a file can only live in one directory, but it can have multiple tags. Modern operating systems can easily manage tens of thousands of files in one directory, so use tags to categorise your information.&lt;/p&gt;
&lt;p&gt;
Configure the &lt;code&gt;denote-prompts&lt;/code&gt; variable to define the default way Denote generates and renames files.&lt;/p&gt;
&lt;p&gt;
Denote has a minor mode that formats compliant filenames in the &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;directory editor&lt;/a&gt; so it is easy to recognise the individual items of the note&amp;#39;s metadata. The filenames not only provide metadata for the note itself, they are also a heuristic to make it easy to find notes based on date, signatures, title or keyword.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-dired.jpg&#34; alt=&#34;Extract of Denote files in Dired&#34; title=&#34;Extract of Denote files in Dired&#34;/&gt;
&lt;figcaption&gt;
Extract of Denote files in Dired.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Denote can generate notes in plain text, Markdown or Org mode. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses the Org mode format because it is most suitable for writing bibliographic notes and managing citations. You can also use the Denote file naming convention for any other file types, for example to organise your photographs or PDF documents. So in Denote we can have notes (&lt;code class=&#34;verbatim&#34;&gt;txt&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;md&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;org&lt;/code&gt;) and any other file is an attachment.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Permanent notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;A permanent note is a piece of information you like to retain long term. In my personal workflow, I regularly convert fleeting notes and writings in my paper notebook to permanent notes. &lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-create-note&lt;/code&gt; function, which you activate with &lt;code class=&#34;verbatim&#34;&gt;C-c w d n&lt;/code&gt; creates new notes. It first asks for a title and then for the relevant keywords. You either select a keyword from the completion list in the minibuffer with the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key or you enter new ones, separated by a comma.&lt;/p&gt;
&lt;p&gt;
You can also create a permanent note through the Org capture mechanism with the &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt; option in the capture menu (&lt;code class=&#34;verbatim&#34;&gt;C-c c&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
The title of the note becomes part of the filename. In Org mode, you can also add a subtitle to the note by adding &lt;code class=&#34;verbatim&#34;&gt;#+subtitle:&lt;/code&gt; to the front matter of your note.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Bibliographic notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;A bibliographic note is a special category of permanent notes that link to one or more publications in your bibliography. The &lt;code class=&#34;verbatim&#34;&gt;citar-denote&lt;/code&gt; package provides extended functionality to create and manage bibliographic notes, &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;described in detail in another article&lt;/a&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Journal notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;You can also use Denote for personal reflection and create a journal. Writing a journal with Denote is easy because the identifier for each note indicates the date and time you created each note. Adding a standard tag, such as &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt; makes your journal entries easy to distinguish from other notes.&lt;/p&gt;
&lt;p&gt;
If you like to create a note for an entry in the past, then use the &lt;code&gt;denote-date&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w d d&lt;/code&gt;). You enter the date in Year-Month-Day (ISO 8601) notation like &lt;code class=&#34;verbatim&#34;&gt;2023-09-06&lt;/code&gt;. Optionally you can add a specific time, e.g: &lt;code class=&#34;verbatim&#34;&gt;2023-09-6 20:30&lt;/code&gt;. If no date and/or time is provided, Denote uses the present date and time. It makes sense to tag each journal entry with a standard keyword, e.g. &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt;, or whatever makes sense in your native language.&lt;/p&gt;
&lt;p&gt;
The Denote manual provides some &lt;a href=&#34;https://protesilaos.com/emacs/denote#h:4a6d92dd-19eb-4fcc-a7b5-05ce04da3a92&#34;&gt;extra functionality on keeping a journal or diary&lt;/a&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Meta notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;A metanote provides an entry point to other notes about a similar topic. Lets say that you are working on a project to write a paper about the &lt;em&gt;daimonion&lt;/em&gt; (prophetic monitor) that spoke to ancient Greek philosopher Socrates. You read the literature and create a bunch of permanent and bibliographic notes that use the &lt;code class=&#34;verbatim&#34;&gt;_daimonion&lt;/code&gt; keyword. When it is time to gather your thoughts into an integrated view, you can create a new note that links to all your relevant notes.&lt;/p&gt;
&lt;p&gt;
Org mode uses dynamic blocks to achieve this. The &lt;code&gt;denote-org-dblock-insert-links&lt;/code&gt; function  (&lt;code class=&#34;verbatim&#34;&gt;C-c w d D&lt;/code&gt;) will ask you for a regular expression that matches the notes you like to list. The great thing about dynamic blocks is that you can update them in case new notes are added by hitting &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt; twice when the cursor is on the &lt;code class=&#34;verbatim&#34;&gt;BEGIN&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;END&lt;/code&gt; line. &lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;#+BEGIN: &lt;/span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;denote-links&lt;/span&gt;&lt;span style=&#34;color:#888&#34;&gt; :regexp &amp;#34;_daimonion&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- Plato: Apology
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- Socrates and Plato
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- Plato: Crito
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;#+END:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
To change the search criteria you change the text between quotation marks after the &lt;code class=&#34;verbatim&#34;&gt;:regexp&lt;/code&gt; part of the first line.&lt;/p&gt;
&lt;p&gt;
You could, for example, use this approach to collate your journal notes for a certain month. Using the regular expression &lt;code class=&#34;verbatim&#34;&gt;^202309.*_journal&lt;/code&gt; will list all your journal entries for September 2023. The regular expression lists filenames that starts with &lt;code class=&#34;verbatim&#34;&gt;202309&lt;/code&gt; and include the &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt; keyword. The tilde (&lt;code class=&#34;verbatim&#34;&gt;^&lt;/code&gt;) denotes that you are searching at the start of the filename. The &lt;code class=&#34;verbatim&#34;&gt;.*&lt;/code&gt; in the middle of the regular expression indicates that any character (&lt;code class=&#34;verbatim&#34;&gt;.&lt;/code&gt;) can appear multiple times (&lt;code class=&#34;verbatim&#34;&gt;*&lt;/code&gt;). In other words, this regular expression searches for all notes that start with &lt;code class=&#34;verbatim&#34;&gt;202309&lt;/code&gt;, then some random characters, followed by &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt;. The &lt;code class=&#34;verbatim&#34;&gt;.*&lt;/code&gt; expression effectively acts as an AND statement, so we look for a note that starts with &lt;code class=&#34;verbatim&#34;&gt;202309&lt;/code&gt; and contains &lt;code class=&#34;verbatim&#34;&gt;journal&lt;/code&gt;. The only restriction is that the two elements have to appear in this order. Using &lt;code class=&#34;verbatim&#34;&gt;^202308\|_journal&lt;/code&gt; searches for notes that start with &lt;code class=&#34;verbatim&#34;&gt;202308&lt;/code&gt; or contain &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt;. Regular expressions are a powerful tool for searching but detailed discussion is outside the scope of the &lt;em&gt;Emacs Writing Studio&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;
The latest version of Denote also lets you transclude the text of other notes inside a note. The &lt;code&gt;denote-org-dblock-insert-text&lt;/code&gt; function works much in the same way as the links version, but includes the text of the referenced notes inside the meta note.&lt;/p&gt;
&lt;p&gt;
The dynamic block option provides a versatile tool to aggregate your thoughts about a topic and link to relevant notes. They provide an easy entry point into your collection of notes and are a great starting point for your writing projects.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Attachments
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote&amp;#39;s reliance on a filename to store metadata allows you to manage files other than the three types specified by Denote, which we can call attachments. An attachment in Denote is any file that is not recognised by Denote as a note, but with a compatible filename. Any file stored in the Denote directory that follows the Denote file naming convention will be recognised as an attachment and can be linked from inside a Denote file.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;denote-file-types&lt;/code&gt; variable defines the file types that are considered notes (by default Org mode, Markdown and plain text). You only need to adust this variable if you like to use Denote to &lt;em&gt;create&lt;/em&gt; new notes in a non-standard format. No configuration is required to visit and link to attachments.&lt;/p&gt;
&lt;p&gt;
This means that your digital notes garden can be much more than just text, Markdown or Org files. You can &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;manage your photographs with Denote&lt;/a&gt;, store an archive of PDF files, such as bank statements, course certificates, or scans of your paper archive. Extending the Denote in this way converts your list of notes to a complete information management system with easy heuristics to find your documents and linking your them to notes. Extending the Denote in this way converts your list of notes to a complete information management system with great heuristics to enable finding attachments and linking your them to notes.&lt;/p&gt;
&lt;p&gt;
The use-cases for extending Denote to binary files are numerous. I personally save my &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;photographs&lt;/a&gt; and videos in the Denote file format. I also store numerous PDF files, such as documents I scan or receive in this format. You could store literature as attachments instead of in  &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;your bibliography&lt;/a&gt;, but then you lose the ability to cite them in your writing.&lt;/p&gt;
&lt;p&gt;
If you like to separate collections of files then you can use &lt;a href=&#34;https://protesilaos.com/emacs/denote#h:15719799-a5ff-4e9a-9f10-4ca03ef8f6c5&#34;&gt;silos within Denote&lt;/a&gt;. A silos is a group of Denote files that do link to each other. The &lt;code class=&#34;verbatim&#34;&gt;denote-directory&lt;/code&gt; defines the default silo. If you want to link Denote files to each other, then they need to live within the same silo. Alternatively, you can create a symbolic link inside the Denote directory.&lt;/p&gt;
&lt;p&gt;
One use case would be to store all your tax receipts as PDF files. Getting ready for your tax return is than as easy as using a regular expression filter in Dired to mark all the files you need. Alternatively, you can link them all in an Org mode Denote file with a dynamic block using &lt;code&gt;denote-org-dblock-insert-links&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
For example, you tag all your tax records with the &lt;code class=&#34;verbatim&#34;&gt;_tax&lt;/code&gt; keyword and you can then find your 2023 tax files with the &lt;code class=&#34;verbatim&#34;&gt;^2023.*_tax&lt;/code&gt; regular expression, which creates a list of links.&lt;/p&gt;
&lt;p&gt;
You can also link to individual attachments inside a Denote file in the same way as you link your notes. It is obviously not possible to link back from an attachment to a note using Denote. &lt;/p&gt;
&lt;p&gt;
Denote recognises any file in the Denote directory that follows the correct naming convention. So the first step to register your attachment in Denote is giving it a compliant correct name.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-rename-file&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w d r&lt;/code&gt;) lets you construct a Denote-compliant file name for attachments from within the &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;dired file manager&lt;/a&gt;. This function uses the filename as a default title, which you can of course modify. The user adds relevant keywords and the last modified timestamp for the file becomes the identifier.&lt;/p&gt;
&lt;p&gt;
However, the creation date on the file system is not always the actual creation date. When working with attachments there are three options for a valid timestamp:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When the digitised document was created&lt;/li&gt;
&lt;li&gt;When the electronic file was born&lt;/li&gt;
&lt;li&gt;When the electronic file was created on the file system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using the universal argument &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt; instructs &lt;code&gt;denote-rename-file&lt;/code&gt; to ask the user to enter a date and/or time for the attachment.&lt;/p&gt;
&lt;p&gt;
So in &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, use &lt;code class=&#34;verbatim&#34;&gt;C-u C-c d r&lt;/code&gt; to rename a file and manually provide a timestamp. You need to enter the timestamp is &lt;a href=&#34;https://en.wikipedia.org/wiki/ISO_8601&#34;&gt;ISO 8601 format&lt;/a&gt;, for example: &lt;code class=&#34;verbatim&#34;&gt;2023-11-04 12:32:45&lt;/code&gt;. Alternatively, when you use Org mode, you can customise the &lt;code&gt;denote-date-prompt-use-org-read-date&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;
Over the years I have gradually digitised my paper archives. The oldest timestamp in my Denote library is &lt;code class=&#34;verbatim&#34;&gt;13700623T120000&lt;/code&gt;, which is a scan of a historic document that holds the mortgage of &lt;a href=&#34;https://www.rijckheyt.nl/cultureel-erfgoed/drakenmolen&#34;&gt;the house in which I was born&lt;/a&gt;. The creation date of the document is 20 September 2021. The Denote renaming function uses the file system date, but in this case I need to manually create a timestamp that places the document in the distant past.&lt;/p&gt;
&lt;p&gt;
The second scenario mostly occurs with photographs. The timestamp on the file system might not be the same as the moment the photograph was taken. So in this situation we need to extract the creation date from the file. Several tools, such as &lt;a href=&#34;https://exiftool.org/&#34;&gt;exiftool&lt;/a&gt; are available to extract metadata from photographs and PDF files.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Finding Notes and Attachments
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When collecting &lt;a href=&#34;https://lucidmanager.org/productivity/testing-denote-package/&#34;&gt;thousands of notes and attachments&lt;/a&gt; it is important that you have a way into the system to find the information you need or to make new connections between ideas.&lt;/p&gt;
&lt;p&gt;
The most straightforward method to find files is by opening a file in your Denote directory. The &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion system&lt;/a&gt; helps you to find what you need.&lt;/p&gt;
&lt;p&gt;
If, for example, you like to filter to all notes tagged as Emacs, type &lt;code class=&#34;verbatim&#34;&gt;C-c C-f&lt;/code&gt; and move to your notes folder and type &lt;code class=&#34;verbatim&#34;&gt;_emacs&lt;/code&gt; and minibuffer completion narrows the options. If you need a note with Emacs in the title, but not as a tag, then use &lt;code class=&#34;verbatim&#34;&gt;-emacs&lt;/code&gt;. If you type &lt;code class=&#34;verbatim&#34;&gt;emacs&lt;/code&gt; without a prefix then you see all posts with Emacs in the signature, title or as a tag.&lt;/p&gt;
&lt;p&gt;
When you use the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion configuration&lt;/a&gt; for the &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, you can separate keywords with spaces in any order. You can apply the same approach to title words and signatures. For example, using the search string &lt;code&gt;--denote _ews ==9a&lt;/code&gt; shows all notes with a title that starts with Denote (using the double hyphen), include the &amp;#34;ews&amp;#34; keyword and have a signature that starts with &amp;#34;9a&amp;#34;.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://github.com/mclear-tools/consult-notes&#34;&gt;consult-notes package&lt;/a&gt; by Colin McLear merges the capabilities of Denote and the Daniel Mendler&amp;#39;s &lt;a href=&#34;https://github.com/minad/consult&#34;&gt;Consult package&lt;/a&gt; to help you find notes without having to remember which directory they live in. This package also provides facilities to search through the content of your notes collection. &lt;/p&gt;
&lt;p&gt;
To find a note by any part of its filename, use the &lt;code&gt;consult-notes&lt;/code&gt; function bound to &lt;code class=&#34;verbatim&#34;&gt;C-c w f&lt;/code&gt;. You can use all methods described in the section on finding notes to narrow your quest for the perfect note. The configuration for Consult-Notes can include your main Denote files and one or more silos, giving you full access to all your files in a convenient interface. &lt;/p&gt;
&lt;p&gt;
Search for titles, tags and other meta data is great, but sometimes you will want to search through the content of your notes. The &lt;code&gt;consult-notes-search-in-all-notes&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w s&lt;/code&gt;) activates the search facilities. For this purpose, the package uses the &lt;a href=&#34;https://www.gnu.org/software/grep/&#34;&gt;grep software&lt;/a&gt;, which needs to be available on your system. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; checks for the presence of external software at startup and &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;leaves a warning&lt;/a&gt; in the messages buffer.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Linking Notes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You can link notes and attachments with the &lt;code&gt;denote-link-or-create&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w d i&lt;/code&gt;). This function provides a list of all available notes. Using the minibuffer completion system and the heuristics described in the previous section you can find the note you like to link to and hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The link only stores the identifier, e.g. &lt;code class=&#34;verbatim&#34;&gt;denote:20210208T150244&lt;/code&gt;. This means that you are free to change the signature, title or keywords of notes without having to worry about broken links. If you change the identifier timestamp in the filename, then Denote will be unable to find the linked document.&lt;/p&gt;
&lt;p&gt;
You follow a link in Org mode with the &lt;code&gt;org-open-at-point&lt;/code&gt; command, bound  to &lt;code class=&#34;verbatim&#34;&gt;C-c C-o&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
You can jump to any linked note with &lt;code&gt;denote-link-find-file&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w d l&lt;/code&gt;). This function shows all notes linked in this file in the minibuffer so you can select the one you like to jump to. This saves you having to find the location of the link and click on it. To find out which notes link to the one that you are currently reading, use the &lt;code&gt;denote-find-backlink&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w d b&lt;/code&gt;). This will, just like the previous function, show a list of all notes that are linked to the current one.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-11&#34;&gt;
Managing Meta Data
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you need to change the title or signature of a note, you can do so in the front matter inside the file. The &lt;code&gt;denote-rename-file-using-front-matter&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w d R&lt;/code&gt;) renames the file based on the information in the file.&lt;/p&gt;
&lt;p&gt;
To conveniently change keywords with minibuffer completion, use the &lt;code&gt;denote-keyword-add&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w d k&lt;/code&gt;) and &lt;code&gt;denote-keyword-remove&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w d K&lt;/code&gt;) functions.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://lucidmanager.org/productivity/denote-explore/&#34;&gt;Denote-Explore package&lt;/a&gt; provides some additional functionality to manage Denote files.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Configuring Denote
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The following lines of Elisp code configure Denote. This configuration sets the &lt;code&gt;ews-notes-directory&lt;/code&gt; variable as the repository for your Denote notes. You can change this location to any one you choose using the customisation menu, or replace  this variable with a string.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Denote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;denote-org-dblock&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;denote-rename-buffer-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;denote-directory&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-notes-directory&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-dired-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom-face&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;denote-faces-link&lt;/span&gt; ((&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;:slant&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;italic&lt;/span&gt;)))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Denote extensions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;consult-notes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:commands&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;consult-notes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               &lt;span style=&#34;color:#963&#34;&gt;consult-notes-search-in-all-notes&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;consult-notes-file-dir-sources&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;`&lt;/span&gt;((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Denote&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#04d;background-color:#fff0f0&#34;&gt;?d&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;ews-notes-directory&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-13&#34;&gt;
Learn more about Denote
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This article only provides a brief introduction to the Denote package. The extensive manual describes its full functionality in great detail. You can &lt;a href=&#34;https://protesilaos.com/emacs/denote#h:8b542c50-dcc9-4bca-8037-a36599b22779&#34;&gt;read the manual online&lt;/a&gt;, or read it inside Emacs with the &lt;code class=&#34;verbatim&#34;&gt;info&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-h R denote&lt;/code&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next articles in this series discusses how to &lt;a href=&#34;https://lucidmanager.org/productivity/denote-explore/&#34;&gt;explore your Denote collection&lt;/a&gt; with some enhanced functionality.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Exploring Your Ideas With the Denote-Explore Package</title>
      <link>https://lucidmanager.org/productivity/denote-explore/</link>
      <pubDate>Fri, 08 Sep 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/denote-explore/</guid>
      <description>
	
&lt;p&gt;
The &lt;a href=&#34;https://protesilaos.com/emacs/denote&#34;&gt;Denote package&lt;/a&gt; by Protesilaos (Prot) Stavrou provides extensive functionality to create, retrieve, manage and link files in plain text, Markdown and Org Mode. The most redeeming qualities of this package are its filename convention and modular simplicity. You can also use the package to access other file types, such as PDFs or multimedia files (attachments). This way, Denote becomes a fully-featured file-management system. You can read more about Denote in the context of &lt;em&gt;Emacs Writing Studio&lt;/em&gt; in &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;another article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The Denote-Explore package came into existence as my collection of Denote files grew. I created some auxiliary functions to manage and explore my burgeoning collection of Denote files, which I eventually packaged together. The package provides four types of commands:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Summary statistics&lt;/em&gt;: Count notes, attachments and keywords.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Random walks&lt;/em&gt;: Generate new ideas using serendipity.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Janitor&lt;/em&gt;: Maintain your denote collection.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Visualisations&lt;/em&gt;: Visualise your Denote files as a network.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
The Denote-Explore package is available on MELPA and GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/denote-explore/&#34; target=&#34;_blank&#34;
   title=&#34;Download denote-explore from GitHub&#34;
   alt=&#34;Download denote-explore from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;denote-explore&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/UylZOHIwnBw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio (Exploring your Denote digital knowledge garden).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Summary Statistics
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This Denote-Explore package distinguishes between Denote files (notes) and attachments. Denote files are either Org Mode, Markdown, or Plain Text. All other files, such as photographs, PDFs, media files, LaTeX, and HTML, are attachments.&lt;/p&gt;
&lt;p&gt;
After a day of working hard on your digital knowledge garden, you might like to count the notes and attachments in your collection. Two functions provide some basic statistics of your Denote files:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;denote-explore-count-notes&lt;/code&gt;: Count the number of notes and attachments. &lt;/li&gt;
&lt;li&gt;&lt;code&gt;denote-explore-count-keywords&lt;/code&gt;: Count the number of distinct Denote keywords. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These functions are informative, but a graph says more than a thousand numbers. The built-in &lt;code class=&#34;verbatim&#34;&gt;chart.el&lt;/code&gt; package by Eric M. Ludlam is a quaint tool for creating bar charts in a plain text buffer. Two commands are available in Denote-Explore to visualise basic statistics:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;denote-explore-keywords-barchart&lt;/code&gt;: Visualise the top &lt;em&gt;n&lt;/em&gt; keywords.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;denote-explore-extensions-barchart&lt;/code&gt;: Visualise used file extensions.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-keywords-barchart.png&#34; alt=&#34;Example of a bar chart of top-keywords&#34; title=&#34;Example of a bar chart of top-keywords&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Example of a bar chart of top-twenty keywords.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Random Walks
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Creativity springs from a medley of experiences, emotions, subconscious musings, and connecting random ideas. Introducing random elements into the creative process generates avenues of thought you might not have travelled otherwise. Random walks through your notes can be beneficial when you&amp;#39;re stuck in a rut or just like to walk through your files randomly.&lt;/p&gt;
&lt;p&gt;
A random walk is an arbitrary sequence of events without a defined relationship between the steps. You take a random walk by jumping to a random note, either connected or unconnected to the current buffer.&lt;/p&gt;
&lt;p&gt;
The Denote-Explore package provides four commands to inject some randomness into your explorations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;denote-explore-random-note&lt;/code&gt;: Jump to a random note or attachment.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;denote-explore-random-link&lt;/code&gt;: Jump to a random linked note (either forward or backwards) or attachments (forward only).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;denote-explore-random-keyword&lt;/code&gt;: Jump to a random note or attachment with the same selected keyword(s).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;denote-explore-random-regex&lt;/code&gt;: Jump to a random note that matches a regular expression.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The default state is that these three functions jump to any Denote text file (plain text, Markdown or Org-mode). Adding the universal argument (&lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt;) includes attachments as candidates for a random jump.&lt;/p&gt;
&lt;p&gt;
Jumping to a randomly linked file only works when the current buffer is a Denote file. A warning appears when the current buffer is an isolated note (no links or backlinks available).&lt;/p&gt;
&lt;p&gt;
When jumping to a random file with selected keywords, you can choose between one or more keywords from the current buffer, or you can override the completion options with free text. When the current buffer only has one keyword, the section process is skipped. When the current buffer is not a Denote file, you can choose any available keyword(s) in your Denote collection. The asterisk symbol &lt;code class=&#34;verbatim&#34;&gt;*&lt;/code&gt; selects all keywords in the completion list. Please note that jumping to a random note with multiple keywords only works when the &lt;code&gt;denote-sort-keywords&lt;/code&gt; is enabled or when the selected keywords are in the same order as in the target file. The following section explains how you can alphabetise your keywords using the Janitor.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Denote-Explore Janitor
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After using Denote for a while, you might need a janitor to keep your collection organised. A janitor is a member of the maintenance and cleaning staff for buildings. Their primary responsibility is to ensure cleanliness, orderliness, and sanitation, so this role is also perfect to apply to your Denote files. The Denote-Explore package provides a series of commands to assist with cleaning, ordering and sanitising your files.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Duplicate notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Denote identifier is a unique string constructed of the note&amp;#39;s creation date and time in ISO 8601 format (e.g., &lt;code class=&#34;verbatim&#34;&gt;2024035T203312&lt;/code&gt;). Denote either uses the current date and time when generating a new note or the date and time the file was created on the file system. The Denote package prevents duplicate identifiers when creating a new note.&lt;/p&gt;
&lt;p&gt;
Besides my Denote-generated notes, I have historical attachments in my collection and manually add identifiers. My &amp;#39;oldest&amp;#39; Denote file is a mortgage document from 23 June 1370. The creation date and time of the file are irrelevant, as I like to keep my files sorted in historical order, so I manually add identifiers (for example &lt;code class=&#34;verbatim&#34;&gt;13700623T120000&lt;/code&gt;). I used the same approach when renaming scanned photographs in Denote format. Adding the Denote identifier manually introduces a risk of duplication. Duplicates can also arise when exporting Denote Org mode files, as the exported files have the same file name but a different extension.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-identify-duplicate-notes&lt;/code&gt; command lists all duplicate identifiers in a popup buffer. Be careful when changing the identifier of a Denote file, as it can destroy the integrity of your links, so please ensure that the file you rename does not have any links pointing to it. You can use the &lt;code&gt;denote-find-link&lt;/code&gt; and &lt;code&gt;denote-find-backlink&lt;/code&gt; commands to check a file for links.&lt;/p&gt;
&lt;p&gt;
Using this command with the universal argument (&lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt;), looks for duplicated filenames instead of identifiers. This option thus ignores any duplicated identifiers created when exporting Denote Org mode files.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Isolated notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote implements a linking mechanism that connects notes (either Org mode, Markdown, or plain text) to other notes or attachments. This mechanism allows the user to visualise all notes as a network, as explained below. However, some notes don&amp;#39;t have any links or backlinks. Depending on your note-taking strategy, you might want all your notes linked to another note.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-isolated-notes&lt;/code&gt; function provides a list in the minibuffer of all notes without links or backlinks for you to peruse. You can select any note and add any links. Calling this function with the universal argument &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt; includes attachments in the list of lonely files.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Managing Keywords
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote keywords connect notes with similar content. Keywords should not exist in solitude because a category with only one member is not informative. Single keywords can arise because topics need to be fully developed or due to a typo. The &lt;code&gt;denote-explore-single-keywords&lt;/code&gt; command provides a list of file tags that are only used once. The list of single keywords is presented in the minibuffer, from where you can open the relevant note or attachment.&lt;/p&gt;
&lt;p&gt;
You can also find any notes or attachments that don&amp;#39;t have any keywords at all with the &lt;code&gt;denote-explore-zero-keywords&lt;/code&gt;. This command presents all notes and attachments without keywords in the minibuffer, so you can open them and consider adding a keyword or leaving them as is.&lt;/p&gt;
&lt;p&gt;
You can remove or rename keywords with &lt;code&gt;denote-explore-rename-keyword&lt;/code&gt;. Select one or more existing keywords from the completion list and enter the new name of the keyword(s). This function renames all chosen keywords to their new version or removes the original keyword from all existing notes when you enter an empty string as the new keyword. This function cycles through all notes and attachments containing one or more of the selected keywords and asks for confirmation before making any changes. The new keyword list is stored alphabetically, and the front matter is synchronised with the file name.&lt;/p&gt;
&lt;p&gt;
Denote sorts keywords alphabetically when the &lt;code&gt;denote-sort-keywords&lt;/code&gt; variable is enabled. Ordering keywords alphabetically makes searching for files more predictable. If you rename files manually, the keywords might not always be in the correct order. The &lt;code&gt;denote-explore-sort-keywords&lt;/code&gt; function checks all notes and notifies the user if there are any notes where keywords are not alphabetised. The function warns the user before renaming any files. This function also synchronises the front matter with the file name.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Synchronising Meta Data
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote stores the metadata for each note in the filename using its ingenious format. Some of this metadata is copied to the front matter of a note, which can lead to differences between the two metadata sources.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-sync-metadata&lt;/code&gt; function checks all notes and asks the user to rename any file where these two data sets are mismatched. The front matter data is the source of truth. This function also enforces the alphabetisation of keywords, which assists with finding notes.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Visualise Denote
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is a text processor with limited graphical capabilities. Committing your ideas to text requires a linear way of thinking, as you can only process one word at a time. In my paper journal, I often use diagrams, such as a mind map, rather than a narrative to relate my thoughts. Visual thinking is another way to approach your ideas, and one of the most common methods to visualise interlinked documents is in a network diagram.&lt;/p&gt;
&lt;p&gt;
Viewing your notes as a network can help discover hitherto unseen connections between your thoughts. Visualising your Denote digital garden can be helpful in your creative process.&lt;/p&gt;
&lt;p&gt;
Denote Explore does not provide a live environment to view the structure of your Denote collection. The purpose of network visualisation is to analyse the structure of your notes, not to act as an alternative user interface. Live previews of note networks are dopamine traps. While seeing the network of your thoughts develop in front of your eyes is satisfying, it can also become a distraction. The Denote-Explore visualisation tools provide a surgical tool to analyse and restructure your notes.&lt;/p&gt;
&lt;p&gt;
A network diagram has nodes (vertices) and edges. Each node represents a file in your Denote system, indicated with a circle. Each edge is a link between notes. Denote-Explore provides three types of network diagrams to explore the relationships between your thoughts. The package exports and displays each of these in one of three formats, with SVG files viewed in the browser as the default.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-example.png&#34; alt=&#34;Visualising Denote files as a network&#34; title=&#34;Visualising Denote files as a network&#34; width=&#34;250&#34;/&gt;
&lt;figcaption&gt;
Visualising Denote files as a network.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
You create a network with the &lt;code&gt;denote-explore-network&lt;/code&gt; command. This command will ask the user to select the type of network to create. Each network type requires additional inputs to zoom in to a defined part of your Denote files.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-9&#34;&gt;
Community of Notes
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A community consists of notes that share part of an ID, name, signature or keyword. The software asks to enter a search term or regular expression. For example, all notes with Emacs as their keyword (&lt;code class=&#34;verbatim&#34;&gt;_emacs&lt;/code&gt;), or all notes with a certain part of a signature, e.g. &lt;code&gt;==ews01&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The regular expression &lt;code&gt;==ews01.*_emacs&lt;/code&gt; selects all notes with &lt;code class=&#34;verbatim&#34;&gt;ews01&lt;/code&gt; in their signature and &lt;code class=&#34;verbatim&#34;&gt;emacs&lt;/code&gt; and a keyword. The &lt;code class=&#34;verbatim&#34;&gt;.*&lt;/code&gt; in the middle of the regular expression indicates that any character (&lt;code class=&#34;verbatim&#34;&gt;.&lt;/code&gt;) can appear multiple times (&lt;code class=&#34;verbatim&#34;&gt;*&lt;/code&gt;). In other words, this regular expression searches for all notes that contain &lt;code class=&#34;verbatim&#34;&gt;ews01&lt;/code&gt;, then some random characters, followed by &lt;code class=&#34;verbatim&#34;&gt;_emacs&lt;/code&gt;. The &lt;code class=&#34;verbatim&#34;&gt;.*&lt;/code&gt; expression effectively acts as an AND statement. The only restriction is that the two elements have to appear in this order. Using &lt;code&gt;=ews01\|_journal&lt;/code&gt; searches for notes that contain &lt;code&gt;_ews01&lt;/code&gt; OR &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt;. Regular expressions are a powerful tool for searching but a detailed discussion is outside the scope of &lt;em&gt;Emacs Writing Studio&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;
A community graph displays all notes matching the search term and their connections. The algorithm prunes any links to non-matching notes (dotted line in the example).&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-regex-ignore&lt;/code&gt; variable lets you define a regular expression of notes to ignore in your visualisations. Lets assume you create meta notes with long lists of dynamic links and they have the &lt;code class=&#34;verbatim&#34;&gt;_meta&lt;/code&gt; keyword, then you could exclude this set of nodes by setting this variable to &amp;#34;&lt;code class=&#34;verbatim&#34;&gt;_meta&lt;/code&gt;&amp;#34;.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-community.png&#34; alt=&#34;Community of Denote files with Emacs keyword&#34; title=&#34;Community of Denote files with Emacs keyword&#34; width=&#34;300&#34;/&gt;
&lt;figcaption&gt;
Community of Denote files with Emacs keyword.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
To generate a community graph, use &lt;code&gt;denote-explore-network&lt;/code&gt;, choose community and enter a search string or regular expression.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-regenerate&lt;/code&gt; command recreates the current graph with the same parameters, which is useful when changing the structure of your notes and you like to see the result visualised.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-10&#34;&gt;
Note Neighbourhood
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;The neighbourhood of a note consists of all files linked to it at one or more steps deep. The algorithm selects members of the graph from linked and backlinked notes. This visualisation effectively creates the possible paths you can follow with the &lt;code&gt;denote-explore-random-link&lt;/code&gt; function discussed in the Random Walks session above.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-regex-ignore&lt;/code&gt; variable lets you define a regular expression of notes to ignore in your visualisations. Lets assume you create meta notes with long lists of dynamic links and they have the &lt;code class=&#34;verbatim&#34;&gt;_meta&lt;/code&gt; keyword, then you could exclude this set of nodes by setting this variable to &amp;#34;&lt;code class=&#34;verbatim&#34;&gt;_meta&lt;/code&gt;&amp;#34;.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-neighbourhood.png&#34; alt=&#34;Denote neighbourhood of files&#34; title=&#34;Denote neighbourhood of files&#34; width=&#34;250&#34;/&gt;
&lt;figcaption&gt;
Denote neighbourhood of files (depth = 2).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
To generate a neighbourhood graph from the current Denote note buffer, use &lt;code&gt;denote-explore-network&lt;/code&gt; and enter the graph&amp;#39;s depth. The user enters the required depth, and the software searches all notes linked to the current buffer at that depth. When building this graph from a buffer that is not a Denote note, the system also asks to select a source file (A in the diagram). The system issues a warning when you select a note without links or backlinks. You can identify your Denote files without any links with the &lt;code&gt;denote-explore-isolated-notes&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-regenerate&lt;/code&gt; command recreates the current graph with the same parameters, which is useful when you want to change the structure of your notes after viewing the first version of the graph.&lt;/p&gt;
&lt;p&gt;
The complete set of your Denote files is most likely a disconnected Graph, meaning that there is no one path that connects all nodes. Firstly, there will be isolated notes. There will also exist isolated neighbourhoods of notes that connect to each other but not to other files.&lt;/p&gt;
&lt;p&gt;
A depth of more than three links is usually not informative because the network can become very large and hard to read, or you hit the edges of your island of connected notes.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-11&#34;&gt;
Keyword Network
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;The last available method to visualise your Denote collection is to develop a network of keywords. Two keywords are connected when used in the same note. All keywords in a note create a complete network. The union of all complete networks from all files in your Denote collection defines the keywords network. The relationship between two keywords can exist in multiple notes, so the links between keywords are weighted. The line thickness between two keywords indicates the frequency (weight) of their relationship.&lt;/p&gt;
&lt;p&gt;
When generating this graph, you will need to enter a minimum edge weight for the graph. The graph then will only show those keywords that are at least &lt;em&gt;n&lt;/em&gt; times associated with each other. The default is one, which can generate a rather large graph.&lt;/p&gt;
&lt;p&gt;
While the first two graph types are directed (arrows indicate the direction of links), the keyword network is undirected as these are bidirectional associations between keywords. The diagram below shows a situation with two nodes and three possible keywords and how they combine into a keyword network. &lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-keywords.png&#34; alt=&#34;Denote network of keywords example&#34; title=&#34;Denote network of keywords example&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Denote network of keywords example.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Some keywords should be excluded from this graph because they skew the results. For example, when using the &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;Citar Denote&lt;/a&gt; package, you might like to exclude the &lt;code class=&#34;verbatim&#34;&gt;bib&lt;/code&gt; keyword from the diagram because it is only used to minimise the search space for bibliographic notes and has no further semantic value. The &lt;code&gt;denote-explore-network-keywords-ignore&lt;/code&gt; variable lists keywords ignored in this visualisation.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-regenerate&lt;/code&gt; command recreates the current graph with the same parameters, which is useful when you are changing your notes&amp;#39; structure.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-12&#34;&gt;
Network Layout and Presentation
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Emacs cannot independently generate graphics and thus relies on external software. This package can use three external mechanisms to create graphs (configurable with &lt;code&gt;denote-explore-network-format&lt;/code&gt;), set to GraphViz SVG output by default.&lt;/p&gt;
&lt;p&gt;
The Denote-Explore network algorithm consists of four steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the &lt;code&gt;denote-explore-network&lt;/code&gt; function to enter the network type and pass on to another function to enter the required parameters.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The code generates a nested association list that holds all relevant metadata for the selected graph:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metadata e.g.: &lt;code class=&#34;verbatim&#34;&gt;(meta (directed . t) (type . &amp;#34;Neighbourhood &amp;#39;20210104T194405&amp;#39; (depth: 2)&amp;#34;))&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Association list of nodes and their degrees, e.g., &lt;code class=&#34;verbatim&#34;&gt;(((id . &amp;#34;20210104T194405&amp;#34;) (name . &amp;#34;Platonic Solids&amp;#34;) (keywords &amp;#34;geometry&amp;#34; &amp;#34;esotericism&amp;#34;) (type . &amp;#34;org&amp;#34;) (degree . 4)) ...)&lt;/code&gt;. In the context of Denote, the degree of a network node is the unweighted sum of links and backlinks in a note. &lt;/li&gt;
&lt;li&gt;Association list of edges and their weights, e.g., &lt;code class=&#34;verbatim&#34;&gt;(((source . &amp;#34;20220529T190246&amp;#34;) (target . &amp;#34;20201229T143000&amp;#34;) (weight . 1)) ...)&lt;/code&gt;. The weight of an edge indicates the number of times it occurs, which is the number of time two files are linked or the number of times two keywords appear in the same note.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The package encodes the association list to a GraphViz DOT file, JSON file, or GEXF file. The location and name of this file is configurable with the  &lt;code&gt;denote-explore-network-directory&lt;/code&gt; and &lt;code&gt;denote-explore-network-filename&lt;/code&gt; variables.&lt;/li&gt;
&lt;li&gt;Relevant external software is called upon to display the result.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;code&gt;denote-explore-network-graph-formats&lt;/code&gt; variable defines the file extension and the relevant functions for encoding and visualisation for each graph format.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-5&#34;&gt;
&lt;h5 id=&#34;headline-13&#34;&gt;
GraphViz
&lt;/h5&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-5&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://graphviz.org/&#34;&gt;GraphViz&lt;/a&gt; is an open-source graph visualisation software toolkit, ideal for this task. The Denote-Explore software saves the graph in the DOT language as a &lt;code class=&#34;verbatim&#34;&gt;.gv&lt;/code&gt; file. The GraphViz software converts the DOT code to an &lt;code class=&#34;verbatim&#34;&gt;SVG&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;
You will need to install the GraphViz software to enable this functionality. Denote-Explore will raise an error when trying to create a GraphViz graph without the required external software available.&lt;/p&gt;
&lt;p&gt;
The configurable &lt;code&gt;denote-explore-network-graphviz-header&lt;/code&gt; variable defines the basic settings for GraphViz graphs, such as the layout method and default node and edge settings.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-explore-network-graphviz-filetype&lt;/code&gt; variable defines the &lt;a href=&#34;https://graphviz.org/docs/outputs/&#34;&gt;GraphViz output format&lt;/a&gt;. SVG (the default) or PDF provide the best results. The SVG format should be viewed in a web browser to view tooltips of nodes to show their name and other meta data, and to follow hyperlinks. Emacs can display SVG files, but is unable to follow links or show tootltips.&lt;/p&gt;
&lt;p&gt;
Hovering the mouse cursor over a node provides its name and other meta data. You can open the relevant file by clicking on the node, which works best when using &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html&#34;&gt;Emacs as a server&lt;/a&gt;, if you configure your browser to open Org mode, Markdown and text files with the Emacs client. Links only work in neighbourhood and community graphs. These interactive functions are only available when viewing SVG files in a web browser.&lt;/p&gt;
&lt;p&gt;
The diameter $D$ of nodes are sized relative to their degree $d$: $D = \sqrt{d + 1}$. Thus, the most referenced note in your system will be the most visible. For nodes with a degree greater than two, the name is displayed outside the node (top left). When generating a neighbourhood, the source node is marked in a contrasting colour. In keyword graphs, the thickness of the edges indicates the number of times two keywords are associated with each other.&lt;/p&gt;
&lt;p&gt;
The layout of the graph uses the &lt;a href=&#34;https://graphviz.org/docs/layouts/neato/&#34;&gt;Neato spring model&lt;/a&gt; in GraphViz. &lt;/p&gt;
&lt;p&gt;
This method is ideal for viewing small parts of your network. The network will be hard to read when the number of notes becomes too large. I have not yet figured out how to better scale the output based on the number of nodes in a graph.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-neighbourhood-graphviz.png&#34; alt=&#34;Example GraphViz visualisation:title Example GraphViz visualisation&#34; title=&#34;/images/emacs/denote-explore-neighbourhood-graphviz.png&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Example GraphViz visualisation.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-5&#34;&gt;
&lt;h5 id=&#34;headline-14&#34;&gt;
D3.js
&lt;/h5&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-5&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://d3js.org/&#34;&gt;D3.js&lt;/a&gt; is a JavaScript library for data visualisation. This method provides an aesthetically pleasing and interactive view of your note collection. The Denote-Explore package stores the desired network as a JSON file.&lt;/p&gt;
&lt;p&gt;
The JavaScript file is generated with the R language as I have not yet mastered JavaScript to write it myself from scratch. R saves the network as an &lt;code class=&#34;verbatim&#34;&gt;HTML&lt;/code&gt; file in the designated folder with the &lt;a href=&#34;https://christophergandrud.github.io/networkD3/&#34;&gt;networkD3 R package&lt;/a&gt;. Hover over any node to reveal its name.&lt;/p&gt;
&lt;p&gt;
The colours indicate a statistical grouping based on the connections between nodes. This grouping is calculated with the &lt;em&gt;Walktrap&lt;/em&gt; community detection algorithm, which finds communities of nodes by assessing which ones are more connected to each other than to nodes outside the community. &lt;/p&gt;
&lt;p&gt;
To enable this view, you must install the R language on your system. R will install some required libraries when you run this code for the first time. Any JavaScript developers interested in writing a better solution are cordially invited to submit improvements.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/denote-explore-d3js.png&#34; alt=&#34;Example D3.js visualisation&#34; title=&#34;Example D3.js visualisation&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Example D3.js visualisation.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-5&#34;&gt;
&lt;h5 id=&#34;headline-15&#34;&gt;
Graph Exchange XML Format
&lt;/h5&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-5&#34;&gt;
&lt;p&gt;The first two formats provide some analysis of your knowledge network, but there is a lot more you can do with this type of information. While GraphViz and D3 are suitable for analysing parts of your network, this third option is ideal for storing the complete Denote network for further analysis. To do this, use the Community option and enter an empty search string to include all files.&lt;/p&gt;
&lt;p&gt;
Graph Exchange XML Format ( &lt;a href=&#34;https://gexf.net/&#34;&gt;GEXF&lt;/a&gt;) is a language for describing complex network structures. This option saves the network as a &lt;code class=&#34;verbatim&#34;&gt;GEXF&lt;/code&gt; file without opening it in external software. &lt;/p&gt;
&lt;p&gt;
You can analyse the exported file with &lt;a href=&#34;https://gephi.org/gephi-lite/&#34;&gt;Gephi Lite&lt;/a&gt;, a free online network analysis tool. The &lt;code class=&#34;verbatim&#34;&gt;GEXF&lt;/code&gt; file only contains the IDs, names and degree of the nodes, and the edges and their weights. &lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/gephi-lite-export.png&#34; alt=&#34;Example Gephi Lite visualisation:title Example Gephi Lite visualisation&#34; title=&#34;/images/emacs/gephi-lite-export.png&#34; width=&#34;800&#34;/&gt;
&lt;figcaption&gt;
Example Gephi Lite visualisation.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-16&#34;&gt;
Analysing the Denote Network
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A well-trodden trope in network analysis is that all people are linked within &lt;a href=&#34;https://en.wikipedia.org/wiki/Six_degrees_of_separation&#34;&gt;six degrees of separation&lt;/a&gt;. This may also be the case for your notes, but digging more than three layers deep is not very informative as the network can become large and difficult to review.&lt;/p&gt;
&lt;p&gt;
It might seem that adding more connections between your notes improves them, but this is not necessarily the case. The extreme case is a complete network where every file links to every other file. This situation lacks any interesting structure and wouldn&amp;#39;t be very useful for analyses. So, be mindful of your approach to linking notes and attachments.&lt;/p&gt;
&lt;p&gt;
Your Denote network is unlikely to be a fully connected graph. In a connected graph, there is a path from any point to any other point. Within the context of Denote, this means that all files have at least one link or backlink. Your network will most likely have isolated nodes (files without any (back) links) and islands of connected notes. The previously discussed &lt;code&gt;denote-explore-isolated-notes&lt;/code&gt; function lists all files without any links and backlinks to and from the note in the minibuffer.&lt;/p&gt;
&lt;p&gt;
The number of links and backlinks in a file (in mathematical terms, edges connected to a node) is the degree of a node. The &lt;a href=&#34;https://en.wikipedia.org/wiki/Degree_distribution&#34;&gt;degree distribution&lt;/a&gt; of a network is the probability distribution of these degrees over the whole network. The &lt;code&gt;denote-explore-degree-barchart&lt;/code&gt; function uses the built-in chart package to display a simple bar chart of the frequency of degrees. This function might take a few seconds to run, depending on the number of notes in your system. Evaluating this function with the universal argument &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt; excludes attachments from the analysis.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-17&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-17&#34;&gt;
Installation and Package Configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-17&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This package is available through MELPA. The configuration below customises all available variables and binds the interactive functions using the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; &lt;code class=&#34;verbatim&#34;&gt;C-c w&lt;/code&gt; prefix key and &lt;code class=&#34;verbatim&#34;&gt;e&lt;/code&gt; for Denote-Explore. You should modify this configuration to suit your needs, as one person&amp;#39;s sensible defaults are another person&amp;#39;s nightmare.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#888&#34;&gt;;; Statistics&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x c&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-count-notes&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x C&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-count-keywords&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x b&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-barchart-keywords&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x e&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-barchart-filetypes&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#888&#34;&gt;;; Random walks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x r&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-random-note&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x l&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-random-link&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x k&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-random-keyword&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x x&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-random-regex&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#888&#34;&gt;;; Denote Janitor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x d&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-identify-duplicate-notes&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x z&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-zero-keywords&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x s&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-single-keywords&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x o&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-sort-keywords&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x w&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-rename-keyword&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#888&#34;&gt;;; Visualise denote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x n&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-network&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x v&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-network-regenerate&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w x D&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-explore-degree-barchart&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The most recent manual is available in Emacs which you can access with &lt;code class=&#34;verbatim&#34;&gt;C-h R denote-explore&lt;/code&gt; or by evaluating &lt;code&gt;(info &amp;#34;denote-explore&amp;#34;)&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-18&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-18&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-18&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses how to &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;manage literature with BibTeX mode&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Manage Literature with Emacs BibTeX Mode</title>
      <link>https://lucidmanager.org/productivity/emacs-bibtex-mode/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-bibtex-mode/</guid>
      <description>
	
&lt;p&gt;
Authors need three resources: imagination, writing skills and the work of other writers. A common advice for authors to improve their writing is to read a lot. Keeping track of all the books and articles you read can be daunting. This article describes how to manage references and bibliographies with Emacs BibTeX mode. The &lt;code class=&#34;verbatim&#34;&gt;biblio&lt;/code&gt; package helps searching internet databases and add literature, and the &lt;code class=&#34;verbatim&#34;&gt;citar&lt;/code&gt; package provides access to your bibliography.&lt;/p&gt;
&lt;p&gt;
These Emacs packages let you create and manage bibliographies, &lt;a href=&#34;https://lucidmanager.org/productivity/reading-ebooks-with-emacs/&#34;&gt;read electronic documents&lt;/a&gt; and &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;take notes&lt;/a&gt;, turning Emacs into a fully-featured literature management system.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Getting started with Emacs BibTeX mode
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs ships with &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt;, a major mode to create and manage bibliographies. This mode, as the name suggests, uses the &lt;a href=&#34;http://www.bibtex.org/&#34;&gt;BibTeX&lt;/a&gt; file format as your default literature database. BibTeX is a plain text format to manage literature and citations and is typically used for LaTeX typesetting, but also perfectly integrates with Org mode. A typical entry for a book will look like this:&lt;/p&gt;
&lt;pre class=&#34;example&#34;&gt;
@article{stallman_1981_emac,
  title      = {{{EMACS}} the Extensible, Customizable Self-Documenting Display Editor},
  author     = {Stallman, Richard M.},
  year       = 1981,
  journal    = {ACM SIGOA Newsletter},
  volume     = 2,
  number     = {1-2},
  pages      = {147--156},
  doi        = {10.1145/1159890.806466},
  keywords   = {Emacs}
  file       = {computing/stallman-1981-emacs.pdf}
}
&lt;/pre&gt;
&lt;p&gt;
Each entry starts with an &lt;code class=&#34;verbatim&#34;&gt;@&lt;/code&gt;-sign and the entry type, followed by a curly brace and a unique citation key. The following lines contain the relevant data about this entry, in this example, the earliest publication about Emacs.&lt;/p&gt;
&lt;p&gt;
BibTeX can process different types of literature, such as articles and conference papers, each of which has its own field types. BibTeX ignores any field names that are not recognised, which provides opportunities to use the file for other purposes, such as attaching files and keywords.&lt;/p&gt;
&lt;p&gt;
BibTeX is a plain text file with the &lt;code class=&#34;verbatim&#34;&gt;.bib&lt;/code&gt; extension. You can store one or more bibliography files in a central folder to refer to them from anywhere in Emacs. You can also attach specific BibTeX files to an Org mode file to set a bibliography for a project.&lt;/p&gt;
&lt;p&gt;
You don’t need to install any packages to get started. Just created an empty file with a &lt;code class=&#34;verbatim&#34;&gt;.bib&lt;/code&gt; extension, and Emacs enables &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt; when you open the file.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Adding new entries
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt; uses templates to add new entries. To add a reference, use the &lt;code&gt;bibtex-entry&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c C-b&lt;/code&gt;). Use the minibuffer completion to select the relevant type. Emacs also provides a shortcut for every kind of literature, which you can see with &lt;code class=&#34;verbatim&#34;&gt;C-c C-e C-h&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Each entry type has at least one compulsory field. Any optional fields start with &lt;code class=&#34;verbatim&#34;&gt;OPT&lt;/code&gt;. For fields that begin with &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt;, such as author or editor, you must complete at least one of them.&lt;/p&gt;
&lt;p&gt;
Jump from field to field with &lt;code class=&#34;verbatim&#34;&gt;C-j&lt;/code&gt; (&lt;code&gt;bibtex-next-field&lt;/code&gt;) and complete all required fields and one of the &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt; fields. When you’re done, press &lt;code class=&#34;verbatim&#34;&gt;C-c&lt;/code&gt; twice (&lt;code&gt;bibtex-clean-entry&lt;/code&gt;) to check the syntax and remove empty fields. This function also assigns a citation key to the entry using some configurable rules, but you can also set one manually.&lt;/p&gt;
&lt;p&gt;
To enter names, place the family name first, followed by a comma and the first name or initials. Any additional authors are separated by “and”, e.g. &amp;#34;Hawking, S. and Penrose, R.&amp;#34;.&lt;/p&gt;
&lt;p&gt;
If you copy and paste an author name, or it is automatically inserted using the &lt;code class=&#34;verbatim&#34;&gt;biblio&lt;/code&gt; tool discussed below, the first and family name might be the wrong way around. A nice Emacs hack is to use the &lt;code&gt;org-transpose-words&lt;/code&gt; function, bound to &lt;code class=&#34;verbatim&#34;&gt;M-t&lt;/code&gt;. This function swaps the order of two words, for example from &amp;#34;Richard Stallman&amp;#34; to &amp;#34;Stallman Richard&amp;#34;.&lt;/p&gt;
&lt;p&gt;
To align the lines of each entry, you can also use the &lt;code&gt;bibtex-fill-entry function&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c C-q&lt;/code&gt;). The table below summarises the most salient keyboard shortcuts and functions in &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c C-e a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-article&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add an article&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c C-e b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-book&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a book&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-empty-field&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Empty the current field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-j&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-next-field&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to next field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-next-entry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to the next entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-previous-entry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to the previous entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-clean-entry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clean the entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C-c C-q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-fill-entry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Align the fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-reformat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reformat all entries in region or buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bibtex-sort-buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sort all entries in the buffer by their keys&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Overview of keyboard shortcuts to add and edit entries.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Importing existing BibTeX files
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;You can also link another bibliographic database, such as &lt;a href=&#34;https://www.zotero.org/&#34;&gt;Zotero&lt;/a&gt;, to Emacs. The Better &lt;a href=&#34;https://retorque.re/zotero-better-bibtex/&#34;&gt;BibTeX package&lt;/a&gt; in Zotero can export parts of or your complete bibliography as a BibTeX file every time it changes, keeping both version in sync.&lt;/p&gt;
&lt;p&gt;
Any existing bib file created with other software might not be fully compatible with &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt; because some high-level features are unavailable in BibTeX mode. The &lt;code class=&#34;verbatim&#34;&gt;bibtex-convert-alien&lt;/code&gt; function checks whether &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt; can parse an ’alien’ BibTeX file. Files generated with Zotero do not seem to require this conversion step.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Fine-tuning BibTeX mode
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;BibTeX mode works out of the box, but you can fine-tune the variables. This Elisp expression adds optional fields for keywords and files for each entry type. These fields are essential when using the bibliographic files to read electronic documents and take notes. This expression also instructs Emacs to align the equal signs for each entry when you press &lt;code class=&#34;verbatim&#34;&gt;C-q&lt;/code&gt;. &lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Managing Bibliographies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bibtex&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;bibtex-dialect&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;BibTeX&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;bibtex-user-optional-fields&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;keywords&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Keywords to describe the entry&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;file&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Link to a document file.&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; )))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;bibtex-align-at-equal-sign&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
BibTeX is old but stable software that was last updated in 1988 and has, as such, some minor limitations. The BibLaTeX dialect is a newer version. To change &lt;code class=&#34;verbatim&#34;&gt;bibtex-mode&lt;/code&gt; to BibLaTeX, change the &lt;code class=&#34;verbatim&#34;&gt;bibtex-dialect&lt;/code&gt; variable in the configuration to &lt;code class=&#34;verbatim&#34;&gt;biblatex&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;bibtex-set-dialect&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;biblatex&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Jonathan Le Roux publishes a &lt;a href=&#34;http://www.jonathanleroux.org/bibtex-mode.html&#34;&gt;comprehensive manual&lt;/a&gt; on his website that explains some more functionality, such as structuring the citation key, in more detail.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Managing Bibliographies
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Several packages are available to explore bibliography files and connect it to notes. These packages achieve four main tasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Edit the bibliography&lt;/li&gt;
&lt;li&gt;Explore bibliographies (searching, narrowing etc) and insert citations&lt;/li&gt;
&lt;li&gt;Access links and attachments for reading&lt;/li&gt;
&lt;li&gt;Relate bibliography to notes note file related to the entry&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Edit&lt;/th&gt;
&lt;th&gt;Explore&lt;/th&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;bibtex-mode (built-in)&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;biblio&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;citar&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;citar-denote&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://joostkremers.github.io/ebib/&#34;&gt;ebib&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/tmalsburg/helm-bibtex&#34;&gt;helm-bibtex /ivy-bibtex&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/org-roam/org-roam-bibtex&#34;&gt;org-roam-bibtex&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/Vidianos-Giannitsis/zetteldesk.el&#34;&gt;zetteldesk-ref&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/emacs-citar/citar-org-roam&#34;&gt;citar-org-roam&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/localauthor/zk&#34;&gt;zk-citar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
This article further explores using biblio and citar to manage bibliographies. The other packages are provided as alternatives.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-6&#34;&gt;
Using the Biblio package to add new entries
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;BibTeX mode requires you to type all entries manually, which is inefficient and could easily lead to errors. Clément Pit-Claudel’s &lt;a href=&#34;https://github.com/cpitclaudel/biblio.el&#34;&gt;biblio package&lt;/a&gt; lets you browse and import bibliographic references from a range bibliographic sources: &lt;a href=&#34;https://www.crossref.org/&#34;&gt;CrossRef&lt;/a&gt;, &lt;a href=&#34;https://dblp.org/&#34;&gt;DBLP&lt;/a&gt;, &lt;a href=&#34;https://arxiv.org/&#34;&gt;arXiv&lt;/a&gt;, Dissemin, and &lt;a href=&#34;https://dx.doi.org/&#34;&gt;doi.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The configuration for this package is straightforward, as there are no variables to configure. To get &lt;a href=&#34;https://github.com/CrossRef/rest-api-doc#etiquette&#34;&gt;better response times&lt;/a&gt; from CrossRef, you need to customise the &lt;code&gt;biblio-crossref-user-email-address&lt;/code&gt; variable and include your email address in the string.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Biblio package for adding BibTeX records and download publications&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;biblio&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
To use the package, open the relevant BibTeX file, run &lt;code&gt;M-x biblio-lookup&lt;/code&gt;, and select the database and enter a search query. Once the search has completed, a new buffer opens with the results. Select your target with the arrow keys or search in the buffer to select the preferred candidate.&lt;/p&gt;
&lt;p&gt;
Once you have your target, you can insert the BibTeX record into the buffer from where you called the function with &lt;code class=&#34;verbatim&#34;&gt;i&lt;/code&gt;. Alternatively, you can copy the BibTeX record with &lt;code class=&#34;verbatim&#34;&gt;c&lt;/code&gt; and paste it into place later. You quit the search results with &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;. To see all possible commands in this buffer, use &lt;code class=&#34;verbatim&#34;&gt;h&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;?&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
If you have a DOI (&lt;a href=&#34;https://en.wikipedia.org/wiki/Digital_object_identifier&#34;&gt;Digital Object Identifier&lt;/a&gt;) for a publication, then use the &lt;code&gt;biblio-doi-insert-bibtex&lt;/code&gt; function to insert a BibTeX record into the current buffer.&lt;/p&gt;
&lt;p&gt;
Unfortunately, large corporate publishers still hold the world’s academic knowledge behind lock and key. However, open access and pre-print publications are slowly becoming the norm. The Dissemin website searches for copies of papers in an extensive collection of open repositories and websites.&lt;/p&gt;
&lt;p&gt;
To use this service with Emacs, evaluate &lt;code&gt;dissemin-lookup&lt;/code&gt; to show information about the open access status of a paper using a DOI number. You can also press &lt;code class=&#34;verbatim&#34;&gt;x&lt;/code&gt; when in the search menu for the &lt;code&gt;biblio-lookup&lt;/code&gt; function to check for open access version.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-7&#34;&gt;
Using Citar to Access Bibliographies
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Several Emacs packages are available that link bibliography files to notes. The &lt;a href=&#34;https://joostkremers.github.io/ebib/&#34;&gt;Ebib&lt;/a&gt;, &lt;a href=&#34;https://github.com/tmalsburg/helm-bibtex&#34;&gt;Helm-BibTeX and Ivy-BibTeX&lt;/a&gt; each use their own completion system. The &lt;a href=&#34;https://github.com/emacs-citar/citar&#34;&gt;Citar&lt;/a&gt; package uses the standard &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;minibuffer completion&lt;/a&gt; mechanism to access your bibliographies. This package provides access to hyperlinks, notes, attachments and the source bibliography file. Citar also integrates with &lt;code&gt;org-cite&lt;/code&gt;, Org mode’s citation module.&lt;/p&gt;
&lt;p&gt;
Within the Org mode system, you can have two types of bibliographies. The global bibliography is a set of BibTeX files available from anywhere within Emacs. You can also link one or more project-specific local BibTeX files to an Org mode file, discussed in the article about &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;bibliographic notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;ews-bibtex-directory&lt;/code&gt; variable stores the location of all BibTeX files and their associated attachments. This variable is defined in the article on &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;Emacs configuration&lt;/a&gt;. By default, this variable is set at &lt;code class=&#34;verbatim&#34;&gt;~/Documents/library/&lt;/code&gt;. Using this variable in combination with the &lt;code&gt;ews-bibtex-register&lt;/code&gt; command will configure Emacs to recognise all BibTeX files in the configured directory.&lt;/p&gt;
&lt;p&gt;
You store all your BibTeX files and the associated attachments in this location. BibTeX files have to reside in this directory, attachments can be in subdirectories. Any file paths for BibTeX entries start at this path. For example, when the BibTeX entry states: &lt;code class=&#34;verbatim&#34;&gt;file = {computing/stallman-1981-emacs.pdf}&lt;/code&gt;, the attachment is stored at: &lt;code class=&#34;verbatim&#34;&gt;~/Documents/library/computing/stallman-1981-emacs.pdf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
The EWS configuration creates a new variable named &lt;code&gt;ews-bibtex-file&lt;/code&gt; which lists the &lt;code class=&#34;verbatim&#34;&gt;.bib&lt;/code&gt; files in the &lt;code&gt;ews-bibtex-directory&lt;/code&gt; that start with a letter or a number (to exclude backup and hidden files). This code is a regular expression, which is a powerful method to find text. If you add another bibliography file, you will have to rerun the configuration code, or restart Emacs to register it.&lt;/p&gt;
&lt;p&gt;
If you add or remove any bibliography files from the bibliography directory, then use the &lt;code&gt;ews-bibtex-register&lt;/code&gt; function to register the new set of bibliographies. You don&amp;#39;t need to do this when you add new entries to a file, only when adding, renaming or removing a file.&lt;/p&gt;
&lt;p&gt;
Citations are further discussed &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;in another article&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Citar to access bibliographies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#007020&#34;&gt;:defer&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;citar-bibliography&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-bibtex-files&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b o&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-open&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Open the Citar menu with &lt;code&gt;citar-open&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w b o&lt;/code&gt;) and select the literature you seek.&lt;/p&gt;
&lt;p&gt;
Finding literature with Citar is easy. After every keystroke in the Citar menu, the list of options is narrowed to the relevant matches. Select your candidate with the arrow keys and hit Enter. Use the Tab key to select more than one entry.&lt;/p&gt;
&lt;p&gt;
The first three columns in the menu indicate which entries include a hyperlink (&lt;code class=&#34;verbatim&#34;&gt;L&lt;/code&gt;), one or more attached files (&lt;code class=&#34;verbatim&#34;&gt;F&lt;/code&gt;) and an associated note (&lt;code class=&#34;verbatim&#34;&gt;N&lt;/code&gt;). The configuration for taking bibliographic notes is &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;explained in another article&lt;/a&gt;. You can filter the Citar completion menu for entries with notes using &lt;code class=&#34;verbatim&#34;&gt;:n&lt;/code&gt;, showing only entries with an attachment use &lt;code class=&#34;verbatim&#34;&gt;&amp;#34;:f&amp;#34;&lt;/code&gt; and entries that have links with &lt;code class=&#34;verbatim&#34;&gt;&amp;#34;:l&amp;#34;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
After hitting Enter, Citar provides a popup menu in the minibuffer from where you can open any attachments, create a new note or open an existing note and follow any hyperlinks listed in the BibTeX entry.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/citar-menu.png&#34; alt=&#34;Example of the Citar menu&#34; title=&#34;Example of the Citar menu&#34;/&gt;
&lt;figcaption&gt;
Example of the Citar menu.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article explains how to create bibliographic notes with the &lt;a href=&#34;https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/&#34;&gt;Citar-Denote package&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Bibliographic Notes with the Citar-Denote Emacs Package</title>
      <link>https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/bibliographic-notes-in-emacs-with-citar-denote/</guid>
      <description>
	
&lt;p&gt;
Taking notes about the articles and books you read is an essential part of intellectual life. Many note-taking systems can connect to a bibliographic database (such as a plain text BibTeX file, or external software such as &lt;a href=&#34;http://zotero.org/&#34;&gt;Zotero&lt;/a&gt;). These databases are helpful when adding citations to your writings. Electronic bibliographies also help you to create and find notes related to your literature collection. and provide access to related materials, such as links to online sources and electronic versions of relevant books or articles. &lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;Citar-Denote&lt;/em&gt; Emacs package integrates the &lt;a href=&#34;https://github.com/emacs-citar/citar&#34;&gt;Citar&lt;/a&gt; bibliography package with the &lt;a href=&#34;https://protesilaos.com/emacs/denote&#34;&gt;Denote&lt;/a&gt; note-taking system. Citar lets you browse and act on bibliographic data in &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;BibTeX, BibLaTeX&lt;/a&gt; and &lt;a href=&#34;https://citationstyles.org/&#34;&gt;JSON-CSL&lt;/a&gt; format. Denote is a is a versatile Emacs package for taking notes. Combining these two packages enables linking any note in your Denote collection to one or more bibliographic entries, providing a complete solution for documenting literature reviews. My article about &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;taking notes with Emacs&lt;/a&gt; explains how to use Denote.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
To learn how to create and maintain a plain text bibliographic database in Emacs, read the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;article about BibTeX mode&lt;/a&gt;. The article about &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;writing in Org mode&lt;/a&gt; explains how to add citations. This page explains how to use the Citar-Denote package, which integrates a Citar bibliography with your Denote notes.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/citar-denote/&#34; target=&#34;_blank&#34;
   title=&#34;Download citar-denote from GitHub&#34;
   alt=&#34;Download citar-denote from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;citar-denote&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/s7Mf6udiCSE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Writing Studio (Create and manage literature notes with Citar-Denote).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Principles
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A bibliographic note is a file that refers to one or more pieces of literature in your bibliography. The note and the entry in your literature database are intrinsically linked, making it easy to move between the two. Two types of relationships exist between your notes and your bibliography:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Reference&lt;/em&gt;: Relates the whole file to one or more publication (a bibliographic note). Indicated by the reference line in the front matter and the &lt;code class=&#34;verbatim&#34;&gt;bib&lt;/code&gt; keyword.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Citation&lt;/em&gt;: A citation inside a note mentions one or more publications. A citation relates a portion of a text to a publication.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Citar-Denote package maintains a many-to-many relationship between your notes and your bibliographies. Each bibliographic entry can have one or more notes, and each note can reference one or more pieces of literature.&lt;/p&gt;
&lt;p&gt;
You can create several atomic notes for each publication or write a complete literature review of a collection of references within one note. You could, for example, create a note about each chapter of a book, or write a single literature review note for a collection of journal articles. You can use Citar and Denote which ever way best suits your workflow.&lt;/p&gt;
&lt;p&gt;
To enable references, we need a stable link between the collection of notes and the bibliography. The most common behaviour for bibliography managers in Emacs is that the filename for the relevant note includes the citation key (e.g. &lt;code class=&#34;verbatim&#34;&gt;marcuse_1969_essay.org&lt;/code&gt;) to link it to the bibliography. However, Denote follows a strict naming convention, so we cannot use this approach to link notes and literature as it might contain characters that Denote disallows in its file names. The various citation system don&amp;#39;t have strict naming conventions on citation keys, so we need to find another way to link literature to a note.&lt;/p&gt;
&lt;p&gt;
In Citar-Denote, the citation key is part of the front matter through the &lt;code class=&#34;verbatim&#34;&gt;#+reference:&lt;/code&gt; keyword. Citar-Denote stores the relationship between citation keys and note files in a cache. The package regenerates this cache after you edit a bibliography file or call any Citar functions. Each bibliographic note uses the configurable &lt;code class=&#34;verbatim&#34;&gt;bib&lt;/code&gt; file tag. This tag reduces the number of Denote files the system needs to track. The front matter for a bibliographic note would look something like this:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title:      Marcuse: An Essay on Liberation
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+date:       [2022-11-12 Sat 19:23]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+filetags:   :bib:culture:marketing:philosophy:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+identifier: 20221112T192310
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+reference:  marcuse_1969_essay&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The Citar-Denote package also provides insight into citations used in the Denote directory, which uses the &lt;code class=&#34;verbatim&#34;&gt;xref&lt;/code&gt; system. You can improve the search process by installing the faster &lt;a href=&#34;https://github.com/BurntSushi/ripgrep&#34;&gt;ripgrep&lt;/a&gt; program and setting &lt;code class=&#34;verbatim&#34;&gt;xref-search-program&lt;/code&gt; to &lt;code class=&#34;verbatim&#34;&gt;ripgrep&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Create bibliographic notes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Open the Citar interface with &lt;code class=&#34;verbatim&#34;&gt;C-c w b c&lt;/code&gt; (&lt;code&gt;citar-create-note&lt;/code&gt;). The letters or icons at the start of the Citar menu indicate whether the entry has a link, note, attachment or is cited in the current buffer. Select the entry you want to create a note for, hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt; and follow the prompts.&lt;/p&gt;
&lt;p&gt;
If a note already exists and you have set the &lt;code class=&#34;verbatim&#34;&gt;citar-open-always-create-notes&lt;/code&gt; variable to &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt;, then you can create additional notes for this entry. Otherwise, Citar will open the exiting note.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/citar-menu.png&#34; alt=&#34;Screenshot of Citar with Vertico, indicating notes and links.&#34; title=&#34;Screenshot of Citar with Vertico, indicating notes and links.&#34;/&gt;
&lt;figcaption&gt;
Screenshot of Citar with Vertico, indicating notes and links.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Various configuration options are available to fine-tune determine how Emacs creates now bibliographic notes.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Default file type
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;You can create bibliographic notes for each file type that Denote supports: Org mode, two flavours of Markdown and plain text. Citar-Denote uses the default file type set by the &lt;code class=&#34;verbatim&#34;&gt;denote-file-type&lt;/code&gt; variable, which you can override with &lt;code class=&#34;verbatim&#34;&gt;citar-denote-file-type&lt;/code&gt; to use a different file type for bibliographic notes. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Bibliographic note title
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The default name for a new note is the title of the bibliographic entry. You can modify this behaviour with the &lt;code class=&#34;verbatim&#34;&gt;citar-denote-title-format&lt;/code&gt; variable. Four options are available:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;title&lt;/code&gt;: Extract the title from the bibliographic item (default)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;author-year&lt;/code&gt;: Use citation format as &amp;#34;author(s) (year)&amp;#34; (or editors when no authors are defined)&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;author-year-title&lt;/code&gt;: Concatenate the first two options&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;full&lt;/code&gt;: Full citation of the entry&lt;/li&gt;
&lt;li&gt;Fallback option or &lt;code class=&#34;verbatim&#34;&gt;nil&lt;/code&gt;: The citation key&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, using this citation: Coppa, Hass, Peck, Burger (2008) &lt;em&gt;Performing Magic on the Western Stage: From the Eighteenth Century to the Present&lt;/em&gt;, Palgrave Macmillan.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;title&lt;/code&gt;: &amp;#34;Performing Magic on the Western Stage: From the Eighteenth Century to the Present&amp;#34;.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;author-year&lt;/code&gt;: &amp;#34;Coppa et al. (2008)&amp;#34;. &lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;author-year-title&lt;/code&gt;: &amp;#34;Coppa et al. (2008) Performing Magic on the Western Stage: From the Eighteenth Century to the Present&amp;#34;.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;full&lt;/code&gt;: &amp;#34;Coppa, Hass, Peck, Burger (2008) &lt;em&gt;Performing Magic on the Western Stage: From the Eighteenth Century to the Present&lt;/em&gt;, Palgrave Macmillan&amp;#34;.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;nil&lt;/code&gt;: &amp;#34;coppa_2008_perf&amp;#34;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Using &lt;code class=&#34;verbatim&#34;&gt;author-year&lt;/code&gt; for entries allows for some further configuration. For entries with more than one author, you can specify the maximum number of names with &lt;code class=&#34;verbatim&#34;&gt;citar-denote-title-format-authors&lt;/code&gt;, which is one by default. When the number of defined authors is more than the number in the citation, &amp;#34;et al.&amp;#34; is added to the end. When this variable exceeds the number of defined authors, all authors are listed. The default term between authors is &amp;#34;and&amp;#34;, which can be changed by customising &lt;code class=&#34;verbatim&#34;&gt;citar-denote-title-format-andstr&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
For example, when using up to three authors and &amp;#34;&amp;amp;&amp;#34; as connecting term, the title for the example above becomes Or  &amp;#34;Coppa, Hass &amp;amp; Peck et al. (2008)&amp;#34; &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Bibliographic keywords
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;code class=&#34;verbatim&#34;&gt;bib&lt;/code&gt; file tag is added to every new bibliographic note. This tag minimises the search space when caching notes to accelerate the process. The &lt;code class=&#34;verbatim&#34;&gt;citar-denote-keyword&lt;/code&gt; variable lets you change the tag to something else. For example, if you primay language is Welsh, you might want to change it to &lt;code class=&#34;verbatim&#34;&gt;lly&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Changing the default requires updating all your existing bibliographic notes, because the package only recognises a single string. The change will come into effect the next time the package is loaded. The &lt;a href=&#34;https://lucidmanager.org/productivity/denote-explore/&#34;&gt;Denote-Explore&lt;/a&gt; package has a function to rename Denote keywords.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;citar-denote-use-bib-keywords&lt;/code&gt; variable lets you include keywords defined in the bibliography as Denote keywords. When set to a non-nil value, Citar-Denote extracts the available keywords from the BibTeX &lt;code class=&#34;verbatim&#34;&gt;keywords&lt;/code&gt; field.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Subdirectory
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;If you prefer storing your bibliographic notes in a subdirectory of your Denote folder, then set the &lt;code class=&#34;verbatim&#34;&gt;citar-denote-subdir&lt;/code&gt; variable to &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt;. When this variable is non-nil, Denote asks for a subdirectory when creating a new bibliographic note. When this variable contains a string, then any new bibliographic notes are stored in the subdirectory that matches this name.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Signature
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;When the &lt;code class=&#34;verbatim&#34;&gt;citar-denote-signature&lt;/code&gt; variable is non-nil, Denote will ask for a signature when creating a new bibliographic note. If you enter an empty line for a signature, then the citation key is used.&lt;/p&gt;
&lt;p&gt;
Please note that Denote changes or removes punctuation marks in the citation key to enforce compliance with its file naming convention. For example, when the citation key is &lt;code class=&#34;verbatim&#34;&gt;einstein_1905&lt;/code&gt;, the signature becomes &lt;code class=&#34;verbatim&#34;&gt;einstein=2005&lt;/code&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Create notes using templates
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote allows you to create template for various types of notes. You could, for example, have standard headings for bibliographic notes, other headings for meta notes, or whatever else you might need.&lt;/p&gt;
&lt;p&gt;
To include templates in new bibliographic notes, set the &lt;code&gt;citar-denote-template&lt;/code&gt; to non-nil and define a template.&lt;/p&gt;
&lt;p&gt;
The example below lets the user choose between a note that has two headings (Abstract and Review), or a plain note without any template content. The extensive &lt;a href=&#34;https://protesilaos.com/emacs/denote#h:f635a490-d29e-4608-9372-7bd13b34d56c&#34;&gt;Denote manual&lt;/a&gt; provides some more detailed information about using templates for all your notes.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;denote-templates&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;color:#963&#34;&gt;biblio&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;* Abstract\n\n* Review&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;plain&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Working with existing notes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Once you have some bibliographic notes you will want to access and modify them. You can access the attachments, links and other notes associated with the references from within via the Citar menu (&lt;code&gt;citar-open&lt;/code&gt;), &lt;code class=&#34;verbatim&#34;&gt;C-c w b o&lt;/code&gt;. Entries with a note are indicated with an &lt;code class=&#34;verbatim&#34;&gt;N&lt;/code&gt; in the third column.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
Open existing bibliographic notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;There are two entry points to find notes that relate to literature, either as a reference or as a citation.&lt;/p&gt;
&lt;p&gt;
Use &lt;code&gt;citar-denote-open-note&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w b n&lt;/code&gt;) to open the Citar menu with only entries that have one or more associated notes. Select your target and hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Citar provides a list of resources for the selected entry: attachments, existing notes, links and an option to create an additional note. Select the note you seek, hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt; again and select the Denote file you want to open. &lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/citar-menu-resources.png&#34; alt=&#34;Screenshot of Citar and options for one of the entries&#34; title=&#34;Screenshot of Citar and options for one of the entries&#34;/&gt;
&lt;figcaption&gt;
Screenshot of Citar and options for one of the entries.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The previous function shows all literature that has one or more bibliographic note(s). The &lt;code&gt;citar-denote-find-citation&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w c f&lt;/code&gt;) lists all bibliographic entries cited inside your Denote collection, from where you can open the relevant note. Some of these will also have their own bibliographic note, indicated in the Citar menu sidebar.&lt;/p&gt;
&lt;p&gt;
Searching through all your notes for citations can take a moment, depending on the size of your digital garden.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Open attachments, links and notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;code&gt;citar-denote-dwim&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w b d&lt;/code&gt;) provides access to the Citar menu from where you can open attachments, other notes, and links related to the citation references associated with the current Denote buffer.&lt;/p&gt;
&lt;p&gt;
Select the required bibliographic item when there is more than one reference. You can then select the attachment, link or note you like to access and hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt;, after which you select your link, note or attachment. Alternatively, you can also create a new note &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-12&#34;&gt;
Open bibliographic entry
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;code&gt;citar-denote-open-reference-entry&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w b e&lt;/code&gt;) opens the bibliographic entry (BibTeX, BibLaTeX or CSL file) for a selected reference from where you can edit the bibliographic data.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
Convert existing notes to bibliographic notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;code&gt;citar-denote-add-citekey&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w b k&lt;/code&gt;) adds citation keys or converts an existing Denote file to a bibliographic note. When converting a regular Denote file, the function adds the &lt;code class=&#34;verbatim&#34;&gt;bib&lt;/code&gt; keyword to the front matter and renames the file accordingly.&lt;/p&gt;
&lt;p&gt;
This function opens the Citar selection menu and adds the selected citation keys to the front matter. Use the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key to select multiple entries.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-14&#34;&gt;
Remove references from bibliographic notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;You remove citation references with the &lt;code&gt;citar-denote-remove-citekey&lt;/code&gt; command (&lt;code class=&#34;verbatim&#34;&gt;C-c w b K&lt;/code&gt;). If more than one piece of literature is referenced, select the unwanted item in the minibuffer first. The bibliography keyword is also removed, and the file is renamed when removing the only reference.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-15&#34;&gt;
Citation management
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;What is the point of building a bibliography without using each entry as a citation or a reference in a bibliographic note? The last two functions let you cite literature or create a new bibliographic note for any item not used in your Denote collection.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;citar-denote-nocite&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c w b x&lt;/code&gt;)  function opens the Citar menu and shows all items in your bibliography that are neither cited nor referenced. From there you can create a new bibliographic note, follow a link or read the file.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-16&#34;&gt;
Configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration builds on the &lt;code class=&#34;verbatim&#34;&gt;C-c w&lt;/code&gt; prefix keys. Pressing &lt;code class=&#34;verbatim&#34;&gt;C-c w b&lt;/code&gt; provides access to bibliographic commands using the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;keystroke completion menu&lt;/a&gt; provided by the &lt;em&gt;Which Key&lt;/em&gt; package .&lt;/p&gt;
&lt;p&gt;
This configuration also sets a variable from the Citar package that allows you to create multiple notes for a bibliographic entry.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;citar-open-always-create-notes&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;citar-denote-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b c&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-create-note&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b n&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-open-note&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b x&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-nocite&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b k&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-add-citekey&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b K&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-remove-citekey&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b d&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-dwim&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w b e&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;citar-denote-open-reference-entry&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The source code for Citar-Denote is available on GitHub and the package is available through &lt;a href=&#34;https://melpa.org/#/citar-denote&#34;&gt;MELPA&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/citar-denote/&#34; target=&#34;_blank&#34;
   title=&#34;Download citar-denote from GitHub&#34;
   alt=&#34;Download citar-denote from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;citar-denote&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
This page is a previous version of the manual. You can read the recent manual with &lt;code class=&#34;verbatim&#34;&gt;C-h R citar-denote&lt;/code&gt; or evaluate &lt;code&gt;(info &amp;#34;citar-denote&amp;#34;)&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-17&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-17&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-17&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, and everybody has personal preferences on how to undertake a task and configure Emacs. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article in this series describes how to use Emacs Org mode for &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;distraction-free writing&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Emacs Org Mode for Distraction-Free Writing</title>
      <link>https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/</link>
      <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/</guid>
      <description>
	
&lt;p&gt;
The world is full of distractions, especially when focusing on writing. Most writing software is littered with icons and options to change the document’s design. Distraction-free writing tools remove distractions from the screen, so they become more like electronic typewriters that let the author focus on content over form. This article shows how to use Emacs Or Mode for Distraction-Free writing, using the built-in Org mode package.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Getting started with Org mode
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Org mode is a powerful major mode that comes with Emacs by default. This software was initially developed in 2003 by Carsten Dominik, a professor of astronomy at the University of Amsterdam. Since then, countless other developers have continued to advance Org-mode.&lt;/p&gt;
&lt;p&gt;
You can use Org mode to &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;publish websites&lt;/a&gt;, &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;articles and books&lt;/a&gt;, &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;keep a diary&lt;/a&gt;, &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-org-mode-and-org-roam/&#34;&gt;keep research notes&lt;/a&gt;, &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;manage your actions&lt;/a&gt;, and much more. And on top of all that, it is intuitive to use. This section shows you the basics of writing prose in Org mode with a screencast by Jake B. that briefly summarises the major options within Org mode.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/hnMntOQjs7Q?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Emacs Org Mode Demo by Jake B.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Creating new Org buffers
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;To start an Org file, create a file with a &lt;code class=&#34;verbatim&#34;&gt;.org&lt;/code&gt; extension and start writing, for example, &lt;code class=&#34;verbatim&#34;&gt;C-x C-f test.org &amp;lt;Enter&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Each Org document starts with a header that contains metadata and settings relevant to the buffer. The Org mode metadata and settings start with &lt;code class=&#34;verbatim&#34;&gt;#+&lt;/code&gt; followed by a keyword and a colon. The document header can also contain metadata such as a subtitle or a date. Emacs packages can use this information when publishing the text and other functionality.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title:   Lorem Ipsum
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+author:  Nomen Nescio
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+date:    [2021-05-08 Sat]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Org mode recognises several other types of front matter items to control exporting and other behaviours, some of which are mentioned below.&lt;/p&gt;
&lt;p&gt;
Your chosen Emacs theme will set the size and font for your document. The only purpose of these decorations is to help you navigate the document. The article about &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;publishing articles and books with Org mode&lt;/a&gt; shows how to control the output format.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Document structure
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Books have chapters, sections and paragraphs; articles have headings; poems have verses; and so on. Almost all forms of writing have a hierarchy. An excellent method to start writing is to work out your hierarchical structure and fill it with content. &lt;/p&gt;
&lt;p&gt;
Org mode is an outlining tool that helps you develop a document structure. Write an asterisk as the first character to start a new header, followed by a space. To create deeper levels, add more stars:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;Heading 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ** Heading 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  *** Heading 3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
When you press &lt;code class=&#34;verbatim&#34;&gt;M-enter&lt;/code&gt;, the following line becomes a new heading. With &lt;code class=&#34;verbatim&#34;&gt;C-enter&lt;/code&gt;, the next line is added after the text in the current section.&lt;/p&gt;
&lt;p&gt;
Org mode makes it easy to move and promote or demote headings and associated text (which in Org mode is a subtree) with the &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt; and arrow keys.&lt;/p&gt;
&lt;p&gt;
You can collapse or expand a heading with the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key. Pressing &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt; will collapse the document, showing only the level one headings. Pressing &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt; once again will show the headings, and repeating it for a second time reveals the entire buffer. You can keep cycling through these modes with the &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt; key.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt;: (un)fold headings&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-up&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;M-down&lt;/code&gt;: move a headline up or down&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-left&lt;/code&gt; / &lt;code class=&#34;verbatim&#34;&gt;M-right&lt;/code&gt;: promote or demote a headline&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;M-RET&lt;/code&gt;: insert a new headline&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Add numbers to the headers with the &lt;code class=&#34;verbatim&#34;&gt;num&lt;/code&gt; option in the startup line: &lt;code class=&#34;verbatim&#34;&gt;#+startup: num&lt;/code&gt;. Whether this numbering appears in any published output depends on your configuration.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Rich text
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;To change how Org Mode displays text, you surround it with special characters: &lt;code class=&#34;verbatim&#34;&gt;/italic/&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;*bold*&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;_underline_&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;+striketrough+&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;=verbatim=&lt;/code&gt;. You will see these markers in the Org mode text, but they disappear when you export the buffer. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Lists
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Writing lists in Org mode could not be easier. Simply start a line with a dash and complete the entry with &lt;code class=&#34;verbatim&#34;&gt;M-ENTER&lt;/code&gt; to create the next entry. Using the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; and left or right arrow keys changes the depth of the item and, with the up and down arrows, moves the line up or down in the hierarchy. Change the list prefix with the &lt;code class=&#34;verbatim&#34;&gt;SHIFT&lt;/code&gt; and left/right arrow keys.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;- &lt;/span&gt;Item
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;+ &lt;/span&gt;next item
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;1.&lt;/span&gt; The following
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;2.&lt;/span&gt; And another
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         a. Down, down, deeper and down&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The following configuration line enables alphabetically ordered lists as well as numerals.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-list-allow-alphabetical&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Tables
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Every cell in an Org mode table is flanked by the pipe &lt;code class=&#34;verbatim&#34;&gt;|&lt;/code&gt; symbol. You don&amp;#39;t have to worry about aligning the text, as the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key does that for you. You create a horizontal line when you start a line with &lt;code class=&#34;verbatim&#34;&gt;|-&lt;/code&gt; and hit &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Column 1 | Column 2 |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;|----------+----------|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Sator    |       12 |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Arepo    |       26 |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Tenet    |      878 |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Opera    |       89 |&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;| Rotas    |       89 |&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You navigate forward through the cells with the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; or arrow up/down keys. Using &lt;code class=&#34;verbatim&#34;&gt;s-TAB&lt;/code&gt; moves you back one cell. Combining Alt and Shift with the arrow keys adds and removes columns and rows.&lt;/p&gt;
&lt;p&gt;
Org mode has &lt;a href=&#34;https://orgmode.org/manual/Tables.html&#34;&gt;extensive capabilities to edit tables&lt;/a&gt;, including formulas to create spreadsheet functionality.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Images
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Although Emacs is a text editor, it can also &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;manage images&lt;/a&gt;. In Org mode, an image is a link to an image file. You can preview the file in your buffer or export it to your preferred format. You can also add captions and set display or export properties for each image.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+caption: Image caption.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+attr_html: :alt Alternative text
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#00c&#34;&gt;file:path/to/image&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
To view the preview images in your document or remove the previews, you press &lt;code class=&#34;verbatim&#34;&gt;C-c C-x C-v&lt;/code&gt; (&lt;code&gt;org-toggle-inline-images&lt;/code&gt;). You can also add &lt;code class=&#34;verbatim&#34;&gt;#+startup: inlineimages&lt;/code&gt; to view images by default for the buffer.&lt;/p&gt;
&lt;p&gt;
To add an image, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-l&lt;/code&gt; (&lt;code&gt;org-insert-link&lt;/code&gt;), which opens the link menu. Org mode understands many types of links. We want the file type, so type &lt;code class=&#34;verbatim&#34;&gt;file:&lt;/code&gt;. Press enter and select the image filename in the mini buffer. You can skip the &lt;code class=&#34;verbatim&#34;&gt;file&lt;/code&gt; part with the &lt;code class=&#34;verbatim&#34;&gt;C-u C-c C-l&lt;/code&gt; shortcut (adding &lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt; before the standard shortcut.)&lt;/p&gt;
&lt;p&gt;
After adding the image, you preview it with the &lt;code&gt;org-redisplay-inline-images&lt;/code&gt; function or &lt;code class=&#34;verbatim&#34;&gt;C-c C-x C-M-v&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
You open a link in Org mode with a mouse click or by pressing &lt;code class=&#34;verbatim&#34;&gt;C-c C-o&lt;/code&gt; (&lt;code&gt;org-open-at-point&lt;/code&gt;) with your cursor on the link text. Emacs has some facilities to manage image libraries through the &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;image-dired package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The images in the buffer are all shown at the same width, which you &lt;a href=&#34;https://lucidmanager.org/productivity/ricing-org-mode/&#34;&gt;can configure&lt;/a&gt; to meet your needs. The articles about &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;writing articles and books with Emacs&lt;/a&gt; and the article about &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;creating websites with Emacs&lt;/a&gt; explains how to control image size and other image properties.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; provides a convenience function to insert images from screenshots, which is bound to the &lt;code class=&#34;verbatim&#34;&gt;Control-PrintScreen&lt;/code&gt; key. This function asks for a filename (and forces a PNG extension). The user then selects a partial screenshot and a caption. The function then inserts the image link and caption.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-org-insert-screenshot&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Take a screenshot with ImageMagick and insert as an Org mode link.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;read-file-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Enter filename for screenshot: &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;default-directory&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;unless&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;string-equal&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;png&amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;file-name-extension&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;file-name-sans-extension&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt;) &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;call-process-shell-command&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;import %s&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;insert&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+caption: %s\n&amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;read-from-minibuffer&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Caption: &amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;insert&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;[[file:%s]]&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;filename&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;org-redisplay-inline-images&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;with-eval-after-load&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;define-key&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;kbd&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-&amp;lt;print&amp;gt;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;ews-org-insert-screenshot&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Chapter numbering
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode will number every heading when the &lt;code class=&#34;verbatim&#34;&gt;#+startup: num&lt;/code&gt; option is set. The numbering will appear in the Org file. How numbering is treated in the export depends on the file format you use.&lt;/p&gt;
&lt;p&gt;
In some publications, not all headers are numbered, such as in the front matter of a book. You can exclude individual sections from being numbered by setting the &lt;code class=&#34;verbatim&#34;&gt;:unnumbered:&lt;/code&gt; property as shown below. To add this property, drawer, type &lt;code class=&#34;verbatim&#34;&gt;C-c C-x p&lt;/code&gt;, select the relevant property and enter the value.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;:PROPERTIES:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;:UNNUMBERED: t
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;:END:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Citation Management
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Citations are the engine of academic writing. Org mode has a built-in citation management tool. You will first need to &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;create a bibliography&lt;/a&gt;. You can either create one yourself, or dynamically link a file from a bibliography management tool such as Zotero.&lt;/p&gt;
&lt;p&gt;
Bibliographies can be global or local. The global bibliography is accessible from any place in Emacs, while the local bibliography file is only available within your Org mode file.&lt;/p&gt;
&lt;p&gt;
The global bibliography is set in your configuration (&lt;code&gt;org-cite-global-bibliography&lt;/code&gt; variable) and can consist of one or more BibTeX / CSL files.&lt;/p&gt;
&lt;p&gt;
The local bibliography is linked to an Org mode file with the &lt;code class=&#34;verbatim&#34;&gt;#+bibliography: &amp;#34;bibfile.bib&amp;#34;&lt;/code&gt; in your document header.&lt;/p&gt;
&lt;p&gt;
You can insert citations with &lt;code&gt;org-cite-insert&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c C-x @&lt;/code&gt;). Within &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, this command opens the Citar menu from where you can select one or more publications. A citation will look something like this: &lt;code class=&#34;verbatim&#34;&gt;[cite:@einstein_1905;@newton_1728]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
You can access the resources related to a citation with &lt;code&gt;org-open-at-point&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c C-o&lt;/code&gt;), which opens the Citar menu for the citation under point. If the citation has no entry in your local or global bibliography, then Org mode will warn that it could not find a match and will ask you to create a new heading, which of course is not the case.&lt;/p&gt;
&lt;p&gt;
Citar indicates wether an entry is cited in your project with a &lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt; in the list of publications.&lt;/p&gt;
&lt;p&gt;
Org mode has detailed methods to determine how citations are rendered in exported documents, which is discussed in &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;another article&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Managing Your Writing Project
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A writing project is about more than just smashing words into a document. Some functionality is available to add notes to your project, manage word counts and overall progress of your writing.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/nX0-Sg90RIk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Writing Tools in Emacs.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Large Projects
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Writing a book in a single Org mode file can be laborious because you need to navigate a large file. The built-in narrowing tool can help in keeping your focus. Narrowing in Emacs means that the buffer will only show a selected part of your text so you don&amp;#39;t get distracted by the rest of the document. The hidden text is still available, just not visible on the screen.&lt;/p&gt;
&lt;p&gt;
To narrow your buffer to only show the subtree (heading and associated subheadings) you are currently working in use &lt;code&gt;org-narrow-to-subtree&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-x n s&lt;/code&gt;). This commands reduces the visible text to the section under consideration. To go back to the full document evaluate the &lt;code&gt;widen&lt;/code&gt; command (&lt;code class=&#34;verbatim&#34;&gt;C-x n w&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
Sometimes it might be a good idea to split larger projects over multiple files. Org mode has an inclusion function that creates a link between documents.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;#+include: &amp;#34;chapter-02.org&amp;#34;&lt;/code&gt; line includes a file named Chapter 02 inside the main document. You can visit this child document with &lt;code class=&#34;verbatim&#34;&gt;C-c &amp;#39;&lt;/code&gt; (&lt;code&gt;org-edit-special&lt;/code&gt;). Org mode has some &lt;a href=&#34;https://orgmode.org/manual/Include-Files.html&#34;&gt;additional options&lt;/a&gt; to determine exactly which part of the child document is included.&lt;/p&gt;
&lt;p&gt;
This method allows you to work on a book or dissertation and store each chapter in a separate file. When you export the main file to a PDF, or ePUB file, all included files are added to the export. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-12&#34;&gt;
Adding notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Sometimes, adding notes to your text that should be separate from the final version is worthwhile. You should add a checklist of what needs to be done, links to websites or notes in your Denote digital garden, or anything else of importance during the process of writing. &lt;/p&gt;
&lt;p&gt;
Any line in Org mode that starts with a hashtag or pound symbol is a comment, which Emacs ignores when exporting the text to the final output. &lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  # This is a comment&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Org mode also has handy drawers, which are bits of collapsible text that can store notes. You can keep multiple lines of text in a drawer, for example, if you need to cut out a bit of text and would like to save it for future reference. The beauty of Org mode drawers is that they are collapsible, so their contents do not distract you from the primary task. You can close or open a drawer with the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key when the cursor is on the drawer.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ** This is a headline
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :DRAWER_NAME:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;  This is inside the drawer.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :END:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  After the drawer.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can interactively insert a drawer at point by calling the &lt;code&gt;org-insert-drawer&lt;/code&gt;, bound to &lt;code class=&#34;verbatim&#34;&gt;C-c C-x d&lt;/code&gt;. The selected text will be placed inside the drawer when a region is active. This function will add the name for your drawer, usually written in full caps. The drawer is inserted at the current location of the cursor.&lt;/p&gt;
&lt;p&gt;
An &lt;em&gt;Emacs Writing Studio&lt;/em&gt; function (&lt;code&gt;ews-org-insert-notes-drawer&lt;/code&gt;) generates notes drawers, bound to the &lt;code class=&#34;verbatim&#34;&gt;C-c C-x n&lt;/code&gt; keyboard shortcut. This function jumps just below the heading of the section you are writing and generates a notes drawer. If a drawer exists for this section, a new line is created at the end of the current note. After you finish writing the note, &lt;code class=&#34;verbatim&#34;&gt;C-u C-SPACE&lt;/code&gt; will take you back to your original position in the text.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Notes drawers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-org-insert-notes-drawer&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Generate or open a NOTES drawer under the current heading.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;push-mark&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-previous-visible-heading&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;next-line&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-beginning-of-line&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;looking-at-p&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;^[ \t]*:NOTES:&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#007020&#34;&gt;progn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;org-fold-hide-drawer-toggle&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;off&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;re-search-forward&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;^[ \t]*:END:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;previous-line&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;org-end-of-line&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;org-return&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;org-insert-drawer&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;NOTES&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-unlogged-message&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Press &amp;lt;C-u C-SPACE&amp;gt; to return to the previous position.&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;with-eval-after-load&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;define-key&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;kbd&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c C-x n&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;ews-org-insert-notes-drawer&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
If you need to take any notes unrelated to the document at hand, then a fleeting note stored in your central inbox is a better choice. The &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Org mode capture mechanism&lt;/a&gt; is the best solution for these situations.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
Counting words
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs has a built-in functionality to count words in a region using the &lt;code&gt;count-words-region&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;M ==&lt;/code&gt;). To find out how many words each chapter or section of your work has, you will need to run this for each part of your document. Within Org mode, there is an easy way to automate this behaviour and get an almost instant overview of your word count for each document part. This method will also let you add word count targets for each section so you can monitor progress or balance your writing.&lt;/p&gt;
&lt;p&gt;
Org mode can add properties to each heading, which we can leverage to add word counts. To add a property, use &lt;code class=&#34;verbatim&#34;&gt;C-c C-x p&lt;/code&gt; and select one from the list or create a new one. The &lt;code&gt;ews-org-count-words&lt;/code&gt; function cycles through all headings in your open Org buffer and adds a word count for each heading, including the subheadings. To add a target word count, add a new property called &lt;code class=&#34;verbatim&#34;&gt;target&lt;/code&gt; and add the relevant number.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-org-count-words&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Add word count to each heading property drawer in an Org mode buffer.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-map-entries&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#007020&#34;&gt;lambda&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;color:#007020&#34;&gt;let*&lt;/span&gt; ((&lt;span style=&#34;color:#963&#34;&gt;start&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;point&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;end&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;save-excursion&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;org-end-of-subtree&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;word-count&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;count-words&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;start&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;end&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         (&lt;span style=&#34;color:#963&#34;&gt;org-set-property&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;wordcount&amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;number-to-string&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;word-count&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         (&lt;span style=&#34;color:#007020&#34;&gt;unless&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;org-entry-get&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;target&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#963&#34;&gt;org-set-property&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;target&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;0&amp;#34;&lt;/span&gt;))))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
A collapsible property drawer shows a word count and your manually added target. When no target property exists yet, this function will add one with zero as a default. This property drawer works the same way as the notes drawer discussed previously.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :PROPERTIES:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;  :wordcount: 305
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;  :target: 300
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :END:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can view the word count for each heading in Org mode&amp;#39;s property column view &lt;code class=&#34;verbatim&#34;&gt;C-c C-x c&lt;/code&gt; (&lt;code&gt;org-columns&lt;/code&gt;). Ensure you evaluate this function at the highest level (beginning of the document). Org mode only shows the properties for the subtree you are currently in. This view creates an overlay. By cylcing through the document with &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt;, a table will appear. To include the word counts and targets, you will need to add this line at the start of the document, which defines which properties to see in each column :&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+columns: %40item %10todo %10wordcount %10target&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The columns are an overlay and not part of the text, so nothing you wrote is modified. You can keep editing your document in column view. Place the cursor on a column overlay to remove the overlay and press &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-14&#34;&gt;
Status tracking
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;As you are working on various parts of your writing project it might be godo to know what the status of each chapter is.&lt;/p&gt;
&lt;p&gt;
Org mode also has an extensive &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;system to manage projects&lt;/a&gt;, which you can also deploy to keep track of progress in your document.&lt;/p&gt;
&lt;p&gt;
Each heading in Org mode can have a status token, such as &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;DONE&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;EDITED&lt;/code&gt;, or whatever workflow you like to use. You add a status token with the shift and left/right arrow keys when the cursor is on a heading. You can also use the &lt;code class=&#34;verbatim&#34;&gt;C-c C-t&lt;/code&gt; shortcut (&lt;code&gt;org-todo&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
By default, the system only uses the &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;DONE&lt;/code&gt; status. You can add additional workflow states by defining them in the document header. The example below will cycle through these four status tokens. The tokens before the vertical line are in progress and usually marked in red. The vertical line are completed and marked in green. Org mode will add a timestamp when a section gets to the &lt;code class=&#34;verbatim&#34;&gt;FINAL&lt;/code&gt; status in this example.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+todo: WRITE DRAFT EDIT | FINAL&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Org mode has extensive facilities to &lt;a href=&#34;https://orgmode.org/manual/TODO-Items.html&#34;&gt;fine tune how these status tokens behave&lt;/a&gt;, including adding notes and timestamps.&lt;/p&gt;
&lt;p&gt;
This article only covered the tip of the iceberg of the writing and editing functionality in Emacs. Many specialised packages are available to enhance your writing experience. I advise keeping it simple for now and spend your tie writing instead of configuring Emacs. When you discover a new need, a few Google searches will often give you exactly what you need.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-15&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The screen still looks a bit plain, so in the next article we look at some techniques to improve the &lt;a href=&#34;https://lucidmanager.org/productivity/ricing-org-mode/&#34;&gt;look-and-feel or Emacs&lt;/a&gt; and Org mode.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Ricing Org Mode: A Beautiful Writing Environment</title>
      <link>https://lucidmanager.org/productivity/ricing-org-mode/</link>
      <pubDate>Sun, 08 Aug 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/ricing-org-mode/</guid>
      <description>
	
&lt;p&gt;
A plain text editor helps you focus on content over form. Having said this, the default Emacs experience can be harsh on the eyes. This article describes how to improve Emacs by ricing Org mode for a more pleasant writing experience.&lt;/p&gt;
&lt;p&gt;
Ricing is a term often used by hackers as the activity to make a system look nicer. The &lt;a href=&#34;https://www.urbandictionary.com/define.php?term=ricing&#34;&gt;Urban Dictionary&lt;/a&gt; defines it as: &amp;#34;To rice, or to soup up a crappy car with the mistaken idea that […] performance yellow paint makes it go faster.&amp;#34;&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Org mode as a Text Processor
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The main difference between a text editor and a Word processor is that in Emacs, the design of the text (font, colour and so on) is based on meaning and not the writer&amp;#39;s choice. The purpose of the buffer design is to help you navigate the document. This will not be the way it looks when you export the text. The articles about &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;publishing articles and books&lt;/a&gt; and the article about &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;creating websites&lt;/a&gt; show how to export buffers.&lt;/p&gt;
&lt;p&gt;
The default design of an Org mode buffer is a bit bland, shown in the image below. This article will show you how to step-by-step improve the look-and-feel. These improvements are not  beautification for the sake of aesthetics. Removing leading stars, indentation, converting $\LaTeX$ and line spacing facilitates the writing process by giving your eyes focus on content instead of form.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-mode-rice-01.png&#34; alt=&#34;Before ricing org mode&#34; title=&#34;Before ricing Org mode&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Before ricing Org mode.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
All the configuration explained in this series of articles is available as an init file on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Org mode Tweaks
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode needs some tweaks to remove clutter from the screen. We can change the etxt alignment, change the way fonts of rich text and special characters are displayed and preview images by default.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Improve org mode looks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-startup-indented&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#963&#34;&gt;org-pretty-entities&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#963&#34;&gt;org-use-sub-superscripts&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#963&#34;&gt;org-hide-emphasis-markers&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#963&#34;&gt;org-startup-with-inline-images&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#963&#34;&gt;org-image-actual-width&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;300&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-3&#34;&gt;
Indentation
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Org mode aligns text to the left of the buffer and all the stars of headings are visible. You can also remove leading stars and align subheadings and text below its respective heading to create a more pleasant layout. To globally turn on Org Indent mode for all files, set the variable &lt;code class=&#34;verbatim&#34;&gt;org-startup-indented&lt;/code&gt; to &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt;, which removes the leading stars for a nice clean view.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-4&#34;&gt;
Rich Text and Special Characters
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;The following three lines in the configuration instruct Org mode to display special characters and improve how we view rich text.&lt;/p&gt;
&lt;p&gt;
Pretty entities in Org mode relate to special symbols, such as superscript and subscript (&lt;code class=&#34;verbatim&#34;&gt;x^{2}&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;x_{2}&lt;/code&gt;) and other LaTeX special characters, such as &lt;code class=&#34;verbatim&#34;&gt;\pi&lt;/code&gt;, which display as x², x&lt;sub&gt;2&lt;/sub&gt; and π.&lt;/p&gt;
&lt;p&gt;
You can toggle this behaviour with the &lt;code class=&#34;verbatim&#34;&gt;C-c C-x \&lt;/code&gt; keystroke (&lt;code class=&#34;verbatim&#34;&gt;org-toggle-pretty-entities&lt;/code&gt;). For more complex mathematical expressions, see below.&lt;/p&gt;
&lt;p&gt;
By default, Org mode does not require curly braces for sub- and superscripts. But this can cause confusion if you like to write something using snake_case. This configuration limits applying sub- and superscripts to characters between curly braces by setting the &lt;code&gt;org-use-sub-superscripts&lt;/code&gt; variable to &lt;code class=&#34;verbatim&#34;&gt;{}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Org mode uses various markers to indicate rich text. Emacs will adapt the text display, but the markers remain visible, which adds to the clutter on your screen. You can remove these markers by setting the &lt;code class=&#34;verbatim&#34;&gt;org-hide-emphasis-markers&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;
The only problem with hiding emphasis markers is that rich text becomes hard to edit because it is unclear whether your cursor is on the marker or the first or last character. The &lt;a href=&#34;https://github.com/awth13/org-appear&#34;&gt;org-appear package&lt;/a&gt; helps by displaying the markers while the cursor is on a rich text word.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-appear&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-appear-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-5&#34;&gt;
Preview Images
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Org mode includes images as file links, but it can also preview the image itself. The penultimate line in this configuration instructs Org mode to preview all images in a buffer. You can toggle this with &lt;code class=&#34;verbatim&#34;&gt;C-c C-x C-v&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;org-toggle-inline-images&lt;/code&gt;) for each open buffer.&lt;/p&gt;
&lt;p&gt;
You need to restrict the size of previews because they can get unwieldy when working with high-resolution images. You can set the default width of a preview in pixels, which in this example is 300. If you like to increase the size of a specific image, then place the cursor on it and use the plus and minus keys.&lt;/p&gt;
&lt;p&gt;
The code above shows the number of pixels in a list &lt;code class=&#34;verbatim&#34;&gt;&amp;#39;(300)&lt;/code&gt; instead of just the number. This method instructs Org mode to override this setting for individual images with the &lt;code class=&#34;verbatim&#34;&gt;#+attr_org: :width&lt;/code&gt; set. In this example, the image is displayed at a width of 100 pixels.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+caption: Image caption.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+attr_org: :width 100
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#00c&#34;&gt;file:path/to/image.png&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-6&#34;&gt;
Prettify Special Symbols
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;When using Org mode or similar approaches, there a lot of characters that are not content but indicate semantics, such as the asterisks at the start of a header. These symbols are practical but look a bit rough. The previous configuration already removed the leading stars to reduce clutter. Now we will replace these symbols with some nicer looking bullets.&lt;/p&gt;
&lt;p&gt;
Emacs can change the way a text file is displayed by either hiding or replacing characters. The &lt;a href=&#34;https://github.com/minad/org-modern&#34;&gt;Org-Modern package&lt;/a&gt; implements a configurable package to rice your Org mode buffers. The package can style headline indicators, keywords, tables and source blocks. This configuration disables some of the functionality because hiding indicators is not always a good idea. &lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-modern&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;global-org-modern-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-modern-keyword&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-modern-checkbox&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-modern-table&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-7&#34;&gt;
LaTeX previews
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;If you have a working LaTeX installation, then Org Mode can preview LaTeX fragments, such as formulas, as images. To preview the fragment under the cursor, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-x C-l&lt;/code&gt; (&lt;code&gt;org-latex-preview&lt;/code&gt;) to, for example, convert &lt;code class=&#34;verbatim&#34;&gt;$\sum_1^\infty \frac{1}{x}$&lt;/code&gt; to $\sum_1^\infty \frac{1}{x}$. Org mode created a subdirectory named &lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://github.com/io12/org-fragtog&#34;&gt;org-fragtog&lt;/a&gt; package provides some nice functionality that toggles between the source and the preview of the formulas, which means you don&amp;#39;t have to use the &lt;code&gt;org-latex-preview&lt;/code&gt; function repeatedly. The package is loaded after the Org package has loaded.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; LaTeX previews&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-fragtog&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:after&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-startup-with-latex-preview&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-fragtog-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-format-latex-options&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;plist-put&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-format-latex-options&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:scale&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;plist-put&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-format-latex-options&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:foreground&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;auto&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;plist-put&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-format-latex-options&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;:background&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;auto&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;org-format-latex-options&lt;/code&gt; variable controls the way the Emacs presents fragments. By default, the text is a bit small. This variable is a list with properties such as colours and size. The &lt;code class=&#34;verbatim&#34;&gt;plist-put&lt;/code&gt; function lets you change one of these options in the list. The foreground and background are set to take the same colour as your text. If you change from dark to light mode or vice versa, you need to evaluate the &lt;code&gt;org-latex-preview&lt;/code&gt; function to change the way formulas are displayed.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Line Spacing
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;When the text is a bit too compact for your liking, then change the &lt;code class=&#34;verbatim&#34;&gt;line-spacing&lt;/code&gt; variable. Setting it to &lt;code class=&#34;verbatim&#34;&gt;nil&lt;/code&gt; results in a cramped reading space, so best to add some whitespace between lines. Space between paragraphs is formed by adding an empty line.&lt;/p&gt;
&lt;p&gt;
If the value is an integer, it indicates the number of pixels below each line. A decimal number is a scaling factor relative to the current window&amp;#39;s default line height. The &lt;code class=&#34;verbatim&#34;&gt;setq-default&lt;/code&gt; function sets this for all buffers. Otherwise, it only applies to the current open buffer. Try the value that best suits your preferences.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Increase line spacing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;line-spacing&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
A Clean Writing Interface
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Writing takes total concentration to produce creative prose. Distractions are the natural enemy of concentration. While your computer is your most important writing tool, it can also be a source of distractions.&lt;/p&gt;
&lt;p&gt;
Distraction-free writing means that your computer screen is free of clutter and, just like an old typewriter, only shows the text you are working on. In the article about &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configuring Emacs&lt;/a&gt;, we already removed the menu bar and other on-screen distractions.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/rnkn/olivetti&#34;&gt;Olivetti&lt;/a&gt; is a simple Emacs minor mode that facilities distraction-free writing. The name Olivetti derives from the famous typewriter brand.&lt;/p&gt;
&lt;p&gt;
You activate Olivetti mode with &lt;code class=&#34;verbatim&#34;&gt;M-x olivetti-mode&lt;/code&gt;. This minor mode reduces the width of the text to seventy characters and centres the text in the middle of the window. The width of the text is changeable with the &lt;code class=&#34;verbatim&#34;&gt;M-x olivetti-set-with&lt;/code&gt; command or &lt;code class=&#34;verbatim&#34;&gt;C-c \&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
I have written a new function that makes Olivetti mode a bit easier to use. This code stores your window configuration when you hit &lt;code class=&#34;verbatim&#34;&gt;F9&lt;/code&gt; (or whatever key you prefer) and activates Olivetti mode. It also increases the text by two steps to create a nice focussed screen. Finally, typing &lt;code class=&#34;verbatim&#34;&gt;F9&lt;/code&gt; again restores the previous window settings.&lt;/p&gt;
&lt;p&gt;
This snippet of code is a simple example of the flexibility of Emacs and how relatively easy it is to change its behaviour to suit your preferences. The &lt;code&gt;ews-distraction-free&lt;/code&gt; function checks whether Olivetti mode is currently active. If this is not the case, then it saves the current window configuration to a register and activates Olivetti mode with enlarged font size. If Olivetti mode is active, then the text is sized to its default and olivetti mode disabled. If the original window configuration had more than two open windows, then this is restored so you are back where you left off.&lt;/p&gt;
&lt;p&gt;
As a side note, all functions specifically written for the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; start with &lt;code&gt;ews-&lt;/code&gt;, which is in line with best-practice naming conventions in Emacs Lisp where all functions start with their package name.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Distraction-free writing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-distraction-free&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Distraction-free writing environment using Olivetti package.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;equal&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;olivetti-mode&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#007020&#34;&gt;progn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;window-configuration-to-register&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;delete-other-windows&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;text-scale-set&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;olivetti-mode&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;progn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;eq&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;length&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;window-list&lt;/span&gt;)) &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#963&#34;&gt;jump-to-register&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;olivetti-mode&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;text-scale-set&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;olivetti&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:demand&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;f9&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-distraction-free&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
Ricing Org Mode
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;By ricing Org mode we have moved somewhere between pure plain text and a graphical interface. There is no functional need to do so other than convenience. While it might seem that we have moved away from the &lt;em&gt;What You See is What You Mean&lt;/em&gt; approach, that is not quite the case. The way the screen is presented in Emacs is different from the way it looks in your final output.&lt;/p&gt;
&lt;p&gt;
For example, if you create a website, any Org mode text surrounded by a forward slash (&lt;code class=&#34;verbatim&#34;&gt;/example/&lt;/code&gt;) is translated as &lt;code&gt;&amp;lt;i&amp;gt;example&amp;lt;/i&amp;gt;/&lt;/code&gt;. For LaTeX output, it becomes &lt;code&gt;\emph{example}&lt;/code&gt;. The HTML style sheet or LaTeX document class determines the way this code looks in the final output (the &amp;#34;what you get&amp;#34; in WYSIWYG). This example is italic by default, but it could be something different.&lt;/p&gt;
&lt;p&gt;
The results of our efforts have made a difference, as shown by the image below. Your chosen theme will change the background and text colours.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-mode-rice-02.png&#34; alt=&#34;After ricing org mode&#34; title=&#34;After ricing Org mode&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
Enhanced Org mode screen.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-11&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media through the links in the footer.&lt;/p&gt;
&lt;p&gt;
Now that you have written a nice article or a new book, it is time to &lt;a href=&#34;https://lucidmanager.org/productivity/publishing-with-org-mode-export/&#34;&gt;publish your work as an ebook or a physical book&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Publishing Articles and Books with Org Mode Export</title>
      <link>https://lucidmanager.org/productivity/publishing-with-org-mode-export/</link>
      <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/publishing-with-org-mode-export/</guid>
      <description>
	
&lt;p&gt;
Emacs Org mode is an &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;ideal tool for writing without distractions&lt;/a&gt; because working with plain text allows you to focus on content instead of design. While writing articles and books in plain text is pleasant and productive, it is not ideal for sharing your work. The Org mode exports your work to PDF leveraging LaTeX, to a website, to a word processor document, an ebook and many more formats. This article explains how to export your work as a journal article, a print-ready book PDF, or an ebook.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Org mode export principles
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The basic principle of exporting Org mode files to the desired format is that the system converts the text to the relevant format and then connects it to a document class, CSS style sheet or other type of template. Your text file can also link to a &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;local or global bibliography&lt;/a&gt; to manage citations. Org mode has built-in export facilities for LaTeX (PDF), HTML and ODT (LibreOffice) and some other formats. Using external packages you can also export to other formats, such as ePub.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-mode-export.png&#34; alt=&#34;Org mode explort principles&#34; title=&#34;Org mode explort principles&#34; width=&#34;300&#34;/&gt;
&lt;figcaption&gt;
Org mode explort principles
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
In principle you don&amp;#39;t need to know HTML or LaTeX, but it will certainly help with fine tuning the output.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
The Org mode export function
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Org mode includes a powerful export module to convert your files to various formats. Start the export module with the &lt;code&gt;org-export-dispatch&lt;/code&gt; function, which you can run with the default &lt;code class=&#34;verbatim&#34;&gt;C-c C-e&lt;/code&gt; keyboard shortcut. The dispatch provides a range of options. The first letter you type determines the export format, and subsequent letters the specific options. Using &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; exists the export dispatcher.&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://orgmode.org/manual/Exporting.html&#34;&gt;Org mode manual&lt;/a&gt; describes a myriad of configuration options to fine-tune the look and feel of the exported file. This article describes the basics of the export functionality for PDF files, word processor formats and ebooks.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Export filename
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;By default, Org mode saves the result of the export process in the same folder as the source document. The exported file has the same name as the source file but with a different extension.&lt;/p&gt;
&lt;p&gt;
Exporting &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote&lt;/a&gt; Org mode files can create a filename conflict because you are effectively creating two files with the same identifier, so ideally you should change the name of the exported file. &lt;/p&gt;
&lt;p&gt;
You can change this behaviour by adding &lt;code&gt;#+export_file_name: &amp;lt;filename&amp;gt;&lt;/code&gt; to the header. The filename can be any string without file extension. You can save the exported file in another folder, but this might cause errors for certain formats.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Basic settings
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Before delving into the specific export formats, some housekeeping sets the defaults on how a document is exported. There are &lt;a href=&#34;https://orgmode.org/manual/Export-Settings.html#FOOT123&#34;&gt;various settings to control how Org mode exports your document&lt;/a&gt;, which you add to the front matter of your file, or set them as global variable for all exports. Some generic export variables are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+title:&lt;/code&gt; Document title.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+author:&lt;/code&gt; Author name (defaults to &lt;code&gt;user-full-name&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+date:&lt;/code&gt; Date of publication (You can set the format of the export with the &lt;code&gt;org-export-date-timestamp-format&lt;/code&gt; variable).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The snippet below ignores drawers (&lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;which can be used for writing notes and other functions&lt;/a&gt;) and &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;todo keywords&lt;/a&gt; in the export. This configuration also ignores broken links, does not produce a table of contents and turns straight quotation marks into more aesthetic curly ones.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Org Export Settings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-with-drawers&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-with-todo-keywords&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-with-broken-links&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-with-toc&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-with-smart-quotes&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-export-date-timestamp-format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;%d %B %Y&amp;#34;&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can override these settings for specific documents with header arguments, as shown below. The &lt;code class=&#34;verbatim&#34;&gt;d&lt;/code&gt; is for drawers and the mystical looking &lt;code&gt;\\=&amp;#39;&lt;/code&gt; for smart quotes. The line below shows drawers and todo markers in the export. This configuration marks broken links, shows two levels of the table of contents and quotation marks are not converted. &lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+options: d:t todo:t broken-links:mark toc:2 \\=&amp;#39;:nil&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Section 13.2 of the &lt;a href=&#34;https://orgmode.org/manual/Export-Settings.html&#34;&gt;Org mode manual&lt;/a&gt; explains the various export settings in more detail. Each option can be set as a variable in your configuration or as a line in your Org mode header to fine tune export settings for individual files.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Excluding content from export
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Not everything you write should be exported, as suggested in the export defaults in the previous section. The article on &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;writing with Org mode&lt;/a&gt; explains how to add comments and notes drawers into your file. Comments with &lt;code class=&#34;verbatim&#34;&gt;#&lt;/code&gt; and are not exported by default. The &lt;code&gt;ews-org-insert-notes-drawer&lt;/code&gt; command inserts or appends a drawer in the current document section. The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration does not export drawers, so your notes remain private. &lt;/p&gt;
&lt;p&gt;
Furthermore, can also exclude a section of your writing from export by adding the &lt;code class=&#34;verbatim&#34;&gt;:noexport:&lt;/code&gt; tag. You add a tag to a heading by keying &lt;code class=&#34;verbatim&#34;&gt;C-c C-q&lt;/code&gt; when the cursor is on or inside the heading. You enter the tag in the minibuffer and you can use completion to find existing tags. The tag appears on the right side of the heading name between colon markers.&lt;/p&gt;
&lt;p&gt;
Tags in Org mode provide flexible functionality to manage large files or categorise action lists. Org mode has extensive capabilities to use tags, which are not further used in &lt;em&gt;Emacs Writing Studio&lt;/em&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Bibliographic references
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode has a built-in citation manager that can use BibTeX / BibLaTeX or CSL files to reference bibliographic items such as articles and books.&lt;/p&gt;
&lt;p&gt;
The article on &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;managing BibTeX files&lt;/a&gt; explains how to create a bibliography. You can create a default bibliography, that is accessible to all Org mode files and specify specific bibliography files for each Org mode file.&lt;/p&gt;
&lt;p&gt;
When exporting to LaTeX, citations are managed by  the external software. When exporting to any other format you need to specify how Org mode manages citations. The default settings in Org mode provide basic citation support.&lt;/p&gt;
&lt;p&gt;
This website by Tecosaur provides an in-depth description of how to &lt;a href=&#34;https://blog.tecosaur.com/tmio/2021-07-31-citations.html&#34;&gt;manage citations in Org mode&lt;/a&gt;, much better than I can explain it.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/NwDOKkwtJ34?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Introducing Org mode exports.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Word Processor Export
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The export function in Org Mode can export to the ODT format, which is compatible with MS Word, out of the box. The ODT export back-end relies on the &lt;code class=&#34;verbatim&#34;&gt;zip&lt;/code&gt; program to create the final output&lt;/p&gt;
&lt;p&gt;
If you have LibreOffice installed, you can also create a &lt;code class=&#34;verbatim&#34;&gt;docx&lt;/code&gt; file to make it easier for MS Word users to share in the joy of reading your writing. When you set this option, the export process will result in both an &lt;code class=&#34;verbatim&#34;&gt;odt&lt;/code&gt; and a &lt;code class=&#34;verbatim&#34;&gt;docx&lt;/code&gt; file. This behaviour is not the default in &lt;em&gt;Emacs Writing Studio&lt;/em&gt;, so you must add this yourself if you prefer exporting in the Microsoft format. Alternatively, you can also use this variable to export to PDF.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Not included in EWS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Export ODT to MS-Word&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-odt-preferred-output-format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;docx&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Export ODT to PDF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-odt-preferred-output-format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;pdf&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
It is possible to set this option specific to the file you are exporting by adding these three lines somewhere in your Org mode file:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  # local variables:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  # org-odt-preferred-output-format: &amp;#34;pdf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  # end:&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
When Org mode exports the file, these lines are evaluated but not exported as they are treated as comments.&lt;/p&gt;
&lt;p&gt;
You can use specific export settings in the front matter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+subtitle:&lt;/code&gt; The document subtitle.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+description:&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;#+keywords&lt;/code&gt; are added to the exported file(s) metadata.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+odt_styles_file:&lt;/code&gt; Add the path to an LibreOffice style file (&lt;code class=&#34;verbatim&#34;&gt;ott&lt;/code&gt; format)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Creating a LibreOffice style file is straightforward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a LibreOffice file to your liking using the Styles menu (press &lt;code class=&#34;verbatim&#34;&gt;F11&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;Modify each style to your liking.&lt;/li&gt;
&lt;li&gt;Test the document.&lt;/li&gt;
&lt;li&gt;Save as &lt;code class=&#34;verbatim&#34;&gt;ott&lt;/code&gt; file.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A LibreOffice file is essentially a &lt;code class=&#34;verbatim&#34;&gt;zip&lt;/code&gt; file with an embedded set of &lt;code class=&#34;verbatim&#34;&gt;xml&lt;/code&gt; files. Org mode extracts the &lt;code class=&#34;verbatim&#34;&gt;styles.xml&lt;/code&gt; file embedded in your template file. You cannot use this method for templates (pre-configured content).&lt;/p&gt;
&lt;p&gt;
You can fine-tune how Org exports to OpenOffice to a great extent. For a detailed discussion on &lt;code class=&#34;verbatim&#34;&gt;odt&lt;/code&gt; Export, read the online &lt;a href=&#34;https://orgmode.org/manual/OpenDocument-Text-Export.html&#34;&gt;Org mode manual&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
LaTeX export
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;LaTeX is a powerful typesetting system (pronounced “LAY-tek” or “LAH-tek”), especially for writing scientific and technical documents. LaTeX can convert your text into a beautifully designed PDF file for publishing an article, ebook or physical book. Many publishers of technical literature have LaTeX templates to comply with their style guide. &lt;/p&gt;
&lt;p&gt;
You don’t necessarily need any knowledge of LaTeX to export to PDF. Still, it will certainly help if you like to fine-tune the design of your document. The basic syntax of LaTeX is easy to explain. Let&amp;#39;s assume you have a straightforward Org mode file that looks like this:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title:  Example document
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+author: Peter Prevos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+latex_class: book
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Minimum example for a LaTeX document.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The Latex equivalent of this example is:&lt;/p&gt;
&lt;div class=&#34;src src-latex&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\documentclass&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;article&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\title&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;Example document&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\author&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;Peter Prevos&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\begin&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;document&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\maketitle&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Minimum example for a LaTeX document.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\end&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;document&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The LaTeX software can convert this document to a wonderfully formatted article due to the document class, which defines the typography and layout.&lt;/p&gt;
&lt;p&gt;
Writing documents directly in LaTeX can be confusing because you need to know its markup language, and your text is littered with backslashes, curly braces, and other syntactical distractions. Being productive as a writer requires focusing on the text’s content instead of how it looks. Org mode is the perfect LaTeX editor because it frees you from distractions and integrates perfectly with LaTeX.&lt;/p&gt;
&lt;p&gt;
To enable exporting Org mode files to PDF, you need to have LaTeX installed on your system. How to install LaTeX depends on your operating system, and your favourite search engine will point you in the right direction.&lt;/p&gt;
&lt;p&gt;
Keying &lt;code class=&#34;verbatim&#34;&gt;C-c C-e&lt;/code&gt; to open the export dispatch, then &lt;code class=&#34;verbatim&#34;&gt;l p&lt;/code&gt; creates and opens a PDF file. Other options are available to export the buffer to LaTeX or to save a PDF file without opening it.&lt;/p&gt;
&lt;p&gt;
To make the magic work, Org Mode converts your file to a &lt;code class=&#34;verbatim&#34;&gt;tex&lt;/code&gt; file, after which the LaTeX software converts it to PDF. The system works out of the box without any configuration. With some configuration you can produce PDF files that are perfect for producing printed books.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Text elements
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode converts headers to relevant LaTeX headers, and text becomes a paragraph. The relationship between the heading level in your Org file and LaTeX depends on the configuration, explained below. &lt;/p&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-10&#34;&gt;
Tables and images
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Org mode converts images and tables to LaTeX floats. You can add specific attributes to these floats by using &lt;code class=&#34;verbatim&#34;&gt;#+attr_latex:&lt;/code&gt;, as shown in the image example below:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+caption: This is an example image caption.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+attr_latex: :width 5cm :options angle=90 :placement h
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#00c&#34;&gt;directory/filename.png&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Various parameters are available to determine how your table or image looks in the final output. The Org mode manual provides a detailed overview in &lt;a href=&#34;https://orgmode.org/manual/LaTeX-Export.html&#34;&gt;section 3.10&lt;/a&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-11&#34;&gt;
LaTeX snippets
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;You can write simple LaTeX commands directly into your org file. For example, &lt;code class=&#34;verbatim&#34;&gt;\newpage&lt;/code&gt; will add a page break. You can also place equations using dollar signs, for instance &lt;code class=&#34;verbatim&#34;&gt;$e^{i\pi} + 1 = 0$&lt;/code&gt; results in $e^{i\pi} + 1 = 0$.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;org-latex-preview&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c C-x C-l&lt;/code&gt;) shows a preview of any LaTeX equations within the open buffer. The chapter on &lt;a href=&#34;https://lucidmanager.org/productivity/ricing-org-mode/&#34;&gt;Ricing Org mode&lt;/a&gt; introduces the &lt;code class=&#34;verbatim&#34;&gt;org-fragtog&lt;/code&gt; package to automatically toggle between the plain text and the preview.&lt;/p&gt;
&lt;p&gt;
To create front and back matter, use the &lt;code&gt;\frontmatter&lt;/code&gt; and &lt;code&gt;\backmatter&lt;/code&gt; LaTeX commands in your Org file at the appropriate locations.&lt;/p&gt;
&lt;p&gt;
For more complex snippets, you need to use a structure template. Press &lt;code class=&#34;verbatim&#34;&gt;C-c C-, l&lt;/code&gt; to insert a LaTeX source block. This LaTeX example creates an image using the picture environment. &lt;/p&gt;
&lt;div class=&#34;src src-latex&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ,#+begin&lt;span style=&#34;color:#007020&#34;&gt;_&lt;/span&gt;export latex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\setlength&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\unitlength&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;}{&lt;/span&gt;1cm&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\begin&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;picture&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;(10,10)(-5,5)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\linethickness&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;1pt&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\put&lt;/span&gt;(-2.5,0)&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\vector&lt;/span&gt;(1,0)&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;5&lt;span style=&#34;color:#007020&#34;&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\put&lt;/span&gt;(0,-2.5)&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\vector&lt;/span&gt;(0,1)&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;5&lt;span style=&#34;color:#007020&#34;&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\put&lt;/span&gt;(0,0)&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\circle&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;3&lt;span style=&#34;color:#007020&#34;&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;\end&lt;/span&gt;&lt;span style=&#34;color:#007020&#34;&gt;{&lt;/span&gt;picture&lt;span style=&#34;color:#007020&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ,#+end&lt;span style=&#34;color:#007020&#34;&gt;_&lt;/span&gt;export&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The image will not appear in Org mode as it is generated by LaTeX and will only appear when exporting.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/picture-environment-example-latex-.png&#34; alt=&#34;/images/emacs/picture-environment-example-latex-.png&#34; title=&#34;/images/emacs/picture-environment-example-latex-.png&#34; width=&#34;100&#34;/&gt;
&lt;figcaption&gt;
Example of LaTeX picture environment result.
&lt;/figcaption&gt;
&lt;/figure&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-12&#34;&gt;
LaTeX Packages and Classes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;By default, Org mode uses the article class and a set of default packages to export documents. Org mode provides three mechanisms to use LaTeX packages in your export:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the header, using &lt;code&gt;#+latex_header:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuring the &lt;code&gt;org-latex-packages-alist&lt;/code&gt; variable.&lt;/li&gt;
&lt;li&gt;Configure the &lt;code&gt;org-latex-classes&lt;/code&gt; variable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Org mode header can do a lot of the work. The example below specifies the book document class with A4 paper size. This example also specifies the Times fonts package. The last line tells Org mode to omit the table of contents from the export.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+latex_class: book
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+latex_class_options: [a4paper]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+latex_header: \usepackage{times}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+options: toc:nil&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The &lt;code&gt;org-latex-packages-alist&lt;/code&gt; variable defines the default packages that are used for every LaTeX export.&lt;/p&gt;
&lt;p&gt;
You can define more complex header configurations by changing the &lt;code class=&#34;verbatim&#34;&gt;org-latex-classes&lt;/code&gt; association list. &lt;/p&gt;
&lt;p&gt;
The example below adds the template for the American Psychological Association (APA) journals. This list&amp;#39;s documentation provides all the details you need to configure packages and classes for your exports. The &lt;code&gt;with-eval-after-load&lt;/code&gt; function ensures that this variable is only set once the LaTeX export function is loaded by Emacs. Note the double backslash instead of the single one in regular LaTeX syntax for compatibility with Emacs Lisp. &lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;with-eval-after-load&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;ox-latex&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;add-to-list&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;org-latex-classes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;apa6&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\documentclass[a4paper, jou, 11pt]{apa6}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;                    \\usepackage[nodoi]{apacite}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;                    \\usepackage{graphicx}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;                    \\usepackage[T1]{fontenc}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;                    \\usepackage{times}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\section{%s}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\section*{%s}&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\subsection{%s}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\subsection*{%s}&amp;#34;&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The last part of this association list specifies the mapping between Org mode and LaTeX headers. In this case, the highest level is associated with the section header, the second level with a subsection, and so on.&lt;/p&gt;
&lt;p&gt;
You can call this particular class by adding &lt;code class=&#34;verbatim&#34;&gt;#+latex_class: apa6&lt;/code&gt; to your file header. This mechanism empowers you to define bespoke LaTeX classes to create a library of export options.&lt;/p&gt;
&lt;p&gt;
These three mechanisms allow fine-grained control over how your Org mode document is exported to LaTeX and PDF. The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration only uses the default settings for these variables because the possible use cases are too numerous to define a sensible default other than what is already available.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
PDF export configuration
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration for PDF export defines the export process to ensure that bibliographies work appropriately. This configuration also cleans all temporary files that LaTeX creates so that only the exported file remains.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; LaTeX PDF Export settings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ox-latex&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:ensure&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:demand&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Multiple LaTeX passes for bibliographies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-latex-pdf-process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;pdflatex -interaction nonstopmode -output-directory %o %f&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;bibtex %b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Clean temporary files after export&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-latex-logfiles-extensions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#007020&#34;&gt;quote&lt;/span&gt; (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;lof&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;lot&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tex~&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;aux&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;idx&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;log&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;out&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;toc&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;nav&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;snm&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;vrb&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;dvi&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;fdb_latexmk&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;blg&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;brf&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;fls&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;entoc&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;ps&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;spl&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;bbl&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tex&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;bcf&amp;#34;&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Publishing Ebooks
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Most ebook publishers use the ePub format for distribution. This file type is a ZIP file with your book stored as a website optimised for an e-reader. The &lt;code class=&#34;verbatim&#34;&gt;ox-epub&lt;/code&gt; package adds this functionality to the Org export dispatcher. This package uses the built-in Org to HTML export to create the ebook, so you can use any of its features to fine-tune the output.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; epub export&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ox-epub&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:demand&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
There are some &lt;a href=&#34;https://github.com/ofosos/ox-epub&#34;&gt;required export options&lt;/a&gt; that need to be set in your header:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+title:&lt;/code&gt; the document title.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+uid:&lt;/code&gt; a unique ID of the document, otherwise known as URI, could be a website or ISBN number.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+date&lt;/code&gt;: the date of the document.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;#+author:&lt;/code&gt; the document author or editor, the creator in the EPUB spec&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The default settings will add a postamble to the bottom of the last page with a timestamp, author and a HTML validation service. Adding &lt;code class=&#34;verbatim&#34;&gt;#+options: html-postamble:nil&lt;/code&gt; toepub the Org file header removes these from your ebook.&lt;/p&gt;
&lt;p&gt;
Any LaTeX fragments are ignored in the export, which means it is not possible to export the same source file to both PDF and ePub wit the same output.&lt;/p&gt;
&lt;p&gt;
However, LaTeX math formulas are possible with the &lt;code class=&#34;verbatim&#34;&gt;tex:dvipng&lt;/code&gt; option added to the Org header. This option converts any LaTeX formula to a PNG image, which is not ideal but readable.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;ox-epub&lt;/code&gt; package does not convert Org mode timestamps to a date format that complies with the ePub standard. You can correct this by removing the square brackets and the day and time from the timestamp.&lt;/p&gt;
&lt;p&gt;
Lastly, please note to only use open image formats such as &lt;code class=&#34;verbatim&#34;&gt;.png&lt;/code&gt; as some ebook readers cannot display JPG files and other proprietary formats. The ebook will look alright on your computer but might not pass any checks by a publisher.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-15&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media through the links in the footer.&lt;/p&gt;
&lt;p&gt;
The next article dives into using &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Org mode and Hugo to create websites&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Create Websites with Emacs: Blogging with Org mode and Hugo</title>
      <link>https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/</guid>
      <description>
	
&lt;p&gt;
When I developed my first website in 1997, I wrote HTML in a plain text editor. When discovering WordPress when it was first released, I thought it was the best thing since sliced bread because it allowed me to create websites without managing individual HTML and CSS pages.&lt;/p&gt;
&lt;p&gt;
Unfortunately, WordPress has become bloated, and the online editor is inconvenient. Last year, I bid farewell to WordPress and now use Emacs Org mode and Hugo to develop websites.&lt;/p&gt;
&lt;p&gt;
A significant disadvantage of WordPress is that you write your text in the browser, and your content resides inside a database. You can, as such, only use WordPress to work on your website. The advantage of using Emacs and Org mode to maintain a website is that your content consists of plain text files. There are no databases or access limitations, and you get to use the incredible editing powers of Emacs.&lt;/p&gt;
&lt;p&gt;
Another reason to ditch WordPress is that static websites are faster and safer because there is no database to hack. A static website generator creates pages in plain HTML, which render faster than a database-driven website, improving the user experience and your SEO. Static websites have at least three advantages over database-driven systems, such as WordPress:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faster website due to static content (no need to access a database)&lt;/li&gt;
&lt;li&gt;Writing web pages offline with your favourite editor&lt;/li&gt;
&lt;li&gt;Your content remains in plain text&lt;/li&gt;
&lt;li&gt;No dependence on third-party paid plugins&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This website is entirely created with Emacs Org mode and Hugo, and this post explains how you can do the same.&lt;/p&gt;
&lt;p&gt;
This article is part of the &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, which explains how to use Emacs to undertake research and write and publish articles, books, and websites. You can find the most recent configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Org mode
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;Org mode is a markdown language&lt;/a&gt; in plain text. This approach helps you to focus more on your writing instead of its design because it emphasises content over formatting. Text editors are not like What-You-See-Is-What-You-Get systems. You write the article in plain text, and when you publish the website, the content is merged with a style sheet that determines the design. The image below shows this article as I write it and what it looks like in the browser.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/wysiwym.jpg&#34; alt=&#34;The WYSIWYM approach with Emacs Org Mode and Hugo.&#34; title=&#34;The WYSIWYM approach with Emacs Org Mode and Hugo.&#34;/&gt;
&lt;figcaption&gt;
The WYSIWYM approach: Left, an article in Emacs. Right: The exported result.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Emacs can create simple websites with the default Org mode export function. While this function has a powerful option to use CSS templates, it is not a fully-fledged static website generator. That is why I use Hugo to generate HTML files.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Hugo static website generator
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Hugo static website generator converts a Markdown or Org mode file collection to a website using the Go language. You can use Hugo with Emacs out-of-the-box. The &lt;a href=&#34;https://github.com/niklasfasching/go-org&#34;&gt;go-org&lt;/a&gt; library by Niklas Fasching forms part of Hugo, so in principle you do not need to update your &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;init file&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;
You will need to install the Hugo software, create an empty site and download a theme before starting. The &lt;a href=&#34;https://gohugo.io/getting-started/quick-start/&#34;&gt;Quick Start guide for Hugo&lt;/a&gt; provides detailed instructions. When you get to step four, come back to this article to find out how to use Org Mode to add some content.&lt;/p&gt;
&lt;p&gt;
The video series by Mick Dane embedded below provides a comprehensive introduction to using Hugo.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/qtIqKaDlqXo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Introduction to Hugo by Mick Dane.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
All you need to do now is start writing pages in Org mode or Markdown in the &lt;code class=&#34;verbatim&#34;&gt;content&lt;/code&gt; folder. Emacs can also help you with Markdown, but that is outside the scope of this article.&lt;/p&gt;
&lt;p&gt;
The theme for this website is optimised for working directly with Org mode files in Hugo. You can download the theme from GitHub. The &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;Hugo website&lt;/a&gt; provides access to an extensive collection of themes. Changing the look and feel of your website is as easy as changing the theme.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/hugo-thirdhemisphere/&#34; target=&#34;_blank&#34;
   title=&#34;Download hugo-thirdhemisphere from GitHub&#34;
   alt=&#34;Download hugo-thirdhemisphere from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;hugo-thirdhemisphere&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Using Org Mode and Hugo
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Hugo website does not provide much information about using Org mode. The Go-Org website has a &lt;a href=&#34;https://niklasfasching.github.io/go-org/&#34;&gt;detailed overview&lt;/a&gt; of Org mode syntax and how Hugo renders the HTML.&lt;/p&gt;
&lt;p&gt;
The Org mode module in Hugo perfectly parses your org files, but there are some special considerations and limitations.&lt;/p&gt;
&amp;nbsp;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Front matter
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Each Org mode file starts with the front matter containing your blog post&amp;#39;s title, author, date, and other metadata. You can add non-standard variables, which you can use in your Hugo shortcodes or partials, for example:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+Title:        Create Websites with Emacs: Blogging with Org mode and Hugo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+date:         [2021-05-07 Fri]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+lastmod:      [2023-09-09 Sat]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+categories[]: Productivity
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+tags[]:       Emacs Hugo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+images[]:     /images/emacs/emacs-hugo.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+weight:       62
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+example:      Hello world!&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Any line that does not start with &lt;code class=&#34;verbatim&#34;&gt;#+&lt;/code&gt; ends the front matter.&lt;/p&gt;
&lt;p&gt;
Keyword values can be either strings (&lt;code class=&#34;verbatim&#34;&gt;#+key: value&lt;/code&gt;), or a whitespace-separated list of strings (&lt;code class=&#34;verbatim&#34;&gt;#+key[]: value_1 value_2&lt;/code&gt;). If you need to add a value with two words, you will need to use a hyphen.&lt;/p&gt;
&lt;p&gt;
Add single keywords to your template with, for example with &lt;code class=&#34;verbatim&#34;&gt;{{- .Params.example =-}}&lt;/code&gt;, which renders as &amp;#34;Hello world!&amp;#34;&lt;/p&gt;
&lt;p&gt;
When working with a list, spaces act as a delimiter, so you cannot use tags with two words without a workaround, for example hyphenation (&amp;#34;Hello-World&amp;#34;). &lt;/p&gt;
&lt;p&gt;
If you are handy with &lt;a href=&#34;https://lucidmanager.org/productivity/hugo-seo/&#34;&gt;Hugo templates&lt;/a&gt;, then you can easily remove the hyphens. Modify your Hugo template files that call the relevant list variables to replace any hyphens with spaces:&lt;/p&gt;
&lt;div class=&#34;src src-go&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{&lt;span style=&#34;color:#333&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;range&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.Params.tags&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;replace&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{&lt;span style=&#34;color:#333&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;end&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can instruct Emacs to automatically add a modification timestamp by adding the following code to your init file:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Update Org files with last modified date when #+lastmod:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;time-stamp-active&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;time-stamp-start&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#\\+lastmod:[ \t]*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;time-stamp-end&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;$&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;time-stamp-format&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;[%04Y-%02m-%02d %a]&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;add-hook&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;before-save-hook&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;time-stamp&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This hook will look for &lt;code class=&#34;verbatim&#34;&gt;#+lastmod:&lt;/code&gt; in your file and add the current date. Hugo will recognise the &lt;code class=&#34;verbatim&#34;&gt;lastmod&lt;/code&gt; variable, and if your template supports it, it will insert this date onto your page. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Internal Links
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org mode includes the ability to &lt;a href=&#34;https://orgmode.org/guide/Hyperlinks.html&#34;&gt;link to other pages&lt;/a&gt;. Unfortunately, you cannot use standard Org mode or Denote links in Hugo for two reasons.&lt;/p&gt;
&lt;p&gt;
Firstly, in Hugo, the slug of a post is not necessarily the same as its relative filename. When using the &lt;code class=&#34;verbatim&#34;&gt;#+slug:&lt;/code&gt; variable in the front matter, the URL will not match the filename.&lt;/p&gt;
&lt;p&gt;
Secondly, the file&amp;#39;s location on your drive might be in a different folder than it appears on the website.&lt;/p&gt;
&lt;p&gt;
Hugo uses the &lt;code class=&#34;verbatim&#34;&gt;ref&lt;/code&gt; shortcode to manage these issues. This shortcode inserts the URL of the post into the link. When you move a post to another folder, Hugo finds it and creates the appropriate hyperlink. Hugo will throw an error when it cannot find your file during rendering.&lt;/p&gt;
&lt;p&gt;
You can create links between your pages using standard org mode syntax and the &lt;code class=&#34;verbatim&#34;&gt;ref&lt;/code&gt; Hugo shortcode, which looks like this:&lt;/p&gt;
&lt;p&gt;
&lt;code class=&#34;verbatim&#34;&gt;{{&amp;lt; ref filename.org &amp;gt;}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
Use the &lt;code class=&#34;verbatim&#34;&gt;C-c C-l&lt;/code&gt; shortcut (&lt;code class=&#34;verbatim&#34;&gt;org-insert-link&lt;/code&gt;) and enter the shortcode and a description. The source code of the link will look like this:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[[&lt;span style=&#34;color:#00c&#34;&gt;{{&amp;lt; ref filename.org &amp;gt;}}&lt;/span&gt;][&lt;span style=&#34;color:#070&#34;&gt;Description&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
To find the filename of the post you want to link to, open the &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;Dired file manager&lt;/a&gt; with &lt;code class=&#34;verbatim&#34;&gt;C-x d&lt;/code&gt; and find your post. Press &lt;code class=&#34;verbatim&#34;&gt;w&lt;/code&gt; to copy the filename and paste it into the link.&lt;/p&gt;
&lt;p&gt;
When the target is an index page, then you need to add the sub-folders starting with a forward slash and remove the &lt;code class=&#34;verbatim&#34;&gt;_index.org&lt;/code&gt; filename. Please note that paths with a non-alphanumeric symbol, such as a directory separator &lt;code class=&#34;verbatim&#34;&gt;/&lt;/code&gt;, need to be quoted.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[[&lt;span style=&#34;color:#00c&#34;&gt;{{&amp;lt; ref &amp;#34;/tags/emacs&amp;#34; &amp;gt;}}&lt;/span&gt;][&lt;span style=&#34;color:#070&#34;&gt;Index Page&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Org mode has flexible options to create special types of links. We can leverage this functionality to simplify creating internal Hugo links. Creating a new Org mode link type with some Lisp makes life slightly easier. Add the code below to your &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;Emacs configuration&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;
This capability consists of three bespoke functions. The &lt;code&gt;ews-get-hugo-directory&lt;/code&gt; and &lt;code&gt;ews-hugo-list-content&lt;/code&gt; functions check whether the current open buffer is part of a Hugo project by locating the configuration file. If this is the case, then it presents a list of all articles and pages in your website. The &lt;code&gt;ews-hugo-link-complete&lt;/code&gt; function lets you select a page or post of your website to link to. This function also manages the specific requirements for index pages. &lt;/p&gt;
&lt;p&gt;
Press &lt;code class=&#34;verbatim&#34;&gt;C-l&lt;/code&gt; to create a link, and type &lt;code class=&#34;verbatim&#34;&gt;hugo:&lt;/code&gt; and enter. Pick a file, hit enter, provide a label and hit enter again.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Create Hugo links&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-get-hugo-directory&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Lists the directory of the current Hugo website or nil.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;when&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;string-match&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\(.*\\)content&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;default-directory&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;match-string&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;default-directory&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-hugo-list-content&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;List the content of the Hugo website of the current buffer.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;  Return an error message when not in an apparent Hugo directory.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;if-let*&lt;/span&gt; ((&lt;span style=&#34;color:#963&#34;&gt;hugo-dir&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;ews-get-hugo-directory&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;hugo-p&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;directory-files&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;hugo-dir&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;^config\\..*&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;content-dir&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;hugo-dir&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;content/&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#007020&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#963&#34;&gt;org-files&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;directory-files-recursively&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;content-dir&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\.org\\&amp;#39;&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;md-files&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;directory-files-recursively&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;content-dir&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\.md\\&amp;#39;&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;append&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-files&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;md-files&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#f00;font-weight:bold&#34;&gt;user-error&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Not in a Hugo buffer&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ews-hugo-link-complete&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Complete a Hugo weblink through the &lt;/span&gt;&lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;`org-insert-link&amp;#39;&lt;/span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt; and hugo: hyperlink type.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;let*&lt;/span&gt; ((&lt;span style=&#34;color:#963&#34;&gt;posts&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;ews-hugo-list-content&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#963&#34;&gt;titles&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mapcar&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;lambda&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;post&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                             (&lt;span style=&#34;color:#963&#34;&gt;string-remove-prefix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                              (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;ews-get-hugo-directory&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                      &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;content/&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;post&lt;/span&gt;)) &lt;span style=&#34;color:#963&#34;&gt;posts&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#963&#34;&gt;selection&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;completing-read&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Choose page:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;titles&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#963&#34;&gt;target&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                           (&lt;span style=&#34;color:#963&#34;&gt;replace-regexp-in-string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;_index.*&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;selection&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;when&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;titles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;{{&amp;lt; ref \&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;target&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\&amp;#34; &amp;gt;}}&amp;#34;&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; New link type for Org-Hugo internal links&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;org-link-set-parameters&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;hugo&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#007020&#34;&gt;:complete&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#963&#34;&gt;ews-hugo-link-complete&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This configuration only defines how to create a link. Unfortunately, this approach does not allow you to follow these links as Org mode can only recognise links that start with a string and a colon. e.g. &lt;code class=&#34;verbatim&#34;&gt;hugo:&lt;/code&gt;, while Hugo links start with curly braces. &lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Images
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The standard image syntax in Org mode works fine, but you must link the image to its published destination, not the current one. Hugo keeps images in the &lt;code class=&#34;verbatim&#34;&gt;static&lt;/code&gt; folder, so all your image paths assume this folder as the root. Hugo will convert these links to the full URL.&lt;/p&gt;
&lt;p&gt;
Unfortunately, you cannot preview images in Org mode because you are linking to the website folder, not the Org mode folder. An image stored in &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;hugo-directory&amp;gt;/static/images/picture.emacs.png&lt;/code&gt; will be listed as &lt;code class=&#34;verbatim&#34;&gt;/images/picture.emacs.png&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Hugo will parse the usual metadata, such as captions, alternative text, title and width. The example below shows how to style an image with &lt;code class=&#34;verbatim&#34;&gt;alt&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;title&lt;/code&gt; tags and set its width.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+attr_html: alt: Alternative text title: Image Title :width 800
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+caption: Caption text.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#00c&#34;&gt;/images/file-path.png&lt;/span&gt;]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Items and drawers
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;When writing in Org mode it can be useful to &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;track progress and add notes inside drawers&lt;/a&gt;. The standard Org mode export function can be configured to ignore &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt; tags and drawers in the export. Because working with Hugo bypasses the Org Mode export functionality, &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt; tags will appear in your HTML files. Hugo ignores property drawers but includes the content of any other types of drawers.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Limitations
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Using Hugo directly with Org mode has some limitations, mentioned above. The main limitation is that it bypasses the Org mode export engine which means that some functionality is unavailable. Org mode macros cannot be used, but you can &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/&#34;&gt;Hugo shortcodes&lt;/a&gt; to insert parametrised bits of text or HTML in your website. For example: &lt;code&gt;{{&amp;lt; youtube w7Ft2ymGmfc &amp;gt;}}&lt;/code&gt; embeds a YouTube video with the relevant ID in your page.&lt;/p&gt;
&lt;p&gt;
Bypassing the export engine also means that any Org mode export variables are ignored, for example to exclude &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt; tags or drawers from your website.&lt;/p&gt;
&lt;p&gt;
To insert images you either use the &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/#figure&#34;&gt;figure shortcode&lt;/a&gt; or the method shown above. Unfortunately you cannot preview these images as you need to enter the image location on your website and not on your computer.&lt;/p&gt;
&lt;p&gt;
Lastly, links need to use the internal linking shortcode. The configuration shown above helps you insert links, but you cannot follow them. &lt;/p&gt;
&lt;p&gt;
These limitations have not stopped me to use Hugo and Org mode as described in this article to develop this and other websites.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Using ox-hugo
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://ox-hugo.scripter.co/&#34;&gt;ox-hugo&lt;/a&gt; package in Emacs can act as an intermediary between Org mode and Hugo. This package converts the Org files in your content folder into Markdown files, which Hugo will render.&lt;/p&gt;
&lt;p&gt;
This package has some advantages over using the plain Org mode method because it relies on the standard Org mode export functionality.&lt;/p&gt;
&lt;p&gt;
However, I don’t use ox-hugo because I like the flexibility of the plain Org Mode approach. The minor limitations of the native Org mode rendering in Hugo have not prevented me from maintaining my websites. But Emacs is a matter of choice, so feel free to use &lt;code class=&#34;verbatim&#34;&gt;ox-hugo&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Deploying your website
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After adding some content, you can continue following the Hugo Quick Start Guide instructions to run the internal webserver or generate the entire website.&lt;/p&gt;
&lt;p&gt;
You don’t need to leave Emacs to run these console commands. When you execute the &lt;code class=&#34;verbatim&#34;&gt;shell&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;M-x shell &amp;lt;enter&amp;gt;&lt;/code&gt;), you can run Hugo from within Emacs. You will need to execute these files from within the folder that contains your website.&lt;/p&gt;
&lt;div class=&#34;src src-bash&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo server -D &lt;span style=&#34;color:#888&#34;&gt;# Run internal web server, showing draft pages&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
All buffers in the &lt;code class=&#34;verbatim&#34;&gt;content&lt;/code&gt; folder must be saved to disk; otherwise, Hugo will throw an error.&lt;/p&gt;
&lt;p&gt;
When using the &lt;code class=&#34;verbatim&#34;&gt;server&lt;/code&gt; option in the Hugo command line, the website is available in your local browser under &lt;code class=&#34;verbatim&#34;&gt;https://localhost:1313&lt;/code&gt;.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Exporting your WordPress website to Org mode
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Moving a WordPress website to Hugo can be an enormous task that can be semi-automated. You can export the content from WordPress to a CSV file to convert the content to either Org mode or Markdown. I have written some scripts to &lt;a href=&#34;https://lucidmanager.org/data-science/export-wordpress-to-hugo/&#34;&gt;export my former WordPress websites&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt; consists of a series articles and a configuration to help you publish articles, books, movie and theatre scripts and websites. You can find the most recent configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences of how to undertake a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;p&gt;
The next article in this series discusses how to manage your projects and &lt;a href=&#34;https://lucidmanager.org/productivity/getting-things-done-with-emacs/&#34;&gt;get things done with Org mode&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Getting Things Done with Emacs: Manage your life with Org Mode</title>
      <link>https://lucidmanager.org/productivity/getting-things-done-with-emacs/</link>
      <pubDate>Sat, 08 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/getting-things-done-with-emacs/</guid>
      <description>
	
&lt;p&gt;
The market for productivity applications is saturated with apps and other complex systems to manage your actions. While these systems provide great functionality, the main problem is that you have to use them the way the designer intended instead of how you like to work. This article shows how to use Org mode to get things done with Emacs and configure a bespoke productivity system.&lt;/p&gt;
&lt;p&gt;
The approach in the article roughly follows the concepts of David Allen&amp;#39;s &lt;a href=&#34;https://en.wikipedia.org/wiki/Getting_Things_Done&#34;&gt;Getting Things Done&lt;/a&gt; (GTD) system. This is, however, not the only method to manage your affairs. Whatever your preferred workflow looks like, you can &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configure Emacs&lt;/a&gt; to help you with that.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
The productivity quest
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The quest to become more productive has become a popular past time. Millions of people around the world struggle with the demands of life in the twenty-first century and they constantly look for ways to cram more activities into their day. Self-proclaimed productivity gurus have published piles of popular books about methods to get more done in your limited available time.&lt;/p&gt;
&lt;p&gt;
All these methods boil down to three basic phases: set a goal, define the actions to achieve that goal and undertake these actions. These principles might sound simplistic, but it is the basic truth. The plethora of methods merely discuss different ways on how to manage these three steps effectively and efficiently. A central theme of these methods are means to process the enormous amount of information that people are exposed to every day.&lt;/p&gt;
&lt;p&gt;
In the slipstream of the productivity gurus, software developers have released many apps to manage the information stream of our daily lives. The internet contains many stories about people who moved from one application to the next, in search of the perfect way to manage their projects and tasks. I was one of those people, until I started using Emacs.&lt;/p&gt;
&lt;p&gt;
Org mode is an ideal system to help you getting things done. The Org mode package not only allows you to &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;write prose&lt;/a&gt;, it is also helps you to manage actions and projects. As with any other Emacs package, it provides virtually unlimited freedom to implement your favourite method to get stuff done.&lt;/p&gt;
&lt;p&gt;
This chapter shows how to use Org Mode to manage your projects and tasks, loosely based on David Allen&amp;#39;s &lt;em&gt;Getting Things Done&lt;/em&gt; (GTD) method. David Allen describes iterative five steps to become more productive:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Capture&lt;/em&gt;: Empty your mind&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Clarify&lt;/em&gt;: Describe what it all means&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Organise&lt;/em&gt; Place it where it belongs&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Reflect&lt;/em&gt;: Reflect on your progress&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Engage&lt;/em&gt;: Take action&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Capture: empty your head
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;One of the reasons we are often not as productive as we like is because our minds are filled with issues. When our brain is full of thoughts about what we should be doing, we start to worry about how busy we are instead of doing the thing we need to do. David Allen says that &amp;#34;Our minds are for having ideas, not for holding them&amp;#34;.&lt;/p&gt;
&lt;p&gt;
The first step to getting things done is to &lt;a href=&#34;https://lucidmanager.org/productivity/clear-your-head/&#34;&gt;empty your mind&lt;/a&gt;. This is not a Buddhism-inspired quest for enlightenment, but a simple technique to help you focus. A brain only has a limited capacity as we can only have one thought at a time. When your brain is full of thoughts about what you should be doing, creative and productive thoughts are suppressed.&lt;/p&gt;
&lt;p&gt;
The other problem with keeping ideas in your head is the risk that they will disappear in the fog of your brain. I am sure you all recognise the experience of having the most wonderful idea when enjoying your morning shower, but half an hour later you are unable to recall your gem.&lt;/p&gt;
&lt;p&gt;
Open a new Org Mode file with the &lt;code&gt;find-file&lt;/code&gt; command (&lt;code class=&#34;verbatim&#34;&gt;C-x c-f&lt;/code&gt;). You can call it something like &lt;code class=&#34;verbatim&#34;&gt;inbox.org&lt;/code&gt;, or whatever you fancy. For the next fifteen minutes, write down everything that is floating around in your head. Dump the contents of your brain into this virgin Org Mode file. Try not to &lt;a href=&#34;https://lucidmanager.org/management/myth-of-multitasking/&#34;&gt;multitask&lt;/a&gt; when you empty your mind, but fully focus your attention on the list.&lt;/p&gt;
&lt;p&gt;
Start every new idea with an asterisk so that they become headlines. Your list will contain a jumble of random things. From minor household tasks to big future projects you want to do one day. Don&amp;#39;t filter your thoughts. Just write them down. &lt;/p&gt;
&lt;p&gt;
For the next twenty-five minutes, focus only on this task and write down everything that is in your head. Don&amp;#39;t multitask and give this activity your undivided attention. &lt;a href=&#34;https://lucidmanager.org/management/myth-of-multitasking/&#34;&gt;Multitasking is the enemy of productivity&lt;/a&gt; because our brains can only focus on one intellectual activity at a time. The fact that magicians can so easily fool people illustrates why multitasking is a fool&amp;#39;s errand. Perhaps &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emms/&#34;&gt;listen to some music&lt;/a&gt; with the Emacs EMMS package to keep you focused.&lt;/p&gt;
&lt;p&gt;
Don&amp;#39;t spend any time thinking about these tasks. Don&amp;#39;t worry about when you&amp;#39;ll need to do it or in what order they need to be done just yet. Ensure that your mind is empty by the time you complete your list. If the list only has about a dozen items, then your list is not complete. For most people, fifty actionable items, projects and fuzzy goals are not unusual. If you are overwhelmed by the list then don&amp;#39;t shoot the messenger as it merely reflects your life. If it takes you longer than twenty five minutes to empty your mind, then take a five minute break and start again.&lt;/p&gt;
&lt;p&gt;
You now have a long list of all the stuff you need to get done. But that is only the starting point. Org mode also has functions that can capture tasks as they come up in random moments of the day.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Mow the lawn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Clean up the backyard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Improve my job skills&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Learn how to use Emacs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Write an ebook about ... (fill in your speciality)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Empty your e-mail inbox&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Prepare presentation for the quarterly meeting next week&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; And so on, and so on ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Clarify: Describe what it all means
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Did you notice that most things on the list above, apart from items 6 and 7, are more work than just one action?&lt;/p&gt;
&lt;p&gt;
In GTD-speak, they are projects, which are desired outcomes that take more than one action to complete.&lt;/p&gt;
&lt;p&gt;
Your list will be a mess of tasks, projects, goals and vague ideas. Your next task is to organise them. Firstly you can add some order and hierarchy to the list with the &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt; and arrow keys. &lt;code class=&#34;verbatim&#34;&gt;M-up&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;M-down&lt;/code&gt; will move a heading up or down, while &lt;code class=&#34;verbatim&#34;&gt;M-right&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;M-left&lt;/code&gt; will promote or demote your entry.&lt;/p&gt;
&lt;p&gt;
With these four keystrokes, you can organise your list so that projects and tasks go together and create some order in the chaos that came from your mind. So the garden becomes a project with two tasks:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000080;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;font-weight:bold&#34;&gt; Gardening&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#800080;font-weight:bold&#34;&gt;**&lt;/span&gt; Clean up the backyard
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#800080;font-weight:bold&#34;&gt;**&lt;/span&gt; Mow the lawn&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
If you like a bit more clarity on your list, you can collapse a heading with the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key. Using &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt; will collapse the whole document to only the first-level headlines. Repeatedly using &lt;code class=&#34;verbatim&#34;&gt;S-TAB&lt;/code&gt; will cycle through the full content, only the first headlines and all headlines.&lt;/p&gt;
&lt;p&gt;
You can also add notes or link images below any heading to provide some context to the task by hitting enter at the end of the headline and typing.&lt;/p&gt;
&lt;p&gt;
Your list is starting to take shape now. The following steps will add more context to your tasks. If you like do some more finessing, then read my article on &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;writing prose with Org mode&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Organise: Place it where it belongs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After a week or so, your inbox will start filling with stuff. Your inbox is not just one location, but a collection of places where you gather information. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses the Org mode capture mechanism as an inbox, but it can also be a physical inbox to collect papers. A digital notebook on your phone or a physical diary to collect notes are also viable options.&lt;/p&gt;
&lt;p&gt;
My personal inbox consists of my Org mode inbox file, my email inbox, a cloud-based notes application in my phone a physical inbox and my physical diary. As part of my weekly review I promise myself to empty these locations and process them into my system using this flowchart, which is based on the classic GTD model.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/todo-workflow.png&#34; alt=&#34;Example of a productivity workflow using Org mode&#34; title=&#34;Example of a productivity workflow using Org mode&#34; width=&#34;500&#34;/&gt;
&lt;figcaption&gt;
Example of a productivity workflow using Org mode.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
During your regular review, you assess each bit of information you collected. If it is not actionable, the you either ditch it, otherwise capture it in  &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote&lt;/a&gt; as a permanent note.&lt;/p&gt;
&lt;p&gt;
If the new item is actionable and it only takes a few minutes to do, then just go ahead and do it; don&amp;#39;t waste your time formally registering the action.&lt;/p&gt;
&lt;p&gt;
Lastly, if the inbox item is actionable, bur requires some time, you can add it as an action to your agenda file. The status of each action depends on external circumstances. &lt;/p&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Action Status
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The problem with most todo-lists is that you get overwhelmed by the amount of stuff to be done. But in reality, most actions don&amp;#39;t need or can&amp;#39;t be progressed. You can be more precise in your records and mark items as the next action to be undertaken, or mark the ones where you are waiting for somebody else.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Next&lt;/em&gt;: The next action to be taken.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Todo&lt;/em&gt;: Something to be done in the future (either scheduled or as yet undetermined)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Waiting&lt;/em&gt;: If you are waiting for somebody to do something, then mark it as such.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Org mode can associate each headline in a document with a workflow state. By default, there are only two states, &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt; or &lt;code class=&#34;verbatim&#34;&gt;DONE&lt;/code&gt;. You can change the state of a heading with the shift and arrow keys. Org mode will cycle between the two states. The keywords are commonly written in all caps, but that is not necessary.&lt;/p&gt;
&lt;p&gt;
You can define workflow states any way you like. Adding the following Lisp lines to your init file will set your workflow states. The states after the vertical bar will be marked as completed, usually coloured green.&lt;/p&gt;
&lt;p&gt;
If you have many states, cycling through them can be tedious. The &lt;code class=&#34;verbatim&#34;&gt;C-c C-t&lt;/code&gt; command provides a popup menu to quickly select your option. You add the menu letter between parentheses after the keyword like this:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;setq-defualt&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-todo-keywords&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;color:#963&#34;&gt;sequence&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;TODO(t)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;NEXT(n)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;WAITING(w)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;|&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;DONE(d)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;CANCELLED(c)&amp;#34;&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; roughly follows the GTD approach and have a status for next actions, waiting for others or future actions. When an action is completed, it is either done or cancelled. There are, in principle, no limitations to how you use this functionality.&lt;/p&gt;
&lt;p&gt;
The basic principle of the GTD approach is not to have massive lists of items that you like to do one day but that you define the next action that needs to be done to achieve your goal, or schedule activities in your diary. This method ensures that only a subset of activities is in your consciousness and  you don&amp;#39;t get overwhelmed by your inactivity as action lists tend to be long list of promises to our future selves.&lt;/p&gt;
&lt;p&gt;
You can set different keywords can for each Org file. When, for example, you are writing a book, you could set specific keywords for each heading with the following line in your header:&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;#+TODO&lt;/span&gt;&lt;span style=&#34;color:#888&#34;&gt;: TODO(t) DRAFT(d) | DONE(c) EDITED(e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Adding dates and deadlines
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Now that your list is nicely organised in the stuff you need to do, add dates to some of the tasks. Scheduling a task to a specific date is to commit your recalcitrant future self to the action.&lt;/p&gt;
&lt;p&gt;
You can add the date that the task is scheduled or a deadline by which is should be completed. A scheduled date indicates the date or period you plan to work on the task. A deadline is the time the task needs to be completed.&lt;/p&gt;
&lt;p&gt;
To add a scheduled date, use &lt;code class=&#34;verbatim&#34;&gt;C-c C-s&lt;/code&gt; when on a headline. Emacs will pop up a calendar that you can use to select a date. The shift and arrow buttons move the timestamp by day or week. The &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;&amp;gt;&lt;/code&gt; symbols move you a month in time. Press enter when done, and the date appears below the headline. You can add a deadline in a similar way but with the &lt;code class=&#34;verbatim&#34;&gt;C-c C-a&lt;/code&gt; keystroke.&lt;/p&gt;
&lt;p&gt;
Timestamps use the ISO 8601 format: year, month, day. This format avoids any confusion between American formats and the rest of the world. Editing a timestamp is easy. Place your cursor on either the year, month or date and use the arrow keys to move it up or down.&lt;/p&gt;
&lt;p&gt;
Scheduled dates can also set a regular schedule. For example, suppose you add, for instance, &lt;code class=&#34;verbatim&#34;&gt;+7d&lt;/code&gt; at the end of the date. In that case, Org mode recalculates the date every time you complete the task and resets the status to &lt;code class=&#34;verbatim&#34;&gt;TODO&lt;/code&gt;. You can also use the letters &lt;code class=&#34;verbatim&#34;&gt;w&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;m&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;y&lt;/code&gt; for scheduling a job weekly, monthly or yearly. Some actions have to be undertaken weekly on the same day, but in some instances it is better to restart the clock every time it is completed.&lt;/p&gt;
&lt;p&gt;
In the example below, I have planned to complete the Org mode article on 8 May. My tax return has a deadline of 30 September and appears annually on that date. It is a deadline instead of a schedule because the date is enforced on me externally. The last action is my weekly review of the inboxes. In this case, the seven days are recalculated every time I complete the action. So if I complete the review on 13 May instead of 11 May, the new date will become 20 May.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;TODO Complete Org-Mode article
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  SCHEDULED: &lt;/span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;&amp;lt;2021-05-08 Sat&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;TODO Submit tax return
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  DEADLINE: &lt;/span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;&amp;lt;2021-09-30 Mon +1y&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;TODO Weekly review
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  SCHEDULED: &lt;/span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;&amp;lt;2021-05-11 Sun ++7d&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Only add a scheduled date if this is the time that you plan to do the action. Try not to add too many self-imposed schedules because you will over commit your day. A deadline is only helpful if there is an external expectation that you need to complete something by a specific day, for example, get travel insurance before your flight leaves.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Checklists
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Not every action needs to be a headline todo item. Org mode allows you to add checkbox items anywhere in your document by adding &lt;code class=&#34;verbatim&#34;&gt;[ ]&lt;/code&gt; after the list indicator. Using &lt;code class=&#34;verbatim&#34;&gt;M-S enter&lt;/code&gt; after a tick box item will create a new box. You could use this functionality as a checklist for a larger action.&lt;/p&gt;
&lt;p&gt;
The snippet below is an example of a todo item with a deadline, some notes and a checklist.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;TODO Submit tax return
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  DEADLINE: &lt;/span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;&amp;lt;2021-09-30 Mon +1y&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Tax accountant: 0407 555 283
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;- [X]&lt;/span&gt; Collect records
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;- [ ]&lt;/span&gt; Prepare overview
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;- [ ]&lt;/span&gt; Set appointment with accountant&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Ticking and unticking any items is as simple as hitting &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt;.  You can convert a plain list item to a todo item, or vice versa, with &lt;code class=&#34;verbatim&#34;&gt;C-u C-c c&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
You can also convert list items to headings and back again. The &lt;code&gt;org-ctrl-c-star&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c C-*&lt;/code&gt;) converts a paragraph to a heading. If the line contains a tick box, it becomes a TODO item. Using &lt;code class=&#34;verbatim&#34;&gt;C-c C--&lt;/code&gt; (&lt;code&gt;org-ctrl-c-minus&lt;/code&gt;) converts a paragraph to a list item.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Reflect: Review your progress
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The key of any productivity workflow is to regularly review your list of actions, your priorities and goals. The central tool in Org mode to look at your list of registered actions is the agenda.&lt;/p&gt;
&lt;p&gt;
The agenda provides a summary of all your headings with an action status.  Firstly, it is common practice to bind &lt;code class=&#34;verbatim&#34;&gt;C-c a&lt;/code&gt; to the agenda menu. You can assign one or more Org mode files that contain your actions. Org mode will read these files and present the todo items as an agenda.&lt;/p&gt;
&lt;p&gt;
The Org files used to construct the agenda are stored in &lt;code&gt;org-agenda-files&lt;/code&gt;. You can figure this variable with some keystrokes.To add a file with actions to the agenda use &lt;code&gt;org-agenda-file-to-front&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c [&lt;/code&gt;) and remove it with &lt;code class=&#34;verbatim&#34;&gt;C-c ]&lt;/code&gt; (&lt;code&gt;org-remove-file&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
When you evaluate the &lt;code&gt;org-agenda&lt;/code&gt; function with &lt;code class=&#34;verbatim&#34;&gt;C-c a&lt;/code&gt;, Org mode reads all agenda files and constructs an agenda, listing actions by date.&lt;/p&gt;
&lt;p&gt;
You can change the status of items from within the agenda or jump to the file that contains the action, so you can ready any context or maintain checklist items.&lt;/p&gt;
&lt;p&gt;
The agenda starts with a self-explanatory menu screen which you can explore. Org mode has extensive capabilities to configure how the agenda is presented, which are outside the scope of this article (See &lt;a href=&#34;https://orgmode.org/manual/Agenda-Views.html&#34;&gt;chapter 11 of the Org mode manual&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Engage: Take action
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Unfortunately, Emacs cannot help you with mowing the lawn, go shopping or other physical tasks on your lists. Emacs can help you with any task that involves creating written content, but it can&amp;#39;t mow the lawn for you.&lt;/p&gt;
&lt;p&gt;
In the end, there is no productivity system in the world that does the tasks for you, no matter what the gurus promise. However, bringing order into your tasks keeps you focussed on your goals.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Org mode configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This code snippet provides a basic configuration for managing actions and projects in Org mode. You can of course modify the sequence of your action statuses to whatever you please.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-todo-keywords&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;color:#963&#34;&gt;sequence&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;TODO(t)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;NEXT(n)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;WAITING(w)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;|&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;DONE(d)&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;CANCELLED(c)&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c a&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-agenda&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-11&#34;&gt;
Learning More
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Getting Things Done is just one of many methods to manage your busy life. This article shows how to implement the principles of David Allan&amp;#39;s method with Org mode. The beauty of Emacs is that you have the freedom to implement whatever method you prefer.&lt;/p&gt;
&lt;p&gt;
You can find the &lt;a href=&#34;https://orgmode.org/manual/TODO-Items.html&#34;&gt;Org manual on TODO items&lt;/a&gt; with &lt;code class=&#34;verbatim&#34;&gt;C-h R org RET g todo RET&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Bavarian Org mode guru Rainer König has developed a comprehensive series of YouTube videos that explain using Org for managing actions and projects in great detail. I also recommend following his &lt;a href=&#34;https://www.udemy.com/course/getting-yourself-organized-with-org-mode/&#34;&gt;Getting Yourself Organized with Org mode&lt;/a&gt; course on Udemy.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/sQS06Qjnkcc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Org mode Tutorial by Rainer König.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to use Emacs is thus opinionated. If you have a different way of doing things, please complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email or contact me on social media.&lt;/p&gt;
&lt;p&gt;
The next article discusses how to &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;manage your files with Emacs dired&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Manage Files with Emacs: Organise your drive with Dired</title>
      <link>https://lucidmanager.org/productivity/manage-files-with-emacs/</link>
      <pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/manage-files-with-emacs/</guid>
      <description>
	
&lt;p&gt;
Working with Emacs means that you will need to access, create files and manage files on your drives. Emacs comes shipped with &lt;code class=&#34;verbatim&#34;&gt;dired&lt;/code&gt; (pronounced &lt;em&gt;dir-ed&lt;/em&gt;), a potent file manager. This article explains the basic principles of using dired and shows how to manage files with Emacs to organise your hard drive.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Accessing directories and files with dired
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Dired is short for “&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html&#34;&gt;directory editor&lt;/a&gt;”, but it can do much more than just that. This software has an illustrious history. The first version of dired was a stand-alone program written circa 1974, so its origins are even further back in time than Emacs. The software comes packaged with Emacs and it provides a front end to various &lt;a href=&#34;https://www.gnu.org/software/coreutils/&#34;&gt;GNU core utilities&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
You activate the file manager with the &lt;code&gt;dired&lt;/code&gt; function or the &lt;code class=&#34;verbatim&#34;&gt;C-x C-d&lt;/code&gt; shortcut. When you hit &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt;, Emacs will create a buffer with the content of the directory of your open buffer. You can also enter another directory in the minibuffer before you hit the &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt; key. Another useful function is &lt;code class=&#34;verbatim&#34;&gt;dired-jump&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-x C-j&lt;/code&gt;) which opens dired and jumps to the file linked to the current buffer. The &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; button closes the dired window but does not kill (remove) it. &lt;/p&gt;
&lt;p&gt;
You can navigate the content with the arrow keys and press &lt;code class=&#34;verbatim&#34;&gt;j&lt;/code&gt; to jump to a specific file by entering part of its name. &lt;/p&gt;
&lt;p&gt;
The enter key opens the respective file or directory. To open a file or directory in another window, press &lt;code class=&#34;verbatim&#34;&gt;o&lt;/code&gt; (Using &lt;code class=&#34;verbatim&#34;&gt;C-o&lt;/code&gt; open the file in another window, but the cursor stays in Dired). The carat key &lt;code class=&#34;verbatim&#34;&gt;^&lt;/code&gt; takes you to the parent folder.&lt;/p&gt;
&lt;p&gt;
Note that every time you open a new directory, Emacs will open a new dired buffer. After a while, you can litter your Emacs session with unused dired buffers. Pressing the &lt;code class=&#34;verbatim&#34;&gt;a&lt;/code&gt; key opens a directory in the same buffer. This functionality is disabled by default because the Emacs developers strangely believe that new users find it confusing. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configures this behaviour by default.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Copying and Moving Files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;To copy a file, press the &lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt; button. Dired will ask for a new name and location in the minibuffer. To move a file, you press &lt;code class=&#34;verbatim&#34;&gt;R&lt;/code&gt; because moving a file is the same as renaming it with a new directory.&lt;/p&gt;
&lt;p&gt;
There is no need to close the buffer before you rename an open file. Emacs will link the open buffer to the new filename. &lt;/p&gt;
&lt;p&gt;
If you have two open dired buffers, &lt;em&gt;Emacs Writing Studio&lt;/em&gt; copies and moves from the folder in the active window to the other dired buffer.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Renaming files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Renaming the file is the same as moving it. So press &lt;code class=&#34;verbatim&#34;&gt;R&lt;/code&gt; and type a new filename.&lt;/p&gt;
&lt;p&gt;
It is sometimes useful to copy the name of a file to the kill ring with the &lt;code class=&#34;verbatim&#34;&gt;w&lt;/code&gt; key, so you can use it to rename the file. So to rename a file, copy the name with &lt;code class=&#34;verbatim&#34;&gt;w&lt;/code&gt;, rename the file with &lt;code class=&#34;verbatim&#34;&gt;R&lt;/code&gt; and paste the existing name with &lt;code class=&#34;verbatim&#34;&gt;C-y&lt;/code&gt; and edit the name to your new version.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Removing files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You can select and deselect files for deletion (killed) with the &lt;code class=&#34;verbatim&#34;&gt;d&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;u&lt;/code&gt; buttons. After you selected the files you like to delete, press &lt;code class=&#34;verbatim&#34;&gt;x&lt;/code&gt; to execute the deletion. Press capital &lt;code class=&#34;verbatim&#34;&gt;D&lt;/code&gt; if you like to remove a single file.&lt;/p&gt;
&lt;p&gt;
By default, Emacs permanently removes files. The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; is configured so that files are moved to the recycle bin.&lt;/p&gt;
&lt;p&gt;
When you delete or trash a currently open file, Emacs will also ask you to close the appropriate buffer.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Working on Multiple Files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You can select multiple files to work on at the same time by marking them. The &lt;code class=&#34;verbatim&#34;&gt;m&lt;/code&gt; button marks a file, and the &lt;code class=&#34;verbatim&#34;&gt;u&lt;/code&gt; removes the mark. The capital &lt;code class=&#34;verbatim&#34;&gt;U&lt;/code&gt; removes all marks in the buffer. The &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt; key reverses your markings, which is helpful when you want to select everything but one or two files.&lt;/p&gt;
&lt;p&gt;
This method requires you to manually select each file. You can also use &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html&#34;&gt;regular expressions&lt;/a&gt; to select files. Regular expressions are a powerful set of logical rules to select sections of text. Simply put, regex is wildcards on steroids—press &lt;code class=&#34;verbatim&#34;&gt;% m&lt;/code&gt; to open the regular expression selection prompt.&lt;/p&gt;
&lt;p&gt;
For example, &lt;code class=&#34;verbatim&#34;&gt;^2023.*_journal*&lt;/code&gt; selects all &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote files&lt;/a&gt; that start with the &lt;code class=&#34;verbatim&#34;&gt;2023&lt;/code&gt; and that have the &lt;code class=&#34;verbatim&#34;&gt;journal&lt;/code&gt; file tag.  Now press &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt; to invert the selection and &lt;code class=&#34;verbatim&#34;&gt;k&lt;/code&gt; to remove the selected files from view. This sequence is a useful method to find related files.&lt;/p&gt;
&lt;p&gt;
After you selected multiple files in this manner, you can use all file commands to act on the selected targets, for example moving all 2023 files with the &lt;code class=&#34;verbatim&#34;&gt;_journal&lt;/code&gt; tag to another folder.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Opening a file with another program
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is a Swiss-Army chainsaw, but it cannot do everything. Sometimes you might like to open a file in other software, such as your image editor or video player.&lt;/p&gt;
&lt;p&gt;
You can open files with external software by pressing &lt;code class=&#34;verbatim&#34;&gt;&amp;amp;&lt;/code&gt; after which dired will ask for the appropriate software. You need to type the name of the executable file of the software you like to use, e.g. &lt;code class=&#34;verbatim&#34;&gt;gimp&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Manage files with Emacs dired
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If your head is buzzing with all the different key bindings, the table lists the functionality described in this article. These are only a small snapshot of the functions of the directory editor in Emacs. You can press the &lt;code class=&#34;verbatim&#34;&gt;h&lt;/code&gt; key while in a dired buffer to view all functionality and related keybindings.&lt;/p&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-find-alternate-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open folder in same buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-do-copy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Copy a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;j&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-goto-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jump to a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;revert-buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Refresh the dired buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-mark&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mark file under cursor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;% m&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-mark-files=regexp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mark by regular expression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;o&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-find-file-other-window&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open file in other window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;quit-window&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Close the buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-do-rename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rename (move) a file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-toggle-marks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Inverse marked files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-unmark&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unmark file under cursor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;U&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-unmark-all-marks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unmark all files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;&amp;amp;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-do-async-shell-command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open file with other program&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&#34;verbatim&#34;&gt;dired-find-file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;
Dired key bindings.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The dired package is a convenient and powerful tool to keep your drives organised and access your information. Developers have published an extensive collection of extensions to dired to add functionality, which you can find in the package manager.&lt;/p&gt;
&lt;p&gt;
Dired lists files and directories in alphabetical order. I prefer a different view, which shows directories on top and files below them. The parameters determine the order of the entries in the folder.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Removing hidden files from view
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Your Dired view might be littered with hidden files and folders that start with a dot. You can remove these by marking them with a regular expression and removing these lines from view, but that is a bit awkward to do every time you open a Dired buffer. The Dired-X package provides functionality to hide files that meet a certain condition. The &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration for Dired omits all files staring with a dot.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Hide hidden files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-hide-dotfiles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-hide-dotfiles-mode&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-mode-map&lt;/span&gt; (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-hide-dotfiles-mode&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Dired Configuration
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;&lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses the following configuration for Dired:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:ensure&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:commands&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-jump&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;with-eval-after-load&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;dired&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;dired-x&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;put&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;dired-find-alternate-file&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;disabled&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-listing-switches&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-goah --group-directories-first --time-style=long-iso&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-dwim-target&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;delete-by-moving-to-trash&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-omit-files&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;rx&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;seq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bol&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt;))) &lt;span style=&#34;color:#888&#34;&gt;;; Omit dot files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-mode-map&lt;/span&gt; (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-omit-mode&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;dired-mode&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-omit-mode&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Backup files
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This last bit of configuration code defines how Emacs deals with automated backups. The default setting is that the system stores these files in the folder where the original files lives, clutterin/g your drive with copies of your stuff. The setting below modifies the &lt;code class=&#34;verbatim&#34;&gt;backup-directory-alist&lt;/code&gt; variable so that Emacs saves all backups in your configuration folder. This configuration also eliminates lock files, which are only useful when working in shared folders.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Backup files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;backup-directory-alist&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#333&#34;&gt;`&lt;/span&gt;((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;,&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;expand-file-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;backups/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;user-emacs-directory&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#963&#34;&gt;create-lockfiles&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt;)  &lt;span style=&#34;color:#888&#34;&gt;; No lock files&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Alternatively, you could instruct Emacs to not save backups at all with &lt;code&gt;(setq-default make-backup-files nil)&lt;/code&gt;. I prefer keeping backups as they have saved my bacon a few times in the past.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-11&#34;&gt;
Recent Files and Bookmarks
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Whenever you return to Emacs you might want to open a file you were working on recently. The recent files minor mode (&lt;code&gt;recentf-mode&lt;/code&gt;) provides a transient list of the files you most recently opened. &lt;/p&gt;
&lt;p&gt;
This minor mode saves the most recent opened files when you exit Emacs to a file in your configuration folder. However, it might be more useful to save the recent files regularly to ensure it is saved. The &lt;code&gt;run-at-time&lt;/code&gt; function runs a function at a regular interval, in this case every five minutes. The &lt;code&gt;recentf-edit-list&lt;/code&gt; function opens the file with your recent acquisitions and lets you delete selected files.&lt;/p&gt;
&lt;p&gt;
By default, the recent files mode stores the last twenty opened files, which you can change by modifying the &lt;code&gt;recentf-max-saved-items&lt;/code&gt; variable. &lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Recent files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;recentf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;recentf-mode&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;run-at-time&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;nil&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;60&lt;/span&gt;) &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;recentf-save-list&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;recentf-max-saved-items&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;50&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Recent files are transient as they are continuously updated as you open new files. For a more permanent list of files you like to open, use &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html&#34;&gt;bookmarks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
You can store a file as a bookmark with &lt;code class=&#34;verbatim&#34;&gt;C-x r m&lt;/code&gt; (&lt;code&gt;bookmark-set&lt;/code&gt;). The bookmark will also store the location of the cursor, so you can maintain multiple bookmarks for a file. The default name for the bookmark is the name of the file. You can also enter a bespoke name in the minibuffer before hitting &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
To view a list of all bookmarks in the minibuffer and select the one you like to open, use &lt;code class=&#34;verbatim&#34;&gt;C-x r b&lt;/code&gt; (&lt;code&gt;bookmark-jump&lt;/code&gt;). &lt;/p&gt;
&lt;p&gt;
Bookmarks are saved in the &lt;code class=&#34;verbatim&#34;&gt;bookmarks&lt;/code&gt; file in your configuration folder every time a new bookmark is created. The &lt;code&gt;bookmark-save-flag&lt;/code&gt; is set to one so that the bookmarks file is saved every time you add a new one. The default value only saves it when you exit Emacs, which mean you could loose bookmarks in the unlikely event of an Emacs or system crash.&lt;/p&gt;
&lt;p&gt;
If you like to remove  bookmark no longer required then use the &lt;code&gt;bookmark-delete&lt;/code&gt; function, which has no default keybinding but is bound to &lt;code class=&#34;verbatim&#34;&gt;C-x r D&lt;/code&gt; in the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; configuration.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Bookmarks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bookmark&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;bookmark-save-flag&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-x r D&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bookmark-delete&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;p&gt;
The next article in this series discusses how to use &lt;a href=&#34;https://lucidmanager.org/productivity/using-emacs-image-dired/&#34;&gt;dired to view images&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Viewing Images with Emacs and the image-dired package</title>
      <link>https://lucidmanager.org/productivity/using-emacs-image-dired/</link>
      <pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/using-emacs-image-dired/</guid>
      <description>
	
&lt;p&gt;
Emacs is a powerful text editor that lets you manage your life and be creative and productive with text. This focus on text does mean that Emacs cannot help you managing and editing images. This article shows how to view and manage images with Emacs using the image-mode and the built-in image-dired package by Mathias Dahl and Stefan Kangas.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Prerequisites
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Image-mode and the image-dired package are bundled with Emacs, so there is no need to install packages, but you might need some additional software.&lt;/p&gt;
&lt;p&gt;
You can view images without external software, but you cannot manipulate them. The &lt;a href=&#34;https://imagemagick.org/&#34;&gt;ImageMagick software suite&lt;/a&gt; provides functionality for editing and manipulating images.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Emacs Writing Studio&lt;/em&gt; checks whether the required software is available when it starts. Check the &lt;code class=&#34;verbatim&#34;&gt;*Messages*&lt;/code&gt; buffer to see of there are any warnings. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Viewing images
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs can display various popular image formats out-of-the-box with image mode. You can open an image file directly with &lt;code&gt;find-file&lt;/code&gt; or through the &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;directory editor&lt;/a&gt; (dired). You can also open an image from within an Org file with &lt;code class=&#34;verbatim&#34;&gt;C-c C-o&lt;/code&gt; (&lt;code&gt;org-open-at-point&lt;/code&gt;) with the cursor on the image. Emacs automatically scales the image to snugly fit inside the display window.&lt;/p&gt;
&lt;p&gt;
A range of keyboard shortcuts are available to view images. The &lt;code class=&#34;verbatim&#34;&gt;n&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt; keys (next and previous) or the left and right arrows flick though the images in the current directory.&lt;/p&gt;
&lt;p&gt;
Image mode also provides several commands to change the display size of images (I am unsure why the prefix key is &lt;code class=&#34;verbatim&#34;&gt;s&lt;/code&gt; for some commands, but &lt;code class=&#34;verbatim&#34;&gt;i&lt;/code&gt; for others, but alas):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;s o&lt;/code&gt;: Show image at original size (when it doesn&amp;#39;t fit in the window, scroll through the image with the arrow keys).&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;s w&lt;/code&gt;: Fit the current image to the height and width of the window.  &lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i +&lt;/code&gt;: Increase the image size by 20%&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i -&lt;/code&gt;: Decrease the image size by 20%.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Furthermore, image mode can manipulate images:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i r&lt;/code&gt;: Rotate the image by 90 degrees clockwise.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i h&lt;/code&gt;: Flip the image horizontally.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i v&lt;/code&gt;: Flip the image vertically.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i c&lt;/code&gt;: Crop the image.&lt;/li&gt;
&lt;li&gt;&lt;code class=&#34;verbatim&#34;&gt;i x&lt;/code&gt;: Cut a rectangle from the image and replace with black.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The crop and cut commands display a rectangular frame superimposed on the image. Use the mouse to move and resize the frame. Type &lt;code class=&#34;verbatim&#34;&gt;m&lt;/code&gt; to move the frame instead of resizing it and type &lt;code class=&#34;verbatim&#34;&gt;s&lt;/code&gt; to convert the frame to a square. When you are satisfied with the result, type &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt; to crop or cut the image. You can exit the crop and cutting menu with &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; without changing the source file. Please note that these commands are only available when &lt;em&gt;ImageMagick&lt;/em&gt; is installed.&lt;/p&gt;
&lt;p&gt;
If you like to retain the result of the transformation, press &lt;code class=&#34;verbatim&#34;&gt;i o&lt;/code&gt; to save the image under a new name. &lt;/p&gt;
&lt;p&gt;
When you are done with watching images, use &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; to quit the image buffer, or &lt;code class=&#34;verbatim&#34;&gt;k&lt;/code&gt; to kill the image buffer altogether.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
The image-dired package
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Viewing images individually is great, but wouldn&amp;#39;t it be nice if you cold see thumbnails before delving into your collection? The image-dired package provides a thumbnail buffer to view and maintain images from within a &lt;a href=&#34;https://lucidmanager.org/productivity/manage-files-with-emacs/&#34;&gt;dired buffer&lt;/a&gt; using thumbnails.&lt;/p&gt;
&lt;p&gt;
Evaluate the &lt;code&gt;image-dired&lt;/code&gt; function (bound to &lt;code class=&#34;verbatim&#34;&gt;C-c w I&lt;/code&gt; in &lt;em&gt;Emacs Writing Studio&lt;/em&gt;) and select the directory you like to use. Emacs splits the screen and presents a thumbnail screen (of up to a thousand entries) to explore your collection. Emacs stores the thumbnails in the configuration directory for future reference.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/image-dired-screenshot.jpg&#34; alt=&#34;Viewing images with image-dired&#34; title=&#34;Viewing images with image-dired&#34;/&gt;
&lt;figcaption&gt;
Viewing some travel photos in Emacs with image-dired.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Alternatively, when you are inside a Dired buffer that contains images, mark the images you like to view and generate the thumbnails with &lt;code class=&#34;verbatim&#34;&gt;C-t d&lt;/code&gt; (&lt;code&gt;image-dired-display-thumbs&lt;/code&gt;). If you don&amp;#39;t mark any files, the program uses the image under the cursor.&lt;/p&gt;
&lt;p&gt;
Yet another method of previewing your images is by marking the ones you need and generate inline thumbnails inside the Dired buffer with &lt;code class=&#34;verbatim&#34;&gt;C-t C-t&lt;/code&gt; (&lt;code&gt;image-dired-dired-toggle-marked-thumbs&lt;/code&gt;). The same shortcut also removes the thumbnails.&lt;/p&gt;
&lt;p&gt;
The active image is marked with a flashing border around the thumbnail and its filename is displayed on the top of the thumbnail window.&lt;/p&gt;
&lt;p&gt;
You can navigate the thumbnails with the arrow keys. The &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;&amp;gt;&lt;/code&gt; keys take you to the start or end of the collection. You can remove a thumbnail from the collection with &lt;code class=&#34;verbatim&#34;&gt;C-d&lt;/code&gt;. If you have selected more images than thumbnails that can fit on page, then image-dired tracks your movement, so as your cursor moves up or down, the thumbnails refresh.&lt;/p&gt;
&lt;p&gt;
To view an image, hit &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt; when the thumbnail is marked. You cycle through the marked images in your collection with the &lt;code class=&#34;verbatim&#34;&gt;space&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;backspace&lt;/code&gt; buttons, or &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;left&amp;gt;&lt;/code&gt; /  &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;right&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
But why manually flick through your album if you can let Emacs do this for you? The &lt;code class=&#34;verbatim&#34;&gt;S&lt;/code&gt; key starts a slideshow with each image shown five seconds by default. You can configure the delay with the &lt;code&gt;image-dired-slideshow-delay&lt;/code&gt; variable, or drive the slideshow manually with the &lt;code class=&#34;verbatim&#34;&gt;space&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;backspace&lt;/code&gt; keys, or &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;left&amp;gt;&lt;/code&gt; /  &lt;code class=&#34;verbatim&#34;&gt;C-&amp;lt;right&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The main image display is in image mode, so all the actions described in the previous section apply.&lt;/p&gt;
&lt;p&gt;
As usual, &lt;code class=&#34;verbatim&#34;&gt;q&lt;/code&gt; quits the image or thumbnail window.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Tagging images
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The image-dired software can also create a plain text database of images with searchable tags and thumbnail descriptions. &lt;/p&gt;
&lt;p&gt;
You tag images directly from a dired buffer. The &lt;code class=&#34;verbatim&#34;&gt;C-t t&lt;/code&gt; keystrokes lets you tag the selected files. You can retrieve the tags in a future session using &lt;code class=&#34;verbatim&#34;&gt;C-t f&lt;/code&gt; and view the image thumbnails with &lt;code class=&#34;verbatim&#34;&gt;C-t d&lt;/code&gt;, as described above. You can tag images from within a thumbnail buffer with the &lt;code class=&#34;verbatim&#34;&gt;t t&lt;/code&gt; shortcut. You can also add a comment to the image by pressing &lt;code class=&#34;verbatim&#34;&gt;c&lt;/code&gt; in the thumbnail viewer.&lt;/p&gt;
&lt;p&gt;
The file name, tags and comments show in the mini buffer as you move through the image thumbnails: &lt;code class=&#34;verbatim&#34;&gt;directory: filename (tags): comment&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Emacs stores the metadata in the &lt;code class=&#34;verbatim&#34;&gt;image-dired&lt;/code&gt; directory in your configuration folder in the &lt;code class=&#34;verbatim&#34;&gt;.image-dired_db&lt;/code&gt; file. This is a plain text file that lists each file name and the tags an comment.&lt;/p&gt;
&lt;p&gt;
Retrieving tagged files only selects images with tags in the directory of the current dired buffer. It does not work across multiple folders. &lt;/p&gt;
&lt;p&gt;
This tagging system is nice, but it creates an integrity vulnerability in that it separates tags and files. When you accidentally remove the database, all metadata is lost. You will also loose access to the metadata when you rename an image.&lt;/p&gt;
&lt;p&gt;
An alternative method to tag files is to use the Denote file naming convention, which encodes metadata into the name of the file.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Using Denote to manage images
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Denote is a package to produce and maintain plain text notes, but it can also be used to maintain a collection of binary (non-text) files. When using the &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote file naming convention&lt;/a&gt; for your images, you can mark parts of you collection using regular expressions. The Denote file naming convention encodes four bits of metadata about a file into the filename. Only the timestamp is compulsory and serves as a unique identifier:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Timestamp in ISO 8601 format&lt;/li&gt;
&lt;li&gt;An alphanumeric signature (starting with double equality sign (&lt;code&gt;==&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;The title in &lt;a href=&#34;https://www.freecodecamp.org/news/snake-case-vs-camel-case-vs-pascal-case-vs-kebab-case-whats-the-difference/&#34;&gt;kebab-case&lt;/a&gt; (starting with double dash &lt;code&gt;==&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Keywords in &lt;a href=&#34;https://www.freecodecamp.org/news/snake-case-vs-camel-case-vs-pascal-case-vs-kebab-case-whats-the-difference/&#34;&gt;snake_case&lt;/a&gt; (starting with double underscore &lt;code class=&#34;verbatim&#34;&gt;__&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, one photo in my collection is: &lt;code class=&#34;verbatim&#34;&gt;19930825T132000--forbidden-city-throne-palace-of-heavenly-purity__china.jpg&lt;/code&gt;. So this photo was taken on 25 August 1993, the title describes the topic of the photograph and &lt;/p&gt;
&lt;p&gt;
I can now go into Dired and mark files with regular expressions, searching for each of these fields. For example, using &lt;code class=&#34;verbatim&#34;&gt;%m _china&lt;/code&gt; marks photos taken in China, or &lt;code class=&#34;verbatim&#34;&gt;%m -city&lt;/code&gt; all images with the word &amp;#34;city&amp;#34; in their title. Using the Dired convention for naming files is not only great for notes, it also helps you manage your photo collection.&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;denote-rename-file&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c w R&lt;/code&gt;) lets you construct a Denote-compliant file name for existing images or other binary files. This function uses the last modified date as the identifier by default. But when you are sorting old collections you might want to add a date that is different to the last modified one. Adding the universal argument (&lt;code class=&#34;verbatim&#34;&gt;C-u&lt;/code&gt;) will also ask you to provide a date and time, i.e. (&lt;code class=&#34;verbatim&#34;&gt;C-u C-c w R&lt;/code&gt;).&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Editing Images
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs is a powerful piece of software but it is mostly limited to editing text. To meaningfully work with images, you will need another package. Image-dired lets you open images in external viewers or editors by setting one variable.&lt;/p&gt;
&lt;p&gt;
Pressing &lt;code class=&#34;verbatim&#34;&gt;C-enter&lt;/code&gt; opens the file in an external viewer or editor. You can tell Emacs which external viewer to user by configuring the &lt;code class=&#34;verbatim&#34;&gt;image-dired-external-viewer&lt;/code&gt; variable. I linked it to the GIMP (&lt;a href=&#34;https://www.gimp.org/&#34;&gt;GNU Image Manipulation Program&lt;/a&gt;). The content of this variable obviously depends on your system and preferred viewer.&lt;/p&gt;
&lt;p&gt;
When you are in an image-dired buffer, you open the external viewer with &lt;code class=&#34;verbatim&#34;&gt;C-enter&lt;/code&gt;. Confusingly, when you are in a normal dired buffer, this function is bound to &lt;code class=&#34;verbatim&#34;&gt;C-t x&lt;/code&gt;. &lt;em&gt;Emacs Writing Studio&lt;/em&gt; remaps the keys so that you can use &lt;code class=&#34;verbatim&#34;&gt;C-enter&lt;/code&gt; in dired and in image-dired to open an image in your favourite external editor.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs image-mode and image-dired work out-of-the-box, but some configuration helps to add some convenience.&lt;/p&gt;
&lt;p&gt;
This configuration adds keyboard shortcuts to kill an image buffer, so your Emacs session is not littered with open pictures. It also lets you view your image gallery with the arrow keys instead of the non-intuitive &lt;code class=&#34;verbatim&#34;&gt;space&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;backspace&lt;/code&gt; combination.&lt;/p&gt;
&lt;p&gt;
If you like reading more details about image-mode and its configuration options, type &lt;code class=&#34;verbatim&#34;&gt;C-h r&lt;/code&gt; to open the Emacs manual, followed by &lt;code class=&#34;verbatim&#34;&gt;g image-mode return&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Image viewer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emacs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-mode-map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;k&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-kill-buffer&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;right&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-next-file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;left&amp;gt;&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-previous-file&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;dired-mode-map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-&amp;lt;return&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired-dired-display-external&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The configuration for the image-dired package defines the external viewer and defines some convenience keybindings to flick through your albums.&lt;/p&gt;
&lt;p&gt;
To find out about further customisation options, type &lt;code class=&#34;verbatim&#34;&gt;C-h r&lt;/code&gt; to open the Emacs manual, followed by &lt;code class=&#34;verbatim&#34;&gt;g Image-Dired return&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;image-dired-external-viewer&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;gimp&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;image-dired-thumb-margin&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c w I&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired-thumbnail-mode-map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-&amp;lt;right&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired-display-next&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-&amp;lt;left&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;image-dired-display-previous&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Emacs Writing Studio
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;If you like to support my work, then please purchase the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; book.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
You can find the source files for the book and the latest configuration files on GitHub:&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;p&gt;
This is the last article in the &lt;em&gt;Emacs Writing Studio&lt;/em&gt; series.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Using Emacs on a Chromebook: An Installation Guide</title>
      <link>https://lucidmanager.org/productivity/emacs-chromebook/</link>
      <pubDate>Sat, 29 Aug 2020 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-chromebook/</guid>
      <description>
	
&lt;p&gt;
One of the main advantages of free software is that it runs on almost any platform. Google&amp;#39;s Chromebooks are somewhat of an exception because of its restricted application access. Emacs is not available as an application within the app store. However, the foundations of Google&amp;#39;s Chromebook are Linux, which makes it an ideal platform to use Emacs. Although Emacs does not run natively on a Chromebook, there is an elegant solution to this problem.&lt;/p&gt;
&lt;p&gt;
Installing Emacs on a Chromebook is like a three-course meal. You start with a Crouton or some Crostini as an appetiser, install Emacs as the main course, and some configuration as the desert. This article explains how to install Emacs on your Chromebook laptop.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Linux on a Chromebook
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Several open-source projects developed over the years enable running Linux on a Chromebook. &lt;a href=&#34;https://chromebook.guide/crouton/&#34;&gt;Crouton&lt;/a&gt; (not to be confused with the bread sticks) installs a GNU/Linux operating system, such as Ubuntu, on your Chromebook. Linux will live side-by-side with Chrome OS and you can switch between the two with a keyboard shortcut without rebooting.&lt;/p&gt;
&lt;p&gt;
More recently, Google introduced a new Linux subsystem called  &lt;a href=&#34;https://chromeos.dev/en/linux&#34;&gt;Crostini&lt;/a&gt;, for its Chrome OS  so that you can use all the great software it offers, including the venerable Emacs. Crostini is a play on words as it is a fancy version of a crouton. With Crostini, your Linux terminal is an application within the Chrome OS. &lt;/p&gt;
&lt;p&gt;
Click on the clock and select the settings icon. Scroll down to the Linux section and follow the prompts. Not all Chromebooks support this method yet. If your Chromebook does not include Crostini, then you&amp;#39;ll have to use Crouton instead. Crostini is still beta software and some functionality, such as USB, might not be fully functional.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Install Emacs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Once you have access to either Crouton or Crostini, you can install Emacs in the usual way. Crostini uses a stable version of Debian, with Emacs 25 as the most recent version. Start the Linux terminal and type:&lt;/p&gt;
&lt;div class=&#34;src src-shell&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install emacs25&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Emacs will now be accessible from Chrome OS, without needing the terminal. You can start it just like any other Chrome software.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-chromebook-screen.jpg&#34; alt=&#34;/images/emacs/emacs-chromebook-screen.jpg&#34; title=&#34;Writing this acticle with Emacs on the Chromebook&#34;/&gt;
&lt;figcaption&gt;
Writing this acticle with Emacs on the Chromebook.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Using Emacs with Crouton
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The Linux system is a virtual machine within Chrome and has a separate file system. Files within the Linux container are available by default from the file browser. The user&amp;#39;s Linux home folder is a folder within the Chromebook&amp;#39;s file system.&lt;/p&gt;
&lt;p&gt;
If you want to access the Chrome file system within Emacs, you will need to share the Chrome folder with Linux. Right-click on any folder in the Chrome file browser and select &amp;#34;Share with Linux&amp;#34;. The shared folders are available in &lt;code class=&#34;verbatim&#34;&gt;/mnt/chromeos/MyFiles/&lt;/code&gt; in the Linux container.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Chromebook keybindings
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The keyboard on Chromebooks is a bit different from the normal PC or Apple. The top-row arrow keys are by default bound to &lt;code class=&#34;verbatim&#34;&gt;next-buffer&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;previous-buffer&lt;/code&gt; functions. The &lt;code class=&#34;verbatim&#34;&gt;ALT&lt;/code&gt; and up/down arrow keys map to page-up and page-down, which is annoying when you use Org mode.&lt;/p&gt;
&lt;p&gt;
The code below restores the behaviour of &lt;code class=&#34;verbatim&#34;&gt;M-up&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;M-down&lt;/code&gt; in Org mode. When you use this keybinding, you will have to use &lt;code class=&#34;verbatim&#34;&gt;M-v&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;C-v&lt;/code&gt; for scrolling while in Org mode. &lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Chromebook shortcuts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;define-key&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;kbd&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;prior&amp;gt;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;org-metaup&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;define-key&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;kbd&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;lt;next&amp;gt;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;org-metadown&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Edit in 2026: For a more recent view of installing Emacs on a Chromebook, watch this video by Timothy W. Ukert.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/jPqvbyZqqF0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
How to Install Emacs on a Chromebook in 2025.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Chromebook Emacs as a writing companion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is the ideal software for a Chromebook. They are cheap lightweight computers that are perfect for writing on the go. Emacs provides the perfect &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;distraction-free writing environment&lt;/a&gt; for anyone who writes as a professional activity or creative outlet.&lt;/p&gt;
&lt;p&gt;
You can download a configuration file focused on content creators from my GitHub page.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Using Emacs on Windows 11: An Installation Guide</title>
      <link>https://lucidmanager.org/productivity/emacs-windows/</link>
      <pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-windows/</guid>
      <description>
	
&lt;p&gt;
This article describes how to install Emacs on Windows 10, including supporting packages. This article is part of the &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt; which explains how to use Emacs to undertake research and write and publish articles, books, and websites.&lt;/p&gt;
&lt;p&gt;
This article is part of &lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs Writing Studio&lt;/a&gt;, a book that explains how to use Emacs to undertake research and write and publish articles, books, and websites. Emacs Writing Studio is also available as an e-book from your favourite retailer.&lt;/p&gt;
&lt;p&gt;

  &lt;div class=&#34;box&#34;&gt;
    &lt;div class=&#34;media&#34;&gt;
      &lt;figure class=&#34;media-left&#34;&gt;
        &lt;p class=&#34;image is-128x128&#34;&gt;
          &lt;img src=&#34;https://lucidmanager.org/images/books/2024-ews.jpg&#34; alt = &#34;Emacs Writing Studio&#34; title = &#34;Emacs Writing Studio&#34;&gt;
        &lt;/p&gt;
      &lt;/figure&gt;
      &lt;div class=&#34;media-content&#34;&gt;
        &lt;div class=&#34;content&#34;&gt;
          &lt;p class=&#34;is-size-5 has-text-weight-bold&#34;&gt;Emacs Writing Studio&lt;/p&gt;
          &lt;p class=&#34;mb-2&#34;&gt;A comprehensive guide for writers seeking to streamline their workflow using Emacs. The book covers everything from organising ideas and writing distraction-free to publishing in multiple formats. It’s perfect for both beginners and experienced Emacs users, offering practical tips and a tailored configuration to enhance your writing process.&lt;/p&gt;
          &lt;div class=&#34;buttons&#34;&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://payhip.com/b/alhIJ&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Payhip&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=ebook&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;e-readers&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://books2read.com/u/4NpgQ9?format=print&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;Paperback&lt;/span&gt;
            &lt;/a&gt;
            &lt;a class=&#34;button is-info&#34; href=&#34;https://leanpub.com/emacswritingstudio&#34; target=&#34;_blank&#34;&gt;
              &lt;span class=&#34;icon&#34;&gt;
                &lt;i class=&#34;fas fa-shopping-cart&#34;&gt;&lt;/i&gt;
              &lt;/span&gt;
              &lt;span&gt;LeanPub&lt;/span&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
The source files of the book and EWS configuration are also freely available on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Installing Emacs on Windows 11
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The first step is to download Emacs for Windows directly from its makers on the &lt;a href=&#34;http://ftp.gnu.org/gnu/emacs/windows/emacs-29/&#34;&gt;GNU website&lt;/a&gt;. You need the &lt;code class=&#34;verbatim&#34;&gt;emacs-$VERSION-x86_64-installer.exe&lt;/code&gt;, where version is currently 29.4. This file contains a 64-bit build of Emacs with dependencies as an installer package.&lt;/p&gt;
&lt;p&gt;
Download this file and run the program to install Emacs on your system. You can now run Emacs like any other Windows software.&lt;/p&gt;
&lt;p&gt;
To upgrade Emacs in future, simply repeat this process.&lt;/p&gt;
&lt;p&gt;
But wait there is more. Emacs is neatly integrated with Linux systems, but to make it function properly on Windows some additional configuration steps and additional software is required.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Directories
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Home Directory
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The next step is to set the default folder for Emacs by setting the &lt;code class=&#34;verbatim&#34;&gt;HOME&lt;/code&gt; variable. This variable instructs Emacs to use the &lt;code class=&#34;verbatim&#34;&gt;C:\users\username\&lt;/code&gt; folder as your home location. Open Powershell in administrator mode and enter this line:&lt;/p&gt;
&lt;div class=&#34;src src-shell&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  setx HOME %USERPROFILE%&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can also set this variable through the Windows Control Panel. Search for &amp;#34;environment&amp;#34; and click &lt;em&gt;Edit System Variables&lt;/em&gt; and select &lt;em&gt;Environment variables&lt;/em&gt;. Create a new variable called &lt;code class=&#34;verbatim&#34;&gt;HOME&lt;/code&gt; and select your home folder and click &lt;em&gt;OK&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;
In Emacs, your home folder is indicated with a tilde symbol. So lets say that your home folder is &lt;code class=&#34;verbatim&#34;&gt;C:\Users\peter\&lt;/code&gt; and you need the &lt;code class=&#34;verbatim&#34;&gt;Downloads&lt;/code&gt; folder, then in Emacs refers to this location as &lt;code class=&#34;verbatim&#34;&gt;~/Downloads&lt;/code&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Emacs configuration folder
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The location of the configuration folder depends on your operating system and Emacs version. If you are unsure where to store the &lt;code class=&#34;verbatim&#34;&gt;init.el&lt;/code&gt; file, then you can use the Emacs help functionality. In most cases it will be something like &lt;code class=&#34;verbatim&#34;&gt;~/.emacs.d/&lt;/code&gt;. The dot at the start of the folder name means that it is hidden from view. To view the content of this folder in Windows you need to enable &amp;#34;Show hidden items&amp;#34; in the file explorer.&lt;/p&gt;
&lt;p&gt;
Type &lt;code class=&#34;verbatim&#34;&gt;C-h v&lt;/code&gt; for help on variables and type &lt;code&gt;user-emacs-directory&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;enter&lt;/code&gt;. The help buffer that now appears provides the correct folder name. &lt;/p&gt;
&lt;p&gt;
Read my article on &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configuring Emacs&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
External Software
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Emacs is not a text editor, it is a computing platform with a built-in text editor. Emacs can also act as an interface to other Open Source free software. Most of these packages are included in common Linux distributions. Windows users need to use a bit more effort to install these.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Reading documents and ebooks
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs is great at displaying plain text but needs some assistance with reading other formats. The basic emacs package to view documents other than plain text is Doc-View. The image below explains the external packages required to read ebooks and articles.&lt;/p&gt;
&lt;p&gt;
For PDF documents you need to install &lt;a href=&#34;https://www.ghostscript.com/&#34;&gt;Ghostscript&lt;/a&gt; or &lt;a href=&#34;https://mupdf.com/&#34;&gt;MuPDF&lt;/a&gt;. The &lt;code&gt;pdftotext&lt;/code&gt; program from the &lt;a href=&#34;https://poppler.freedesktop.org/&#34;&gt;Poppler software&lt;/a&gt; helps with finding and copying text in a PDF.&lt;/p&gt;
&lt;p&gt;
To read and export to office documents (MS Office and LibreOffice), Emacs needs to have acces to the &lt;a href=&#34;https://www.libreoffice.org/download/download-libreoffice/&#34;&gt;LibreOffice software&lt;/a&gt;. Emacs uses this software to convert office documents to PDF and display them with the DocView package. LibreOffice can also assist with exporting Org mode files to office formats or to PDF.&lt;/p&gt;
&lt;p&gt;
To view EPub files you need a version of the &lt;code class=&#34;verbatim&#34;&gt;zip&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;unzip&lt;/code&gt; programs. You can find these programs, and many others, in the &lt;a href=&#34;https://gnuwin32.sourceforge.net/&#34;&gt;GnuWin32&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;
You also need to tell Emacs where these tools live, so you need to customise the &lt;code&gt;exec-path&lt;/code&gt; variable.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/doc-view.png&#34; alt=&#34;Document conversion in Doc-View&#34; title=&#34;Document conversion in Doc-View&#34; width=&#34;300&#34;/&gt;
&lt;figcaption&gt;
Document conversion in Doc-View.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
For more information on reading non-text files in Emacs see my article on &lt;a href=&#34;https://lucidmanager.org/productivity/reading-ebooks-with-emacs/&#34;&gt;reading ebooks&lt;/a&gt;.&lt;/p&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Spellcheck
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Flyspell package performs spell checking on Emacs. Read the &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;distraction-free writing&lt;/a&gt; for more information on how to configure spell-checking.&lt;/p&gt;
&lt;p&gt;
The ezwinports project maintains a large collection of useful open source software compiled for Windows computers, including Hunspell.&lt;/p&gt;
&lt;p&gt;
To install Hunspell on Windows, download the software from &lt;a href=&#34;https://sourceforge.net/projects/ezwinports/files/&#34;&gt;ezwinports&lt;/a&gt;. Extract the files in a folder on your drive, for example: &lt;code class=&#34;verbatim&#34;&gt;C:\ProgramData\ezwinports\&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;
You need to add the &lt;code class=&#34;verbatim&#34;&gt;bin&lt;/code&gt; folder to your path environment variable. A simple workaround is to add the full path of the Hunspell variable to your configuration, as such:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#007020&#34;&gt;setq-default&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;ispell-program-name&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C:/ProgramData/ezwinports/bin/hunspell&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Note that Emacs uses a forward slash &lt;code class=&#34;verbatim&#34;&gt;/&lt;/code&gt;, not the Windows backslash &lt;code class=&#34;verbatim&#34;&gt;\&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The binary distribution includes dictionaries for US English and UK English. You can find the dictionaries for other languages on the Internet; install them into &lt;code class=&#34;verbatim&#34;&gt;share/hunspell&lt;/code&gt; directory in your Hunspell installation directory.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Using Emacs on Windows 11
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This article only discussed how to install Emacs on Windows 11. The other articles on this website show you how to &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configure Emacs&lt;/a&gt; and how to use Emacs to research, write and publish articles, books and websites.&lt;/p&gt;
&lt;p&gt;
The EWS GitHub repository contains the latest information about the required external software.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Taking Notes with Emacs Org Mode and Org-Roam</title>
      <link>https://lucidmanager.org/productivity/taking-notes-with-emacs-org-mode-and-org-roam/</link>
      <pubDate>Sat, 08 May 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/taking-notes-with-emacs-org-mode-and-org-roam/</guid>
      <description>
	
&lt;p&gt;
Taking notes is an important activity for all creative work. Recording your thoughts and ideas or somebody else’s ideas is 2a foundational activity whether you write scientific articles, novels or whatever else. Emacs Org mode has some useful functionality to take notes, which can be further extended with the &lt;a href=&#34;https://www.orgroam.com/&#34;&gt;Org-Roam package&lt;/a&gt;. This article explains how to take notes in Emacs and configure the Org-roam note-taking system for Emacs.&lt;/p&gt;
&lt;p&gt;
Org Roam is a popular note-taking package that uses Org mode as its central repository. The disadvantage of this package is that it relies on a database and can only manage Org mode files. This page assumes that you are using the latest version of Emacs, which at the time of writing is 29.1, which has a built-in database. This page is no longer maintained as &lt;em&gt;Emacs Writing Studio&lt;/em&gt; uses &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;Denote for notetaking&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Single File or Personal Wiki
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Taking notes in Org mode can be as easy as maintaining one or more files with many headers. Org mode has some functionality to &lt;a href=&#34;https://orgmode.org/guide/Tags.html&#34;&gt;tag each heading&lt;/a&gt; to help you categorise notes. &lt;/p&gt;
&lt;p&gt;
While this is a great start, keeping topical notes in separate files is a more productive method because you can easily link Org mode files to each other, creating a personal Wiki. To create a hyperlink between two files, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-l&lt;/code&gt; (&lt;code&gt;org-insert-link&lt;/code&gt;) and type &lt;code class=&#34;verbatim&#34;&gt;file:&lt;/code&gt; (Or add the universal argument &lt;code class=&#34;verbatim&#34;&gt;C-u C-c C-l&lt;/code&gt; to choose file links by default). You can then select the file with your &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;completion system&lt;/a&gt; and type a description, which creates a hyperlink. You follow these links by pressing &lt;code class=&#34;verbatim&#34;&gt;C-c C-o&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
This method allows you to navigate from one file to the next, but Org mode does not know which other files link to your current buffer. There is no database in vanilla Emacs that allows you to review the structure of your linked files.&lt;/p&gt;
&lt;p&gt;
The Org-Roam package extends the Org mode functionality by saving all the links between files and headings in a database. This method allows you to also view the backlinks. The database stores a list of nodes, which are files or registered headings. This additional functionality allows you to navigate through your network of notes like you would in a personal wiki.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Zettelkasten: Structured collection of notes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org-Roam implements the principles of the Zettelkasten method as a digital slip box full of cards. German sociologist Niklas Luhmann maintained a collection of tens of thousands notes, each written on an index card. These cards were linked through a series of keywords. This method allowed Luhmann to connect disparate ideas and writes his extensive oeuvre of books and articles.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/rOSZOCoqOo8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Zettelkasten Note-Taking Method: Simply Explained.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The Org-Roam package in Emacs creates a network of links between your notes and manages your digital knowledge garden. Basically, the package extends Org mode functionality by storing all nodes (files and registered headings) in a database, including which between nodes. Furthermore, Org-roam provides each node in your knowledge network with a unique identifier consisting of a long string of numbers and letters, e.g. &lt;code class=&#34;verbatim&#34;&gt;711a7cac-e46b-4e64-b1e6-2940fa431e55&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The Org-Roam database provides excellent opportunities to analyse your network and discover patterns in your research that were perhaps previously invisible. You can examine this database and visualise its structure. The graph below is created with the &lt;a href=&#34;https://lucidmanager.org/data-science/visualise-org-roam/&#34;&gt;igraph package in R&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-roam-network.png&#34; alt=&#34;My personal Org-roam notes network&#34; title=&#34;My personal Org-roam notes network&#34; width=&#34;600&#34;/&gt;
&lt;figcaption&gt;
My personal Org-roam notes network.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The package provides a lot of freedom to structure your personal Wiki, and this article describes the basic functionality. However, before we can get started, we need to configure the system.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Configuring Org-roam
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Install database
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Org-roam package stores a summary of all nodes in your network in a database. In Emacs version 29.1, this functionality comes out of the box and no further configuration is required.&lt;/p&gt;
&lt;p&gt;
If you are using an older version of Emacs, then Org-Roam depends on the EmacSQL package to connect with the database. During package installation EmacSQL needs to compile a custom native binary for communicating with the SQLite database.&lt;/p&gt;
&lt;p&gt;
To enable this task, you will need to install a compiler on your system. On GNU/Linux systems, including &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-chromebook/&#34;&gt;Chromebook&lt;/a&gt;, you need to instal the GCC compiler through your favourite package manager.&lt;/p&gt;
&lt;p&gt;
On &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-windows/&#34;&gt;Windows&lt;/a&gt; you need to install Chocolatey. Open PowerShell as administrator and follow he instructions on the &lt;a href=&#34;https://chocolatey.org/install&#34;&gt;Chocolatey website&lt;/a&gt;. After Chocolatey is available, you can install the compiler in Powershell as administrator with:&lt;/p&gt;
&lt;div class=&#34;src src-bash&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;choco install mingw&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
When Emacs configures the Org-Roam package, it will try to compile the database connector. This might take a little while, but is only done once.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Configure Org-Roam
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The Org-roam package requires some configuration to get it to work. At a minimum, we need to activate the package, bind some keys, define the folder where your notes and database will live and set a template for new notes.&lt;/p&gt;
&lt;p&gt;
You will also need to install the &lt;code class=&#34;verbatim&#34;&gt;use-package&lt;/code&gt; package, which the &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configure Emacs&lt;/a&gt; article discusses. Alternatively, you can download the complete init file for this series of articles from GitHub and store it in your configuration folder. &lt;/p&gt;
&lt;p&gt;
You will also need to install use-package, which is explained article on how to &lt;a href=&#34;https://lucidmanager.org/productivity/configure-emacs/&#34;&gt;configure Emacs&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Org-Roam basic configuration&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-directory&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;concat&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;getenv&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;) &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;/Documents/org-roam/&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:after&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:custom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-roam-directory&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;file-truename&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-directory&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-roam-setup&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n f&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-node-find&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n r&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-node-random&lt;/span&gt;)		    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n i&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-node-insert&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n o&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-id-get-create&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n t&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-tag-add&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n a&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-alias-add&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n l&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-buffer-toggle&lt;/span&gt;)))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The first line defines the default file for Org mode files. I store my Org-Roam notes in &lt;code class=&#34;verbatim&#34;&gt;/Documents/notes/&lt;/code&gt; in my home folder. You need to change the name of the folder to your personal preference. The &lt;code class=&#34;verbatim&#34;&gt;(getenv ““HOME””)&lt;/code&gt; part of this configuration is your home folder, so you only need to modify the relative path between quotation marks.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;org-roam-setup&lt;/code&gt; function initiates the database, which can take a while the first time round if you have many existing notes.&lt;/p&gt;
&lt;p&gt;
Lastly, the configuration defines the keyboard shortcuts. The first three shortcuts are added to the overall keyboard map, so you can activate it from anywhere in Emacs. The last five lines are only valid when you are in an open Org mode buffer. Note that all shortcuts start with &lt;code class=&#34;verbatim&#34;&gt;C-c n&lt;/code&gt; to provide consistency.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Creating and Taking Notes
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;We are finally ready to write notes. You add a new note with the &lt;code class=&#34;verbatim&#34;&gt;org-roam-node-find&lt;/code&gt; function (&lt;code class=&#34;verbatim&#34;&gt;C-c n f&lt;/code&gt;). You can type the name of an existing note or of a new note. The minibuffer &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-completion-system/&#34;&gt;completion system&lt;/a&gt;, which we configured earlier, shows a list of available nodes and filters options as you type. &lt;/p&gt;
&lt;p&gt;
When you create a new node, it will open in an Org mode capture screen. You complete the node with &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt; and cancel it with &lt;code class=&#34;verbatim&#34;&gt;C-c C-k&lt;/code&gt;. You can read these instructions in the top of the popup screen. When you complete the node, Org-Roam will construct a filename and save it to disk. The filename starts with a timestamp, followed by the name of the note, separated by dashes. There is need to worry too much about the filename because you will be retrieving nodes through their title and tags, rather than a filename. &lt;/p&gt;
&lt;p&gt;
An Org-Roam file (called a node) is just another Org mode file with some minor differences. The file starts with a properties drawer that defines the file ID. Using an ID instead of a file name makes it easier to maintain link integrity when you change file names or titles. A node can also contain one or more aliases, so you can search on multiple names. &lt;/p&gt;
&lt;p&gt;
The remainder of the file contains the header and content. Note the &lt;code class=&#34;verbatim&#34;&gt;#+filetags:&lt;/code&gt; property. A file tag is a way to add tags to files so you can easily group entries. The tags are displayed after the title or alias when you find a new or existing file.&lt;/p&gt;
&lt;p&gt;
When you first create a new file, a capture screen appears where you can write your note. To save the note to your system, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt;, to cancel creating a new note, press &lt;code class=&#34;verbatim&#34;&gt;C-c C-k&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :PROPERTIES:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;  :ID: f1bdb099-2184-46cf-a952-4808baa00b09
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;  :ROAM_ALIASES: &amp;#34;Note taking with Org-roam&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;  :END:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+title: Zettelkasten method with Org-roam
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  #+filetags: :notes::emacs:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;* &lt;/span&gt;First headline&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
If this file exists in your database, you will be able to find it through its title, alias or tag. An alias is useful for registering synonyms of words or definitions of abbreviations (AI / Artificial Intelligence). File tags help you cluster notes by topic.&lt;/p&gt;
&lt;p&gt;
Your note starts below your header. If you are new to Org-mode, then read the article on &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-for-distraction-free-writing/&#34;&gt;distraction-free writing&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Org-Roam Nodes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;In Org-roam terminology, a file or a registered heading is a node in a network. You can promote a heading inside a file to a node by pressing &lt;code class=&#34;verbatim&#34;&gt;C-c n o&lt;/code&gt; (&lt;code&gt;org-id-get-create&lt;/code&gt;). This will create a property drawer below the heading with an id tag. Use the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key to open or close the drawer. &lt;a href=&#34;https://orgmode.org/manual/Drawers.html&#34;&gt;Drawers are an Org mode functionality&lt;/a&gt; to store metadata about files or headings.&lt;/p&gt;
&lt;p&gt;
Org-roam indexes every node (file or heading with an id) that resides in its designated folder and subfolders in a database. This database contains metadata about the node, such as its title and any links from and to the node.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Tags and Aliases
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;To make it easier to group and find nodes, you can give it one or more alias titles with the &lt;code class=&#34;verbatim&#34;&gt;C-c n a&lt;/code&gt; shortcut (&lt;code&gt;org-roam-alias-add&lt;/code&gt;). The main and the alias titles are searchable when finding a node. The name of the alias stored in the drawer at the start of the file.&lt;/p&gt;
&lt;p&gt;
To add one or more tags to a Org-Roam file, use &lt;code&gt;org-roam-tag-add&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c n t&lt;/code&gt;). Note that tags have completion using the &lt;code class=&#34;verbatim&#34;&gt;TAB&lt;/code&gt; key. Tags are also searchable when visiting a node. Tags are a way to add structure to your nodes by adding them to a group. Adding a tag to a heading is as easy as hitting &lt;code class=&#34;verbatim&#34;&gt;C-c C-c&lt;/code&gt;, which is a standard Org mode function.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Linking Nodes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The second method to add structure is by linking nodes. You can start writing your note as per usual. Links to existing files are easy to insert with the &lt;code class=&#34;verbatim&#34;&gt;C-c n i&lt;/code&gt; shortcut (&lt;code&gt;org-roam-node-insert&lt;/code&gt;). Search for the file you want to link to and hit enter.&lt;/p&gt;
&lt;p&gt;
As your nodes grow in number, you slowly build a personal knowledge network. Org-Roam has graphing capabilities, provided you have the Graphviz package installed, which is outside the scope of this article. The &lt;a href=&#34;https://github.com/org-roam/org-roam-ui&#34;&gt;org-roam-ui&lt;/a&gt; package provides an interactive graphical interface to your node network through your browser. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
Discovering Nodes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;If you like to know which files link to the buffer you are currently editing, then use &lt;code&gt;org-rosm-buffer-toggle&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c n l&lt;/code&gt;). A new window appears with a list of all files that link to the current buffer. Move to the window with &lt;code&gt;org-open-at-point&lt;/code&gt; (&lt;code class=&#34;verbatim&#34;&gt;C-c o&lt;/code&gt;), select your node, and hit &lt;code class=&#34;verbatim&#34;&gt;ENTER&lt;/code&gt; to open the note. To close the backlinks window, use  &lt;code class=&#34;verbatim&#34;&gt;C-c n l&lt;/code&gt; again.&lt;/p&gt;
&lt;p&gt;
My favourite function is to open a random note. Pressing &lt;code class=&#34;verbatim&#34;&gt;C-c n r&lt;/code&gt; (&lt;code&gt;org-roam-node-random&lt;/code&gt;) opens a note and invite you to take a random walk through your knowledge garden.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Note Templates
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The default new node only has a property drawer and a title and the filename starts with a timestamp. You can of course change this default behaviour by setting the &lt;code class=&#34;verbatim&#34;&gt;org-roam-capture-templates&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;
For example, this configuration creates a new default node with a filename and a template head (&lt;code class=&#34;verbatim&#34;&gt;file+head&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;
The file name is based on the title slug (&lt;code class=&#34;verbatim&#34;&gt;${slug}.org&lt;/code&gt;), which is basically the node title in lower case, with spaces replaced by dashes.&lt;/p&gt;
&lt;p&gt;
The first lines of the head of this node contain the title, the creation date and a &lt;code class=&#34;verbatim&#34;&gt;#+lastmod:&lt;/code&gt; entry, which you can use to store the date it was last saved. To make this happen, you also set the &lt;code class=&#34;verbatim&#34;&gt;time-stamp-start&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;
The immediate-finish option bypasses the capture system and creates a new file without .&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-capture-templates&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;d&amp;#34;&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;plain&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;%?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#007020&#34;&gt;:if-new&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#963&#34;&gt;file+head&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;${slug}.org&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                      &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+title: ${title}\n#+date: %u\n#+lastmod: \n\n&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#007020&#34;&gt;:immediate-finish&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;time-stamp-start&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#\\+lastmod: [\t]*&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The template functionality in Org-Roam is extensive, so I will leave it at this example. You can add additional lines to your node template after the title or lastmod entry in this example. The &lt;code class=&#34;verbatim&#34;&gt;\n&lt;/code&gt; indicator denotes a new line.!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Bibliographic notes with Org-Roam
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Managing a large collection of literature, electronic files and associated notes is one thing, but if you can’t quickly find them then you might as well not have them at all.&lt;/p&gt;
&lt;p&gt;
The Helm completion system provides a useful window to your bibliographies. The Helm BibTeX menu lets you search entries and act on the results. The &lt;code class=&#34;verbatim&#34;&gt;C-z&lt;/code&gt; key provides a menu for further actions, such as viewing pdf files or adding and editing notes.&lt;/p&gt;
&lt;p&gt;
Emacs will open any associated PDF files. When you select to take notes, Emacs will create a separate Org mode file for the selected reference. When you also use Org-Roam for taking notes in Emacs, then you have a complete research management system that creates hyperlinked and tagged bibliographical notes.&lt;/p&gt;
&lt;p&gt;
The setup below provides a minimal configuration that uses the folder names defined above. Use &lt;code class=&#34;verbatim&#34;&gt;C-c n B&lt;/code&gt; to start Helm BibTeX.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;helm-bibtex&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bibtex-completion-bibliography&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;bib-files-directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;bibtex-completion-library-path&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;pdf-files-directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;bibtex-completion-pdf-field&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;File&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;bibtex-completion-notes-path&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;bibtex-completion-additional-search-fields&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;color:#963&#34;&gt;keywords&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n B&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;helm-bibtex&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The paths in the &lt;code class=&#34;verbatim&#34;&gt;file&lt;/code&gt; field in a BibTeX file can contain one or more filenames, separated by a semi-colon. When you start the filename with a colon, you can use a relative path, e.g.: &lt;code class=&#34;verbatim&#34;&gt;file = {:/path/to/article.pdf}&lt;/code&gt; is the same as &lt;code class=&#34;verbatim&#34;&gt;~/Documents/bibliography/pdf/path/to/article.pdf&lt;/code&gt;, i.e. the colon symbol stands for the content of the &lt;code class=&#34;verbatim&#34;&gt;pdf-files-directory&lt;/code&gt; variable we defined in the previous section.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;bibtex-completion-additional-search-fields&lt;/code&gt; includes the keyword as a search field, which makes it a bit easier to find stuff.&lt;/p&gt;
&lt;p&gt;
The first time you start Helm BibTeX might take a few seconds as it parses all entries in the collection of files, depending on the size of your bibliography. Just like all Helm applications, the interface uses incremental search, so just start typing and the bibliography will narrow. &lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://github.com/tmalsburg/helm-bibtex&#34;&gt;helm-bibtex website&lt;/a&gt; provides detailed information about further functionality.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-13&#34;&gt;
Org-Roam BibTex Package
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The org Roam database can also connect to a bibliography in the form of a collection of &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;BibTeX files&lt;/a&gt;. This last configuration connects your bibliography to the Org-Roam database. The Org-Roam BibTeX package allows you to create notes directly from your bibliography. The only difference between a regular note and a bibliographic one is that the properties drawer contains a citation link in the &lt;code class=&#34;verbatim&#34;&gt;ROAM_REFS&lt;/code&gt; property, as shown in the example below.&lt;/p&gt;
&lt;div class=&#34;src src-org&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-org&#34; data-lang=&#34;org&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;:PROPERTIES:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;:ID:       c037d9f7-1aad-4774-8f8e-d5974de23b8c
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;:ROAM_REFS: cite:harris_customer_2001
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#888&#34;&gt;:END:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c00;font-weight:bold&#34;&gt;#+title&lt;/span&gt;&lt;span style=&#34;color:#888&#34;&gt;: Customer participation in retail service: Lessons from Brecht&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You can view the associated PDF file from anywhere in the document with the &lt;code class=&#34;verbatim&#34;&gt;C-c n b&lt;/code&gt; shortcut, which will open a menu with options.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-roam-bibtex&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:after&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;org-roam&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;helm-bibtex&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:bind&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;org-mode-map&lt;/span&gt; (&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;C-c n b&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;orb-note-actions&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;org-ref&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;org-roam-bibtex-mode&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Taking Notes with Org Roam
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This is a short introduction to getting you started with Org-roam. There are lots of opinions on how to structure your personal knowledge network. My approach is organic, and I have imported all text files stored in various places in the Org-roam folder. I now have my third brain hemisphere available at my fingertips, thanks to the great work of the Emacs, Org mode, Org-Roam and Deft developers.&lt;/p&gt;
&lt;p&gt;
The following article in this series outlines how to manage &lt;a href=&#34;https://lucidmanager.org/productivity/emacs-bibtex-mode/&#34;&gt;bibliographies in Emacs&lt;/a&gt; and link these to Org-roam.&lt;/p&gt;
&lt;p&gt;
All the configuration explained in this series of articles is available as an init file on GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-writing-studio/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-writing-studio from GitHub&#34;
   alt=&#34;Download emacs-writing-studio from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-writing-studio&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Emacs is a malleable system, so everybody will have their personal preferences for undertaking a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the &lt;a href=&#34;https://lucidmanager.org/contact/&#34;&gt;contact form&lt;/a&gt; to send me an email.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Simulating Text Files with R to Test the Emacs Denote Package</title>
      <link>https://lucidmanager.org/productivity/testing-denote-package/</link>
      <pubDate>Thu, 28 Jul 2022 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/testing-denote-package/</guid>
      <description>
	
&lt;p&gt;
&lt;a href=&#34;https://lucidmanager.org/tags/emacs/&#34;&gt;Emacs&lt;/a&gt; is the most user friendly piece of software ever invented by humanity. I use it for 90% of my computing tasks, including keeping my digital knowledge garden with notes. Several notes packages exist in the Emacs ecosystem, with &lt;a href=&#34;https://www.orgroam.com/&#34;&gt;Org Roam&lt;/a&gt; as the most popular and fully-featured. I have used this package for a while now, but it relies on a database and has grown a feature set far beyond my needs.&lt;/p&gt;
&lt;p&gt;
Protesilaos (Prot) Stavrou developed the &lt;a href=&#34;https://protesilaos.com/emacs/denote&#34;&gt;Denote package&lt;/a&gt; that goes back to the basics of Emacs. The defining feature of this package is a file-naming convention that acts as metadata to find your notes. The basic structure is:&lt;/p&gt;
&lt;p&gt;
&lt;code class=&#34;verbatim&#34;&gt;YYYMMDDTHHMMSS==signature--file-name__keyword1_keyword2.extension&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The filename starts with a timestamp at one second resolution to ensure unique file names (unless you create more than one per second). This timestamp also acts as the unique identifier to link notes.&lt;/p&gt;
&lt;p&gt;
The timestamp is followed by two dashes and the sluggified file name. Two underscores after the file name indicate the start of the keywords, separated by one underscore. Users can also add a signature, which is denoted with two equals signs.&lt;/p&gt;
&lt;p&gt;
This convention provides a convenient heuristics to find notes based on dates, title and keywords. Denote supports either Org mode, plain text or Markdown files.&lt;/p&gt;
&lt;p&gt;
The simplicity of Denote allows for it to be easily integrated with other Emacs packages and it can be easily extended with some Emacs Lisp code. My &lt;a href=&#34;https://github.com/pprevos/denote-explore&#34;&gt;Denote Explore package&lt;/a&gt; is an example of a set of auxiliary functions to help find notes.&lt;/p&gt;
&lt;p&gt;
I considered moving away from Org Roam to the monastic simplicity of Denote. But before converting my existing knowledge base, I wanted to see how it behaves with thousands of files in a single folder. Rather then converting my existing files, I decided to generate some random files to see how it performs.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Generating Random Text Files for Emacs Denote
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;My coding chops in R are much better than Emacs Lisp, so I decided to write some R code to generate random text files and take Denote through its paces.&lt;/p&gt;
&lt;p&gt;
This code uses the &lt;a href=&#34;https://boardgames.stackexchange.com/questions/38366/latest-collins-scrabble-words-list-in-text-file&#34;&gt;Collins Scrabble Word list&lt;/a&gt; to generate random file names and keywords. Download this file to your working directory before using this code. The code reads the file and generates a set of 50 keywords. Random timestamps are set somewhere in the distant future. Each file has a template for the front matter.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Simulate n files in denote folder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Initiation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(stringr)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  n &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;10000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  k &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  wordlist &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;readLines&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;collins-scrabble-words-2019.txt&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  wordlist &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;tolower&lt;/span&gt;(words)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  tag_words &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(words&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;[nchar&lt;/span&gt;(wordlist) &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;5&lt;/span&gt;], k)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  timestamps &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;Sys.time&lt;/span&gt;() &lt;span style=&#34;color:#333&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;600E6&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;666E6&lt;/span&gt;, n)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  template &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+title:      &amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+date:       &amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+filetags:   &amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+identifier: &amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  denote_directory &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;~/denote-sim/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dir.create&lt;/span&gt;(denote_directory)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This next code snippet generates $n$ Org mode files in the &lt;code class=&#34;verbatim&#34;&gt;denote_directory&lt;/code&gt; folder. Titles are extracted by sampling the word list and the tags (keywords) are sampled from the $k$ defined tags. The front matter includes the tile, the creation date, keywords (called filetags in Org mode) and the identifier.&lt;/p&gt;
&lt;p&gt;
The &lt;em&gt;Lorem Ipsum&lt;/em&gt; generator in the stringr package generates some paragraphs of text. The last part of the code generates some links to random posts.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;## Generate n random posts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;for&lt;/span&gt;(i &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;n) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      title &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(wordlist, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;5&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;)), collapse &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      tags &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(tag_words, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;)), collapse &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;_&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      identifier &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt;(timestamps[i], &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;%Y%m%dT%H%M%S&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      front_matter &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(template[1],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                               &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_to_title&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(title,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                            &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;))),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(template[2],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                               &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;[&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt;(timestamps[i],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                  &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;%F %a %H:%M&amp;#34;&lt;/span&gt;), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;]&amp;#34;&lt;/span&gt;)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(template[3],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                               &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(tags,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                           &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;_&amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt;), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt;)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(template[4], identifier))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      links_list &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;vector&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;for&lt;/span&gt; (j &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;5&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;))) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        links_list[j] &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;- &amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;[[denote:&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;format&lt;/span&gt;(timestamps, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;%Y%m%dT%H%M%S&amp;#34;&lt;/span&gt;), &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;]]&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      content &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(front_matter,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   stringi&lt;span style=&#34;color:#333&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;stri_rand_lipsum&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_to_title&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(wordlist,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                        &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sample&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                 collapse &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;))),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                   links_list)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      filename &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(denote_directory, identifier, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;--&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                         title, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;__&amp;#34;&lt;/span&gt;, tags, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.org&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;writeLines&lt;/span&gt;(content, filename)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Generating thousands of files will take a few minutes …&lt;/p&gt;
&lt;p&gt;
This codes generates ten thousand notes to test the Denote package to review it if works at a large scale. This tests shows that Prot&amp;#39;s approach is perfectly capable of working with thousands of notes. Just for kicks, I also synchronised these files with an Org Roam setup. My laptop struggled with the computational load. I was unable to properly access the files as with the large number of files and struggled accessing files. So case, closed - &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-denote/&#34;&gt;I am moving to Denote&lt;/a&gt; and teach myself more Emacs Lisp to build my ideal Zettelkasten.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Postscriptum
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Since I wrote this post a few months ago I have migrated all my Org Roam notes to Denote. I migrated my 2,000 notes manually as I wanted to reread all my material and immerse myself in my old ideas to generate new ones. Paraphrasing Scocrates: gaining knowledge is the art of remembering.&lt;/p&gt;
&lt;p&gt;
Denote plays a central role in my &lt;a href=&#34;https://lucidmanager.org/tags/emacs&#34;&gt;Emacs Writing Studio&lt;/a&gt; configuration. This starter kit is specially designed for authors who have no need to develop software.&lt;/p&gt;
&lt;p&gt;
If you don&amp;#39;t feel like spending the time to migrate manually, then other Emacs enthusiasts have developed automated methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jeremy Friesen, &lt;a href=&#34;https://takeonrules.com/2022/10/01/exploring-the-denote-emacs-package/&#34;&gt;Exploring the Denote Emacs Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jeremy Friesen, &lt;a href=&#34;https://takeonrules.com/2022/10/02/migration-plan-for-org-roam-notes-to-denote/&#34;&gt;Migration Plan for Org-Roam Notes to Denote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Charanjit Singh, &lt;a href=&#34;https://github.com/bitspook/notes-migrator&#34;&gt;Notes Migrator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a href = &#34;https://www.r-bloggers.com/&#34; target=&#34;_blank&#34; title=&#34;Proudly associated with R-Bloggers&#34;&gt;
  &lt;button class=&#34;button is-link is-medium&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-r-project&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span&gt;As seen on R Bloggers&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Plain Text Visualisation: The Emacs User Survey Results</title>
      <link>https://lucidmanager.org/productivity/emacs-user-survey-results/</link>
      <pubDate>Sat, 14 Jan 2023 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/emacs-user-survey-results/</guid>
      <description>
	
&lt;p&gt;
The Emacs User Survey was held in &lt;a href=&#34;https://emacs-survey.netlify.app/&#34;&gt;2020&lt;/a&gt; and &lt;a href=&#34;https://emacssurvey.org/&#34;&gt;2022&lt;/a&gt;. It is a bit ironic that the data was &lt;a href=&#34;https://project-mage.org/emacs-is-not-enough&#34;&gt;neither collected nor analysed with Emacs&lt;/a&gt;. This article shows how to visualise the Emacs user survey results with plain text inside of Emacs. First, we download the CSV file and then parse it into an association list. With some bespoke functions and the quirky &lt;code class=&#34;verbatim&#34;&gt;chart&lt;/code&gt; package that forms part of core Emacs.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/emacs-survey/&#34; target=&#34;_blank&#34;
   title=&#34;Download emacs-survey from GitHub&#34;
   alt=&#34;Download emacs-survey from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;emacs-survey&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Read the cleaned CSV file
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Before visualising the data, let&amp;#39;s declare some required packages and download the 2020 Emacs user survey data.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;csv&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;f&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;dash&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;chart&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;url-copy-file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;https://emacs-survey.netlify.app/2020/Emacs-User-Survey-2020-clean.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;emacs-survey.csv&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Define some functions
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://gitlab.com/u11/csv.el/tree/aa1dfa1263565d5fac3879c21d8ddf5f8915e411&#34;&gt;CSV package&lt;/a&gt; by Ulf jasper provides functionality to parse a CSV file buffer into a list of alists. Unfortunately, this package has no functionality to read CSV files or extract data, so I wrote a few additional functions. Thanks to &lt;a href=&#34;https://www.reddit.com/r/emacs/comments/10bibet/comment/j4b1gcc/?context=3&#34;&gt;u/deaddyfreddy&lt;/a&gt; for helping with wrangling association lists. I initially tried chatGPT to write some elisp code, but that was a disaster. Glad to see that human intelligence still trumps the silicon variant.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;csv-parse-file&lt;/code&gt; function parses a CSV file into a list of alists. The &lt;code class=&#34;verbatim&#34;&gt;csv-extract-column-*&lt;/code&gt; functions extract the values from a column by number or header. The result of these functions is a simple list that can be visualised.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;csv-parse-file&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Read CSV FILE and parse its contents.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;with-temp-buffer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;insert-file-contents&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;csv-parse-buffer&lt;/span&gt; &lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;csv-extract-column-number&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;csv&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Extract values in column N from parsed CSV file into an alist.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;cdr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#963&#34;&gt;seq-map&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;lambda&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;list&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;nth&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;list&lt;/span&gt;)) &lt;span style=&#34;color:#963&#34;&gt;csv&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;csv-extract-column-name&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;csv&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Extract the values in a column with NAME from parsed CSV into a list.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;cdr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#963&#34;&gt;seq-map&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;apply-partially&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;assoc&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;name&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;csv&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Visualise the Emacs User Survey Results
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Visualising data with in plain text is a lost art. The famous &lt;a href=&#34;http://www.bigear.org/Wow30th/wow30th.htm&#34;&gt;WOW signal&lt;/a&gt; is our best candidate for a signal from an extraterrestrial civilisation. No fancy visualisations like we are used from radio astronomy, but a simple plain text data stream printed on chain paper. Computer users were creative with plain text and there is still a cult following of &lt;a href=&#34;https://www.asciiart.eu/&#34;&gt;ASCII art&lt;/a&gt;, images that only use plain text characters.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;http://www.bigear.org/Wow30th/wowcl.jpg&#34; alt=&#34;Wow signal.&#34; title=&#34;Wow signal.&#34; width=&#34;500&#34;/&gt;
&lt;figcaption&gt;
Wow Signal (North American Astrophysical Observatory).
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
We are now spoilt with graphical displays, but there are still some packages that can visualise data with plain text, including Eric Ludlam&amp;#39;s &lt;a href=&#34;https://francismurillo.github.io/2017-04-15-Exploring-Emacs-chart-Library/&#34;&gt;chart package&lt;/a&gt;. This code can draw coloured bar charts in plain text. The &lt;code class=&#34;verbatim&#34;&gt;chart-bar-quicky&lt;/code&gt; function takes several arguments, most notably the &lt;em&gt;x&lt;/em&gt; and &lt;em&gt;y&lt;/em&gt; variables for the chart. The &lt;em&gt;n&lt;/em&gt; variable declares the number of bars to draw. We need some more helper functions to visualise the CSV data.&lt;/p&gt;
&lt;p&gt;
We want the bar height to count each unique item, so we also need a function to create a ordered frequency table. The &lt;code class=&#34;verbatim&#34;&gt;visualose-frequency-table&lt;/code&gt; mashes everything together to create a bar chart.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;create-frequency-table&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;data&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Generate an ordered frequency table from DATA.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sort&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;-frequencies&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;data&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#007020&#34;&gt;lambda&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;visualise-frequency-table&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;table&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;title&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Create a bar chart from a frequency TABLE with top N entries.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;  VAR and TITLE used for display.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;chart-bar-quickie&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;horizontal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#963&#34;&gt;title&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;car&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;table&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;var&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;#&amp;#39;cdr&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;table&lt;/span&gt;) &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Frequency&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;n&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Now we are ready to visualise the data. Parsing the data can take a few moments as it contains thousands of results. The bar chart will pop up in a new buffer.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emacs-survey&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;csv-parse-file&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;emacs-survey.csv&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;visualise-frequency-table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#963&#34;&gt;create-frequency-table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;csv-extract-column-number&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;emacs-survey&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Responses&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Which version of Emacs do you primarily use?&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/emacs-survey-2020-question-5.png&#34; alt=&#34;/images/emacs/emacs-survey-2020-question-5.png&#34; title=&#34;/images/emacs/emacs-survey-2020-question-5.png&#34; /&gt;&lt;figcaption&gt;
Results of question six of the 2020 Emacs user Survey.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Conclusion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Visualising data with plain text is less aesthetic than using graphics, but it does the job of telling the story, which is the purpose of visualisation. There are other methods to create graphics inside an Emacs buffer. For example, one could use a &lt;a href=&#34;https://irreal.org/blog/?p=10199&#34;&gt;literate programming approach&lt;/a&gt; and write an Org Mode file and run R, Python, MATLAB or GNUPLot code to create graphics. The latter also has an option to create graphics in plain text.&lt;/p&gt;
&lt;p&gt;
Let&amp;#39;s hope the following Emacs user survey will be more Emacs-centric in its&amp;#39;s data collection and presenting the results.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Emacs LISP exercises in Structure and Interpretation of Computer Programs: Section 1.1</title>
      <link>https://lucidmanager.org/productivity/elisp-scip-1-1/</link>
      <pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/productivity/elisp-scip-1-1/</guid>
      <description>
	
&lt;p&gt;
This article contains proposed solutions to the exercises in section 1.1 of  &lt;em&gt;Structure and Interpretation of Computer Programs&lt;/em&gt; (SICP) by Abelson, Sussman and Sussman. MIT hosts video lectures to accompany the book on &lt;a href=&#34;https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/&#34;&gt;MIT OpenCourseWare&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The textbook uses the Scheme dialect of Lisp. I have written these solutions to help me learn Emacs Lisp (Elisp). Some of the solutions are derived from the work by &lt;a href=&#34;https://github.com/sarabander/p2pu-sicp&#34;&gt;Andres Raba&lt;/a&gt;. Most of the solutions include links to the online version of the &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/elisp.html&#34;&gt;GNU Emacs Lisp Reference Manual&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Chapter 1: The Elements of Programming
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The first chapter of the textbook introduces the elements of the Lisp language. Harold Abelson starts the lecture with the interesting statement that computer science is neither a science, nor is it about computers, just like physics is not about particle accelerators. &lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/-J_xL4IGhJA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Lecture 1A: Overview and Introduction to Lisp.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The first 28 minutes are an introduction to computer programming, after which the LISP lecture starts.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Exercise 1.1
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Below is a sequence of expressions. What is the result printed by the interpreter in response to each expression? Assume that the sequence is to be evaluated in the order in which it is presented.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;In Emacs, you can type this code in the scratch buffer and evaluate an expression with the &lt;code class=&#34;verbatim&#34;&gt;eval-last-sexp&lt;/code&gt; function or the &lt;code class=&#34;verbatim&#34;&gt;C-x C-e&lt;/code&gt; keyboard shortcut, placing the cursor after the end of the expression. The &lt;code class=&#34;verbatim&#34;&gt;eval-last-sexp&lt;/code&gt; function evaluates the last expression before the cursor (point). The results will appear in the minibuffer at the bottom of the screen.&lt;/p&gt;
&lt;p&gt;
Emacs also has a REPL (Read-Eval-Print Loop), which you can access with &lt;code class=&#34;verbatim&#34;&gt;M-x ielm&lt;/code&gt;. In REPL mode, the results appear below the expression after you hit enter.&lt;/p&gt;
&lt;p&gt;
Emacs provides the result in decimal numbers. The output between parenthesis is the result in octal (&lt;code class=&#34;verbatim&#34;&gt;#o&lt;/code&gt;) and hexadecimal (&lt;code class=&#34;verbatim&#34;&gt;#x&lt;/code&gt;) numeral system, e.g.: &lt;code class=&#34;verbatim&#34;&gt;1969 (#o3661, #x7b1)&lt;/code&gt;. For values below 128, the output also includes an associated character, e.g. &lt;code class=&#34;verbatim&#34;&gt;26 (#o32 #x1a ?\C-z)&lt;/code&gt;, where z is the character 26 in &lt;a href=&#34;https://en.wikipedia.org/wiki/ASCII&#34;&gt;ASCII&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The code below shows the solutions in the comments after the expressions. The first lines demonstrate &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Arithmetic-Operations.html&#34;&gt;Arithmetic Operations&lt;/a&gt; in Emacs Lisp. Lisp uses &lt;a href=&#34;https://en.wikipedia.org/wiki/Polish_notation&#34;&gt;Polish notation&lt;/a&gt; to resolve mathematical expressions. In this system, the operatore precede the operands, e.g. &lt;code class=&#34;verbatim&#34;&gt;+ 3 4&lt;/code&gt; is the same as $3+4$ in &lt;a href=&#34;https://en.wikipedia.org/wiki/Infix_notation&#34;&gt;infix notation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
The second set of expressions demonstrates &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Setting-Variables.html&#34;&gt;setting variable values&lt;/a&gt;. The &lt;code class=&#34;verbatim&#34;&gt;setq&lt;/code&gt; function sets universal variables. The q relates to the fact that the variable name is quoted. Without quoting the variable (the &lt;code class=&#34;verbatim&#34;&gt;set&lt;/code&gt; function), Emacs will evaluate the name of the variable as a function and cause an error. You can also add a quotation mark to prevent Emacs from evaluating an expression. The following two expressions have the same result:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Equivalent expressions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;set&lt;/span&gt; &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Emacs is a self-documenting editor and you can document your programming on the fly. The &lt;code class=&#34;verbatim&#34;&gt;defvar&lt;/code&gt; function allows you to define a new variable plus a documentation string. This function is helpful when the variable will be available to other users. The help string that you define is available through the help function with the &lt;code class=&#34;verbatim&#34;&gt;C-h v&lt;/code&gt; shortcut.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Arithmetic operations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 12&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;9&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt;)) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Seting variable names&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defvar&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;example&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;An example of a documented variable.&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 19&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; nil&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
These last lines of code look provide an example of basic &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Conditionals.html&#34;&gt;conditionals&lt;/a&gt;. The first expression is a an if-then-else statement. The second expression is a conditional. The last clause is executed when none of the other conditions is true. The &lt;code class=&#34;verbatim&#34;&gt;t&lt;/code&gt; parameter ensures that this expression is always evaluated.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#888&#34;&gt;;; Conditionals&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;and&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;) &lt;span style=&#34;color:#888&#34;&gt;;; =&amp;gt; 4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;cond&lt;/span&gt; ((&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;) &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          ((&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;7&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;25&lt;/span&gt;)) &lt;span style=&#34;color:#888&#34;&gt;;;=&amp;gt; 16&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;)) &lt;span style=&#34;color:#888&#34;&gt;; =&amp;gt; 6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; (&lt;span style=&#34;color:#007020&#34;&gt;cond&lt;/span&gt; ((&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             ((&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             (&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;-1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;)) &lt;span style=&#34;color:#888&#34;&gt;;; =&amp;gt; 16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Exercise 1.2
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Translate the following expression into prefix form:&lt;/p&gt;
&lt;p&gt;
$$\frac{5 + 4 + (2 - (3 - (6 + \frac{5}{4})))}{3(6 - 2)(2 - 7)}$$&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;When Emacs Lisp divides two integers, the outcome will also be integer, e.g. &lt;code class=&#34;verbatim&#34;&gt;(/ 22 7)&lt;/code&gt; results in 3 instead of 3.142… To force a floating point output, add a decimal to one of the parameters: &lt;code class=&#34;verbatim&#34;&gt;(/ 22 7.0)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
Elisp can evaluate this expression in a single line, but it becomes hard to read.  This example demonstrates the multitude of parenthesis in Lisp expressions. Some people jokingly suggest that Lisp means “Lots of Irritating Superfluous Parentheses”. The &lt;a href=&#34;https://github.com/Fuco1/smartparens&#34;&gt;smartparens&lt;/a&gt; package can help you write code.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://en.wikipedia.org/wiki/Prettyprint&#34;&gt;Prettyprinting&lt;/a&gt; is a way to format source code to make it easier for human readers to understand. In Emacs, you can convert a convoluted expression to prettyprinting with the &lt;code class=&#34;verbatim&#34;&gt;pp-macroexpand-last-sexp&lt;/code&gt; function. Run this function at the end of an expression, and the &lt;code class=&#34;verbatim&#34;&gt;pp&lt;/code&gt; package, the pretty printer for Emacs Lisp, will provide a better formatted version.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;4.0&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;))))) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; ) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;7&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Pretty printing (pp-macroexpand-last-sexp)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;4.0&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;)))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;7&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Exercise 1.3
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;&lt;code class=&#34;verbatim&#34;&gt;defun&lt;/code&gt; declares a new &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Functions.html&#34;&gt;function in Emacs Lisp&lt;/a&gt;. The name of the function appears after &lt;code class=&#34;verbatim&#34;&gt;defun&lt;/code&gt; and its parameters are listed between parentheses. The quoted string on the next line is the documentation. The doc string will be accessible via the Emacs help functions.&lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;square&lt;/code&gt; function returns the square of a number and the &lt;code class=&#34;verbatim&#34;&gt;sum-of-squares&lt;/code&gt; helper function produces the sum of squares. The main function determines the two largest numbers of three and provides the sum of their squares..&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Exercise 1.3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;square&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Squaring a number&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;sum-of-squares&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Sum the squares of two numbers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#963&#34;&gt;square&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#963&#34;&gt;square&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;largest-sum-of-squares&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;c&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Find the largest sum of squares for two out of three numbers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;cond&lt;/span&gt; ((&lt;span style=&#34;color:#007020&#34;&gt;and&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;c&lt;/span&gt;)) (&lt;span style=&#34;color:#963&#34;&gt;sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;c&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          ((&lt;span style=&#34;color:#007020&#34;&gt;and&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;c&lt;/span&gt;)) (&lt;span style=&#34;color:#963&#34;&gt;sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;c&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;largest-sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;largest-sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;largest-sum-of-squares&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The three functions are bow available through the whole Emacs session. The variables are only available within each function (&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Variable-Scoping.html&#34;&gt;scoping rules&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Exercise 1.4
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Observe that our model of evaluation allows for combinations whose operators are compound expressions. Use this observation to describe the behavior of the following procedure:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a-plus-abs-b&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;funcall&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#a60;background-color:#fff0f0&#34;&gt;&amp;#39;-&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;a-plus-abs-b&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;-20&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The function evaluates as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;code class=&#34;verbatim&#34;&gt;b&lt;/code&gt; is positive, the function evaluates &lt;code class=&#34;verbatim&#34;&gt;(+ a b)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If &lt;code class=&#34;verbatim&#34;&gt;b&lt;/code&gt; is negative, the function evaluates &lt;code class=&#34;verbatim&#34;&gt;(- a b)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code class=&#34;verbatim&#34;&gt;funcall&lt;/code&gt; evaluates the expression &lt;code class=&#34;verbatim&#34;&gt;(if (&amp;gt; b 0) &amp;#39;+ &amp;#39;-))&lt;/code&gt; and uses the result (either + or -) as a function. The quote is needed to ensure the &lt;code class=&#34;verbatim&#34;&gt;+&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;-&lt;/code&gt; are not evaluated in the conditional.&lt;/p&gt;
&lt;p&gt;
The original Scheme implementation used in the book and lectures did not use a function call. Scheme is a Lisp-1 and Emacs Lisp is Lisp-2. In scheme names and procedures are located in the same namespace, so it is possible to return a procedure name from a condition and evaluate it. In Lisp-2, procedures have their own namespace, so in order to call procedure from name you have to use &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Calling-Functions.html&#34;&gt;funcal&lt;/a&gt; (Source: &lt;a href=&#34;https://www.reddit.com/r/emacs/comments/g89q2y/learning_elisp_need_some_help/&#34;&gt;/u/andreyorst&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Exercise 1.5
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Ben Bitdiddle has invented a test to determine whether the interpreter he is faced with is using &lt;a href=&#34;https://en.wikipedia.org/wiki/Evaluation_strategy#Comparison_of_applicative_order_and_normal_order_evaluation&#34;&gt;applicative-order evaluation or normal-order evaluation&lt;/a&gt;. He defines the following two procedures:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;p&lt;/span&gt; () (&lt;span style=&#34;color:#963&#34;&gt;p&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;test&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;y&lt;/span&gt;) 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;) 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#963&#34;&gt;y&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Then he evaluates the expression:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#963&#34;&gt;test&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;p&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
What behavior will Ben observe with an interpreter that uses applicative-order evaluation? What behavior will he observe with an interpreter that uses normal-order evaluation? Explain your answer. (Assume that the evaluation rule for the special form if is the same whether the interpreter is using normal or applicative order: The predicate expression is evaluated first, and the result determines whether to evaluate the consequent or the alternative expression.)&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ul&gt;
&lt;li&gt;Applicative order: The function call results in an infinite loop, as the function &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt; calls itself (Emacs&amp;#39; behaviour).&lt;/li&gt;
&lt;li&gt;Normal order: The function never reaches &lt;code class=&#34;verbatim&#34;&gt;p&lt;/code&gt; because it exits with 0 as a result.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-12&#34;&gt;
Exercise 1.6
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Alyssa P. Hacker doesn&amp;#39;t see why &lt;code class=&#34;verbatim&#34;&gt;if&lt;/code&gt; needs to be provided as a special form. “Why can’t I just define it as an ordinary procedure in terms of &lt;code class=&#34;verbatim&#34;&gt;cond&lt;/code&gt;?” she asks. Alyssa’s friend Eva Lu Ator claims this can indeed be done, and she defines a new version of if:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;new-if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;predicate&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;then-clause&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;else-clause&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;cond&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;predicate&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;then-clause&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#036;font-weight:bold&#34;&gt;t&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;else-clause&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Eva demonstrates the program for Alyssa:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#963&#34;&gt;new-if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;3&lt;/span&gt;) &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#963&#34;&gt;new-if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;5&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Delighted, Alyssa uses new-if to rewrite the square-root program:&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;sqrt-iter&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;new-if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#963&#34;&gt;sqrt-iter&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
What happens when Alyssa attempts to use this to compute square roots? Explain.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sqrt&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;square&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;abs&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;square&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)) &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0.001&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;average&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;b&lt;/span&gt;) &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;2.0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;average&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;sqrt-iter&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;new-if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;sqrt-iter&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;sqrt-iter&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sqrt&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#963&#34;&gt;average&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;12&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;13&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The version with &lt;code class=&#34;verbatim&#34;&gt;new-if&lt;/code&gt; function crashes because of a nesting error (&lt;code class=&#34;verbatim&#34;&gt;Lisp nesting exceeds ‘max-lisp-eval-depth&lt;/code&gt;). The &lt;code class=&#34;verbatim&#34;&gt;sqrt&lt;/code&gt; function works fine with the regular &lt;code class=&#34;verbatim&#34;&gt;if&lt;/code&gt; function.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Exercise 1.7
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The &lt;code class=&#34;verbatim&#34;&gt;good-enough?&lt;/code&gt; test used in computing square roots will not be effective for finding the square roots of very small numbers. Also, in real computers, arithmetic operations are almost always performed with limited precision. This makes our test inadequate for huge numbers.&lt;/p&gt;
&lt;p&gt;
Explain these statements, with examples showing how the test fails for small and large numbers. An alternative strategy for implementing &lt;code class=&#34;verbatim&#34;&gt;good-enough?&lt;/code&gt;,is to watch how guess changes from one iteration to the next and to stop when the change is a very small fraction of the guess.&lt;/p&gt;
&lt;p&gt;
Design a square-root procedure that uses this kind of end test. Does this work better for small and large numbers?&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-15&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;code class=&#34;verbatim&#34;&gt;float&lt;/code&gt; function forces floating point answers. See Elisp manual about &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Numeric-Conversions.html&#34;&gt;Numeric Conversions&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Exercise 1.7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;sqrt-heron&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Determine a square root using Heron’s method.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;avg&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;y&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;float&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;y&lt;/span&gt;) &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;abs&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; ))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;avg&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;next-guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;abs&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;next-guess&lt;/span&gt;)) &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1e-20&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;sqrt-heron&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;1234567890&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;sqrt-heron&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1e-5&lt;/span&gt;) (&lt;span style=&#34;color:#963&#34;&gt;sqrt-heron&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1e-5&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-16&#34;&gt;
Exercise 1.8
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Newton’s method for cube roots is based on the fact that if $y$ is an approximation to the cube root of $x$, then a better approximation is given by the value:&lt;/p&gt;
&lt;p&gt;
$$\frac{x/y^2 +2y}{3}$$&lt;/p&gt;
&lt;p&gt;
Use this formula to implement a cube-root procedure analogous to the square-root procedure.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-17&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-17&#34;&gt;
Answer
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-17&#34; class=&#34;outline-text-3&#34;&gt;
&lt;div class=&#34;src src-elisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;;; Exercise 1.8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;cube-root-newton&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Newton’s method for cube roots&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;abs&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;0&lt;/span&gt;) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt;) &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; ))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;+&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;x&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)) (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)) &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;3.0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;next-guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;abs&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;next-guess&lt;/span&gt;)) &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1e-20&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#007020&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#007020&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;good-enough?&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; (&lt;span style=&#34;color:#963&#34;&gt;improve&lt;/span&gt; &lt;span style=&#34;color:#963&#34;&gt;guess&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#963&#34;&gt;try&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1.0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;cube-root-newton&lt;/span&gt; (&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#00d;font-weight:bold&#34;&gt;4&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#963&#34;&gt;cube-root-newton&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1e-5&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Visualise Org-Roam Networks With igraph and R</title>
      <link>https://lucidmanager.org/data-science/visualise-org-roam/</link>
      <pubDate>Sat, 14 Aug 2021 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/data-science/visualise-org-roam/</guid>
      <description>
	
&lt;p&gt;
The &lt;a href=&#34;https://lucidmanager.org/productivity/taking-notes-with-emacs-org-mode-and-org-roam/&#34;&gt;Emacs package Org-Roam&lt;/a&gt; provides a powerful tool to take notes following the idea of the Zettelkasten method. You can write notes with all the power that Emacs provides while linking your thoughts to each other and with your bibliography. This article shows how to analyse and visualise Org-Roam knowledge networks with the &lt;a href=&#34;https://igraph.org/&#34;&gt;iGraph package&lt;/a&gt; and the R language.&lt;/p&gt;
&lt;p&gt;
The image below shows the current state of my personal knowledge network as visualised by iGraph. The Org-Roam community is working hard to create a &lt;a href=&#34;https://github.com/org-roam/org-roam-ui&#34;&gt;visual user interface&lt;/a&gt; for Org-Roam with network diagrams. While this user interface is a great tool to explore your network, Emacs users tend to prefer writing code instead of clicking buttons. This article adds to this concept by showing how to apply some mathematical analysis and delve deep into your Zettelkasten. The beauty of iGraph is that it is available in R, Python, Mathematica and C/C++.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-roam-network.png&#34; alt=&#34;My personal Org-roam notes network&#34; title=&#34;My personal Org-roam notes network&#34;/&gt;
&lt;figcaption&gt;
My personal Org-roam notes network.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
You can download the code in this article from GitHub.&lt;/p&gt;
&lt;p&gt;
&lt;a href = &#34;https://github.com/pprevos/digital-humanities/&#34; target=&#34;_blank&#34;
   title=&#34;Download digital-humanities from GitHub&#34;
   alt=&#34;Download digital-humanities from GitHub&#34;&gt;
  &lt;button class=&#34;button is-medium is-primary&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span style=&#34;font-family: monospace&#34;&gt;digital-humanities&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;

&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Loading the Database
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Org-Roam stores information about the notes in your system in an SQLite database. This database holds information about the nodes (registered files and headings) and links. The &lt;a href=&#34;https://db.rstudio.com/r-packages/dbi/&#34;&gt;DBI package&lt;/a&gt; enables connecting to these databases.&lt;/p&gt;
&lt;p&gt;
The first lines open the connection. You will have to change the path of the database location to your preferences for this to work. The two queries extract the unique ID and the title for all nodes. The second query extracts the links between nodes. The Org-Roam database also stores external links, which are excluded from this analysis.&lt;/p&gt;
&lt;p&gt;
The next part cleans the titles by removing quotation marks and joins the tables. I could have done this in the query, but I know Tidyverse better than SQL.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Visualise Org-Roam databse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Connect to database and extract nodes and links&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(DBI)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  roam &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dbConnect&lt;/span&gt;(RSQLite&lt;span style=&#34;color:#333&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;SQLite&lt;/span&gt;(), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;~/.config/emacs/org-roam.db&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  nodes &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dbGetQuery&lt;/span&gt;(roam, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;SELECT id, title FROM nodes&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  links &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dbGetQuery&lt;/span&gt;(roam, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;SELECT source, dest FROM links WHERE type = &amp;#39;\&amp;#34;id\&amp;#34;&amp;#39;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dbDisconnect&lt;/span&gt;(roam)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Clean node names and create network table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  nodes &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; nodes &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mutate&lt;/span&gt;(title &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_remove_all&lt;/span&gt;(title, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\&amp;#34;&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  network &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;left_join&lt;/span&gt;(links, nodes, by &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;)) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;left_join&lt;/span&gt;(nodes, by &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;dest&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;)) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;select&lt;/span&gt;(from &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; title.x, to &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; title.y)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The result of this code is a data frame with two names of the nodes at each vertex in the network. Any unconnected nodes are ignored due to the left join. The next step is to convert this data to iGraph format and start visualising and analysing.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Create iGraph network
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The iGraph package uses a specific data format. The &lt;code class=&#34;verbatim&#34;&gt;graph.data.frame()&lt;/code&gt; function converts a data frame to an iGraph network. The &lt;code class=&#34;verbatim&#34;&gt;simplify()&lt;/code&gt; function removes any multiple links and self-references. &lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Create network diagram&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(igraph)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  g &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;graph.data.frame&lt;/span&gt;(network)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  g &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;simplify&lt;/span&gt;(g)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Analyse the Network
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The iGraph package has an extensive library of functions to analyse networks. In this section, we look at a measure for centrality and clustering. &lt;/p&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Centrality
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Not all nodes in the network are of equal importance. &lt;a href=&#34;https://en.wikipedia.org/wiki/Centrality&#34;&gt;Centrality&lt;/a&gt; is a concept in graph theory that describes the importance of a node in a network. The most straightforward method of calculating the centrality of a node is to count the number of vertices (connections) that it has with other nodes. The example below shows a simple undirected graph and the degree of each node.&lt;/p&gt;
&lt;figure&gt;
&lt;a title=&#34;Melchoir (source); pan BMP, CC BY-SA 4.0 &amp;lt;https://creativecommons.org/licenses/by-sa/4.0&amp;gt;, via Wikimedia Commons&#34; href=&#34;https://commons.wikimedia.org/wiki/File:UndirectedDegrees_(Loop).svg&#34;&gt;&lt;img width=&#34;320&#34; alt=&#34;UndirectedDegrees (Loop)&#34; src=&#34;https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/UndirectedDegrees_%28Loop%29.svg/320px-UndirectedDegrees_%28Loop%29.svg.png&#34;&gt;&lt;/a&gt;
&lt;figcaption&gt;
Example of the degree centrality of an undirected graph.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
In a directed graph, like with Org-Roam, we can calculate the in-degree and out-degree, the number of vertices point &lt;em&gt;to&lt;/em&gt; the node, or the number of vertices pointing &lt;em&gt;from&lt;/em&gt; the node (the number of backlinks and the number of links). The &lt;code class=&#34;verbatim&#34;&gt;degree()&lt;/code&gt; function of the iGraph package calculates degree centrality. The code below generates a table with the top ten most connected nodes.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Centrality&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  centrality &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;tibble&lt;/span&gt;(Node &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;names&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                       Degree &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g, mode &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;total&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                       Links &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g, mode &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;out&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                       Backlinks &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g, mode &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;in&amp;#34;&lt;/span&gt;)) 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  centrality &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;top_n&lt;/span&gt;(n &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;10&lt;/span&gt;) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;arrange&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;desc&lt;/span&gt;(Degree))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Communities
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;While some nodes might be more connected than others, it would also be good to know which nodes are closest to each other. In other words, can we find clusters of nodes (communities) to find meta-structure in the network? A community is a sub-network with densely connected nodes, but less so with nodes outside the community. Expressed probabilistically, two random nodes are more
likely to be associated when they form part of the same community than when they don&amp;#39;t. Thus, community detection increases the parsimony of the network by identifying those groups of nodes that are most closely related to each other.&lt;/p&gt;
&lt;p&gt;
Using the example network, two communities can be visually distinguished: nodes 1–4 and nodes 5–7. Texts A, B and C belong to the first community, while texts C and D belong to the second community. Text C (nodes 2 and 5) spans the two communities of discourse. This solution is valid because each node has more connections to nodes within its own community than nodes outside it.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/digital-humanities/mix_example.communities.png&#34; alt=&#34;Example of a network with two communities&#34; title=&#34;Example of a network with two communities&#34; width=&#34;320&#34;/&gt;
&lt;figcaption&gt;
Example of a network with two communities.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The examples&amp;#39; communities are easily detected visually, but community detection becomes more difficult as the network grows. Community detection is a mathematical process to cluster nodes into cohesive sub-networks. &lt;/p&gt;
&lt;p&gt;
Several algorithms for community detection have been developed based on a range of mathematical principles. However, the numerical validation of community structure has not yet been satisfactorily solved, and no agreed single method exists to assess the quality of communities. In my research into &lt;a href=&#34;https://lucidmanager.org/data-science/discourse-network-analysis-literature-review/&#34;&gt;knowledge networks&lt;/a&gt;, the Spinglass algorithm provided the most interpretable results.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Community-detection&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  c &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;cluster_spinglass&lt;/span&gt;(g)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Note that clustering algorithms only work with complete graph, which means that all nodes are connected to each other by one or more steps. If you have multiple clusters and one or more single nodes, you can decompose the graph into its connected components and analyse each of these.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  g.comp &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;decompose&lt;/span&gt;(g)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  largest &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;which.max&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sapply&lt;/span&gt;(g.comp, diameter))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  g &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; g.comp[[largest]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  c &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;cluster_spinglass&lt;/span&gt;(g)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
This algorithm results in a named vector that assigns a number of each community to each node. Making sense of community structure requires some human interpretation because the algorithm does not analyse the texts, only the connections between them. Please note that clustering algorithms are computationally intensive and can take a while.&lt;/p&gt;
&lt;p&gt;
We can assign a name to each community by using the node&amp;#39;s name with the most backlinks within each community. The code below creates a table of the community memberships and joins it with the centrality table. The last part assigns a name to each community by selecting the node&amp;#39;s name with the most backlinks, counts the number of members and arranges the table by community size.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  communities &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;tibble&lt;/span&gt;(Node &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; c&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;names,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        Community &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; c&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;membership) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;left_join&lt;/span&gt;(centrality) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;group_by&lt;/span&gt;(Community) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;summarise&lt;/span&gt;(Name &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; Node&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;[which.max&lt;/span&gt;(Backlinks)],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              Nodes &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;n&lt;/span&gt;()) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;arrange&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;desc&lt;/span&gt;(Nodes))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Visualise Org-Roam
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Now that we have analysed the graph, it is time to visualise the results. iGraph has extensive &lt;a href=&#34;https://igraph.org/r/doc/plot.common.html&#34;&gt;plotting functionality&lt;/a&gt; that gives full control over every aspect of the visualisation. To create the graph shown at the start of this article, use the following code:&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Visualise graph&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;par&lt;/span&gt;(mar &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;plot&lt;/span&gt;(g,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       layout &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; layout.fruchterman.reingold,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       mark.border &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;NA&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; c&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;membership,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.label &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;NA&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.size &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sqrt&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g, mode &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;in&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#333&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.frame.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;NA&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       edge.arrow.size &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       edge.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;lightgrey&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
The layout of graphs in this example follows the Fruchterman-Reingold method. This method tries to position the nodes so that the ones with the highest centrality are in the centre. Several other methods are available to compute an optimal layout.&lt;/p&gt;
&lt;p&gt;
The colour of each node relates to its community. The node&amp;#39;s size is the square root of the number of backlinks (indegree) plus one so that larger nodes don&amp;#39;t overpower the picture and small nodes vanish. &lt;/p&gt;
&lt;p&gt;
The remainder of the options improve the readability of the graph. This image is aesthetically pleasing, but it is not very informative. Adding text to the nodes would make it unreadable. &lt;/p&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Subnetworks
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;When a network is fairly large it might be more informative to visualise only a section. The code below determines the number of the relevant node. The &lt;code class=&#34;verbatim&#34;&gt;V()&lt;/code&gt; function holds the properties of al vertices (the nodes) in the network. The &lt;code class=&#34;verbatim&#34;&gt;make_ego_graph()&lt;/code&gt; subsets a network from a given node (ego) and the order. This function creates a list of networks as you can enter more than one node. &lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Subnetwork&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  node &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;which&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;names&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;V&lt;/span&gt;(g)) &lt;span style=&#34;color:#333&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Topology&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  g1 &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;make_ego_graph&lt;/span&gt;(g, order&lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;2&lt;/span&gt;, nodes &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; node)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  c1 &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;cluster_walktrap&lt;/span&gt;(g1[[1]])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;plot&lt;/span&gt;(g1[[1]], layout &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; layout.kamada.kawai,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       mark.border &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;NA&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.size &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;sqrt&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g1[[1]])) &lt;span style=&#34;color:#333&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; c1&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;membership,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.frame.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;NA&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.label.family &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;Sanserif&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       vertex.label.color &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;black&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       edge.arrow.size &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;.3&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;
&lt;img src=&#34;https://lucidmanager.org/images/emacs/org-roam-subnetwork.png&#34; alt=&#34;/images/emacs/org-roam-subnetwork.png&#34; title=&#34;/images/emacs/org-roam-subnetwork.png&#34; /&gt;&lt;figcaption&gt;
Subnetwork example.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Interactive visualisation
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The &lt;a href=&#34;https://christophergandrud.github.io/networkD3/&#34;&gt;networkD3 package&lt;/a&gt; can create interactive graphs, as implemented in this code snippet. The first step converts the iGraph object to a D3 object. Then, the htmlwidgets package lets you save this object as an interactive HTML file.&lt;/p&gt;
&lt;p&gt;
The code below adds the number of backlinks to the node table. Then, it defines the legend using the community names described above.&lt;/p&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Interactive visualisation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(networkD3)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(htmlwidgets)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Convert to object suitable for networkD3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  d3 &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;igraph_to_networkD3&lt;/span&gt;(g, group &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; communities&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Name&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;[membership&lt;/span&gt;(c)])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  d3&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;nodes&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;backlinks &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;degree&lt;/span&gt;(g, mode &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;in&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Create force directed network plot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  p &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;forceNetwork&lt;/span&gt;(Links &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; d3&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;links, Nodes &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; d3&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;nodes, 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Source &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;, Target &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;target&amp;#34;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    NodeID &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;, Group &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;group&amp;#34;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Nodesize &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;backlinks&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    zoom &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;, legend &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;saveWidget&lt;/span&gt;(p, file&lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;( &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;getwd&lt;/span&gt;(), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;/org-roam.html&amp;#34;&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-9&#34;&gt;
Further Analysis
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Graph theory is a broad field with lots of approaches to analyse graphs. This article only scathes the surface of what you can find out about your personal knowledge garden. Graph theory is a vital tool in many applications, including the fight against the Coronavirus.&lt;/p&gt;
&lt;figure&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/lJHcg5rRAJQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;figcaption&gt;
Graph theory lectures by Anthony Bosman.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
&lt;a href = &#34;https://www.r-bloggers.com/&#34; target=&#34;_blank&#34; title=&#34;Proudly associated with R-Bloggers&#34;&gt;
  &lt;button class=&#34;button is-link is-medium&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-r-project&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span&gt;As seen on R Bloggers&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
    
    <item>
      <title>Export WordPress to Hugo Markdown or Org Mode with R</title>
      <link>https://lucidmanager.org/data-science/export-wordpress-to-hugo/</link>
      <pubDate>Sat, 18 Jul 2020 00:00:00 +0000</pubDate>
      <author>Peter Prevos</author>
      <guid>https://lucidmanager.org/data-science/export-wordpress-to-hugo/</guid>
      <description>
	
&lt;p&gt;
I started my first website in 1996 with hand-written HTML. That became a bit of a chore, so for about fifteen years, WordPress became my friend. WordPress has been great to me, but it is slowly becoming a pain to keep updating plugins, security issues, slow performance and the annoying block editor. I am also always looking for additional activities I can do with Emacs. Hugo takes a lot of the pain of managing site away as you can focus on the content and &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Emacs provides me with powerful editing functionality&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
I recently returned to a static website using &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;. This article explains how to export a WordPress blog to Hugo and customise it with R code. The only reason I used R is because it is the only programming language I know well enough.&lt;/p&gt;
&lt;p&gt;
You will also need to install the mighty &lt;a href=&#34;https://pandoc.org/&#34;&gt;Pandoc software&lt;/a&gt; to convert the content to Org mode and the &lt;a href=&#34;https://wordpress.org/plugins/wp-all-export/&#34;&gt;WP All Export&lt;/a&gt; WordPress plugin to export your website to a CSV file.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Convert the content to Markdown or Org Mode
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The first step is to export the WordPress posts database to a CSV file. Several plugins are available that help you with this task. I have used the &lt;a href=&#34;https://wordpress.org/plugins/wp-all-export/&#34;&gt;WP All Export plugin&lt;/a&gt; to export the data. You need to download the ZIP file and install this plugin manually in your WordPress setup. Follow the steps in the All Export plugin and create a CSV file from your posts with at least these fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Slug&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Content&lt;/li&gt;
&lt;li&gt;Categories&lt;/li&gt;
&lt;li&gt;Tags&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alternatively, you can &lt;a href=&#34;https://lucidmanager.org/data-science/analyse-site-structure/&#34;&gt;link directly to the WordPress database&lt;/a&gt; and extract the data with the RMySQL package. &lt;/p&gt;
&lt;p&gt;
The content files for Hugo are either Markdown or Org Mode. I prefer to use Org Mode as it provides me with access to the extensive functionality that Emacs has to offer, including &lt;a href=&#34;https://opensource.com/article/20/5/r-emacs-data-science&#34;&gt;writing and evaluating R code&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;
The &lt;code class=&#34;verbatim&#34;&gt;Content&lt;/code&gt; field in the exported CSV file contains HTML code of the article. The code below reads the CSV file and saves each content field as an HTML file, using the post&amp;#39;s slug as the filename. The mighty Pandoc software converts this file to Org mode. Any draft posts or pages in the export file will have &lt;code class=&#34;verbatim&#34;&gt;NA&lt;/code&gt; as the file name and are as such skipped.&lt;/p&gt;
&lt;p&gt;
Now that we have some content, we need to add the Org mode front matter so that Hugo can build a site. The last part of the code generates the front matter for each post, prepends it to the exported Org mode file and cleans some entries.&lt;/p&gt;
&lt;p&gt;
Copy the code below and save it as &lt;code class=&#34;verbatim&#34;&gt;wp2org.R&lt;/code&gt;. You need to change the filename in the line that starts with &lt;code class=&#34;verbatim&#34;&gt;file&lt;/code&gt; to the name of your export file. The script also creates two subdirectories to store the HTML and Org files.&lt;/p&gt;
&lt;p&gt;
You run this code with &lt;code class=&#34;verbatim&#34;&gt;Rscript wp2org.R&lt;/code&gt; from the same directory where the CSV file is stored. The result will be a collection of Org mode files.&lt;/p&gt;
&lt;p&gt;
This new site will not be perfect just yet. To show the images, you need to download your &lt;code class=&#34;verbatim&#34;&gt;wp-content&lt;/code&gt; folder and move it to the &lt;code class=&#34;verbatim&#34;&gt;static/images&lt;/code&gt; folder in Hugo.&lt;/p&gt;
&lt;p&gt;
The internal links in your blogs will be hard-coded, which means that you need to configure Hugo to ensure your slugs stay the same.&lt;/p&gt;
&lt;p&gt;
There will be other bits and pieces that might not have adequately converted, so do check your pages. &lt;/p&gt;
&lt;p&gt;
All you have to do now is to add a theme to your website, and your blog is fully converted. The Hugo website has a great &lt;a href=&#34;https://gohugo.io/getting-started/quick-start/&#34;&gt;Quick Start&lt;/a&gt; page that will get you going.&lt;/p&gt;
&lt;p&gt;
You can create new posts and edit your content with your favourite text editor. I use &lt;a href=&#34;https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/&#34;&gt;Org mode in Emacs to develop this website&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Summary
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;In summary, you need to take the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install pandoc software and WP All Export WordPress plugin.&lt;/li&gt;
&lt;li&gt;Download your website as a &lt;code class=&#34;verbatim&#34;&gt;CSV&lt;/code&gt; file with the WordPress plugin.&lt;/li&gt;
&lt;li&gt;Copy the R script in a file called &lt;code class=&#34;verbatim&#34;&gt;wp2org.R&lt;/code&gt; and save it in the same location as the &lt;code class=&#34;verbatim&#34;&gt;CSV&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;Open your console and move to  the folder with the script and &lt;code class=&#34;verbatim&#34;&gt;CSV&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Run &lt;code class=&#34;verbatim&#34;&gt;Rscript wp2org.R&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Review the Org mode files and clean-up any issues&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Script
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div class=&#34;src src-r&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Export WP to Hugo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Read exported WP content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(tibble)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(readr)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(dplyr)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;library&lt;/span&gt;(stringr)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Replace the filename with the exported file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  posts &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;read.csv&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;filename&amp;#34;&lt;/span&gt;, skipNul &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Create subdirectories&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#333&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dir.exists&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tmp&amp;#34;&lt;/span&gt;)) &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dir.create&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tmp&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#333&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dir.exists&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org&amp;#34;&lt;/span&gt;)) &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;dir.create&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Read posts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;for&lt;/span&gt; (i &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;nrow&lt;/span&gt;(posts)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Save content as temporary html file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      filename &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Slug[i], &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.html&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;writeLines&lt;/span&gt;(posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Content[i], &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tmp/&amp;#34;&lt;/span&gt;, filename))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Convert to Org mode with Pandoc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      pandoc &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;pandoc -o &amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org/&amp;#34;&lt;/span&gt;, posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Slug[i],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                            &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.org &amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;tmp/&amp;#34;&lt;/span&gt;, filename)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;system&lt;/span&gt;(pandoc)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Create front matter for all posts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  fm &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;tibble&lt;/span&gt;(title &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+title:&amp;#34;&lt;/span&gt;, posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Title),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               date &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+date: [&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;as.POSIXct&lt;/span&gt;(posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Date, origin &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;1970-01-01&amp;#34;&lt;/span&gt;), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;]&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               lastmod &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+lastmod: [&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;Sys.Date&lt;/span&gt;(), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;]&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               categories &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+categories[]:&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Categories, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               tags &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+tags[]:&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Tags, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;)),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               draft &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;#+draft: true&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#333&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;mutate&lt;/span&gt;(categories &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(categories, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\|&amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             tags &lt;span style=&#34;color:#333&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(tags, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\|&amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#888&#34;&gt;## Load Hugo files an prepend front matter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;for&lt;/span&gt; (f &lt;span style=&#34;color:#080;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#60e;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#333&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;nrow&lt;/span&gt;(posts)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      filename &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;org/&amp;#34;&lt;/span&gt;, posts&lt;span style=&#34;color:#333&#34;&gt;$&lt;/span&gt;Slug[f], &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;.org&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      post &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste&lt;/span&gt;(fm[f, ]), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;readLines&lt;/span&gt;(filename))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Repoint images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      post &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(post, &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;http.*wp-content&amp;#34;&lt;/span&gt;), &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;/images&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Cleanup LaTeX&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      post &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_replace_all&lt;/span&gt;(post, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;\\$latex &amp;#34;&lt;/span&gt;, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#34;$&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Remove remaining Wordpress artefacts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      post &lt;span style=&#34;color:#333&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;str_remove_all&lt;/span&gt;(post, &lt;span style=&#34;background-color:#fff0f0&#34;&gt;&amp;#39;:::|\\{.wp.*|.*\\&amp;#34;\\}&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#888&#34;&gt;## Write to disk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#06b;font-weight:bold&#34;&gt;writeLines&lt;/span&gt;(post, filename)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href = &#34;https://www.r-bloggers.com/&#34; target=&#34;_blank&#34; title=&#34;Proudly associated with R-Bloggers&#34;&gt;
  &lt;button class=&#34;button is-link is-medium&#34;&gt;
    &lt;span class=&#34;icon is-large&#34;&gt;
      &lt;i class=&#34;fab fa-r-project&#34;&gt;&lt;/i&gt;
    &lt;/span&gt;
    &lt;span&gt;As seen on R Bloggers&lt;/span&gt;
  &lt;/button&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    
  </channel>
</rss>
