-
Notifications
You must be signed in to change notification settings - Fork 101
LaTeXML Plugins
We have the rough beginnings of a Plugin architecture for LaTeXML. A Plugin can extend LaTeXML in various ways from simply defining a new binding for a (La)TeX package to more complex tasks such as converting LaTeX to DOC format. They may be developed for special purposes or with the intent of eventually being adopted into the master distribution once complete. This page gives a (currently very) rough description of what a LaTeXML plugin is, and lists plugins that we are aware of that you may find useful.
When LaTeXML processes documents it auto-discovers certain files of various kinds that are referred to in some fashion by the document, command-line options or profiles (which reflect collections of options). These files currently include (La)TeX packages (which by default LaTeXML won't attempt to process), LaTeXML-specific bindings for those packages, CSS and XSLT stylesheets, javascript libraries, profiles, and Manifest file generators.
In some cases, bindings are able to add processing rules to existing postprocessors (such as defining new translations of LaTeXML's math representation to MathML or OpenMath). We intend to extend this mechanism to allow entirely new post-processors, but since the order that post-processors run is critical, we first have to devise a means to clarify when a new post-processor will run.
Thus, a LaTeXML Plugin is a Perl Module typically named something like LaTeXML-Plugin-Foo which will declare a dependence on LaTeXML and that simply places its files in the places LaTeXML expects to find them (which needs documentation).
Assuming that LaTeXML.pm is installed in INSTALLDIR
, LaTeXML will look in:
- (La)TeX packages: wherever kpsewhich will find them
- LaTeXML Bindings:
INSTALLDIR/LaTeXML/Packages/foo.sty.ltxml
- CSS:
INSTALLDIR/LaTeXML/resources/CSS/foo.css
- XSLT:
INSTALLDIR/LaTeXML/resources/XSLT/foo.xsl
- Javascript:
INSTALLDIR/LaTeXML/resources/javascript/foo.js
- Profiles:
INSTALLDIR/LaTeXML/resources/Profiles/foo.opt
- Manifest creators:
INSTALLDIR/LaTeXML/Post/Manifest/foo.pm
- LaTeXML-Plugin-Doc: a plugin for converting (La)TeX documents to DOC format.
- LaTeXML-Plugin-ltxmojo: A Mojolicious web service for LaTeXML.
- LaTeXML-Plugin-ltxpsgi: PSGI web service for LaTeXML.
- LaTeXML-Plugin-latexmls A socket server for daemonized LaTeXML processing
- LaTeXML-Plugin-MathSyntax An alternative grammar for parsing mathematical expressions for LaTeXML, implemented in Marpa::R2
- LaTeXML-Plugin-Introspection LaTeXML introspection for TeX package dependencies and command sequence dictionaries