GELLMU version 0.8 William F. Hammond Department of Mathematics & Statistics University at Albany Albany, NY 12222 (USA) CHANGES IN VERSION 0.8.4 (5 July 2007) --- "Regular" GELLMU: About 30 new commands have been added, mostly mathematical, including more arrows, more dots, as well as "\prime" and "\backprime" (emulating the corresponding AMS LaTeX names). Also "itimes" (invisible times) and "icomma" (invisible comma) join "aF" (invisible applyFunction) for optional use as weak semantic hints. The handling of mathematical prime accents has been completely revised in order that the XHTML+MathML formatting will work better with the (largely undocumented) handling of the corresponding unicode data points in the web browsers that support MathML. In only a few cases, however, will legacy source files require change. In this connection, there is now an explicit rule for distinguishing in _regular_ GELLMU source between uses of the character "'" as (a) apostrophe (\apos) and (b) right-single-quote (\rsq): it's an apostrophe if and only if it is followed by a "word-character" (as determined according to the sense of that term for regular expression handling in GNU Emacs). Sequences of two, three or four "'" characters become \rdq, \rtq, or \rqq, respectively, unless, with the first of these the string "''" is found to balance a previous string "``" in which case the markup \quophrase{} is still generated. (Moreover, matching pairs of "`" and "'" still generate \squophrase{} when that is enabled by certain manners of calling the syntactic translator.) The handling of limits for sums, integrals, and products has been revised beginning with a document type definition revision which should be compatible with old source files that passed correctly through the production stream. Although processing toward the LaTeX and XHTML+MathML formats had been "working", there were errors in the classic HTML handling of these limits resulting from the fact that the SGML/XML content models for \sum, \int, and \prod had been inadequate. By default links, internal and external, found in \text{} in math mode are now set using xlink rather than using an XML namespace switch to enable HTML anchors. This is tied to the environmental variable GELLMU_XLink. Also the previous limited handling of bold and italic style in \text{} in math mode has also been revised to treatment that, though less elegant, avoids namespace switching. When XHTML+MathML output is produced, but regardless of the availabilty of "dtd" validation, the production stream provides a "child-count" checker for certain MathML elements. It is intended that this particular step, like the XML conformance check, will work without reference to any formal document type definition. Consequently, the use of classical HTML named entity references has been eliminated. Width specification for tabular p-cells is now supported in HTML and XHTML using CSS style attributes. There have been some miscellaneous revisions of the limited representation of mathematics in the classic HTML formatting, and there have been numerous bug fixes and minor improvements in all of the various components of the "regular" production stream. --- Syntactic translator: Improved diagnostics for handling mismatched arguments in \newcommand invocations. For the context of "regular" GELLMU: (1) elaborated handling of prime accents and (2) stronger efforts to diagnose unbalanced '$' characters for toggling in and out of inline math zones. Correction of a bug related to the signaling of an error when an opening balancing character cannot be matched and elimination of the unwanted double announcement of line numbers with many error messages. -- Documentation: There have been updates to both The Gellmu Manual and the Introductory User Guide to Regular GELLMU. ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.3 (23 Oct 2006) IMPORTANT change necessitated by change in Firefox and other Mozilla browsers: This update is mandatory for those who wish their XHTML+MathML outputs to function properly in Mozilla. Because of a mid-September 2006 change in Mozilla with the handling of equations and arrays of equations, previously generated XHTML+MathML outputs will need to be rebuilt. This release also has reduced use of XML namespace switching in the XHTML+MathML outputs for the sake of greater compatibilty with browsers that do not recognize it. The XML side door: The largest change in this update release concerns "Regular GELLMU" (the didactic production system described in the GELLMU Manual). The standard translation pipeline leading from LaTeX-like source through SGML and XML document types to (1) LaTeX source (hence DVI and PDF outputs), (2) classical HTML output with pseudo-TeX math, and (3) XHTML with MathML output has been modified to capture along the way a variant of the XML document type that is reusable as XML source. Subsequent pipeline processing proceeds from that point with end results equivalent to those in earlier releases. The new variant of the XML document type may be regarded as a full-featured author level XML document type. It is usable and modifiable by authors who choose to write XML syntax rather than the LaTeX-like equivalent. The new author level variant of the XML document type is a suitable target for translation from other XML document types, and therefore, could provide an alternative way to format other document types for PDF, HTML, and XHTML+MathML. Beyond that document instances under the new author level variant of the XML document type should usually be "stand-alone" instances that are suitable for semi-formatted viewing through the web with CSS styling. They cannot be fully formatted because, for example, numbering has not been inserted, and cross-references have not been resolved. A consequence of having the XML side door is that the automatically formatted LaTeX files will tend to have very long lines. Driver Scripts: For the regular GELLMU main track use the driver script "mmkg" to build from regular GELLMU source. One should use the new driver script "mmkgfromx" to build from XML source under the document type defined in the DTD file "xml/axgellmu.dtd". (This DTD file lives under the UTF-8 text encoding though presently only one little-used element name is non-ASCII, and that name admits Latin-1 representation.) Windows XP Support: In the case of a recently acquired (August 2006) ``notebook'' class computer with ``Windows XP, Home Edition'', it was found after (1) installing Cygwin, (2) then installing Cygwin packages for GNU Emacs, Perl, Tcsh, TeX and LaTeX, OpenSP/OpenJade, and Expat (for the important and basic "xmlwf" utility), and (3) making sure that all of the appropriate executables are in one's command path (within Cygwin), that the GELLMU tarball drops easily into "/usr/local/gellmu" (Cygwin filesystem hierarchy), and the Linux driver scripts may be used. The bin/win32 directory in the distribution remains untouched since 2001 for lack of a volunteer interested in updating the batch files. For that approach to be sensible one wants to acquire the free software items mentioned above for regular installation in Windows (apart from Cygwin -- but all of these things co-exist peacefully when found in both worlds as far as this author knows). ---------------------------------------------------------------------- Early 2006 IMPORTANT ISSUE for MathML output The newer versions of Perl are somewhat incompatible with less new versions regarding the UTF-8 content-encoding. This can create problems with parsing math zones while generating XHTML+MathML output. One of the aspects of this issue is that the meaning of "use UTF-8" has changed (as advertised by advance warnings). The specific concern is with splitting a UTF-8 string into the array of its characters. It seems to be the case with Perl 5.6 that "use UTF-8" is adequate for Gellmu's parsing, while with Perl 5.8.1 and later one wants both "use UTF-8" and "use encoding". There seems to be no "encoding" available by default in 5.6. Consequently, this release of gellmu provides a dummy library "encoding.pm" that is intended for use when there is no separate "encoding" package installed with Perl 5.6. With the newer Perl versions simply move the small dummy "encoding.pm" out of (or to another name in) the "perllib" directory in the Gellmu tree. ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.2.3 (25 May 2006) 1. Bug fix. Intermediate XML file that is not standalone is so labeled. 2. Modified XHTML+MathML to use − as minus sign. 3. Bug fix. Display style was not in force for "equation" and "eqnarray" in XHTML+MathML 4. Modified handling of "text" (for incidental text inside math zones) so that the presence or absence, but not its extent, of initial or trailing whitespace is significant in HTML and XHTML+MathML formattings. Also fixed whitespace handling for "bmod" and "pmod". Modified the LaTeX formatting so that "text" is set as LaTeX's "text" instead of as "mbox". ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.2 (28 Feb 2006) 1. Tables and Tabular now have functioning p cells. Only "par", not "parb", should be used to introduce a new paragraph in a tabular p-cell. For a forced linebreak inside a p-cell use the named form \brk rather than "\\", which may only be used to begin a new row. 2. Horizontal alignment in tables and tabular now function in HTML, as do horizontal rules (via hline in tabular or trule in table) and vertical rules (via '|' in table or tabular argument). Much of the new functionality with tables in HTML is based on assuming web browsers have CSS2 support. 3. Added support for the attribute "style" of "assertion", which plays the role of \theoremstyle in LaTeX. If "style" is unset, the assertion is set in italics, while if "style" has the value "definition", the assertion is set upright. 4. Bug. Finally decided to rely on CSS for HTML/XHTML handling of assertion style. 5. Bug. Used the "bm" package in LaTeX formatting (and CSS in XHTML+MathML) to correct the appearance of "mathbf". 6. The elements "par" and "parb" are no longer allowed inside "emph". The element "par" now requires explicit closing in source. 7. Use of the elements "mbox", "regch", and "text", is now restricted to math zones. 8. Minor changes will be needed in order for some old documents to be used with new DTDs. 9. Numerous bug fixes. ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.0.7 (01 Feb 2005) 1. Bug/Change. Coding for the element "text" inside math elements in "mathprep.pl" had assumed that "text" had no sub-elements (consistent with the content model of MathML's "mtext"). The author is debating with himself as to whether this is too restrictive. Meanwhile that code has been changed. 2. Change. Added AMSMath names "ltimes", "rtimes", and "mp" to the "article" document type. 3. Bug/Change. Pushed handling of the element "sref" out to end formatters (parallel to handling of "ref") so as to use the ".xlb" database. 4. Change. Added handling in HTML and LaTeX formatters of "eqntag". 5. Change. Positive labelwidth in LaTeX formatting of "menu" and "Menu". CHANGES IN VERSION 0.8.0.6 (01 Dec 2004) 1. Bug fix. The script "mathprep.pl" was failing to write 'mchld=""' when a container had no actual content, thereby causing "htmlgart.pl" to exit with an error message. 2. Bug fix. The parameter entity "%opline" was nonsensically allowing "%fmath" content. Its model was tightend and a new version "%mopline" using "math|tmath" instead of "%fmath" was created for use with "itemlabel" and "op0". 3. Bug fix. The shell script "bin/linux/lmkg" was revised to prevent failure with some versions of "/bin/sh". 4. Change. The HTML "dl" written by "htmlgart.pl" for formatting "assertion" was revised to have "class" attribute "assertion" so that CSS-controlled margins can be customized. 5. Change. The CSS stylesheet "webstyle/mxh.css" was changed to zero left and right margins for "dl.assertion" and to inhibit linebreaking inside all "math" containers, inline as well as block. 6. Bug fix. Comments were inhibited (for validation) at the top level of "thebibliography". 7. Change. Provided a GMT timezone option for the banner datestamp in HTML output. ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.0.5 (10 Oct 2004) 1. Bug fix. A small regressive bug in the LaTeX output stream from version 0.8 caused line separation to be doubled for verblists (corresponding to an enhanced form of LaTeX's verbatim) and addrs (for surface mail addresses other than those in the preamble). 2. Bug fix. Binomial coefficients were not being fenced in the XHTML+MathML output. 3. Bug fix. In LaTeX output there was unwanted space between "\otimes" and any subscript attached to it. Changed unconditional output for "" from "\otimes{}" to "\otimes " (not sure if this is adequate). Similar changes for "times", "oplus", "cup", "cap", "circ", and "wedge". (There is no parallel issue on this if a unicode point for "otimes" appears in UTF-8 source, but then there might be other issues in the UTF-8 category for latex.) 4. Change. Comments in XHTML output that were present for development purposes have been removed. 5. Change. In the XHTML+MathML output only streamlined UMSS materials are now being used when content MathML is not being written (as is the case now). There is a user switch with the environmental variable "GELLMU_NoUMSS" to turn off the use of UMSS materials (not recommended apart from kiosk situations). For information about the UMSS materials see http://www.w3.org/Math/XSL/. 6. Change. The distribution directory called "css" has been replaced by "webstyle", which now contains copies of the W3C UMSS materials as well as "mxh.css". For the XHTML+MathML and classical HTML outputs the default value for the web style directory name (containing both xsl and css sheets) is now "../webstyle". The only override for this is now via the environmental variable "GELLMU_StyleDir" (which may be coded in a driver script such as "mmkg"). Take account of HTML "base" directives, if used, when configuring "GELLMU_StyleDir" ---------------------------------------------------------------------- CHANGES IN VERSION 0.8.0.4 (29 Sep 2004) These changes affect "regular" GELLMU, mainly in relation to the new XHTML+MathML output. 1. Bug fix. The handling of "\not" for XHTML+MathML in version 0.8 suffered from a serious oversight. It has been completely revised beginning with a change in the content model from empty to non-empty, with content the operator under negation, possibly following "\," or "\ ". An old source with, for example, the markup "a \not\,| b" will still be good. 2. Bug fix. There was a serious adverse interaction between the use of '_' and '^' for range content with sums, products, and integrals and other use in connection with XHTML+MathML output. 3. Several old GELLMU sources have been found that failed processing because of validation errors. While some of these were simply author errors, others have led to small loosenings in the SGML and XML document type definitions. 4. SGML and XML files made from old sources that validate under old DTDs may not validate under current DTDs. The DTDs from the 0.7.4 release (July 2001) have been added to the current release in the directory "dtd-old" for those who might need them. One change that will trip a significant number of old documents is that loose inline text is no longer allowed with "abstract" (nor in "legalnotice"). For this in most cases the regular GELLMU source document may be updated simply by beginning the abstract with a blank line. 5. There has been further progress in writing the User Guide (doc/userdoc). It is a work in progress. There have been requests for a glossary of commands. That is in the works, but the plan involves a literate formal document type definition. Meanwhile one may search the DTDs "gellmu.dtd" (the Latin1 version or "ugellmu.dtd", the UTF-8 version) for markup vocabulary. ---------------------------------------------------------------------- NEW IN VERSION 0.8 (2 Sep 2004) The part of the project called "Regular GELLMU", which is a bridge from LaTeX authoring to XML authoring in generalized LaTeX-like markup, now has an output stream in the modern XML form of HTML extended for mathematical content by the World Wide Web Consortium's MathML. If an article has mathematical content, build it with "mmkg". If an article has no math, build it with "lmkg". (If it does have mathematical content, it will still build, but there will be no output stream in XHTML + MathML. The classical HTML output will contain ASCII pseudo-TeX.) HTML with MathML is obtained from a regular GELLMU article by calling the Perl program htmlgart.pl with argument "-mathml". Without that argument the program writes classical HTML using ASCII pseudo-TeX for mathematical content. Classical HTML is still useful in terminal windows and with the shrinking number of graphic screen web browsers for which there is no support for MathML without cost. If htmlgart.pl is called with the argument "-xhtml", then it writes the XML form of HTML using ASCII pseudo-TeX for mathematical content. "doc/userdoc" is a beginning at providing an introduction for users. Please let me know what else should be explained there. At this time there has been no updating of the native command line scripts for the win32 platform because the author no longer has reasonable access to that platform. If a win32 platform user acquires "Cygwin" with Emacs, Perl, TeX, and OpenSP, then it should be easy to adapt the current Linux scripts for use. ---------------------------------------------------------------------- ABOUT GELLMU GELLMU is an acronym for "Generalized Extensible LaTeX-Like MarkUp", which is the author's concept for using LaTeX-like markup to write consciously for SGML document types such as HTML, DocBook, TEI, or GELLMU's own didactic LaTeX-like article. It evolved from earlier thought about delineation of a coherent subset of LaTeX commands with the property that if a LaTeX document used only those commands then it could be translated with full reliability to other formats including HTML so that documents could be prepared both for print and for the web from a single source. Essential information is in the manual, which may be found in the distribution tree as "doc/glman" Both of these forms of the manual were prepared from a source file doc/glman.glm that is LaTeX-like markup for the didatic "article" SGML document type. Additional information is available at the GELLMU web site: http://www.albany.edu/~hammond/gellmu/