<!-- \nul; -->
<!DOCTYPE article SYSTEM "gellmu.dtd"><article stem="gfaq">
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<nul/>
<surtitle>The <abbr>HTML</abbr> Archive</surtitle>
<title>Frequently Asked Questions about <abbr>GELL<hy0/>MU</abbr></title>
<author>William F. Hammond</author>
<date>Last Revision: <today></date>
<nul/>
<nobanner>

<body>
<tableofcontents>
<nul/>
<section inv="part"><op0></op0><op0><label series="part">basic</label>Part </op0><op0><series type="I"><evalref>basic</evalref></series></op0><ag0><spc/><spc/>Basic Questions</ag0></section>
<subsection inv="question"><op0></op0><op0><label series="question">whatIsGellmu</label></op0><op0><evalref>whatIsGellmu</evalref></op0><ag0><spc/>What is <abbr>GELL<hy0/>MU</abbr>?</ag0></subsection>
<parb>
<abbr>GELL<hy0/>MU</abbr> stands for <quophrase>Generalized Extensible <latex/><hyp/>Like
MarkUp</quophrase><eos/>  It is a markup language with syntax resembling in large part
that of <latex/> that is designed to provide a bridge for authors who
wish to migrate from <latex> to <abbr>XML</abbr> (see <anch inv="qref"><op0>iref="whatIsXml"</op0><ag0>question <ref>whatIsXml</ref></ag0></anch>)<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">whatIsXml</label></op0><op0><evalref>whatIsXml</evalref></op0><ag0><spc/>What is <abbr>XML</abbr>?</ag0></subsection>
<parb>
<abbr>XML</abbr> stands for <quophrase>Extensible Markup Language</quophrase>, which is
second generation basic markup language for the World Wide Web<eos/>
The use of the word <emph>extensible</emph> means that the set of markup
tags is not fixed<eos/>  That, in turn, means that <abbr>XML</abbr> is not a markup
language but rather a family of markup languages with a shared
syntax<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">whyGellmu</label></op0><op0><evalref>whyGellmu</evalref></op0><ag0><spc/>Why was <abbr>GELL<hy0/>MU</abbr> Created?</ag0></subsection>
<parb>
The author is a math professor who became frustrated in recent years
with the extra work required to make his course materials available
on the web for his students<eos/>
<parb>
He found that if he wrote <abbr>HTML</abbr> directly, he could not derive adequate
printed versions, and he found converters for translating <latex/> into
<abbr>HTML</abbr> cumbersome, inaccurate, and unsatisfactory<footnote>There are now
better converters; however, the overall idea of translating from LaTeX
to HTML is not logically sound<eos/>  (On the other hand, it <emph>is</emph>
logically sound to write a translator from <abbr>HTML</abbr> to <latex/>.)</footnote><eos/>
<parb>
<abbr>GELL<hy0/>MU</abbr> is designed as a single source language in which to write from
which different formats can be automatically derived with complete
reliability<eos/>  For more on single source, multiple output languages
for authors see <anch inv="qref"><op0>iref="singleSource"</op0><ag0>question <ref>singleSource</ref></ag0></anch><eos/>

