- publishing free software manuals
The Org Mode 7 Reference Manual
by Carsten Dominik and others
Paperback (6"x9"), 282 pages
ISBN 9781906966089
RRP £9.95 ($14.95)

Sales of this book support the Org project! Get a printed copy>>>

11.3 Literal examples

You can include literal examples that should not be subjected to markup. Such examples will be typeset in monospace, so this is well suited for source code and similar examples.

Some example from a text file.

Note that such blocks may be indented in order to align nicely with indented text and in particular with plain list structure (see section 2.7 Plain lists). For simplicity when using small examples, you can also start the example lines with a colon followed by a space. There may also be additional whitespace before the colon:

Here is an example
   : Some example from a text file.

If the example is source code from a programming language, or any other text that can be marked up by font-lock in Emacs, you can ask for the example to look like the fontified Emacs buffer.(94) This is done with the ‘src’ block, where you also need to specify the name of the major mode that should be used to fontify the example:

#+BEGIN_SRC emacs-lisp
  (defun org-xor (a b)
     "Exclusive or."
     (if a (not b) b))

Both in example and in src snippets, you can add a -n switch to the end of the BEGIN line, to get the lines of the example numbered. If you use a +n switch, the numbering from the previous numbered snippet will be continued in the current one. In literal examples, Org will interpret strings like ‘(ref:name)’ as labels, and use them as targets for special hyperlinks like [[(name)]] (i.e. the reference name enclosed in single parenthesis). In HTML, hovering the mouse over such a link will remote-highlight the corresponding code line, which is kind of cool.

You can also add a -r switch which removes the labels from the source code.(95) With the -n switch, links to these references will be labeled by the line numbers from the code listing, otherwise links will use the labels with no parentheses. Here is an example:

#+BEGIN_SRC emacs-lisp -n -r
(save-excursion                  (ref:sc)
   (goto-char (point-min))       (ref:jump)
In line [[(sc)]] we remember the current position.
[[(jump)][Line (jump)]] jumps to point-min.

If the syntax for the label format conflicts with the language syntax, use a -l switch to change the format, for example ‘#+BEGIN_SRC pascal -n -r -l "((%s))"’. See also the variable org-coderef-label-format.

HTML export also allows examples to be published as text areas, See section 12.5.7 Text areas in HTML export.

C-c '
Edit the source code example at point in its native mode. This works by switching to a temporary buffer with the source code. You need to exit by pressing C-c ' again.(96) The edited version will then replace the old version in the Org buffer. Fixed-width regions (where each line starts with a colon followed by a space) will be edited using artist-mode(97) to allow creating ASCII drawings easily. Using this command in an empty line will create a new fixed-width region.
C-c l
Calling org-store-link while editing a source code example in a temporary buffer created with C-c ' will prompt for a label. Make sure that it is unique in the current buffer, and insert it with the proper formatting like ‘(ref:label)’ at the end of the current line. Then the label is stored as a link ‘(label)’, for retrieval with C-c C-l.
ISBN 9781906966089The Org Mode 7 Reference ManualSee the print edition