%!latex-faq
% latex-faq is a special function call for the syntactic translator
% that provides features convenient for technical documentation
\documenttype{article}
\newcommand{\ascii}{\abbr{ASCII}}
\newcommand{\css}{\abbr{CSS}}
\newcommand{\ctan}{\abbr{CTAN}}
\newcommand{\gellmu}{\abbr{GELLMU}}
\newcommand{\gnu}{\abbr{GNU}}
\newcommand{\glman}{\href{glman.html}{Manual}}
\newcommand{\glmanref}[1]{%
\Href{glman.html\hsh;#1}{Manual, key \qquostr{#1}}}
\newcommand{\glmanrefk}[1]{%
\Href{glman.html\hsh;#1}{key \qquostr{#1}}}
\newcommand{\Gweb}{\Href{\uriw/}{\gellmu web site}}
\newcommand{\gweb}{\href{\uriw/}{\gellmu web site}}
\newcommand{\html}{\abbr{HTML}}
\newcommand{\mathml}{\abbr{MathML}}
\newcommand{\dvi}{\abbr{DVI}}
\newcommand{\pdf}{\abbr{PDF}}
\newcommand{\sgml}{\abbr{SGML}}
\newcommand{\mxhtml}{\abbr{XHTML}+\abbr{MathML}}
\newcommand{\xhtml}{\abbr{XHTML}}
\newcommand{\xml}{\abbr{XML}}
\newcommand{\uriw}{http://www.albany.edu/\tld;hammond/gellmu}
\newcommand{\href}[2]{\anch[href="#1"]{#2}}
\newcommand{\Href}[2]{\anch[Href="#1"]{#2}}
\newcommand{\bo}[1]{\text{#1:}~\begin{#1}\end{#1}\quad}
\newcommand{\ra}{\rightarrow}
\newcommand{\da}{\downarrow}
\newcommand{\hang}[1]{\begin{menu}\item{#1}\end{menu}}
\newcommand{\iref}[2]{\anch[iref="#1"]{#2}}
\surtitle{GELLMU: Introductory User's Guide}
\title{Introductory User's Guide to \emph{Regular} \gellmu}
\subtitle{Version 0.8.4 release, July~2007}
\author{William F. Hammond}
\address{Dept. of Mathematics \& Statistics \\
University at Albany \\
Albany, New York 12222 (USA)}
\date{last corrections: \today}
\begin{document}
\tableofcontents
\section[][\label{intro}]{Introduction}
Regular \gellmu is the part of the \gellmu Project under which
source language markup most closely resembles actual \latex; source
markup. Much of the markup vocabulary is the same as that of
actual \latex;. The differences --- and, indeed, the whole reason
for the \gellmu Project --- arises from the author's conclusion in
1998 that it would not be possible in a robust way to write rules
for actual \latex; source markup so that the collection of documents
in the \emph{article} document class prepared under such rules would
admit fully reliable automatic translation to other formats\footnote{
This should not be construed to mean, however, that standard \latex;
processing could not incorporate this type of source markup at some
time in the future.
}.
The version 0.8 release of the \gellmu Project was the first
release providing an output stream for the \xml form of \html extended
by the World Wide Web Consortium's
\href{http://www.w3.org/Math/}{Mathematical Markup Language (\mathml)}.
The driver script \path{mmkg} provides translations of regular \gellmu
articles to (1) actual \latex; (and from there to \dvi and
\pdf), (2) classic \html, and (3) \mxhtml, while the driver
script \path{mkg} omits \mxhtml. Though the
\pdf output may be read on a screen, it is intended primarily
for printing by end consumers.
While one could provide a landscape version of the \pdf output with
live anchors for screen consumption, the \mxhtml version
would still be superior for screen reading since, as with ordinary
\html, the text is re-formatted to conform naturally both to
magnification and window-resizing actions by the end user. The
quality of the rendering of mathematics in the \mxhtml
version is very nearly as good as that in the \pdf version.
Indeed the author, as an author, finds that the best venue for proof
reading what he writes is \mxhtml when displayed in a suitable web
browser\footnote{The author prefers the freely available cross-platform
browser \softw{Firefox} (\urlanch{http://www.mozilla.com/}) from the
\softw{Mozilla} Project.
}
with larger than normal font size and narrower than normal
line length.
Moreover, the \mxhtml version is fully compliant with the
\href{http://www.w3.org/WAI/}{Accessibility Guidelines} of the
\href{http://www.w3.org/}{World Wide Web Consortium}.
This document is an introductory user guide. The relation of regular
\gellmu to the \gellmu Project overall is explained in the \glman, and
advanced user information on regular \gellmu is found there as well.
This document covers fundamentals not mentioned in the manual. It is
available in \href{userdoc.pdf}{\pdf}, \href{userdoc.xhtml}{\mxhtml},
and \href{userdoc.html}{classical \html} versions. Online copies of
this Introductory Guide and of the Manual may be found at
\href{http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/gellmu.html
}{\ctan} and the \gweb.
To use this document as an example for learning refer to its
\href{userdoc.glm}{source markup} and to use the project manual
as an example refer to the
\Href{glman.glm}{manual's source markup}.
\section[][\label{firststeps}]{First Steps}
\subsection{Acquiring and Installing}
\gellmu is implemented as cross-platform free software licensed under
the \gnu \href{http://www.gnu.org/copyleft/}{General Public
License}. Its package is available from the
\href{http://www.ctan.org}{Comprehensive TeX Archive Network} (\ctan)
and from the \Gweb.
The package requires a number of other cross-platform free software
packages including \gnu Emacs, \softw{Perl}, and some standard items of
\sgml/\xml software, chiefly \softw{Open SP}. Locations may be
found in the \glmanref{requiredsoftware}.
\bold{Linux:} The required packages are generally part of a full
\gnu/\softw{Linux} distribution. The package should be installed in
\path{/usr/local/gellmu} and symlinks to driver scripts should be
made from a suitable place in one's command path.
\bold{MacOS-X and other Unix variants:} The only difference from
\gnu/\softw{Linux} is that some of the supporting packages may need
to be acquired and installed.
\bold{MS Windows:} The best strategy is to acquire and install a
\bold{full} \href{http://www.cygwin.com/}{\softw{Cygwin}} distribution.
Then proceed as with \softw{Linux}.
Additional information may be found in the \glman.
\subsection{Writing an Article}
The minimal form of a regular \gellmu article is this:
\begin{verbatim}
\documenttype{article}
\title{Some title}
\begin{document}
First Paragraph.
Second Paragraph.
. . .
\end{document}
\end{verbatim}
An article must begin with |\documenttype{article}|. The initial
part of an article up to the required |\begin{document}| is the
article's \emph{preamble}, and the rest of the article is the
article's \emph{body}.
Almost everything in the \emph{body} of an article must be part of
a paragraph. Most typically a paragraph is begun with a blank line.
Paragraphs themselves may be parts of sectional units.
Beware special characters. For example \quochar{\%} converts the rest
of its line to comment status. To use \quochar{\%} in text write
\qquostr{\bsl;\%}. The special characters are with small exceptions
the same as those in \latex;. Note, however, that in dealing with
multiple downstream formats any character that is not alpha-numeric
becomes potentially special. Therefore, there is a named form for
every non-alphanumeric \ascii character. For example,
\qquostr{\bsl;tld;} is the name of \ascii \quochar{\tld;},
which is sometimes handy when forming a \abbr{URL}.\footnote{In
\gellmu source, as in \latex; source \quochar{\tld;} is markup for
``non-breaking space''. Note further that \ascii tilde
\qquostr{\bsl;tld;} should not be confused with either the accent
command \qquostr{\bsl;tilde} or the math command \qquostr{\bsl;sim}
(rendered as $\sim;$) that is typically used for mathematical
operators.}
The names of special characters may be found by browsing the \abbr{SGML}
document type definition in the file \path{gellmu.dtd} at the top of
the distribution tree.\footnote{The SGML document type definition is
more elaborately commented than its XML mirror found in the file
\path{xml/xgellmu.dtd}.}
\section[][\label{sentences}]{Basic Markup Within Sentences}
Although there is no markup for a sentence as a unit, there is markup
for the end of a sentence or a ``full stop''. The normal way to
indicate the end of a sentence is to use an \abbr{ASCII} period
\quochar{.} followed by either a newline or two or more blank spaces.
An end of sentence is marked up as the \sgml empty element \emph{eos}.
This is automatically generated under the condition indicated above.
For most purposes it will not matter if an \ascii period is followed
by only a single blank space, but in that case no \emph{eos} will be
generated.
The foregoing paragraph provides several instances of markup within
sentences other than \emph{eos}. There are (1) a quoted phrase,
(2) two abbreviations, (3) a quoted character, and (4) two instances
of emphasized text. The source for that paragraph is:
\begin{verbatim}
Although there is no markup for a sentence as a unit, there is markup
for the end of a sentence or a ``full stop''. The normal way to
indicate the end of a sentence is to use an \abbr{ASCII} period
\quochar{.} followed by either a newline or two or more blank spaces.
An end of sentence is marked up as the \sgml empty element \emph{eos}.
This is automatically generated under the condition indicated above.
For most purposes it will not matter if an \ascii period is followed
by only a single blank space, but in that case no \emph{eos} will be
generated.
\end{verbatim}
The |``full stop''| is a marked up quoted phrase. The named form of a
quoted phrase is \emph{quophrase}. The markup |\quophrase{full stop}|
is the equivalent expanded form. An abbreviation is indicated with the
command \emph{abbr}. There is, of course, no requirement that an
abbreviation be marked up; it is merely good practice.
The name of markup for emphasized text is \emph{emph}. A common
alternate form of emphasis is called \emph{bold}. One way the two
differ is that \emph{emph} has order two effect, i.e., \emph{emph}
within \emph{emph} removes emphasis while \emph{bold} is not permitted
within itself. Note that \emph{\bold{bold}} may be emphasized.
In the cited marked up text above the instances |\sgml| and |\ascii|
are user-defined \emph{newcommands} occurring in the preamble (or at least
before the invocations):
\begin{verbatim}
\newcommand{\ascii}{\abbr{ASCII}}
\newcommand{\sgml}{\abbr{SGML}}
\end{verbatim}
The command \emph{newcommand} is a meta-command in \gellmu source.
All \emph{newcommand} instances are fully expanded by the syntactic
translator before it writes any output.
The markup |\quochar{x}| produces a quoted character: in this case
\quochar{x}. There is no compelling reason why \emph{quophrase} could
not have been used instead of \emph{quochar}, but it is customary in
technical documentation to use a different presentation style for
quoted characters than for quoted phrases. Beyond that for
non-traditional forms of processing it can be very useful to provide
for semantic distinctions such as the distinction between a quoted
phrase in normal discourse and a quoted string in technical discourse.
More particularly, it is significant that in some languages for
computer programming there is an important distinction between a
character and a string of unit length. Some of the markup commands
useful with technical documentation are
\begin{display}
\begin{tabular}{lll}
\tdbc{command} & \tdbc{example in source} & \tdbc{example rendered}\\
\emph{quochar} & |use \quochar{\%} to comment| & use \quochar{\%} to comment \\
\emph{quostr} & |\quostr{unsigned long num;}| & \quostr{unsigned long num;} \\
\emph{qquostr} & |type \qquostr{done} to exit| & type \qquostr{done} to exit \\
\emph{path} & |\path{C:\bsl;TEX\bsl;TEXMF}| & \path{C:\bsl;TEX\bsl;TEXMF} \\
\emph{urlanch} & |see \urlanch{userdoc.glm} | & see \urlanch{userdoc.glm}
\end{tabular}
\end{display}
With regular \latex; standard practice is to use \emph{texttt} for the
examples just cited involving \emph{quochar}, \emph{quostr},
\emph{path}, and, apart from web-related considerations,
\emph{urlanch}. The name \emph{url} has been used variously in
regular \latex;; therefore, \emph{url} has not been introduced as a
name in regular \gellmu so that an author may safely use it, if
desired, as a macro name.
\section[][\label{sectioning}]{Sectioning}
Unless one wants fancy non-default behavior, one may provide
sections, subsections, and subsubsections as in \latex;. Thus,
for example,
\begin{verbatim}
\documenttype{article}
\title{Some title}
\begin{document}
\section{Title of first section}
First Paragraph.
Second Paragraph.
. . .
\section{Title of second section}
First Paragraph.
Second Paragraph.
. . .
\end{document}
\end{verbatim}
With this style of markup one does not indicate the end of a section
although there is a way, described in the \glmanref{secusage}, to gain finer
control over sectional units.
\section[][\label{lists}]{Lists}
As with \latex; \gellmu \emph{article} provides lists with the
names \emph{description}, \emph{enumerate}, and \emph{itemize}.
For example, the markup
\begin{verbatim}
\begin{enumerate}
\item bird
\item cat
\item dog
\end{enumerate}
\end{verbatim}
yields:
\hang{
\begin{enumerate}
\item bird
\item cat
\item dog
\end{enumerate}
}
while the markup
\begin{verbatim}
\begin{description}
\item[Parrot] a type of bird
\item[Persian] a type of house cat
\item[Pointer] a type of dog
\end{description}
\end{verbatim}
yields:
\hang{
\begin{description}
\item[Parrot] a type of bird
\item[Persian] a type of house cat
\item[Pointer] a type of dog
\end{description}
}
A list is normally part of a paragraph, but a list may occur outside
of a paragraph in a sectional unit or even at the top level of
an article's body.
An \emph{item} in a list may contain paragraphs but, as the foregoing
examples show, may contain loose text.
While \latex; provides an excellent construction facility for customized
lists through its \emph{list} environment, which may be used in
conjunction with its \emph{newenvironment} command, there is no facility
for the provision of on-the-fly markup in \sgml. Therefore, the
\emph{article} document type provides several other kinds of list.
The lists called \emph{menu} and \emph{Menu} consist of
\emph{items}. These lists have no item labels. They differ only
in intention for spacing in presentation formats.
It often makes sense for \emph{menu} to be used inside an \emph{item}
of another list. Moreover, a single item \emph{menu} will render in
either the \latex; or \html formattings as ``hanging indentation''.
A \emph{defnlist} is intended to be more like the list called \emph{dl}
in \html than like \emph{description}. It must consist of one or
more \emph{term}, \emph{desc} pairs with \emph{term} mandatory and
\emph{desc} optional.
There are also other lists that will not be mentioned here except to
point out that when the name \emph{verbatim} is enabled as a
metacommand, rather than as a command, by calling the syntactic
translator with a non-default function\footnote{The most convenient
way to call the syntactic translator with a non-default function is to
make the first line of the source file point to the name of the
special function. For example, the function ``gellmu-verblist'' will
be called if the first line of the source file is \qquostr{\%!verblist}.}
such as \quostr{verblist} or \quostr{latex-faq}, the verbatim material
is organized as a \emph{verblist}.
For more information about lists browse the document type definitions
\path{gellmu.dtd} and \path{xml/xgellmu.dtd} being mindful that
default processing in the didactic production system sometimes does
a small amount of list manipulation between the \sgml and \xml versions
of an \emph{article}.
\section[][\label{tabular}]{\emph{Tabular} Environment Emulation}
Most users having a \latex; background will find that \emph{tabular}
with column arguments limited to \quochar{l}, \quochar{r},
\quochar{c}, and \quochar{p} is reasonably functional.
Improvement made during 2006 were made possible by the increased
availability to users of web browsers supporting version 2 of the
cascading style sheets (\css) specification.
For example, the following markup underlies a small
\iref{mathzones}{\emph{lcc} table} in the section on mathematics.
\begin{verbatim}
\display{\begin{tabular}{lcc}
\bold{Name} & \bold{Opener} & \bold{Closer} \\
math & \quostr{\bsl;(} & \quostr{\bsl;)} \\
tmath & \quostr{\$} & \quostr{\$} \\
displaymath & \quostr{\bsl\lsb;} & \quostr{\bsl\rsb;}
\end{tabular}}
\end{verbatim}
(In this markup \emph{bsl} is a name for the backslash character
and \emph{lsb}, \emph{rsb} the names of the square brackets.)
There is presently no concept of ``float''.
More information is available in the \glmanref{tabular}.
\section[][\label{links}]{Labels, Cross References, and Anchors}
The basic idea is very simple. Use
\display{|\label{|\emph{mylabelkey}|}|}
to \bold{mark} a location that is associated with the named
label key, and use
\display{|\ref{|\emph{mylabelkey}|}|}
or one of several other methods to reference that location.
The command \emph{ref} may be regarded as the default method.
In an online version, however, it has \bold{not} been designed to
create a selectable anchor but rather simply to indicate section
number.
For example, in this document there is a label with the key
\qquostr{math} at the beginning of the section (\ref{math}) on
mathematics. The previous sentence contains a reference with
the markup |\ref{math}| to that section. This markup results
in the number of that section appearing in the first sentence.
For clarity the markup for the entire first sentence of this
paragraph is:
\begin{verbatim}
For example, in this document there is a label with the key
\qquostr{math} at the beginning of the section (\ref{math}) on
mathematics.
\end{verbatim}
If, on the other hand, one wants an online version to contain
a \iref{math}{selectable anchor to section \ref{math}} to the
section on math, then
in the preamble of the document one might place the newcommand
definition
\display{|\newcommand{\iref}[2]{\anch[iref="#1"]{#2}}|}
and then, as in the foregoing portion of this sentence use
the markup
\display{|\iref{math}{selectable anchor to section \ref{math}}|\ .}
Note that this markup uses the label key \qquostr{math} twice:
once as the first argument to the newcommand called \emph{iref}
and once as the sole argument of the command \emph{ref} that
itself appears in the second argument of \emph{iref}.
On the question of whether to use \emph{ref} or one of several
other commands to make a reference, there are several considerations:
\begin{enumerate}
\item How should the reference be indicated in an online format
that will be viewed in an ebook or a web browser?
\item How should the reference be indicated in a typeset format
where there is neither a cursor nor the possibility of automatic
scrolling?
\end{enumerate}
More details on this subject may be found in the
\glmanref{labelref}.
\section[][\label{math}]{Mathematics}
\gellmu \emph{article} provides 5 containers for mathematical
content: \emph{math}, \emph{tmath}, \emph{displaymath}, \emph{equation},
\emph{eqnarray}. All may be referenced by name. However,
\latex;-like markup is supported:
\label{mathzones}
\display{\begin{tabular}{lcc}
\bold{Name} & \bold{Opener} & \bold{Closer} \\
math & \quostr{\bsl;(} & \quostr{\bsl;)} \\
tmath & \quostr{\$} & \quostr{\$} \\
displaymath & \quostr{\bsl\lsb;} & \quostr{\bsl\rsb;}
\end{tabular}}
The containers \emph{math} and \emph{tmath} are essentially
equivalent non-displayed containers. The current \latex; formatter
provides a tiny amount of extra horizontal space around \emph{math}
but not around \emph{tmath}.
Just as with ordinary \latex; there can be difficulty locating
a missing \quochar{\$} if one uses these for \emph{tmath}. Unbalanced
\quochar{\$} characters usually lead the syntactic translator to
complain (correctly, though not with as much user-friendliness as one
might wish) about not being able to balance a brace. In this case
if \emph{tmath} is seen in the displayed surrounding text, a missing
\quochar{\$} is likely.
MathML rendering support (with MathML's presentation markup) in \html
versions, i.e., the modern \xml form of \html extended with \mathml, is
new in the summer of 2004.
A program to generate an output stream providing content-level MathML
markup, i.e., semantic markup transparent for computer algebra
systems, has not yet been written.
Those who use mathematics may find the following illustrations
instructive.
The markup
\begin{verbatim}
Just as with \tex; or \latex; it is easy to provide a mathematical
formula, such as $y = x^3/(x^2 + 1)$\aoc either inline or displayed.
\end{verbatim}
produces:
\hang{
Just as with \tex; or \latex; it is easy to provide a mathematical
formula, such as $y = x^3/(x^2 + 1)$\aoc either inline or displayed.
}
This markup
\begin{verbatim}
Here the same formula is displayed.
\[ y = \frac{x^3}{x^2 + 1} \eos\]
\end{verbatim}
yields:
\hang{
Here the same formula is displayed.
\[ y = \frac{x^3}{x^2 + 1} \eos\]
}
The \emph{eos} corresponds to an empty \sgml element for ``end of
sentence'' (or ``full stop''). Normally one simply uses \quochar{.},
but inside a displayed math zone there is semantic-level risk of
confusion with various possible uses of \quochar{.} as a mathematical
symbol.
Markup:
\begin{verbatim}
The square root of a compound fraction:
\[ \sqrt{\frac{\frac{a}{b}}{\frac{c}{d}}} \eos \]
\end{verbatim}
Rendered:
\hang{
The square root of a compound fraction:
\[ \sqrt{\frac{\frac{a}{b}}{\frac{c}{d}}} \eos \]
}
In the current \mxhtml formatting by default radical signs in
source markup are converted by default to fractional exponents because
of an intellectual property issue with fonts available for use by the
open source \softw{Mozilla} browser and its spinoffs including
\softw{Firefox}, \softw{Galeon}, and \softw{Nautilus}.\footnote{
Similar intellectual property issues pertain more widely to fonts.
In particular, for this reason by default in the \mxhtml
output character coloring is used to cover possible font failures
for the blackboard bold, calligraphic, and fraktur math fonts; the
colors corresponding colors are, respectively, red, blue, and green.}
Using the markup for numbered equations
\begin{verbatim}
The quadratic equation
\begin{equation} a x^2 + b x + c = 0 \end{equation}
has roots
\begin{equation}
x = \frac{-b \pm \sqrt{b^2 - 4 a c}}{2 a} \ \eos
\end{equation}
\end{verbatim}
one obtains the rendering:
\hang{
The quadratic equation
\begin{equation} a x^2 + b x + c = 0 \end{equation}
has roots
\begin{equation}
x = \frac{-b \pm \sqrt{b^2 - 4 a c}}{2 a} \ \eos
\end{equation}
}
\bold{Rule for subscripts and superscripts:} A subscript or
superscript must be braced if keyboarding it involves more than
one character. Thus, one \emph{may} use |$C^2$| or |$C^{2}$|
to produce $C^2$, but one \emph{must} use |$C^{\infty}$| to
generate $C^{\infty}$.
The Taylor series of the \emph{exponential} function is
\[ e^t = \sum_{k = 0}^{\infty} \, \frac{t^k}{k!} \sum: \ \eos \]
Note here that the \emph{sum} markup |\sum| requires a formal
terminator |\sum:| (likewise with |\int| for integral and |\prod|
for product).
\begin{verbatim}
\[ e^t = \sum_{k = 0}^{\infty} \, \frac{t^k}{k!} \sum: \ \eos \]
\end{verbatim}
The markup
\begin{verbatim}
The continued fraction expansion of the \emph{golden mean}:
\[\frac{1 + \sqrt{5}}{2} =
1 + \frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\ldots;}}}} \eos \]
\end{verbatim}
produces:
\hang{
The continued fraction expansion of the \emph{golden mean}:
\[\frac{1 + \sqrt{5}}{2} =
1 + \frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\ldots;}}}} \eos \]
}
while the markup
\begin{verbatim}
Mixed function application and multiplication:
\[ {\func{sin}\aF;{ax}}\itimes;{\func{cos}\aF;{bx}} \eos \]
\end{verbatim}
yields
\hang{
Mixed function application and multiplication:
\[ {\func{sin}\aF;{ax}}\itimes;{\func{cos}\aF;{bx}} \eos \]
}
Markup:
\begin{verbatim}
Newton's binomial series:
\[ (1 + t)^r = \sum_{k=0}^{\infty} \,
\frac{r(r - 1)(r - 2)\ldots(r - k + 1)}{k!}\, t^k \sum: \eos \]
\end{verbatim}
rendering:
\hang{
Newton's binomial series:
\[ (1 + t)^r = \sum_{k=0}^{\infty} \,
\frac{r(r - 1)(r - 2)\ldots(r - k + 1)}{k!}\, t^k \sum: \eos \]
}
Markup:
\begin{verbatim}
A differential equation:
\[ D^2 y - 3 x (D y)^2 = x \func{cos} x \ \eos \]
\end{verbatim}
rendering:
\hang{
A differential equation:
\[ D^2 y - 3 x (D y)^2 = x \func{cos} x \ \eos \]
}
The statement of Stokes's Theorem in space
\[ \int\int_S \, (\mbox{\bold{curl}}
\, \regch{\bold{F}} \,\cdot\, \regch{\bold{N}})\, d\sigma;
\int:\int:
=
\int_{\partial S} \, (\regch{\bold{F}}
\,\cdot\, \regch{\bold{T}})\, ds \int:\, \eos \]
may be generated by the markup
\begin{verbatim}
\[ \int\int_S \, (\mbox{\bold{curl}}
\, \regch{\bold{F}} \,\cdot\, \regch{\bold{N}})\, d\sigma;
\int:\int:
=
\int_{\partial S} \, (\regch{\bold{F}}
\,\cdot\, \regch{\bold{T}})\, ds \int:\, \eos \]
\end{verbatim}
Note that each |\int| integral opener must be followed eventually
by a |\int:| closer (or braces could be used, i.e., |\int{ ... }|,
or |\begin{int}| \ldots |\end{int}| also could be used.
The branched definition of the absolute value of a real number may
be marked up with
\begin{verbatim}
\[ \absval{x} = \lbalbr{\begin{array}{rl}
x & \text{\ if\ } x \geq 0 \\
-x & \text{\ if\ } x < 0
\end{array}} \ \eos \]
\end{verbatim}
to yield
\[ \absval{x} = \lbalbr{\begin{array}{rl}
x & \text{\ if\ } x \geq 0 \\
-x & \text{\ if\ } x < 0
\end{array}} \ \eos \]
The \latex-like command \emph{mathbf} is new in \gellmu
\emph{article}. It may only be used in math. The command
\emph{bold}, which indicates bold-style emphasis, parallel to
\emph{strong} in \abbr{HTML} and \emph{textbf} in \latex{}, may be
used inside mathematical content as well as outside. However,
\emph{bold} may not contain math-special symbols such as that given by
|\alpha|, while \emph{mathbf} may.
A certain amount of attention to semantics is required in order to
have robust generation of the \mxhtml output. An absolutely
basic part of this is having unambiguous determination of what is a
single symbol. By long convention in \tex; the string ``abcd'' in
math is understood as the product (in whatever sense of ``product'')
of four symbols. If a string with more than one character --- for
example, ``Hom'' --- is to be a single symbol, it may be marked up
with \emph{mbox} or, in \gellmu source, be assigned a symbol name
having custom print representation using \emph{mathsym} in the preamble.
In \gellmu source \emph{mathbf} should only contain a single symbol.
% \[\nabla\times\vec{\mbox{\bold{B}}}
% \ \text{with \ldq;mbox\rdq; and \ldq;bold\rdq; versus}
% \ \nabla\times\vec{\mathbf{B}}\ \text{with \ldq;mathbf\rdq;} \]
The markup
\begin{verbatim}
\display{$\nabla\times\vec{\mbox{\bold{B}}}$
\ with ``mbox'' and ``bold'' versus
\ $\nabla\times\vec{\mathbf{B}}$ \ with ``mathbf''\,.}
\end{verbatim}
produces
\display{$\nabla\times\vec{\mbox{\bold{B}}}$
\ with ``mbox'' and ``bold'' versus
\ $\nabla\times\vec{\mathbf{B}}$ \ with ``mathbf''\,.}
Diagrams are done using \emph{array}. They must, therefore, be
rectangular. The markup
\begin{verbatim}
\newcommand{\ra}{\rightarrow}
\newcommand{\da}{\downarrow}
\[ \begin{array}{ccccccccc}
0 & \ra & A' & \ra & A & \ra & A'' & \ra & 0 \\
~ & & \da & & \da & & \da & & \\
0 & \ra & B' & \ra & B & \ra & B'' & \ra & 0
\end{array} \]
\end{verbatim}
yields
\[ \begin{array}{ccccccccc}
0 & \ra & A' & \ra & A & \ra & A'' & \ra & 0 \\
~ & & \da & & \da & & \da & & \\
0 & \ra & B' & \ra & B & \ra & B'' & \ra & 0
\end{array} \]
\begin{Menu}
\item \bold{Comments about \emph{array}, \emph{eqnarray}, \emph{tabular}}
\begin{enumerate}
\item
In this markup note the appearance of the character \quochar{\tld;} at
the beginning of the second row of the array. The modular design of
the didactic production system requires that the syntactic translator
may only deal with markup syntax. The \quochar{\tld;}, which is markup
in \gellmu source as in \latex; for ``non-breaking space'', in the
first cell of the second row serves to keep the first cell from being
empty. There is a technical error in the \sgml output of the
syntactic translator when the first cell in an \emph{array} or
\emph{tabular} row is empty unless there is an explicit opentag for
the first cell. The technical error will trigger a validation error
though it should not interfere with the generation of a correct parsed
output.\footnote{Beyond that in certain situations some web browsers
appear not to deal well with empty table cells, and placing an \html
non-breaking space in such a cell is often a good thing for that
reason. Of course, the special character \quochar{\tld;} for
non-breaking space in \gellmu source gives rise in \html output to the
\sgml non-breaking space character denoted with the entity reference
``\&\#xA0;''.}
\item
Also in the foregoing markup note that the \latex;-like use of the
character \quochar{\&} as the introducer of a new cell must in \gellmu
source be followed by whitespace. Otherwise there is risk of
confusion with the alternative markup use of \quochar{\&} in \gellmu
source (though not in \latex; source) to initiate an \sgml entity
reference.
\end{enumerate}
\end{Menu}
There is multiscript support. The command \emph{mscript} takes 5
arguments. The first is its base. The script order is counter-clockwise
beginning with upper-left. For example,
\[
\mscript{\mathbf{C}}{14}{2}{5+}{2}\quad
\mscript{\mbox{Hom}}{a}{b}{c}{d}(X,Y)
\]
is produced by
\begin{verbatim}
\[
\mscript{\mathbf{C}}{14}{2}{5+}{2}\quad
\mscript{\mbox{Hom}}{a}{b}{c}{d}(X,Y)
\]
\end{verbatim}
\softw{AMSMath}-like overset and underset: |\overset{A}{B}|
\ then\ |\underset{A}{B}|
\[ \overset{A}{B} \quad \underset{A}{B} \]
The command \emph{overset} is the \softw{AMSMath} replacement in \latex
for \latex's native \emph{stackrel}.
\begin{verbatim}
A map may be labeled using \emph{overset}:
\[ X \overset{f}{\longrightarrow} Y \]
or using \emph{underset}:
\[ X \underset{f}{\longrightarrow} Y \]
\end{verbatim}
\hang{
A map may be labeled using \emph{overset}:
\[ X \overset{f}{\longrightarrow} Y \]
or using \emph{underset}:
\[ X \underset{f}{\longrightarrow} Y \]
}
Binary or pseudo-binary operators:
\[\bo{vee}\bo{setminus}\bo{ll}\bo{gg}
\bo{approx}\bo{asymp}\]
\[\bo{rightarrow}\bo{leftarrow}
\bo{implies}\bo{revimplies}\bo{iff}\]
Other operators:
\[\bo{uparrow}\bo{downarrow}\bo{triangle}\bo{abuts}\]
The command \emph{vect} is for vector generation. Its usage is:
\display{
|\vect[|\emph{open-close-separator spec}|]{|\emph{coordinate}|}| \ldots
}
Thus, the markup |\vect{x}{y}{z}| produces $\vect{x}{y}{z}$.
On the other hand the markup |\vect[]{x}{y}{z}| produces
$\vect[]{x}{y}{z}$. This might be useful, for example, in
providing reasonably semantic (but visibly traditional) markup for a
tensor field. For example
\[
T\msub{\vect[]{j_1}{j_2}{\ldots}{j_q}}\msup{\vect[]{i_1}{i_2}{\ldots}{i_p}}
\]
When \emph{vect}'s option is empty, vector opener, closer, and coordinate
separators are all nil. \emph{vect} might be used to provide the stylized,
though semantically dubious,
inner product markup |\vect[<>;]{v}{w}| yielding
\[ \vect[<>;]{v}{w} \ \cma \]
or with the markup |\vect[\lsb;\rsb;:]{a}{b}{c}|
to customize notation for the homogeneous coordinate triple
representing a point of $\mathbf{P}^2$:
\[ \vect[\lsb;\rsb;:]{a}{b}{c} \ \eos \]
Leray's spectral sequence:
\hang{
If
\[ X \ \longrightarrow \ B \]
with fibre $F$\@, then
\[ {\mscript{E}{}{}{2}{\vect[]{p}{q}} = H^p\aF(B, H^q\aF(F))}
\abuts H^{*}\aF(X) \ \eos \]
}
is produced by
\begin{verbatim}
If
\[ X \ \longrightarrow \ B \]
with fibre $F$\@, then
\[ {\mscript{E}{}{}{2}{\vect[]{p}{q}} = H^p\aF(B, H^q\aF(F))}
\abuts H^{*}\aF(X) \ \eos \]
\end{verbatim}
In this markup the command |\aF|, is not strictly necessary.
It provides a deliberate way to indicate that, in the second
instance above, the symbol $X$ is argument-like in relation to
the symbol $H^{*}$. In MathML rendering \emph{aF} gives rise to
presentation-level MathML's invisible operator \emph{ApplyFunction}.
\section{Beyond this Introductory Guide}
More information about \gellmu is available in the \glman.
Some examples of topics to be found there include:
\begin{itemize}
\item Inclusion of graphic objects: \glmanrefk{graphics}.
\item Equations and equation arrays: \glmanrefk{eqn}.
\item Emulation of \latex's \emph{newtheorem} environments: \glmanrefk{assert}.
\item Emulation of \latex's counters: \glmanrefk{counters}.
\item The flowchart for regular \gellmu processing: \glmanrefk{flow}.
\end{itemize}
The author tries to keep fresh information on the \Gweb.
\end{document}