Kenya, Jamhuri Day

# LiterateEmacsLisp

For an explanation of literate programming, check out MeatBall:LiterateProgramming.

This is a fairly hackish technique for writing a literate .emacs file, involving two-mode-mode (see MultipleModes), which EdwardOConnor used to use (he now uses noweb).

For the top of your .tex file:

 % An elcomment is a section of text that should also be included
% in the generated elisp as a comment. The argument is an
% integer specifying how many spaces to indent the generated
\newenvironment{elcomment}[1]{}{}
% Elisp environments contain code that should appear both in the
% book and in the generated .emacs file.
\newenvironment{elisp}%
{\endgraf\noindent\verbatim}%
{\endverbatim}
% ElispTeXonly environments contain code that should appear only
% in the book.
\newenvironment{elispTeXonly}%
{\endgraf\noindent\verbatim}%
{\endverbatim}
% ElispEmacsLisponly environments contain code that should appear
% only in the generated elisp file.
\let\elispEmacsLisponly=\comment
\let\endelispEmacsLisponly=\endcomment
% For inline code that shouldn't find its way into .emacs,
% \verb|(foo bar baz)| is the way to go.

And for the file local variables section of your .tex file:

 mode: literate-emacs-lisp

You’ll also need a copy of lp-elisp.el: