Skip to content

Yet More Toddler Steps With Emacs / org-mode

  • by

Still learning to walk

I am still using org-mode for organising thoughts, but now I’ve also done a few simple documents for export too. For example, I put out some monthly updates for a local volunteer group, written by someone else which I ingested via pandoc and exported to PDF and markdown (for use with WordPress). Hitherto, I had been ingesting docx, pandoc-ing to LaTeX, manually fixing bits and pieces up and rewriting things in LaTeX, like making things lists- but this was somewhat cumbersome. By using an org document as the, er, ‘master intermediary’ format, it was much quicker to work in.

I have also prepared a couple of reports, which I was previously drafting first in LaTeX, then in markdown. Here, the final output format is .docx, but reading that is not easy on the eyes as compared to a LaTeX-backed PDF. I’m not sure it’s any quicker to work in emacs/org as opposed to vim/markdown, but for now I will stick with it for the purposes of learning and keeping access to the rest of the org/emacs ecosystem (agenda etc).

On to the tips and steps!

My Table of Contents / TOC is Red?

#+LATEX_HEADER: \hypersetup{colorlinks,urlcolor=blue,linkcolor=black}

I ran into this after removing the boxed links. More of a “remember to set all the LaTeX package options” than an emacs/org tip, but other will probably run into it in this context.

Much better!

How do I include an image? And how do I resize it?

#+ATTR_LATEX: :scale 0.2
[[/path/to/image.jpg]]

Images you can set up as regular links (C-c C-l); but make sure the path is correct- export will not work unless emacs can find the target.

You can set additional options, see 13.10.6 Images in LaTeX export.

How do I include a bunch of LaTeX?

You have a couple of options. You can write plain LaTeX in an org-mode document, which gets parsed by the exporter. This seems to work okay for many things, but to me it seems… out-of-place. Like writing a mixed HTML/CSS and PHP document, although it does what you want it to (for now) it feels like the two should be separated.

That being the case I like to wrap it in a #+begin_export block, in this case #+BEGIN_EXPORT LATEX:

#+begin_export latex                                                                                                                                                                                              
\maketitle

\begin{center}                                                 
\includegraphics[scale=0.2]{./amnesty-candle-black2.jpg}\par                                                        
\vspace{1.2cm}                                                                                                      
                                                                                                                    
{\Huge\textbf{Glasgow West Amnesty International}}                                                                  
\end{center}                                                                                                        
                                                                                                                    
\tableofcontents
\vspace{0.6cm}
#+end_export

How do I use a template document?

By using #+SETUPFILE, as suggested by joon in this answer.

#+SETUPFILE: template.org

(...)

template.org:

#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper]
#+LATEX_HEADER: \usepackage{graphicx}
#+LATEX_HEADER: \usepackage{geometry}
#+LATEX_HEADER: \usepackage{lmodern}
#+LATEX_HEADER: \usepackage{amssymb,amsmath}
#+LATEX_HEADER: \usepackage{ifxetex,ifluatex}
#+LATEX_HEADER: \usepackage{afterpage}
#+LATEX_HEADER: \usepackage{tcolorbox}
#+LATEX_HEADER: \hypersetup{colorlinks,urlcolor=blue,linkcolor=black}
#+LATEX_HEADER: \setcounter{secnumdepth}{-\maxdimen} % remove section numbering
#+LATEX_HEADER: \usepackage{parskip}

Is there anything else I should know about exporting to LaTeX?

As I mentioned at the start, my needs have been relatively simple. There is a decent tutorial on the org-mode website, albeit for versions < 8.0. Much of the information I’ve found scattered across QAs is in the first few sections.

Exporting to Markdown

The markdown backend needs to be enabled: M-x customize-optionorg-export-backends → enable md (by pressing enter on checkbox, then [ Apply and Save ]. See 13.11 Markdown Export in the org manual.

From there it can be used with C-c C-e m m (command, export, markdown, to markdown file)

Thanks to Uwe Koloska for their answer over at emacs SE.

Tell us what's on your mind

Discover more from Rob's Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading