LaTeX Profiles as Objects in the Category of Markup Languages

William F. Hammond

Dept. of Mathematics & Statistics
University at Albany
Albany, New York 12222 (USA)
http://www.albany.edu/~hammond/

TeX User Group (TUG)
San Francisco, June 2010

1.  Translation of LaTeX

Question:
What works well with translation software?
Answer:
Profiled usage of LaTeX.
  • Carefully limited command vocabulary.

  • Tuned translation software.

2.  Today's Suggestion

 
 

formalize profiled usage

 
 

3.  The Notion of LaTeX Profile

  • A dialect of LaTeX with a fixed command vocabulary where all macro expansions must be effective in that vocabulary.

  • A language essentially equivalent to an SGML document type with a canonical XML shadow.

4.  A Simple Example

of a document under a LaTeX profile

\documenttype{article}
\surtitle{LaTeX Profiles}
\title{\latex profiles: An Example}
\begin{document}
 
Classical \latex can be very hard to translate, but
\latex profiles are straightforward to translate.
 
It's easier to learn to write in a \latex profile than to
learn to write \latex.
 
\bold{Gratuitous Mathematical Content:}
The numbers $\pi$, $i = \sqrt{-1}$, and $e = \func{exp}(1)$ are
related by the equation
\[ e^{i\pi} = -1 \ . \]
\end{document}

5.  Generalized LaTeX

A TeX Catalogue Entry from 2001

not under a LaTeX profile

\begin{entry}[
  id="gellmu"
  datestamp="2001/07/30"
  modifier="hammond@math.albany.edu"
]
\begin{about}
\name{gellmu}
\caption{LaTeX-like markup for writing XML documents}
\author{\name{William F. Hammond}\email{hammond@math.albany.edu}}
\license[type="gpl"];
\version{\number{0.7.4}\released{2001/07/26}}
\end{about}
\begin{description}
\begin{abstract}
 . . .
\end{abstract}
\end{description}
\distribution{\ctan{support/gellmu}}
\end{entry}

6.  Notion of Category

  • A category consists of:

    1. Objects

    2. Arrows between objects

  • Rule: An arrow followed by a second is also an arrow

  • Relevance: to suggest a way of thinking about markup

  • (No plans for actually using category theory)

7.  The Category of Markup Languages

  • Markup languages are the objects

  • Translations are the arrows

8.  Classical LaTeX: an object in the category

(to the extent that classical LaTeX
is a well-defined language)

  • LaTeX is a reasonable translation target (for author-level markup languages).

  • LaTeX is a poor domain for translation to languages other than printer languages.

9.  Texinfo: an object in the category

  • The language of the GNU Documentation System.

  • A good domain for translation.

  • Essentially equivalent to an author-level XML document type — an historical accident

  • No provision for author-level math.

10.  SGML & XML

  • SGML is a subcategory of the category of all markup languages

  • XML is a subcategory of SGML

  • XML is SGML made suitable for the World Wide Web

11.  Good domains for translation

  • Author-level SGML and XML document types are, by design, good domains for translation, i.e., arrows can flow from these document types.

  • Arrows can be “chained”; these pipelines work well.

12.  The LaTeX Project

  • Sponsor one or more reference profiles

  • Sponsor translations from reference profiles to

    1. DVI and PDF
    2. HTML (including math)

13.  Publishing

  • Encourage maintainers of XML document types to reach HTML and PDF by translating first to reference LaTeX profiles

  • Encourage authors to submit articles to journals as LaTeX instances under reference profiles.

14.  The GELLMU Project

  • Demonstrates that these ideas are not vaporous

  • The GELLMU didactic document type may be viewed as a LaTeX profile that can serve as a base for constructing reference profiles

15.  These Slides

  • HTML with Math

  • Written in the GELLMU didactic document type albeit with slides in mind

  • Generated from the XML document type with a special translator for making HTML slides

  • Gratuitous Math: 0txetdtt=1xk=11+1kx1+xk

16.  Acknowledgement

The XHTML + MathML version of these slides uses W3C's Slidy by Dave Raggett, a JavaScript/CSS package for sizing and flow control of an HTML or XHTML slide show.
(The slides were generated in a non-standard fashion from GELLMU source.)