\documenttype{article}
\newcommand{\urib}{http://www.albany.edu/\tld;hammond/gellmu}
\newcommand{\uribm}{/\tld;hammond/gellmu}
\newcommand{\uri8}{http://math.albany.edu/\tld;hammond/gellmu}
\newcommand{\urim}{http://math.albany.edu/math/pers/hammond}
\newcommand{\urie}{http://www.albany.edu/dept/math-stat/hammond}
% \baseloc{\urib}
\latexcommand{\bsl;tolerance=9999}
\newcommand{\gellmu}{\abbr{GELL\-MU}}
\newcommand{\gst}{\gellmu Syntactic Translator}
\newcommand{\html}{\abbr{HTML}}
\newcommand{\mml}{\abbr{MathML}}
\newcommand{\sgml}{\abbr{SGML}}
\newcommand{\txi}{\softw{Texinfo}}
\newcommand{\xml}{\abbr{XML}}
\newcommand{\href}[2]{\begin{anch}[href="#1"]{#2}\end{anch}}
\newcommand{\hrefb}[2]{\begin{anch}[href="#1"]{\bold{#2}}\end{anch}}
\surtitle{\gellmu: Introductory Survey}
\title{\gellmu\\
Introductory Survey}
\subtitle{A Bridge for Authors from \latex; to \xml}
\author{William F. Hammond}
\date{Last updated: \today}
\begin{document}
\hdr{Recent}
\begin{itemize}
\item \mml Demos of
\href{http://www.albany.edu/\tld;hammond/demos/nyj/}{past articles from
\emph{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
\href{http://www.mathjax.org/}{\softw{MathJax}}).
\item \bold{News:} As of March, 2011 the current versions of the
``big four'' web browsers all support \html with \softw{MathJax}.
\item \hrefb{\urib/tarball.html}{Download} (v. 0.8.4.1, 6 July 2007)\\
Since the version 0.8.0.5 release in October 2004,
``regular'' \gellmu has provided a reliable dual presentation route
for math articles written in \latex-like source language to (a) print
output and (b) online display in
\abbr{XHTML} extended by \href{http://www.w3.org/Math/}{Mathematical
Markup Language (\mml)}.
\item (14 Oct 2010) Video, slides, and the write-up for my talk
\hrefb{http://www.albany.edu/\tld;hammond/presentations/Tug2010/}{\latex
Profiles as Objects in the ``Category'' of Markup Languages} on June 29,
2010 at the \href{http://www.tug.org/tug2010/}{32nd annual meeting of
\abbr{TUG}} in San Francisco.
\item (14 Oct 2009) \href{\urib/gslidy.tgz}{Bleeding edge materials} for making
XHTML+MathML \bold{slides} (rather than using PDF made with, say,
``Beamer''), using W3C's \emph{slidy}, with an add-on to the didactic
production system. (Sorry, no docs for this yet. See the example
for TUG 2007, linked below.)
\item (30 May 2009) For those who lack a local-platform HTML/XHTML validation
set-up, the small package \href{\urib/gvalidhtml-0.9.tgz}{\emph{gvalidhtml}}
should suffice. (Simply open the tarball in \quostr{/usr/local/share}
and make a symbolic link from the name \qquostr{validhtml} somewhere in
your command path to the script named \qquostr{gvalidhtml} in the
untarred directory.)
\item (22 Jul 2007) Video, slides, and pre-meeting notes from my talk
\hrefb{\urim/Presen/Tug2007/}{\emph{Dual Presentation with Math
from one Source}} on July 19, 2007 at
\href{http://www.tug.org/tug2007/}{\abbr{TUG} 2007}
in San Diego.
\item \label{userdoc}Latest online version of the
\bold{\emph{Introductory User's Guide to \emph{Regular} \gellmu}}:
\begin{menu}
\item \hrefb{\urib/igl/userdoc5.html}{HTML with MathJax}
\item \hrefb{\urib/igl/userdoc.xhtml}{XHTML+MathML}
\item \hrefb{\urib/igl/userdoc.html}{terminal window HTML}
\item \bold{PDF:} formatted for \hrefb{\urib/igl/userdoc.pdf}{8.5 x 11 in.}
\item \bold{DVI:} formatted for \hrefb{\urib/igl/userdoc.dvi}{8.5 x 11 in.}
\item \hrefb{\urib/igl/userdoc.glm}{\abbr{GELLMU} source}
\end{menu}
\item \label{manual}Latest online version of the \bold{\emph{GELLMU Manual}}:
\begin{menu}
\item \hrefb{\urib/glman/glman5.html}{HTML with MathJax}
\item \hrefb{\urib/glman/glman.xhtml}{XHTML+MathML}
\item \hrefb{\urib/glman/glman.html}{terminal window HTML}
\item \bold{PDF:} formatted for \hrefb{\urib/glman/glman.pdf}{8.5 x 11 in.}
% or \hrefb{\urib/glman/glman-A4.pdf}{A4}
\item \bold{DVI:} formatted for \hrefb{\urib/glman/glman.dvi}{8.5 x 11 in.}
% or \hrefb{\urib/glman/glman-A4.dvi}{A4}
\item \hrefb{\urib/glman/glman.txt}{Plain text} (made from classical \html
using \softw{lynx})
\item \hrefb{\urib/glman/glman.glm}{\abbr{GELLMU} source}
\end{menu}
\item Author-level \href{\urib/xml/axgellmu.dtd}{XML document type
definition} for the markup used in \emph{Regular} \gellmu;.
It's the ``side entrance'' in the
\href{\urib/glman/glman.html\#flow}{Regular \gellmu Flow Chart}.
\display{\includegraphics[:scale="0.3" description="(Reduced image
of the flow chart)"]{gcompsm}}
\item Understand the system by \hrefb{\urib/examples/}{studying examples}.
\item The latest \emph{fully tested} version of the \bold{syntactic translator}
\hrefb{\urib/gellmu.el}{\quostr{gellmu.el}}, which is all that is
required for \emph{basic} \gellmu.
\end{itemize}
\tableofcontents
\section{\label{intro}Introduction}
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 \emph{\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 \quophrase{the user concentrate on the structure of
the text} rather than on typesetting. \sgml, an abbreviation for
\emph{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 \emph{Hypertext Markup Language
(\html)}, the now familiar language of the \anch[
href="http://www.w3.org/"]{World Wide Web}\anch:.
\html is a rather
low-powered member of the \sgml family. The notion of \quophrase{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 \qquostr{jadetex} at The Comprehensive \tex; Archive Network
(\abbr{CTAN});
brief comment on \qquostr{jade} may be found below.)
Most of the magic is due to Charles Goldfarb, the inventor
of \sgml, James Clark, the author of \qquostr{nsgmls}, and David
Megginson, the author of \qquostr{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.
\section{\label{demos}First Demonstrations}
For a quick look, intended for those who know \latex;, there is
\anch[href="\urib/igl/silly.html"]{\emph{A Silly Little GELLMU Article}} of
about three printed pages. Alongside the \html form of this article are
other versions:
\begin{itemize}
\item \anch[href="\urib/igl/silly.glm"]{the original \gellmu source markup}.
\item \anch[href="\urib/igl/silly.sgml"]{its syntactic translation to an
\sgml document}, involving only minimal knowledge of the document
type.
\item \anch[href="\urib/igl/silly.xml"]{its translation to an \xml dialect},
that is essentially equivalent to the source.
\item \anch[href="\urib/igl/silly.ltx"]{\latex; source that was generated
from the \xml version}
\item \anch[href="\urib/igl/silly.dvi"]{\abbr{DVI}} made from the \latex;
version.
\item \anch[href="\urib/igl/silly.pdf"]{\abbr{PDF}} made with \softw{pdflatex}.
\item \anch[href="\urib/igl/silly.xhtml"]{\abbr{XHTML+MathML}}.
\end{itemize}
And yes, of course, both \html versions were generated from the \abbr{XML}
version.
\section{\label{mathml}Can Content-Level \mml be a
Derived Format?}
Mathematical Markup Language (\mml) is a language under
development by the \anch[href="http://www.w3.org/"]{World Wide Web
Consortium (\abbr{W3C})}\anch: 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 \abbr{W3C} has provided
presentation and content-level versions of \mml.
While \mml, which is an \xml language (formally
\quophrase{application}), is verbose to a point that makes its writing
by human authors almost impossible, the \abbr{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 \mml without the discipline of rules
that are difficult both to formulate and to enforce.
The concept of \emph{generalized \latex;} in the \gellmu Project
provides such discipline.
The version of ``Regular'' (see
\anch[Href="\#reggellmu"]{\ssec\sref{reggellmu}}) \gellmu in the
\hrefb{\urib/tarball.html}{tarball}, has, since August 2004,
provided translation of generalized \latex; source markup under
the \emph{article} document type to \html with presentation-level
\mml 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 \mml 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 \anch[href="\urib/authordtd/"]{Math Benchmark Document}\anch: 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 \mml.
There is something of an explanation (now in \anch[
href="\urib/notation"]{early draft stage}\anch:), familiar to many research
mathematicians but perhaps not to so many computer scientists, of
why most legacy \tex;/\latex; markup of mathematics is \bold{not}
ambiguous for robots when augmented by adequate \quophrase{type}
information. Legacy practice has been to include \quophrase{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
\quophrase{declared symbols} and optional associated alpha-numeric
\quophrase{type} information. Ultimately there should emerge a public
formal object, the \quophrase{mathematical expression}
(\verb{mathexpr}) that is something like the \quophrase{regular
expression} (\verb{regexp}) that is familiar to users of \qquostr{ed},
ELISP, \quophrase{Perl}, etc. One will want a separate, probably
simpler syntax for the specification of the \emph{type} of a
\verb{mathexpr}.
My philosophy, and I think the only realistic philosophy, is that such
types for mathexprs should involve \emph{relative}, rather than
\emph{absolute}, semantics.
One of the most basic types is categorical \quophrase{morphism}, which
is a generalization of a calculus student's notion of
\quophrase{function}; for much that is of interest to many, the notion
of function will suffice, provided that each function symbol is
understood to imply \quophrase{domain} and \quophrase{target} with
\quophrase{target} not always the same as \quophrase{image} or
\quophrase{range}. Regardless, users may conceptualize
\quophrase{morphisms} as \quophrase{functions}.
\section{\label{briefIntro}Brief Introductions}
To summarize there are two concepts in this project.
\subsection{Basic \gellmu}
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 \emph{\bsl;newcommand},
which provides for macros with arguments. See \href{\uribm/ghtml.html}{Using
the \gst to Write \html}. For example, the previous anchor
would be marked up in \html as
\display{
\quostr{\ltc;a href="\uribm/ghtml.html"}\\
\quostr{\gtc;Using ... \ltc;kbd\gtc;HTML\ltc;/kbd\gtc;\ltc;/a\gtc;}
\ ,}
and this is marked up somewhat more succinctly in \gellmu source as
\display{
\quostr{\bsl;a\lsb;href="\uribm/ghtml.html"}\\
\quostr{\rsb;\{Using ... \bsl;kbd\{HTML\}\}}
.}
With the \emph{newcommand} definition for \emph{\bsl;href}
\display{\quostr{\bsl;newcommand\{\bsl;href\}[2]\{\bsl;a[href="\#1"]\{\#2\}\}}}
the even more succinct markup
\display{\quostr{\bsl;href\{\uribm/ghtml.html\}\{Using ... \bsl;kbd\{HTML\}\}}}
suffices.
\subsection{Advanced \gellmu}
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 \emph{\bsl;begin\{\ldots\}\bsl;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.
\subsection{\label{reggellmu}\emph{Regular} \gellmu: The Didactic
Production System}
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
\begin{Menu}
\item The \gst.
\item An \sgml document type.
\item An \xml document type.
\item The following translators, coded in Perl under David Megginson's
\softw{sgmlspl} framework:
\begin{enumerate}
\item from the \sgml document type (\gst output) to the \xml document type.
\item from the \xml document type to \html. For this there are two routes:
\begin{enumerate}
\item The up to date \xml form of \html extended by \mml.
\item Classical \html with pseudo-\tex; \abbr{ASCII} for math, still useful
with terminal window browsers.
\end{enumerate}
\item from the \xml document type to \latex;
\end{enumerate}
\end{Menu}
There is validation of each stage of output. Indeed, validation of
the \gst's \sgml output is very useful for catching author errors.
To assist with this there is line number alignment between the source
and \gst output.
If necessary\footnote{But only in very exceptional situations} 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 \quophrase{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 \emph{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 \slnt{DocBook} and \slnt{TEI},
and I would encourage those who might be so inclined to think about
writing translators from such document types to \gellmu \emph{article}.
The \anch[href="\urib/igl/iglm.xhtml"]{\emph{Brief Introduction to Regular
\gellmu}} (in \abbr{XHTML+MathML}) is itself a
\gellmu document. It deals mainly with the language. Various
other versions are also available here:
\begin{itemize}
\item \anch[href="\urib/igl/iglm.glm"]{the input source}.
\item \anch[href="\urib/igl/iglm.sgml"]{the syntactic translation
to \sgml}.
\item \anch[href="\urib/igl/iglm.xml"]{the translation to \xml}.
\item \anch[href="\urib/igl/iglm.html"]{translation to classical \abbr{HTML}}.
\item \anch[href="\urib/igl/iglm.ltx"]{the \latex; version}.
\item \anch[href="\urib/igl/iglm.dvi"]{\abbr{DVI} made from the \latex;}.
\item \anch[href="\urib/igl/iglm.pdf"]{portrait \abbr{PDF} made from
the \latex;}
\end{itemize}
\subsection{Other Production Systems}
An author may use \emph{advanced} \gellmu as a front end to many other
\sgml or \xml production systems with appropriate setting of variables
for the \gst.
\section{\label{materials}Materials}
All that one should need to get started is in the
\anch[href="\urib/tarball.html"]{current tarball}. One should
look at the \anch[iref="userdoc"]{user guide},
the \anch[iref="manual"]{manual}, both listed as ``Quick Anchors'' above,
and the \anch[href="\urib/examples/"]{examples}. Note that the driver
scripts found in the \quostr{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 \softw{Cygwin}, enhanced by a sufficient array of
\softw{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
\anch[href="\urib/veterans.html"]{veterans page}, and the very old
page for \anch[href="\urib/igl/gellmum.html"]{early preview of
materials}\anch: is still available.
\section{\label{discussion}Relevant Public Discussion and Comment}
My annotations allude, though not entirely precisely, to the article
\anch[
href="http://www.redhat.com/knowledgebase/otherwhitepapers/whitepaper\und;cathedral.html"
]{\emph{The Cathedral and the Bazaar}}\anch: by Eric Raymond.
\begin{defnlist}
\term{\anch[href="mailto:listserv@listserv.albany.edu"]{Electronic Math
Journals}\anch:}
\desc Use \quophrase{subscribe EMJ} in the BODY of a message.\brk;
There is an archive at the
\anch[href="http://listserv.albany.edu:8080/archives/emj.html"]{host
site}\anch:.\\
This is a bazaar. Sometimes technical, sometimes economic or legal,
sometimes other.
\term{\anch[href="mailto:listserv@relay.urz.uni-heidelberg.de"]{\latex;
Development}\anch:}
\desc Use \quophrase{subscribe LATEX-L} in the BODY of a message.\brk;
Archive location, if any, unknown.\brk;
Neither a bazaar, nor a cathedral. Very sophisticated and technical.
User questions are not wanted.
\term{\anch[href="mailto:www-math-request@w3.org"]{\mml and the
\html Math WG}\anch:}
\desc Make your message SUBJECT \quophrase{subscribe}. Message BODY should
be blank.\brk;
An archive will be found behind the
\anch[href="http://www.w3.org/Math/"]{W3C Math}\anch: web site.\brk;
This is a small bazaar in the nave of a cathedral. The cathedral
\quophrase{chapter} has its own private list. Many chapter members,
not all, who speak in the nave seem to feel constrained to
representation of the chapter.
\term{\anch[href="news:comp.text.sgml"]{UseNet news on \sgml}\anch: (if
you get \quophrase{news})}
\desc A bazaar with many, many important people. Sophisticated and
technical, questions about \sgml (but not \html, nor http,
nor \quophrase{the web}, ...) are usually answered well.
\term{\anch[href="news:comp.text.xml"]{UseNet news on \xml}\anch: (if you
get \quophrase{news})}
\desc A recent spin-off from the \sgml discussion. Eventually
it should operate at much higher volume than the \sgml
discussion.
\end{defnlist}
\section{\label{pointers}Pointers to a Few Related Things}
\begin{defnlist}
\term{\hrefb{\urim/Presen/tug2001/}{Slides from 2001}}
\desc A presentation given at The University of Delaware during the
2001 annual meeting of
\href{http://www.tug.org/tug2001/}{\abbr{TUG}}.
\term{\anch[href="http://www.mediawiki.org/wiki/Extension:Blahtex"
]{\emph{Blahtex}}}
\desc \emph{Blahtex} converts \latex;-like math markup to \mml
for use with \anch[href="http://en.wikipedia.org/wiki/MediaWiki"
]{\emph{MediaWiki}}, which is wiki implementation software for
\anch[href="http://en.wikipedia.org/"]{\emph{Wikipedia}}.
% The URL had been "http://meta.wikimedia.org/wiki/Blahtex"
\term{\anch[href="http://tbookdtd.sourceforge.net/"
]{\emph{TBook}}}
\desc The \emph{TBook} System for \xml Authoring by Torsten Bronger.
% \term{\anch[href="http://www.pragma-ade.com/xml.htm"
% ]{\emph{Using XML in ConTeXt}}}
% \desc An indication that ConTeXt is moving into the XML world.
\term{\anch[href="http://www.w3.org/TR/MathML/"
]{MathML, Version 2.0, Second Edition}\anch:}
\desc A W3C recommendation (October 21, 2003).
In the fall of 2009 MathML, Version 3 and the
MathML for CSS Profile became candidate recommendations
at W3C. See \urlanch{http://www.w3.org/Math/}.
\term{\anch[href="http://www.mathweb.org/omdoc/"]{OMDoc: Open
Mathematical Documents}\anch:}
\desc A content based XML markup format by Michael Kohlhase
of Universit\umlau{a}t Saarlandes and Carnegie Mellon University
for mathematics on the Internet that extends \anch[
href="http://www.openmath.org/"]{OpenMath}\anch: to the document level.
Released November 1, 2000.
\term{Daniele Giacomini's \anch[
href="http://www.archive.org/details/sgmltexi"
]{Sgmltexi}\anch:}
\desc \abbr{Sgmltexi} provided the first \sgml
model of \txi, the language of the \abbr{GNU} Documentation System.
Since its first release in the year 2000 \txi itself has incorporated
an \xml model.
\term{\anch[href="http://golem.ph.utexas.edu/\tld;distler/blog/itex2MML.html"
]{\softw{itex2MML}}}
\desc \softw{itex2MML} is the \tex-math to \mml converter that at one
time had been featured at Paul Gartside's \emph{MathZilla} site. It is
now used with Jacques Distler's very active mathematical physics blog
\href{http://golem.ph.utexas.edu/\tld;distler/blog/}{\emph{Musings}}.
% \term{Paul Gartside's MathZilla Site at Pittsburgh}
% \desc \emph{MathZilla} is a nickname for the version of
% \anch[href="http://www.mozilla.org/"]{Mozilla}\anch: with internal
% knowledge of \mml. The site at
% \display{\urlanch{http://pear.math.pitt.edu/mathzilla/}}
% has Mathzilla demonstration pages and many related items of interest.
% It is the successor to his former site at Oxford.
\term{David Carlisle's \anch[
href="http://www.dcarlisle.demon.co.uk/xmltex/"]{\quostr{xmltex}}\anch:}
\desc \quostr{xmltex} uses \softw{TeX}, the program, to parse (without
validation) an \xml document and then set it in \tex;, according
to user rules written in code for \tex;, that govern what is done for
each of the tags in the corresponding \xml document type definition.
The same items are also available at CTAN in
\qquostr{macros/xmltex}.
\term{Sebastian Rahtz's \quophrase{PassiveTeX}}
\desc Uses \tex; as a formatting back end for documents prepared under
an \xml language according to an \abbr{XSL} stylesheet. It is availabe
through \href{http://ctan.tug.org/}{\abbr{CTAN}}.
\term{\emph{TeX4ht}, \softw{htlatex}, \ldots : Work of
\anch[href="http://www.cse.ohio-state.edu/\tld;gurari/"]{Eitan Gurari}\anch:
at Ohio State University.}
\desc \hsf\brk
An important way to make
\html and \xml versions of \tex; and \latex; documents.
This is based on a C program
\anch[href="http://www.cse.ohio-state.edu/\tld;gurari/TeX4ht/mn.html"
]{\emph{TeX4ht}}, and on a related macro package for \tex;. The macro
package causes \quophrase{\tex;, the program}, to add specials to its
\abbr{DVI} output. The program TeX4ht operates on a \abbr{DVI} that
has been so prepared and makes \html or \xml. (The
\abbr{DVI} format has the abstract structure of a classical assembly
language. There are several \quophrase{special} instructions that
serve as wildcards. These \quophrase{specials} are of use only to
processors that know about them on a case-by-case basis. They
\emph{should}, in theory, be ignored by processors that do not
recognize them.)
In recent editions of \abbr{TUG}'s TeXLive a convenient default
interface for using \emph{TeX4ht} to make classical \html from \latex;
is the command \softw{htlatex}, while the interface for making \html
with \mml is the command \softw{mzlatex}. Aside from the
standard \emph{TeX4ht} docs, those interested in this approach might
want to consult
\urlanch{http://facweb.knowlton.ohio-state.edu/pviton/support/swphtpa4.html}.
Sadly, Eitan Gurari, the author of \emph{TeX4ht}, died in 2009.
\term{HyperLaTeX}
\desc An early (mid 90's) package (unfortunately not on CTAN) for
the production of \latex; and \html from a single specialized
\latex; source document.
\href{http://www.cs.uu.nl/\tld;otfried/Hyperlatex/}{Hyperlatex}
is somewhat similar to \gellmu in its use of an Emacs Lisp program for
generating \html though it seems not to provide a method for conscious
writing under other \sgml or \xml document types.
\term{\href{http://www.latex-project.org/}{The \latex;3 Project}}
\desc Information is available in the document section of the current
\latex;2E base distribution under the filename \qquostr{ltx3info.tex}
(with \abbr{DVI} and Post\-Script version nearby). On the web one may
consult the \anch[
href="http://ctan.tug.org/tex-archive/macros/latex/doc/ltx3info.pdf"
]{\abbr{PDF} version}\anch:. Plans for \sgml are mentioned in
this document. There is a mailing list on the topic of \latex;3
development at the address \verb{LATEX-L@relay.urz.uni-heidelberg.de}.
\term{\href{http://getfo.org/texml/}{TeXML}}
\desc TeXML is an \xml vocabulary for describing \tex;
syntax that has evolved from
\href{http://www.alphaworks.ibm.com/formula/texml}{Doug Lovell's TeXML},
which became available in the late 1990s.
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;.
\term{Bruce Miller's \href{http://dlmf.nist.gov/LaTeXML/}{LaTeXML}}
\desc \softw{LaTeXML} is a Perl program for converting \latex documents
to the \softw{LaTeXML} \xml document type. A separate program is provided
for translating the \softw{LaTeXML} \xml document type to XHTML+MathML.
While \softw{LaTeXML} tries to mimic the actions of \latex, the program,
in typesetting \latex documents as \abbr{DVI} or \abbr{PDF}, it does not
employ a \tex; engine.
\softw{LaTeXML} is the converter that was used in the project
called \href{http://kwarc.info/projects/arXMLiv/}{\emph{arXMLiv}}
for converting \latex documents at
\href{http://www.arxiv.org}{The arXiv} to \xml.
\term{Smart Documents.}
\desc There are various forms of \quophrase{smartness}. \sgml
will provide easily for all of them. See Richard Fateman's material
on \anch[href="http://http.cs.berkeley.edu/\tld;fateman/MVSD.html"
]{\emph{More Versatile Scientific Documents ...}}\anch:.
\term{Linux Documentation.}
\desc The \quophrase{How To} documents for Linux systems are based
on an \sgml language with ancestry in the \latex;-like language
of the \abbr{QWERTZ} document formatting system from the University of
Exeter (U.K.) in the early 1990's.
The \anch[href="http://sgmltools-lite.sourceforge.net/"]{SGMLtools-Lite
Project}\anch: is a recent effort to bring Linux documents under
the \anch[href="http://www.oasis-open.org/docbook/"]{DocBook}\anch:
language.
\term{Luc Maranget's \softw{Hevea}}
\desc \anch[href="http://cristal.inria.fr/\tld;maranget/hevea/"
]{\softw{Hevea}} is a \latex; to \abbr{HTML} translator, said
to produce correct \abbr{HTML} 4.0.
\term{\softw{Latex2html} and \softw{Latex2html}-with-MathML.}
\desc \hsf\brk
The familiar Perl package \anch[
href="http://www.ctan.org/tex-archive/support/latex2html/"
]{\softw{latex2html}}\anch: gained popularity in math departments
during the early days of the web not only by translating the \latex;
commands that could be marked up into \html but also by
automatically putting out mathematics in graphic objects housed in
\verb{"\ltc;img\gtc;"} tags; the graphics were created with
subprocesses that used \tex;, \softw{dvips}, and some
\softw{netpbm} utilities. Many features have been added.
A 1998
\anch[href="http://www.geom.umn.edu/\tld;ross/webtex/webtex/"]{variant}\anch:
at The Geometry Center offers the option of replacing the graphic objects
with \anch[href="http://www.w3.org/Math/"]{\mml}\anch: objects.
\term{The philosophy of \anch[
href="http://math.albany.edu/math/pers/hammond/unixphil.html"
]{Kernighan and Pike}\anch:.}
\desc If you have never looked at their classic 1984 book, here are a
few quoted paragraphs. Don't let their use of a trademark get in your
way.
\end{defnlist}
\section{\label{aboutThis}About this Document}
This document, which is primarily a web page, is itself a \emph{regular}
\gellmu document (see
\anch[Href="\#reggellmu"]{\ssec\sref{reggellmu}}).
Versions of this document other than the \html version include the original
\anch[href="\urib/igl/igl.glm"]{\gellmu source}, its
\anch[href="\urib/igl/igl.xml"]{translation to \xml} (from which the
HTML version is derived), the derived
\href{\urib/igl/igl.xhtml}{translation to XHTML+MathML}, and the derived
\anch[href="\urib/igl/igl.ltx"]{\latex source} from which a
\anch[href="\urib/igl/igl.dvi"]{device independent (DVI)} file
and a file in
\anch[href="\urib/igl/igl.pdf"]{Adobe's portable document format (PDF)}
were compiled.
The PDF copy, which was generated using the free program
\softw{pdflatex}, is tuned for printing on 8.5 x 11 inch paper by those
who have yet to equip themselves (freely) for printing DVI.
\end{document}