The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.8.0 - 2014-05-05

  • Too many changes to enumerate...
  • Generates HTML5, ePub
  • new Color objects allowing better & more accurate, and extensible color models; binding for the xcolor package.
  • RDFa support; Thanks Christoph Lange
  • consistent error reporting, in both conversion & post-processing that supports automated build systems; Thanks Deyan Ginev, Heinrich Stammerjohanns
  • uses dvipng (IF available) for converting tex code to images; MUCH faster than going via eps. HOWEVER, it wont handle embedded postscript, so we only use it for converting math to images.
  • Reorganize various non-perl data files into a (hopefully) more manageable arrangement, and with more consistent naming: lib/LaTeXML/resources contains various resources for running the program including
    • DTD, RelaxNG for holding various schema
    • XSLT, CSS, javascript for holding various styling & script resources
  • Mechanism for bindings to request resources (css, javascript) that will be included in generated output if appropriate (eg. if html)
  • more consistent naming schemes
    • for classes typically start ltx_<element>, ltx_font_<font>, ltx_role_<role> etc
    • LaTeXML.css for core.css
    • package specific css files: ltx-<package>.css
    • special purpose css files: LaTeXML-<feature>.css
  • XSLT uses <xsl:element> exclusively so same modules cope with both xhtml & html5; More easily extended and overridden by author customizations.
  • 0.7.9xx 2012-08-01
    • some slight efficiency improvements (reports Deyan Ginev, Joe Corneli)
    • fixed bug in Post reading from STDIN (thanks Josh Bialkowski)
    • various robustness
    • I/O reorganization, which includes
      • an extensible pseudo-protocol for sources of TeX and data, including file:<filename>, string:<explicit-string-data>
      • Migration of control of I/O to functions defined in Package.pm InputFile, InputDefinitions, etc
      • Obsolete $GULLET->input, $GULLET->expandTokens
      • Tokens lists are now immutable (do NOT implement Mouth API)
  • 0.7.9xx 2012-07-01
    • more consistent handling of math spacing; treat \quad and wider as punctuation
    • better support for adding ID to all elements
    • parallel math markup will establish node-to-node cross-referencing Particularly pmml+cmml uses id & xref to connect related pmml & cmml nodes.
    • generate MathML mrow instead of mfenced.
    • experimentally, do NOT define non-control sequences as mathactive (in order to assign XMTok attributes), but store such properties separately.
    • Have MathBox store the XMTok properties of simple symbols; create Primitives for simple symbols, rather than Constructors.
    • switched comparison files from dvi to pdf; more portable
  • 0.7.9xx 2012-06-02
    • MathFork updates
    • use LaTeXML.catalog more consistently; define URN's for RelaxNG modules and XSLT modules
  • 0.7.9xx 2011-06-01
    • various changes and small completions to LaTeX that help to process raw TeX style & definition files from the LaTeX distribution.
    • Support LaTeX's input encoding mechanism by finding, reading and implementing the encoding definitions
    • Support LaTeX's fontencoding mechanism and TeX's \char, etal, by implementing FontMap's that map input codepoints to unicode. Also read in font encoding definitions from the LaTeX distribution
    • Support babel by implementing core support and reading individual language definitions from the LaTeX distribution.
  • 0.7.x 2011-03-16
    • Bindings for floatfig, floatflt, JHEP,JHEP2,JHEP3
    • improved model, attributes and conversion for floating objects
    • Have \caption increment the appropriate counter, rather than figure, table, etc This avoids many problems with subfigures, and so forth.
  • 0.7.x 2011-02-28
    • Bindings for llncs.cls, rsfs.sty, multicol.sty, enumerate.sty, xspace.sty, caption.sty, subfigure.sty, upgreek.sty
    • Initial support for AmSTeX (AmSTeX.pool)
    • Schema changes: new ltx:inline-para, fixed ltx:classification, positionable ltx:p, ltx:bib-data holds original bibentry
    • improved parallel markup
    • support for Unicode Plane 1 as alternative to mathvariant
    • various improved code, implenting \fracwithdelims, \DeclareMathAlphabet, \obeylines, \hypersetup, \centering, \raggedright, \raggedleft, \let, \rotatebox, \reflectbox, \scalebox, \qopname, \Sb, \Sp, \afterassignment, \sidecaption, \@vec, \minCDarrowwidth, \beginsection, \proclaim, \AtBeginDocument, \AtEndDocument, numbering, rules within tables
    • new Box() function
    • \iflatexml in latexml.sty namespaced attributes
    • improved table header heuristics
    • better handling, and distinguishing broup, begingroup
    • better ID handling; many elements get ID's, equations always do.
    • better MathML conversion, even when parsing fails.
    • support for --icon provides a favicon
    • more test cases (but not enough)
    • More careful distinction between ToString vs Stringify vs UnTeX Stringify is for debugging, ToString should return string form, NOT neccesarily for getting TeX many changes to definitions and usage of these.
    • Many constructors converted to Primitives to support turning accents or Unicode conversions directly to boxes, not requiring constructors; this allows them to be unambiguosly converted to Strings (using ToString) and thus can be put in attributes.
    • avoid introducing doubled slashes in pathnames, so that (eventually) might use the TeX standard interpretation that treats them as recursive wildcard. (that is, expandable directories)
    • INCOMPATIBLE: Localization; remove assumed names & symbols from formatting titles, sections, etc. Let style files determine prefixes or formatting of reference numbers. Put these within the ltx:title (eg.) and wrapped in ltx:tag. This is incompatible as different attributes are used, and ltx:tag is used to contain the reference number.
    • more flexible TOC creation, support for list-of-figures and similar.
    • Fuller support for seealso, heuristics to try to connect the terms to actual entries.
    • Safer encode/decode of objects being stored in the ObjectDB.
  • 0.7.x 2009-06-19 (ref 983)
    • fixed typos in aa_support & sv
    • added wrapfig.sty, llncs.cls, rsfs.sty, multicol.sty, enumerate.sty, xspace.sty, caption.sty, subfigure.sty
    • initial implementation of AMSTeX (amstex.tex & amsppt.sty)
    • enabled better CSS styling via XSLT. Thanks Lee Worden

