org-special-blocks.el — turn blocks into LaTeX envs and HTML divs

Table of Contents

General

WARNING: although the general ideas described herein are still valid, the implementation has changed starting with version 8.0. In particular, the file org-special-blocks.el does not exist any longer, so you cannot load it as described below: the "Loading it" section is obsolete. Special blocks are now part of Orgmode proper.

org-special-blocks turns org blocks into LaTeX environments and HTML divs.

How to use it

Quick Example

After loading org-special-blocks, you can begin using blocks in org files. For example, let's look at Fermat's Last Theorem:

#+begin_theorem
If an integer $n$ is greater than 2, then the equation $a^n + b^n = c^n$
has no solutions in non-zero integers $a$, $b$, and $c$.
#+end_theorem
#+begin_proof
I have a truly /marvelous/ proof of this proposition that this margin is too
narrow to contain.
#+end_proof

This is exported into LaTeX as follows:

\begin{theorem}
If an integer $n$ is greater than 2, then the equation $a^n + b^n = c^n$
has no solutions in non-zero integers $a$, $b$, and $c$.
\end{theorem}
\begin{proof}
I have a truly \emph{marvelous} proof of this proposition that this
margin is too narrow to contain.
\end{proof}

Note that the standard org markup works inside the blocks. If you were to use LaTeX environments inside an org file, this would not be true. Also make sure that the name of the environment is something that LaTeX knows about – otherwise it will not be able to compile your file.

The org file can also be exported into HTML. In that case, the exported file would look something like this:

<div class="theorem">
...
</div>
<div class="proof">
...
</div>

It is up to you to make sure that the div classes are styled properly.

(OBSOLETE for org-mode versions > 8.0) Loading it (No surprises here)

The easiest way is by

M-x customize-apropos org-modules

Check the line for special-blocks. This will cause it to be loaded every time you start org-mode.

You'll still have to load it manually the first time.

Of course, you can also just try it out by loading it manually.

If you prefer to manually customize your emacs then make sure that the path to org's contrib directory is in your load-path and add the following to your .emacs.

(require 'org-special-blocks)

Credits

Chris Gray wrote org-special-blocks with the help of Carsten Dominik.

Documentation from the http://orgmode.org/worg/ website (either in its HTML format or in its Org format) is licensed under the GNU Free Documentation License version 1.3 or later. The code examples and css stylesheets are licensed under the GNU General Public License v3 or later.