<subsection inv="question"><op0></op0><op0><label series="question">authorWeb</label></op0><op0><evalref>authorWeb</evalref></op0><ag0><spc/>Can <abbr>GELL<hy0/>MU</abbr> Help Me to Write My Web Pages?</ag0></subsection>
<parb>
Yes, in two ways<eos/>  There is a choice between <emph>basic</emph> <abbr>GELL<hy0/>MU</abbr>
and <emph>regular</emph> <abbr>GELL<hy0/>MU</abbr><eos/>
<parb>
If you are familiar with the tag set for <abbr>HTML</abbr> (the basic language
used in web pages) and do not want any form for what you write other
than a web page, then <emph>basic</emph> <abbr>GELL<hy0/>MU</abbr> provides <latex/><hyp/>like
notation, which is somewhat more succinct than regular <abbr>HTML</abbr> tagging,
and <emph>newcommand</emph><hyp/>like macros for writing <abbr>HTML</abbr><eos/>  For this see
also <anch inv="pref"><op0>iref="related"</op0><ag0>part <sref>related</sref></ag0></anch><eos/>
<parb>
If you want to write for more than one ultimate output with a
single source markup (see <anch inv="qref"><op0>iref="singleSource"</op0><ag0>question <ref>singleSource</ref></ag0></anch>), then <emph>regular</emph>
<abbr>GELL<hy0/>MU</abbr> may be considered<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">twoGellmus</label></op0><op0><evalref>twoGellmus</evalref></op0><ag0><spc/>What is the Diffence between Basic and Regular
<abbr>GELL<hy0/>MU</abbr>?</ag0></subsection>
<parb>
Basic <abbr>GELL<hy0/>MU</abbr> provides minimal (1) <latex/><hyp/>like syntax and (2)
<emph>newcommand</emph><hyp/>like macros for conscious writing toward an <abbr>SGML</abbr>
or <abbr>XML</abbr> document type such as <abbr>HTML</abbr>, DocBook, TEI, SGMLTexi, <ldots><eos/>
<parb>
Regular <abbr>GELL<hy0/>MU</abbr> provides also a fuller array of <latex/><hyp/>like syntax
features and some <latex/><hyp/>like shorthand<eos/>  Moreover, the <abbr>GELL<hy0/>MU</abbr>
didactic production system provides a document type with many
<latex><hyp/>like commands<eos/>

<subsection inv="question"><op0>Are There Other Similar Markups?</op0><op0><label series="question">singleSource</label></op0><op0><evalref>singleSource</evalref></op0><ag0><spc/>Are There Other
Choices for Single Source, Multiple Output Markup Languages for Authors?</ag0></subsection>
<parb>
Yes<eos/>  <softw>Tex<hy0/>info</softw>, the language of the <abbr>GNU</abbr><footnote>The free software
project of Richard Stallman and the Free Software Foundation.<brk/>
See <urlanch>http:<sol/><sol/>www.gnu.org<sol/></urlanch><eos/>
</footnote>
Documentation System, is an example<eos/>  In the 80's <softw>Tex<hy0/>info</softw> could be used
to provide two forms of a <abbr>GNU</abbr> document: (1) <softw>Info</softw> online
hypertext, suitable for the text<hyp/>based terminals with cursor control
of that time and (2) finely typeset text in <abbr>DVI</abbr> format<eos/>
<parb>
By the late 80's Charles Goldfarb had created <abbr>SGML</abbr>, the very general
family of markup languages in which <abbr>HTML</abbr> is a member and relative to
which <abbr>XML</abbr> is a subfamily<eos/>  Although it is formally possible for
a language under this umbrella to admit essentially no translation,
the intention was to provide powerful languages suitable for multiple
outputs and to provide, thanks to the shared syntax, general processing
frameworks under which translations can be efficiently and reliably
written<eos/>

<nul/>
<section inv="part"><op0></op0><op0><label series="part">running</label>Part </op0><op0><series type="I"><evalref>running</evalref></series></op0><ag0><spc/><spc/>Running <abbr>GELL<hy0/>MU</abbr></ag0></section>

<subsection inv="question"><op0></op0><op0><label series="question">platforms</label></op0><op0><evalref>platforms</evalref></op0><ag0><spc/>On What Platforms Can <abbr>GELL<hy0/>MU</abbr> Be Used?</ag0></subsection>
<parb>
A complete suite of materials for the <abbr>GELL<hy0/>MU</abbr> didactic production system
is available for the <abbr>GNU</abbr> Operating System, Linux, the various flavors
of Unix, and modern <quophrase>Windows</quophrase><eos/>

