Chapter 1
Introduction

This document is created with lualatex or that like with output format dvi. The package tex4ht is loaded.

LaTeX is a beautiful way to create printable documents, in our days preferably as pdf-files, with a particular strength in typesetting formulae like

π = √ ---
  12 k=0(--3)-k
2k + 1. (1.1)

Here, portability of the format pdf is a vital feature. In the past, normally dvi (device independent) described in [Rei17] has been used and still creation of external formats like html, odt and docx are based on an intermediate dvi-file. It is much more lightweight than PDF specified in [PDF08], and the newer [ISO20].

This piece of software implements both an ant-task and a maven-plugin generating documentation of various formats from LaTeX-files in a uniform way. Chapter 2 shows how to install both the maven-plugin and the ant-task and Chapter 3 describes the usage. Note that the maven-plugin is both easier to install and more versatile to be used.

From the LaTeX-files, only the so-called gls:lmf must be compiled using a so called gls:le, other LaTeX files occur only as input for the \input command. It is very usual to endow LaTeX-files with figures. On the other hand, there are many graphic formats which cannot be included directly in a LaTeX-file and thus need special support by this software. If there is some format needed but not yet provided, please write an email to the author.

Many graphic file formats require preprocessing, i.e. the according files must be processed before processing LaTeX main files, as described in Chapter 4. Then follows the proper processing of LaTeX main files including creation of index and glossaries as described in Chapter 5. Besides pdf, the target formats include the web-formats html and xhtml, open offices format odt, Microsoft’s word formats like docx and finally plain text.

Uniformity of ant-task and a maven-plugin means in particular, that the settings which may be passed to the task and those allowed for the plugin are in a one-to-one relation. They are both described in Chapter 6. It is a design goal, that the auxiliary programs used by this software are fully configurable via parameters, that aspects not completely specified can be handled flexibly, there are parameters supporting information development and that for the parameters are default values which allow doing without explicit parametrization in most of the cases. Both, the ant-task and the maven-plugin rely on the same code base which form the package org.m2latex.core. The code specific for the ant-task is in org.m2latex.antTask and that specific for the maven-plugin is in org.m2latex.mojo.

The creation process supports an index, a glossary and a bibliography. In addition, code written in python and other languages can be included and executed during creation of the document. Again, further functionality can be added by demand.

The present manual is created by the maven-plugin or the ant-task described here. There should be no difference in the result. This manual is designed in a way that it covers the most important features but also to demand the most important features. That way, creating this manual is a top level test for the underlying software. The maven-plugin is somehow superior because it better supports the design process for the LaTeX sources.

If something goes wrong in the build process, or there is an indication of some deficiency in the result of the build process, processing must be aborted if going on does not make sense and there must be some error or warning logging as described in Chapter 7.

The author found some gaps, i.e. desirable features which are not yet implemented. To prioritize further work, all these gaps are collected in Chapter 8. Accordingly, the most important bugs are collected in Chapter 9. The user is encouraged to contribute with feature requests and bug reports and to vote for realization of features and on fixing bugs. Software quality is ensured mainly through tests which are described in Chapter 10.