Alternatives for Authoring

We’re already familiar with the idea of using XML as a means of communicating data or even using it to implement simple programming or configuration languages, but we also know it’s often used for authoring documents. Today we’ll look at many technologies, past and present, that have been used to author documents.

LaTeX

Checkout this iPython Notebook for some examples of using LaTeX. LaTeX is a set of macros on top of the turing complete TeX and it can be valuable to understand how they relate. It is possible to program in plain or “core” TeX. TeX for the Impatient and TeX programming notes can give you a feel for what’s involved.

LaTeX GUIs and environments

  • BibTeX is a way of maintaining a database of sources and referencing those sources from inside a document.
  • LyX is both a GUI for and a layer on top of LaTeX, and makes it quite easy to produce beautiful documents.
  • TeXShop previews TeX documents.
  • TeXworks TeXShop inspired yet cross platform.
  • Authorea (paid) TeX IN THE CLOUD.
  • ConTeXt is another set of macros on top of tex (originally, newer versions rely on alternate tex engines) with an emphasis on the details of typesetting.
  • LuaTeX is another tex engine
  • TeXML is a sort of combination of TeX and XML that is similar to the now-defunct XSL-FO
  • LilyPond TeX for music
  • rinohtype is a LaTeX inspired approach to typesetting in a much more familar programming language.
  • Lout uses many of the same ideas and algorithms from LaTeX but provides a higher level language (on top of it’s lower level, functional language)
  • troff and now groff are much more prevalent in the man page and user doc world and are actually older than LaTeX. It seems that Knuth was at least somewhat influenced by troff.

Wiki Syntax and Markdown

The first wiki came around in 1995 and included its own text formatting rules to enable quick communication between programmers. Not only did this inspire tons of wikis and wiki software, it also inspired a lot of wiki markup like markdown and ReStructuredText. Probably the most widely used syntax these days is github flavored markdown. In the python world, sphinx is often used for authoring an is frequently published to read the docs.

It’s worthing pointing out that many of these technologies use the same techniques we’ve studied throughout the semester.

docbook

While it is based on xml docbook is worth mentioning because it is a valuable authoring tool.

pandoc

pandoc is a very intereting project that lets you convert between all types of markup by taking advantage of the tree structure that we’ve talked abot to no end throughout this course.