% Use gellmu-latex-faq \documenttype{article} \newcommand{\gpref}[1]{% \anch[Href="http://math.albany.edu:8000/\tld;hammond/gellmu/#1"% ]{\path{#1}}% } \newcommand{\Href}[2][http://www.w3.org/]{\anch[Href="#1"]{#2}} \newcommand{\href}[2][http://www.w3.org/]{\anch[href="#1"]{#2}} \newcommand{\slide}[3][]{% \section[][\label[:series="SiL"]{#1}]{#2}#3} \newcommand{\w3ref}[2][]{\anch[Href="http://www.w3.org/#1"]{#2}} \newcommand{\cta}{http://ctan.tug.org/tex-archive/} \newcommand{\ctan}{\abbr{CTAN}} \newcommand{\gellmu}{\abbr{GELLMU}} \newcommand{\html}{\abbr{HTML}} \newcommand{\sgml}{\abbr{SGML}} \newcommand{\Transform}{$\longrightarrow$} \newcommand{\transform}{$\rightarrow$} \newcommand{\xhtml}{\abbr{XHTML}} \newcommand{\xml}{\abbr{XML}} \surtitle{Univ at Albany: W. F. Hammond: Presentations} % baseloc should be a pseudo-directory URI, NOT terminated by "/" \baseloc{http://math.albany.edu:8000/math/pers/hammond/Presen/tug2001} \title{GELLMU} \subtitle{A Bridge from \latex; to \xml} \author{William F. Hammond} \address{ University at Albany\\ Albany, New York (USA)\\ \urlanch{http://www.albany.edu/\tld;hammond}\\ CTAN: \Href{http://www.tex.ac.uk/tex-archive/support/gellmu}{support/gellmu} } \date{TUG 2001, August, 2001} \nobanner \nogratlinks \latexcommand{\bsl;setlength\{\bsl;parindent\}\{0bp\}} \begin{document} \slide{Single Source Authoring}{ \subhdr{Situation Wanted} \begin{Menu} \item Write a single source file to produce: \begin{itemize} \item Finely Typeset Print \item Consistent, Valid \html \end{itemize} \item and to benefit from: \begin{itemize} \item No Need for Intervention Beyond Source \item The Possibility of Other Translations \end{itemize} \end{Menu} } \slide{Translating \latex;}{ \begin{itemize} \item Almost Impossible \item Good Structure a Help \item May Require Human Intervention \item Need to Proof Read Twice \end{itemize} } \slide{Translating \html}{ \begin{itemize} \item Reliable \item But: \begin{enumerate} \item No Math in \html \item \html Generally Less Rich Than \latex; \item Nuisances: |#|\ |$|\ |%|\ |&|\ |~|\ |_|\ |^|\ |\|\ |{|\ |}| |<| |>| \end{enumerate} \end{itemize} } \slide{Pie in the Sky}{ \begin{Menu} \item A Dialect of classical \latex; that is \begin{itemize} \item{Translatable} \item{Rich} \item{Agreed Upon} \end{itemize} \end{Menu} } \slide{\xml}{ \hdr{\w3ref{XML/}{eXtensible Markup Language}} \begin{itemize} \item Data Under a Template for Translation \item Originated by \begin{menu} \item \w3ref{World Wide Web Consortium (\abbr{W3C})} \item \Href{http://www.sun.com/}{Sun Microsystems} \end{menu} \item Universal Exchange \end{itemize} } \slide{\xml}{ \begin{itemize} \item Many Templates \item Synonym for \xml Template: \menu{\item \emph{Document Type}} \item Two worlds \begin{enumerate} \item Classical Documents: \\ Examples: \html, \softw{Docbook}, \abbr{TEI}, \ldots \item Electronic Data Interchange (\abbr{EDI}) \\ Example: Graham William's \tex; Catalogue found on \abbr{CTAN} \\ \Href{\cta;help/Catalogue/catalogue.html}{\path{help/Catalogue/catalogue.html}} \end{enumerate} \end{itemize} } \slide{\gellmu}{ \display{\bold{G}eneralized \bold{E}xtensible \latex;-\bold{L}ike \bold{M}ark\bold{U}p} \begin{itemize} \item A markup interface for writing (\sgml or) \xml. \item \latex;-like notation more succinct than that of \xml. \item Extensible using \gellmu's \emph{\bsl;newcommand} with arguments. (\sgml has no analogue of macros with arguments.) \item Other \emph{metacommand} facilities including: \\ (1) \ \emph{\bsl;documenttype} \ \ \ (2) \ \emph{\bsl;macro} \end{itemize} } \slide{Modes}{ \begin{enumerate} \item Basic \item Advanced \begin{enumerate} \item{Regular} \item{Other (less fully developed)} \end{enumerate} \end{enumerate} } \slide{Basic \gellmu for \xhtml}{ \display{\begin{tabular}{llc} \bold{Source} & \bold{Derived XML} & \bold{Presentation} \\ |\em{bird}| & |bird| & \emph{bird} \\ |\b{cat}| & |cat| & \bold{cat} \\ |\kbd{dog}| & |dog| & \quostr{dog} \\ |\hr;| & |
| & (horizontal rule) \end{tabular}} } \slide{The Syntatic Translator}{ \display{ source markup\ \ \Transform\ \ \xml or \sgml } \display{ \begin{tabular}{rcl} |\foo{ ... }| & \transform & | . . . | \\ |\foo;| & \transform & || \\ |\foo| & \transform & || \\ |\foo:| & \transform & || \\ |\foo[a="x" ...]| & \transform & || \end{tabular} }} \slide{Syntactic Differences from \latex;}{ \begin{itemize} \item Command names (element names) may contain numbers. \item Example: |\frac23| is a command name. \item Arguments must be delimited with braces or brackets. \item No white space between command name and first argument delimiter. \item No white space between delimiters of successive arguments. \item Bracketed arguments may not be optional. \end{itemize} } \slide{Syntax in Basic Mode}{ \display{\bold{Miscellaneous Rules}} \begin{Menu} \item Brackets are only for attribute specifications. \item Unescaped loose braces are insignificant. \end{Menu} \display{\bold{Escaping in Basic Mode}} \par{ \begin{tableb}{\vbr;r\vbr;c\vbr;c\vbr;c\vbr;c\vbr;c\vbr;} \tr \td \bold{Special character} \td |%| \td |\| \td |{| \td |}| \td |#| \tr \td \bold{Escaped form} \td |\%|\td |\\|\td |\{|\td |\}|\td |\#| \end{tableb} }} \slide{Basic \gellmu for \xhtml}{ \display{\bold{Anchors}} Write: \begin{verbatim} the WWW \a[href="http://www.w3.org/" ]{Consortium} site \end{verbatim} for generating the \xml: \begin{verbatim} the WWW Consortium site \end{verbatim} to produce: \display{ the WWW \anch[href="http://www.w3.org/" ]{Consortium} site} } \slide{\bsl;newcommand with \xhtml}{ \begin{Menu} \item \bold{Definitions} % These newcommands are just verbatim here; "\emph" is itself in this % document, and "\w3ref" uses "\anch" (for GELLMU) rather than "\a". \begin{verbatim} \newcommand{\emph}[1]{\em{#1}} \newcommand{\w3ref}[2][]{% \a[href="http://www.w3.org/#1"]{#2}} \end{verbatim} \item \bold{Invocations} \brk; % This is verbatim HTML markup \begin{verbatim} Using GELLMU's \emph{newcommand} one can reduce the markup required for an anchor to \w3ref{W3C}'s \w3ref{Math/}{MathML} site. \end{verbatim} \item \bold{Rendering}: % This is GELLMU markup Using GELLMU's \emph{newcommand} one can reduce the markup required for an anchor to \w3ref{W3C}'s \w3ref{Math/}{MathML} site. \end{Menu} } \slide{A \ctan Catalogue Entry}{ \parb \latexcommand{\bsl;tiny} \begin{verbatim} \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} \end{verbatim} } \slide{ \ctan Catalogue \xml}{ \parb \latexcommand{\bsl;tiny} \begin{verbatim} gellmu LaTeX-like markup for writing XML documents William F. Hammond hammond@math.albany.edu 0.7.4 2001/07/26 . . . support/gellmu \end{verbatim} } \slide{Advanced \gellmu}{ \begin{itemize} \item Multiple Argument/Option Syntax \\ Example instance: |\frac{2}{3}| for $\frac{2}{3}$ \bold{if} the name \emph{frac} is provided as an element with two required sub-elements in the document type. \item Various Short Reference Features \\ Example: The use of blank lines, as appropriate in context, for new paragraphs \bold{if} provided. \item Concept of \emph{advanced} \gellmu is not fully developed. \item Main Instance: \bold{Regular \gellmu}, represented by \gellmu's own didactic \emph{article} document type. \end{itemize} } \slide{Why is \emph{article} \quophrase{Didactic}?}{ \begin{itemize} \item Intended as a first \xml document type for \latex; authors \item Sits in the middle between \begin{enumerate} \item What \latex; authors are accustomed to. \item What high end \xml people think is needed. \end{enumerate} \item Room to adjust and expand. \end{itemize} } \slide{Advanced \gellmu for \emph{article}}{ \parb \latexcommand{\bsl;footnotesize} \begin{display} \begin{tabular}{llc} \latexcommand{\bsl;small} \bold{Source} & \bold{Derived XML} & \bold{Presentation} \\ |\emph{bird}| & |bird| & \emph{bird} \\ |\latex;| & || & \latex; \\ |\frac{2}{3}| & |2| & $\frac{2}{3}$ \\ | | & | 3| & \\ |\label[:| & || \end{tabular} \end{display} } \slide{Gamma Function: Its Weierstrass Product}{ \[ \int_{0}^{\infty} t^x e^{-t} \frac{d t}{t} \int: = \frac{1}{x} \prod_{k=1}^{\infty}\frac{\bal{1 + \frac{1}{k}}^x}{\bal{1 + \frac{x}{k}}} \prod: \] } \slide{Markup for the Gamma Identity}{ \hdr{\label{gamma-src}Regular \gellmu source for the identity:} \begin{verbatim} \[ \int_{0}^{\infty} t^x e^{-t} \frac{d t}{t} \int: = \frac{1}{x} \prod_{k=1}^{\infty} \frac{ \bal{1 + \frac{1}{k}}^x }{ \bal{1 + \frac{x}{k}} } \prod: \] \end{verbatim} } \slide{Gamma: Derived \xml Markup}{ \latexcommand{\bsl;small} \begin{verbatim} 0 tx et d t t 1x k1 1 1 k x 1 x k \end{verbatim} } \slide{Gamma: in \abbr{MathML}}{ \display{\latexcommand{\bsl;small}(not by automatic translation)} \latexcommand{\bsl;tiny} \begin{verbatim} 0 t x e -t dt t = 1 x k=1 1+ 1k x 1+ xk \end{verbatim} } \slide{Viewing MathML}{ \par{ Viewing support for \abbr{MathML} in web pages is not yet widely available. The above item can be rendered by: \begin{itemize} \item \w3ref{W3C}'s \w3ref{Amaya}{\softw{Amaya}}: \gpref{wprod.html} or \gpref{wprod.xml}. \item \Href{http://www.mozilla.org/releases/}{\softw{Mozilla}}\apos;s \abbr{MathML} development track: \gpref{wprod.xml} (only). \item With special plugin for \softw{MSIE}: \gpref{wprod.html} (only). \end{itemize} }} \slide{Generating MathML from \emph{article}}{ \begin{itemize} \item Ad hoc \path{wprod.html} was made from \gellmu source:\\ \gpref{wprod.glm}. \item The short \anch[iref="gamma-src"]{\emph{article} form} (slide \sref{gamma-src}) of \gellmu source above \emph{could} be given automatic translation to \abbr{MathML}. \item An automatic translation should go through \emph{content} \abbr{MathML} and from there to \emph{presentation} \abbr{MathML}. \item An automatic translation would not be under the umbrella of general \xml processing. \end{itemize} } \slide{Reliable Generation of MathML}{ \par{Reliable translation will require: \begin{Menu} \item A substantial non-\xml, but \xml-aware, parsing of all math zones in a \gellmu source document. \item Occasional math parsing hints from authors in their markup. \item Desirable, sometimes required: \begin{enumerate} \item Source markup labeling of math symbols. \item Source markup typing of math symbols. \end{enumerate} \end{Menu} }} \slide{MathML Generation Issues}{ \begin{itemize} \item Will authors cooperate? \item Will \bold{standard} web user agents cooperate? \end{itemize} } \slide{How Were These Slides Made?}{ There were two sets of slides and, correspondingly, two formatters, one for \Href{slidegart.pl}{transparencies} formatted by the regular program \softw{latex} and the other for \Href{pp4gart.pl}{PP4/PDF web slides} formatted by the program \softw{pdflatex} using a number of packages including \softw{ppower4} by Klaus Guntermann of Darmstadt University of Technology. Actually I used a small modification of \qquostr{pp4slide.sty} named \urlanch{gpp4slide.sty} to make things work with the standard \softw{slides} document class. Both of these work with \gellmu \emph{article}, and there are slightly different definitions of \emph{slide} with \emph{newcommand} in the two. } \end{document}