|
Download (v. 0.8.5, 4 Sept. 2014, Interim Development Version) This development version includes sidestream formatting for the experimental direct rendering of GELLMU's didactic LaTeX profile with static CSS, as well as the traditional output streams for (a) print output and (b) online display in HTML with MathML.
Materials related to my talk at TUG 2014, Can LaTeX Profiles be Rendered Adequately with Static CSS
MathML Demos of past articles from The New York Journal of Mathematics made with GELLMU. (15 Oct. 2006: These were rebuilt on 27 Apr. 2011 to add an HTML output with MathML output using MathJax).
News: As of March, 2011 the current versions of the “big four” web browsers all support HTML with MathJax.
(14 Oct 2010) Video, slides, and the write-up for my talk LaTeX Profiles as Objects in the “Category” of Markup Languages on June 29, 2010 at the 32nd annual meeting of TUG in San Francisco.
(14 Oct 2009) Bleeding edge materials for making XHTML+MathML slides (rather than using PDF made with, say, “Beamer”), using W3C's slidy, with an add-on to the didactic production system. (Sorry, no docs for this yet. See the example for TUG 2007, linked below.)
(30 May 2009) For those who lack a local-platform HTML/XHTML validation set-up, the small package gvalidhtml should suffice. (Simply open the tarball in /usr/local/share and make a symbolic link from the name “validhtml” somewhere in your command path to the script named “gvalidhtml” in the untarred directory.)
(22 Jul 2007) Video, slides, and pre-meeting notes from my talk Dual Presentation with Math from one Source on July 19, 2007 at TUG 2007 in San Diego.
Latest online version of the Introductory User's Guide to Regular GELLMU:
Latest online version of the GELLMU Manual:
Author-level XML document type definition for the markup used in Regular GELLMU. It's the “side entrance” in the Regular GELLMU Flow Chart.
Understand the system by studying examples.
The latest fully tested version of the syntactic translator gellmu.el, which is all that is required for basic GELLMU.
Generalized Extensible LaTeX-Like Markup (GELLMU) is my concept for using LaTeX-like markup to create documents in an easy plain text format that may be faithfully converted to high-powered documents marked up under SGML. TeX is the classical typesetting markup language (with robust handling of mathematics) that was created by Donald E. Knuth of Stanford University around 1980. The LaTeX document preparation system was created shortly thereafter by Leslie Lamport of Digital Equipment Corporation. LaTeX is a simplified markup interface to TeX designed to let “the user concentrate on the structure of the text” rather than on typesetting. SGML, an abbreviation for Standard Generalized Markup Language (ISO 8879:1986), is the name of a family of markup languages, unspecified in number, designed for efficient automatic text processing with shared tools of a certain type.
During the period 1993-1998 the most familiar example of a markup language in the SGML family was Hypertext Markup Language (HTML), the now familiar language of the World Wide Web. HTML is a rather low-powered member of the SGML family. The notion of “power” for a language under the umbrella of SGML has to do with the number of available translations to other document languages, both within and without SGML.
One of the ideas in my design for GELLMU is that with existing stable freely available SGML tools one may go to almost any presentation format. For the community of mathematicians and scientists, who have become accustomed to using TeX to create finely typeset documents for printing, this design provides a way automatically to create other carefully crafted forms from a single source document without over-burdening Donald Knuth's program TeX.
For typeset printed presentation, SGML-based processing to the language TeX should be optimal, while SGML-based processing to Lamport (v.2) LaTeX is used in didactic examples found below. (See also “jadetex” at The Comprehensive TeX Archive Network (CTAN); brief comment on “jade” may be found below.) Most of the magic is due to Charles Goldfarb, the inventor of SGML, James Clark, the author of “nsgmls”, and David Megginson, the author of “sgmlspl”. The GELLMU to SGML transliterator that I am still writing could have been done in many languages, but ELISP, the language of GNU Emacs, probably the best-documented of all languages, and probably also the most easy-to-debug general purpose language, seemed to be just right for this. Beyond that I am grateful to Richard Stallman for encouragement and answers. Of course, when things do not work, the problems should in no way be attributed even in part to the antecedent work.
For a quick look, intended for those who know LaTeX, there is A Silly Little GELLMU Article of about three printed pages. Alongside the HTML form of this article are other versions:
its syntactic translation to an SGML document, involving only minimal knowledge of the document type.
its translation to an XML dialect, that is essentially equivalent to the source.
DVI made from the LaTeX version.
PDF made with pdflatex.
And yes, of course, both HTML versions were generated from the XML version.
Mathematical Markup Language (MathML) is a language under development by the World Wide Web Consortium (W3C) for (1) the display of mathematics in ordinary web pages and (2) automated interchange of mathematical segments among web-compatible software applications.
Corresponding to (1) and (2) above the W3C has provided presentation and content-level versions of MathML.
While MathML, which is an XML language (formally “application”), is verbose to a point that makes its writing by human authors almost impossible, the W3C project has not undertaken to provide a language suitable for authors. Moreover, one cannot robustly translate well-structured standard LaTeX or TeX math segments into MathML without the discipline of rules that are difficult both to formulate and to enforce.
The concept of generalized LaTeX in the GELLMU Project provides such discipline.
The version of “Regular” (see §4.3) GELLMU in the tarball, has, since August 2004, provided translation of generalized LaTeX source markup under the article document type to HTML with presentation-level MathML as well as translation to ordinary LaTeX.
The key question in designing a system sufficient for generation of mathematics under an umbrella like content-level MathML either using highly specialized LaTeX or using an SGML or XML language for authors is how far authors will be willing to diverge from past habits.
The Math Benchmark Document offers an example of various mathematical segments that one might want to have automatically translated to a language with relative semantics such as content-level MathML.
There is something of an explanation (now in early draft stage), familiar to many research mathematicians but perhaps not to so many computer scientists, of why most legacy TeX/LaTeX markup of mathematics is not ambiguous for robots when augmented by adequate “type” information. Legacy practice has been to include “type” information in paper documents as part of an article's descriptive text. In a few words, mathematicians are usually careful and fussy about notation. GELLMU will eventually provide for “declared symbols” and optional associated alpha-numeric “type” information. Ultimately there should emerge a public formal object, the “mathematical expression” (mathexpr) that is something like the “regular expression” (regexp) that is familiar to users of “ed”, ELISP, “Perl”, etc. One will want a separate, probably simpler syntax for the specification of the type of a mathexpr.
My philosophy, and I think the only realistic philosophy, is that such types for mathexprs should involve relative, rather than absolute, semantics.
One of the most basic types is categorical “morphism”, which is a generalization of a calculus student's notion of “function”; for much that is of interest to many, the notion of function will suffice, provided that each function symbol is understood to imply “domain” and “target” with “target” not always the same as “image” or “range”. Regardless, users may conceptualize “morphisms” as “functions”.
To summarize there are two concepts in this project.
This may be useful for some authors familiar with LaTeX who wish to write directly for an SGML or XML document type. It provides rudimentary LaTeX-like commands with single argument syntax. SGML attribute strings may be entered using a single LaTeX-like option.
It also offers a LaTeX-like meta-command \newcommand, which provides for macros with arguments. See Using the GELLMU Syntactic Translator to Write HTML. For example, the previous anchor would be marked up in HTML as
<a href="/~hammond/gellmu/ghtml.html" >Using ... <kbd>HTML</kbd></a> , |
and this is marked up somewhat more succinctly in GELLMU source as
\a[href="/~hammond/gellmu/ghtml.html" ]{Using ... \kbd{HTML}} . |
With the newcommand definition for \href
\newcommand{\href}[2]{\a[href="#1"]{#2}} |
the even more succinct markup
\href{/~hammond/gellmu/ghtml.html}{Using ... \kbd{HTML}} |
suffices.
This goes beyond basic LaTeX-like command / argument syntax to provide LaTeX-like multiple argument / option syntax and also what might be called LaTeX-like grammar including \begin{…}\end and, if desired, blank lines to initiate paragraphs.
When desired, advanced GELLMU has knowledge of a few command names, but the author must know the SGML or XML document type.
The didactic production system is a beginning at emulating LaTeX with an XML document type. In fact, LaTeX can be modeled more precisely with SGML than with XML.
The didactic production system consists of
from the SGML document type (GELLMU Syntactic Translator output) to the XML document type.
from the XML document type to HTML. For this there are two routes:
The up to date XML form of HTML extended by MathML.
Classical HTML with pseudo-TeX ASCII for math, still useful with terminal window browsers.
from the XML document type to LaTeX
There is validation of each stage of output. Indeed, validation of the GELLMU Syntactic Translator's SGML output is very useful for catching author errors. To assist with this there is line number alignment between the source and GELLMU Syntactic Translator output. If necessary1 one may intervene at any stage of the processing since the output of each stage is quite readable by humans.
The two document types are parallel; the XML version is intended to be the nearest XML approximation of the SGML version. The SGML version should be regarded as “in-house”, while the XML version is suitable for export. (Usable, though not identical, source may be recovered from the XML document type.)
The document types have been designed for translation to many output formats. I have the intention ultimately to write or find others to write translators from the XML document type to other formats.
Finally the article document type may have value as a layout vehicle that is useful as an intermediate formatting stage for structure-rich document types such as DocBook and TEI, and I would encourage those who might be so inclined to think about writing translators from such document types to GELLMU article.
All that one should need to get started is in the current tarball. One should look at the user guide, the manual, both listed as “Quick Anchors” above, and the examples. Note that the driver scripts found in the bin directory of the unpacked tarball may need editing for location names.
Note also that the tarball may be installed in a “Windows” system equipped with Cygwin, enhanced by a sufficient array of Cygwin-provided packages, using the Linux driver scripts.
In principle, it should also work on MacOS X, but I have no reports, and I have no idea what might be required to port it to earlier versions of MacOS.
Although the project was begun begun in June 1998, its alpha release was in July, 2001. It will not be considered to have reached beta stage until I have more knowledge about use experience of others.
Some older odds and ends may be found on the GELLMU veterans page, and the very old page for early preview of materials is still available.
My annotations allude, though not entirely precisely, to the article The Cathedral and the Bazaar by Eric Raymond.
In recent editions of TUG's TeXLive a convenient default interface for using TeX4ht to make classical HTML from LaTeX is the command htlatex, while the interface for making HTML with MathML is the command mzlatex. Aside from the standard TeX4ht docs, those interested in this approach might want to consult http://facweb.knowlton.ohio-state.edu/pviton/support/swphtpa4.html.
Sadly, Eitan Gurari, the author of TeX4ht, died in 2009.
It's useful for converting XML documents to TeX, LaTeX, or Context, but it's not useful for translating TeX documents to XML document types. One writes an XSL style sheet to translate an XML document type into TeXML. Another program then translates TeXML to TeX.
LaTeXML is the converter that was used in the project called arXMLiv for converting LaTeX documents at The arXiv to XML.
A 1998 variant at The Geometry Center offers the option of replacing the graphic objects with MathML objects.
This document, which is primarily a web page, is itself a regular GELLMU document (see §4.3). Versions of this document other than the HTML version include the original GELLMU source, its translation to XML (from which the HTML version is derived), the derived translation to XHTML+MathML, and the derived LaTeX source from which a device independent (DVI) file and a file in Adobe's portable document format (PDF) were compiled. The PDF copy, which was generated using the free program pdflatex, is tuned for printing on 8.5 x 11 inch paper by those who have yet to equip themselves (freely) for printing DVI.