Documentation

transforms a TeX/LaTeX file into XML.
A omni-executable for LaTeXML, capable of stand-alone socket-server and (soon) web service conversion.
transforms a TeX/LaTeX math expression into various formats.
postprocesses an xml file generated by latexml to perform common tasks, such as convert math to images and processing graphics inclusions for the web.

Modules

A converter that transforms TeX and LaTeX into XML/HTML/MathML
abstract class representating colors using various color models; extends LaTeXML::Common::Object.
represents colors in derived color models
represents colors in the cmy color model: cyan, magenta and yellow [0..1]; extends LaTeXML::Common::Color.
represents colors in the cmyk color model: cyan, magenta, yellow and black in [0..1]; extends LaTeXML::Common::Color.
represents colors in the gray color model: gray value in [0..1]; extends LaTeXML::Common::Color.
represents colors in the hsb color model: hue, saturation, brightness in [0..1]; extends LaTeXML::Common::Color.
represents colors in the rgb color model: red, green and blue in [0..1]; extends LaTeXML::Common::Color.
Configuration logic for LaTeXML
representation of dimensions; extends LaTeXML::Common::Number.
Error and Progress Reporting and Logging support.
representation of floating point numbers; extends LaTeXML::Common::Number.
representation of fonts
representation of glue, skips, stretchy dimensions; extends LaTeXML::Common::Dimension.
represents the Document Model
represents DTD document models; extends LaTeXML::Common::Model.
represents RelaxNG document models; extends LaTeXML::Common::Model.
representation of numbers; extends LaTeXML::Common::Object.
abstract base class for most LaTeXML objects.
transforms TeX into XML.
representation of aligned structures
support for Arrays of objects
Representations of digested objects; extends LaTeXML::Common::Object.
Representations of digested objects.
Control sequence definitions.
Control sequence definitions for chardefs.
Conditionals Control sequence definitions.
Control sequence definitions.
Expandable Control sequence definitions.
Primitive Control sequence definitions.
Control sequence definitions for Registers.
represents an XML document under construction.
expands expandable tokens and parses common token sequences.
support for keyvals
represents lists of digested objects; extends LaTeXML::Core::Box.
tokenize the input.
a fake Mouth for processing a Binding file
tokenize the input from a file
tokenize the input from http
tokenize the input from https
representation of math dimensions; extends LaTeXML::Common::Dimension.
representation of math glue; extends LaTeXML::Common::Glue.
representation of pairs of numerical things
representation of lists of pairs of numerical things
a formal parameter
formal parameters.
rewrite rules for modifying the XML document.
stores the current state of processing.
digests tokens into boxes, lists, etc.
representation of a Token: a pair of character and category code (catcode); It extends LaTeXML::Common::Object.
represents lists of LaTeXML::Core::Token's; extends LaTeXML::Common::Object.
Representations of digested objects.
global exports used within LaTeXML, and in Packages.
parses mathematics content
Support for package implementations and document customization.
Postprocessing driver.
Post-Processing modules for converting math to MathML.
implements a BibTeX parser for LaTeXML.
smart packing and unpacking of TeX archives
portable pathname and file-system utilities
auxiliaries for web-scalability of LaTeXML's IO