<subsection inv="question"><op0></op0><op0><label series="question">needed</label></op0><op0><evalref>needed</evalref></op0><ag0><spc/>What is Needed to Run <abbr>GELL<hy0/>MU</abbr>?</ag0></subsection>
<parb>
Minimally the <abbr>GELL<hy0/>MU</abbr> Syntactic Translator, an <abbr>GNU</abbr> Emacs Lisp program<eos/>  To use it, you
need the Emacs Lisp engine, which is <abbr>GNU</abbr> Emacs<eos/>
<parb>
For <emph>basic</emph> <abbr>GELL<hy0/>MU</abbr> (see <anch inv="qref"><op0>iref="twoGellmus"</op0><ag0>question <ref>twoGellmus</ref></ag0></anch>) the <abbr>GELL<hy0/>MU</abbr> Syntactic Translator is all that
you need<eos/>  Its output is the <abbr>SGML</abbr> or <abbr>XML</abbr> language such as, for example,
<abbr>HTML</abbr>, for which you are explicitly tagging<eos/>  Of course, you need
whatever is required in order for you to deal with that output<eos/>
<parb>
For <emph>regular</emph> <abbr>GELL<hy0/>MU</abbr> with the didactic <abbr>GELL<hy0/>MU</abbr> production system
you need to have
<enumerate>
<item> James Clark's <softw>nsgmls<sol/>SP</softw><eos/>
<item> Perl<eos/>
<item> <tex><eos/>
</enumerate>

<section inv="part"><op0></op0><op0><label series="part">missing</label>Part </op0><op0><series type="I"><evalref>missing</evalref></series></op0><ag0><spc/><spc/>Things in <latex/> not in <abbr>GELL<hy0/>MU</abbr></ag0></section>

<subsection inv="question"><op0></op0><op0><label series="question">whyMissing</label></op0><op0><evalref>whyMissing</evalref></op0><ag0><spc/>Why are So Many Things Not <quophrase>In</quophrase> <abbr>GELL<hy0/>MU</abbr>?</ag0></subsection>
<parb>
The didactic document type is intended to be a base for further
development<eos/>  For that reason its design is minimalist<eos/>  Its author
believes that the techniques used are adequate for a substantially
more elaborate system<eos/>  One who so wishes can move it closer to
regular <latex/> than it already is<eos/>  On the other hand, if it is moved
too close to <latex/>, which is a structured typesetting language,
then the range of possible translation targets might be diminished<eos/>
<parb>
More information about this will be found in the
<anch><op0>href="..<sol/>doc<sol/>glman.html"</op0><ag0><abbr>GELL<hy0/>MU</abbr> Manual</ag0></anch>, especially in the appendix
entitled <anch><op0>href="..<sol/>doc<sol/>glman.html<hsh/>release"</op0><ag0><emph>Release Notes</emph></ag0></anch><eos/>

<subsection inv="question"><op0></op0><op0><label series="question">refanch</label></op0><op0><evalref>refanch</evalref></op0><ag0><spc/>Why Doesn't <quostr><bsl/>ref</quostr> Automatically Make Anchors?</ag0></subsection>
<parb>
First note that every <quostr><bsl/>label</quostr> command does result in the creation of
a base to which one may anchor<eos/>  In the two didactic formattings for <latex/>
and <abbr>HTML</abbr> the anchor base is not visible when rendered<footnote>Some
<abbr>HTML</abbr> renderers might disclose <emph>id</emph> anchors with empty content.</footnote><eos/>
There are three reasons why <quostr><bsl/>ref</quostr> does not automatically provide a link:
<enumerate>
<item> Since <emph>ref</emph> is the same as a name in <latex/>, there is an
effort to emulate <latex/>'s behavior in this regard<eos/>

<item> There is more than one reasonable way to <quophrase>style</quophrase> an
anchor<eos/>

