Emacs Packages

Emacs is an extremely powerful text editor, which, in addition to facilities for working with computer languages, also has unmatched facilities for working with Latex and XML documents.

The packages on this site are mainly intended to enhance the usefulness of Emacs in editing Latex and XML documents, and to make this functionality more accessible to the non-programmer.


ispell-multi.el enables Emacs to keep a number of ispell processes alive in order to spell-check text efficiently in multiple languages, and it provides a hook that tells flyspell to switch languages depending on the value of a particular text property.

It provides the infrastructure on which flyspell-xml-lang.el and flyspell-babel.el (see below) are built, and it is a prerequisite for them.


flyspell-xml-lang.el will switch the current language dictionary used by flyspell (an Emacs package that highlights misspelled words as you type) to match the language declared by the xml:lang attribute of the current XML document element. The dictionary currently in force is shown in the modeline.


flyspell-babel.el is a package that switches the language used by the flyspell spell-checker according to the Babel commands in a Latex file. It can be customized to take into account non-standard language-switching commands, and you can switch off spell-checking for languages for which you don't have a dictionary.


html-script.el is a package that helps when you are editing an (X)HTML file that contains blocks of code in another language, such as PHP, CSS, JavaScript, or Visual Basic. With one keystroke, you can narrow the buffer to a code block, and switch to the appropriate major-mode for that language, and then switch back again to editing the whole file in the original mode. It works with both Emacs' built-in html-mode and with nxml-mode. It used to work only with nxml-mode, and at that time was called nxml-script.el.


tei-html-docs-p5.el provides a function that looks up the name of the XML element before the cursor and displays the TEI P5 guidelines for that element. It can get the guidelines from the Internet, or from a local copy. It works very nicely with the emacs-w3m interface to the w3m web-browser, but if you don't have that installed, it will display the guidelines in an external web browser.


tei-html-docs-p4.el is just as above, but for the TEI P4 Guidelines.


In fold-dwim.el, DWIM stands for "do what I mean", as in the idea that one keystroke can do different things depending on the context. In this package, it means that, if the cursor is in a currently hidden folded construction, we want to show it; if it's not, we want to hide whatever fold the cursor is in.


xterm-extras.el provides some extra emacs keybindings for the escape sequences transmitted by recent versions of xterm. It will not work with the older versions of xterm that are still often found in use. An up-to-date version of xterm can be obtained from here. You will also need this Xresources file, and this .inputrc file.


html-chooser-mode.el provides a set of templates for beginning an XHTML or HTML document, and helps to decide what mode to use when opening either an existing or a new file. By default, it uses nxml-mode for XHTML and html-mode for HTML.