Provides

in lib/LaTeXML/Common/XML.pm
in lib/LaTeXML/Common/XML/Parser.pm
in lib/LaTeXML/Common/XML/RelaxNG.pm
in lib/LaTeXML/Common/XML/XPath.pm
in lib/LaTeXML/Common/XML/XSLT.pm
in lib/LaTeXML/Core/Alignment/Template.pm
in lib/LaTeXML/Core/Definition/Constructor/Compiler.pm
in lib/LaTeXML/Post/Collector.pm
in lib/LaTeXML/Post/CrossRef.pm
in lib/LaTeXML/Post.pm
in lib/LaTeXML/Post/Graphics.pm
in lib/LaTeXML/Post/LaTeXImages.pm
in lib/LaTeXML/Post/MakeBibliography.pm
in lib/LaTeXML/Post/MakeIndex.pm
in lib/LaTeXML/Post/Manifest.pm
in lib/LaTeXML/Post/Manifest/Epub.pm
in lib/LaTeXML/Post/MathImages.pm
in lib/LaTeXML/Post/MathML/Content.pm
in lib/LaTeXML/Post/MathML/Linebreaker.pm
in lib/LaTeXML/Post/MathML/Presentation.pm
in lib/LaTeXML/Post.pm
in lib/LaTeXML/Post/OpenMath.pm
in lib/LaTeXML/Post/PictureImages.pm
in lib/LaTeXML/Post.pm
in lib/LaTeXML/Post/SVG.pm
in lib/LaTeXML/Post/Scan.pm
in lib/LaTeXML/Post/Split.pm
in lib/LaTeXML/Post/Writer.pm
in lib/LaTeXML/Post/XMath.pm
in lib/LaTeXML/Post/XSLT.pm
in lib/LaTeXML/Pre/BibTeX/Entry.pm
in lib/LaTeXML/Util/Geometry.pm
in lib/LaTeXML/Util/Image.pm
in lib/LaTeXML/Util/ObjectDB.pm
in lib/LaTeXML/Util/ObjectDB/Entry.pm
in lib/LaTeXML/Util/Radix.pm
in lib/LaTeXML/Util/Test.pm
in lib/LaTeXML/Util/Transform.pm