<item> It is extremely easy for an author to use <emph>newcommand</emph> to
reference a label<eos/>  For example, if an author writes
<display>
<quostr><bsl/>newcommand<lbr/><bsl/>Ref<rbr/><lsb/>1<rsb/><lbr/><bsl/>anch<lsb/>iref<eqc/><quo/><bsl/>ref<lbr/><hsh/>1<rbr/><quo/><rsb/><lbr/><bsl/>ref<lbr/><hsh/>1<rbr/><rbr/><rbr/></quostr><spc/>,
</display>
then <emph>Ref</emph> is created as a name for providing a label reference
(by key, as with <emph>ref</emph>) with an anchor<eos/>  Or the same newcommand
with name string <qquostr>ref</qquostr> instead of <qquostr>Ref</qquostr> is also allowed
in <abbr>GELL<hy0/>MU</abbr>, though in <latex/> one would need to use
<emph>renewcommand</emph><footnote>
Since <latex/>'s <emph>newcommand</emph> actually creates a new command whereas
<abbr>GELL<hy0/>MU</abbr>'s <emph>newcommand</emph> is one<hyp/>time forward macro substitution<eos/>
</footnote><eos/>
</enumerate>

<subsection inv="question"><op0></op0><op0><label series="question">splitSource</label></op0><op0><evalref>splitSource</evalref></op0><ag0><spc/>What About Split<hyp/>File Source?</ag0></subsection>
<parb>
The best way to merge document input is at the level of <abbr>SGML</abbr> source,
i.e., at the stage represented by the output of the syntactic
translator<eos/>
<parb>
For example, this will make the parsing error reports from
<softw>nsgmls</softw> easy to locate in <abbr>GELL<hy0/>MU</abbr> source since errors are
reported by file and line number<eos/>  (The syntactic translator preserves
line number alignment between its source and its output, file by
file.)  Also when the syntactic translator is called separately for
different parts of a document, the <emph>newcommand</emph> definitions are
localized to each part, thereby making the resolution of name
conflicts easy to track<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">splitOutput</label></op0><op0><evalref>splitOutput</evalref></op0><ag0><spc/>What About Split<hyp/>File Formattings?</ag0></subsection>
<parb>
As it is, the didactic production system is based on one file per
document<eos/>  If that is not what you want, just customize your
formatters to produce what you want<eos/>
<parb>
This would make sense, for example, for a <emph>collection</emph> document
class that was constructed to consist of independently authored
<abbr>GELL<hy0/>MU</abbr> <emph>article</emph>s<eos/>  While one might want a unified typesetting,
one might also want separate <abbr>HTML</abbr> versions and separate screen<hyp/>sized
<abbr>PDF</abbr> versions<eos/>
<parb>
In a design like that of the didactic production system the document
is seen as a whole at the stage where cross<hyp/>referencing is handled<eos/>
This makes it possible for cross<hyp/>referencing in split<hyp/>file formattings
to comprehend the parts as they relate to the whole<eos/>

<section inv="part"><op0></op0><op0><label series="part">related</label>Part </op0><op0><series type="I"><evalref>related</evalref></series></op0><ag0><spc/><spc/>Relation of <abbr>GELL<hy0/>MU</abbr> to Other Things</ag0></section>

<subsection inv="question"><op0></op0><op0><label series="question">latex2html</label></op0><op0><evalref>latex2html</evalref></op0><ag0><spc/>How is <abbr>GELL<hy0/>MU</abbr> Related to <softw>latex2html</softw>?</ag0></subsection>
<parb>
<abbr>GELL<hy0/>MU</abbr> provides <latex/><hyp/>like markup for the conscious writing of
instances under an <abbr>XML</abbr> document type<eos/>  That document type could be
<abbr>HTML</abbr><eos/>
<parb>
<softw>latex2html</softw>, on the other hand, is designed to translate
source consciously written as classical <tex/> or <latex/> markup<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">hyperlatex</label></op0><op0><evalref>hyperlatex</evalref></op0><ag0><spc/>How is <abbr>GELL<hy0/>MU</abbr> Related to <softw>hyperlatex</softw>?</ag0></subsection>
<parb>
<abbr>GELL<hy0/>MU</abbr> provides a way to write <abbr>HTML</abbr> consciously using <latex/><hyp/>like
syntax, while <softw>hyperlatex</softw> involves translation of a special
dialect of <latex/><eos/>
There are a number of similar features in <softw>hyperlatex</softw> including:
<enumerate>
<item>  The use of <latex/> (not <latex/><hyp/>like) markup to write <abbr>HTML</abbr><eos/>
<item>  The use of a <abbr>GNU</abbr> Emacs Lisp program to translate
       source markup (in this case to <abbr>HTML</abbr>)<eos/>
