%!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}