# EMACS-DOCUMENT

=============>集思广益

# Ricing up Org Mode

## 目录

This is a short post pulling in my comment on a /r/unixporn submission where I document my Org mode dotfiles for a word processor like interface. The aim is to recreate a rice I submitted on /r/unixporn some time back. Shown below is a demo of what the thing actually looks like.

Following screencast shows the setup in action.

The look is inspired from the style used by Edward Tufte in his books. A replication of the style in CSS is up on github for free at tufte-css. Other than the proper spacing and margins, the thing that I like in Tufte's style is the font ET Book which is an old-style serif font with beautiful italics.

Figure 2:

Et Book font

To start, we need a nice looking light color scheme so that faces other than that of Org mode look decent. I selected spacemacs-light mostly because I use spacemacs and it is pretty complete as far as number of faces covered is concerned. Also, it has a good off-white background (#fbf8ef). There are three basic steps involved from here:

• Setting faces and themes
• Other Org-mode visual and usability tweaks

## 1 Faces

We will set Et Book (named EtBembo) font to most of the org mode. Get the font here. If you are using spacemacs, the easy way is to use the theming layer in spacemacs to set faces. My face config are available here. For each face, the second set of properties are for the light theme (spacemacs-light). I have set the variable-pitch font to be EtBembo (along with title and stuff) and enable variable-pitch-mode when in an org buffer.

Note that unlike other face settings, org-indent's (:inherit (org-hide fixed-pitch)) has a crucial effect of aligning text under Org heading in a non-monospace font, so you might not want to miss that.

There are a few places where you can gain some breathing space.

• Line spacing

Per buffer line spacing can be set using the variable line-spacing. Something like 0.1 goes well here.

Similar to mode-line, Emacs also has header-line for windows. Setting its format to empty string (setq header-line-format " ") gives you top padding. Also by changing header-line face height, you can change this spacing.

Adding side spaces is possible by setting margin width. You also need to reset the buffer to make the change visible. Here is a function that does that:

(lambda () (progn
(setq left-margin-width 2)
(setq right-margin-width 2)
(set-window-buffer nil (current-buffer))))


If you need padding all around the frame so that everything (including mode-line) goes inside the padded view, you can set internal-border-width.

You can also try writeroom-mode which makes the writing buffer cleaner and has settings for many of the padding related stuff. One neat feature is that it makes the buffer text centered and hides mode line. I don't use it much since my current settings reproduce pretty much what I need from it. Nevertheless, here is some config for writeroom.

## 3 Other tweaks

Whatever information your mode line might be displaying, most likely it can be turned off if you are aiming for a distraction free setup. Spacemacs provide a minor mode hidden-mode-line-mode to hide the mode line, which can be added to your org hook. Some other minor settings follow:

(setq org-startup-indented t
org-bullets-bullet-list '(" ")
org-ellipsis "  "
org-pretty-entities t
org-hide-emphasis-markers t

org-agenda-block-separator ""

Also try disabling hl-line-mode in org-mode as varying line heights make these highlights look bad. Install org-pretty-table-mode for getting beautiful table borders. Other stuff like latex (org-latex-toggle-fragment) and image previews (org-image-toggle-inline) come bundled in with org.