<item>  Careful, reliable production of both <abbr>HTML</abbr> and typeset forms of
       a document<eos/>
</enumerate>
As it stands in relation to <abbr>SGML</abbr> or <abbr>XML</abbr>, <softw>hyperlatex</softw> is
specific for <abbr>HTML</abbr><eos/>  The source of a <softw>hyperlatex</softw> document may
be given to <softw>hyperlatex</softw>'s Emacs Lisp program for translation to
<abbr>HTML</abbr> or to <softw>LaTeX</softw>, the program, for typesetting with
<softw>hyperlatex</softw> macros<eos/>
<parb>
<abbr>GELL<hy0/>MU</abbr>'s basic layer, which operates at the level of syntax without
knowledge of markup vocabulary, may be used for writing under many
<abbr>SGML</abbr> or <abbr>XML</abbr> document types, not just <abbr>HTML</abbr><eos/>  Subsequent to syntactic
translation from <latex/><hyp/>like markup to standard <abbr>SGML</abbr> or <abbr>XML</abbr> markup,
one may employ any suitable <abbr>SGML</abbr> or <abbr>XML</abbr> processor for further
translation, typesetting, or other processing<eos/>  <abbr>GELL<hy0/>MU</abbr>'s basic layer
for writing in <abbr>HTML</abbr> (or in any other <abbr>SGML</abbr> or <abbr>XML</abbr> document type)
directly does not provide typesetting<eos/>
<parb>
The <abbr>GELL<hy0/>MU</abbr> didactic production system provides what is intended as a
first <abbr>SGML</abbr><sol/><abbr>XML</abbr> document type for those with experience as <latex/>
authors<eos/>  The system is designed for free<hyp/>standing separate
components, and new components can be introduced for translating to
new formats<eos/>  The use of <softw>LaTeX</softw>, the Program, with <abbr>GELL<hy0/>MU</abbr> source
is a choice, not a requirement<eos/>

<subsection inv="question"><op0></op0><op0><label series="question">tex4ht</label></op0><op0><evalref>tex4ht</evalref></op0><ag0><spc/>How is <abbr>GELL<hy0/>MU</abbr> Related to <softw>tex4ht</softw>?</ag0></subsection>
<parb>
The <softw>tex4ht</softw> family of applications is conversion software<eos/>
It uses <softw>TeX</softw>, the Program, configured with special macros
aimed at a target format, such as <abbr>HTML</abbr>, to create <abbr>DVI</abbr>
<quophrase>specials</quophrase> in <softw>TeX</softw>'s normal <abbr>DVI</abbr> output<eos/>  While one
can print the <abbr>DVI</abbr> file in the usual way, one may also then
submit it to a special post<hyp/>processor for writing a translation of
the original document in the target format<eos/>  One can achieve very
good results this way <bold>if</bold> the original source is carefully
crafted<eos/>  For legacy source this method is likely to produce optimal
results<eos/>
<parb>
<abbr>GELL<hy0/>MU</abbr> provides <latex/><hyp/>like markup for the conscious writing of
instances under an <abbr>XML</abbr> document type<eos/>  There is very little intersection
of this with the functionality of <softw>tex4ht</softw> except in the relatively
rare instances of <tex/> or <latex/> source that is carefully crafted under
a custom markup<eos/>
<parb>
<abbr>GELL<hy0/>MU</abbr> does not provide a technique for automatic translation
of legacy documents although one may sometimes, especially with
clever use of its macro facilities, succeed with human effort to
<quophrase>port</quophrase> legacy <latex/> source into useful <abbr>GELL<hy0/>MU</abbr> source<eos/>
The item <urlanch>lfaq.glm</urlanch> in the <anch><op0>href=".<sol/>"</op0><ag0>examples archive</ag0></anch> is
an example of a port<eos/>

</body>

</article><!-- GELLMU version 0.7.4.2 (05-Jan-2006) -->
