Skip to content

Reissner/latex-maven-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The latex-maven-plugin and ant task

Use this maven-latex-plugin in your Maven projects and this ant tasks in your ant projects to automatically convert all LaTeX documents into the desired output format.

The maven plugin and the ant task, both pieces of software share the same code base, called the 'LaTeX builder', and provides its (common) features. Whereas the features implemented are outlined in the sequel test in Section 'Features' the features to come are collected in Section 'Feature Requests'.

Also note that the full manual of this software is written in LaTeX and can be generated by the maven plugin and by the ant task it refers to. The manual itself provides any details a user may wish. Download the latest version under manualLMP.pdf.

For pieces of information on installation and usage specific for the maven plugin or for the ant tasks, we refer to 'The latex-maven-plugin' Section and to 'The latex ant tasks' Section, respectively. In addition, the pom file and the build file illustrate installation and usage.

The improvements the author plans are collected as 'To-Dos' without special ordering. The reader is encouraged to contribute to continuous improvement by contacting me. Both, new ideas and bare coding, both are welcome.

You can visit the homepage or the project hosted on GitHub forked from akquinet/maven-latex-plugin.

Section Features describes the features of the converter independently of context of maven or ant. As the 'LaTeX builder' is merely a bundle of converters to offer an interface to maven and to ant, it relies on several converters doing the proper work, as e.g. lualatex to convert latex into PDF format. Section Installation is about installation of these converters.

Finally, there is a section on the developer.

Features

The main use of the 'LaTeX builder' is to automatically convert all LaTeX documents .tex which are by default in $root/src/tex/ and subdirectories into desired output format(s) and to push to the targets' folder by default to $root/target/site/. To that end, it applies a latex converter like lualatex to the top level sources ignoring .tex files which are just included.

In the sequel the supported output formats are described. The focus is the final creation of output files from latex sources, but this software also supports the process to reach that final result, we refer to as document development.

While creating the output files, also a lot of intermediate auxiliary files, as log files are created. For sake of reproducibility these must be cleaned up again. On the other hand, there are reasons to keep them. So the details of cleanup is devoted a separate section.

Reproducibility of artifacts is another feature, realized for PDF output only. Thus, there is a mechanism to check equality of the newly created document with the last one.

Latex documents may contain bibliographies, indices, glossaries but also a table of contents and similar lists and support of these elements is vital. More and more also inclusion of programs, as listings and even inclusion of computation result play a role. This 'LaTeX builder' satisfies this need by supporting pythontex.

To ensure quality, this 'LaTeX builder' checks latex sources and log files.

Although latex focuses on texts, it may also include graphics in various formats, but most of them need auxiliary programs to process before they can be inserted in the latex document. This 'LaTeX builder' supports the necessary graphics processing.

Typically, maven plugins and ant tasks can be implemented in pure java. In contrast, this LaTeX builder' just orchestrates invocation of various auxiliary programs and so depends on their compatibility. Thus, version checks are a means to ensure interoperability and if it is broken may give a hint on a possible reason.

Output in various formats

One aim is to convert latex files in printable formats like pdf, formats in the office world like docx and browser formats like html. The following lists the supported output formats together with the converters used by this plugin. The author must admit that there is a lot to do still, to provide good conversions in formats other than pdf, dvi, ps and txt.

  • pdf, dvi, ps (with converters lualatex, xelatex or similar.)
  • html, xhtml (partially supported). The author is not content with htlatex for many reasons. It is in the package texlive-tex4th.
  • docx, rtf, odt (TBC)
  • txt
  • ...
  • log file with the result of style check chktex for latex sources.

For further plans see here.

Support for document development

The 'LaTeX builder' is designed to build artifacts for all source documents at once searching in a specified folder for the tex-files and related as bib-files and graphic files.

This is appropriate for deployment but not when changing and developing a single document. For that scenario, it is better to use an editor and viewer, maybe a build tool like latexmk synchronized and compile single files with the various tools within the enclosing working directory.

To make the 'LaTeX builder' compatible with development, it has to create intermediate files and output files like pdf in the working directory. Intermediate files are needed for parts which need sorting like bibliographies or indices but also for most kind of graphics to be included into a LaTeX document.

The 'LaTeX builder' can use these intermediate files as it creates these files also in the working directory and can also perform a cleanup needed in a build process as described in Section 'Cleanup after creation'.

When starting development of a document with a lot of graphics from a clean working directory it is quite cumbersome to create intermediate graphic files includable in TEX-files.

Thus, 'LaTeX builder' offers separate creation of these graphic files through the maven goal grp.

Cleanup after creation

Of course, besides creation there is also a way to clean up, i.e. to remove files built. Whereas files in the target directory are removed by the build process both of maven and of ant, there is a maven goal and an ant task to remove the intermediate files in the working directory which is the directory of the source documents. For details see Section 'Support for document development'.

Reproducibility and equality artifacts

There are use cases, where one wants to check correctness of artifacts. Thus, a kind of reproducibility is needed. In particular when creating pdf files, this is nontrivial, because even if the source files don't change, the resulting pdfs differ in general for each run. The reason is that by default, latex includes a lot of meta-data which changes. Above all this is time and date stamp but also the so-called banner.

In the manual, we show how to write latex sources in a way that the artifacts are reproducible. In addition, we present a weaker concept of equality, namely visual equality which allows checking reproducibility if equality is not reachable.

The subject reproducibility is particularly vital because the manual of the 'LaTeX builder' is created with 'LaTeX builder'. This document is also used to test correctness in a regression test. Another aspect of reproducibility is, when computations are performed the results of which are incorporated in the artifact. This is not treated here but in an item of Section 'Feature Request'.

Inclusion of bibliographies, indices glossaries and registers

Also, this 'LaTeX builder' supports bibliographies, indices (also split ones) and glossaries. Support of table of contents, list of figures, list of tables and list of listings refers to clean up only. There is an according ant task and a maven goal.

Inclusion of results of computations and listings

More and more, documents become active. They may be on computer programs, contain listings and even include results of computations, in numeric, symbolic or graphic form. This 'LaTeX builder' satisfies this need by supporting package and tool pythontex. Note that at time of this writing, pythontex supports programming in various languages, not only in python and new languages can be added easily.

Unlike Lua language which is native only to lualatex, inclusion via pythontex is independent of the latex processor.

Check of sources and results, logging

Analyzing the log file created by the converters, the 'LaTeX builder' displays errors and warnings, e.g. overfull boxes. Also based on the log file, it reruns the latex converter by need. So the aim is that if compilation is without error or warning, the output is valid and perfect.

Another aspect is check of sources which is available through the maven goal chk.

Inclusion of various graphics formats

The last feature to point out is the support for various graphic formats including those provided by the package texlive-graphix. The following graphic formats are supported:

  • tikz/pgf is included by the tex converter and needs no action from the LaTeX builder Note that tikzedt is a good graphical editor for that.
  • MetaPost, .mp is a native format in used in the context of the tex format
  • jpg, png and by need other pixel formats are via package graphix
  • gnuplot, .gp and SVG are converted into a tex file containing text and pdf/eps with the pure graphics.
  • xfig, an old format which is somehow deprecated and can be replaced by tikz/pgf. A graphical editor is xfig.

Note that there is a maven goal grp to create the graphics files only.

Version checks

A way to determine the current version of the LaTeX builder and of the converters used versus the versions expected. This may give hints on if something went wrong, in particular with graphics.

This feature is available not for the ant task but for the maven plugin through the goal vrs. So versions can be checked via command line by

mvn latex:vrs

In the lifecycle, this is performed in phase validate.

Feature Requests

Beyond the features presented in Section 'Features', further features are planned for future releases:

  • Currently, this software consists of the core component LaTeX builder, a maven plugin and an ant task. It would be desirable to access the LaTeX builder through an API, also to be described in the manual and to provide it also as a standalone application as latexmk.
  • Currently, a build is a complete build also if only some artifacts are out of date. A differential build is desirable as done by latexmk.
  • Initially, it was the aim to generate output in "all usual output formats". Due to several problems with package tex4ht, this aim was not reached. Also, the aim is not defined precisely enough. The new suggestion is that the LaTeX builder shall generate output of the following categories:
    • page oriented formats,
      • from World of TeX (dvi)
      • from office universe
        • MS-word (docx, rtf),
        • open office odt and maybe others; see OpenDocument
      • cross-platform (pdf, ps)
    • floating formats comprising internet formats (html, xhtml, md, ...) and e-book formats (at least epub)
    • Intermediate format written by latexml which serves as a way to analyze a LaTeX source without need to parse in its odd grammar.
    • Plain text, e.g. for text analysis
  • Currently, one can specify output formats uniform for all LaTeX documents. It may be desirable to be able to specify the output format for any document specifically overriding the general specification.
  • One may give biblatex a trial replacing bibtex as the default. Also, more conservatively, use bibtexu or bibtex8 instead of bibtex.
  • pythontex is a great tool to perform computations in python and also other programming languages like matlab and to include the results in a latex file. This shall be supported in future releases.

Installation

Of course, to run the maven plugin one does need maven and accordingly for the ant task one needs ant. The details of integration in maven and ant are given in Sections on the latex-maven-plugin and the latex ant tasks and their subsections.

Executable package
mvn maven, maven-lib
ant ant

This section is more about the converters used by the 'LaTeX builder'. We provide the executables and the packages with versions tested. The default values are emphasized. Note that this software is designed only to run with the executables with the versions given in VERSIONS. As you can see, the versions must be within an interval.

At first, converting LaTeX into pdf format choose one of the applications mentioned in the next table

executable package
lualatex texlive-latex-bin-bin
pdflatex texlive-latex-bin-bin
xelatex texlive-xetex-bin

Besides pdf, also other output formats are supported. The aim is to create formats from the world of

  • printable docs like pdf,
  • internet like html,
  • Microsoft and open office like docx and odt,
  • simple text (txt-format)

In addition, provide check of sources via chktex.

Currently, creation of output in format other than pdf, is not very mature. Thus, the following table lists in brackets also software which is not in use but worth to be evaluated. The following converters are used for the various output formats.

Format executable package
html htlatex,... tex2live-tex4ht
rtf latex2rtf latex2rtf
png (latex2png) latex2rtf
html (latex2html) latex2html
man (latex2man) texlive-latex2man
braile (latex2nemeth) texlive-latex2nemeth
* odt2doc, (unoconv) unoconv
* (pandoc) pandoc
txt pdftotext poppler-tools
html (pdftohtml) poppler-tools
ps (pdftops) poppler-tools
* (pdftocairo) poppler-tools
ps dvips texlive-dvips-bin
pdf dvipdfm texlive-dvipdfmx-bin
pdf dvipdfmx texlive-dvipdfmx-bin
pdf xdvipdfmx texlive-dvipdfmx-bin
pdf dvipdft texlive-dvipdfmx-bin
pdf (dvipdf) ghostscript
ps (pdf2ps) ghostscript
* gs ghostscript
--- chktex texlive-chktex-bin
--- diff difftuils
--- diff-pdf diff-pdf
--- diff-pdf-visually diff-pdf-visually*
--- pdfinfo poppler-tools
--- exiftool exiftool

The executable and package diff-pdf-visually is special in that it is a python package to be installed via pip install diff-pdf-visually.

Some programs have no deliverable output (some write log files though):

  • chktex just checks the style.
  • The diff-tools diff, diff-pdf and diff-pdf-visually are not used to create difference output but return a flag only indicating whether two pdf files coincide. We use this in the context of integration tests to check that the pdf files created are 'visually equal' to a checked version.
  • Accordingly, pdfinfo and exiftool collect information on pdf-files and display them at standard output. In the future, these are intended to check meta-info.

For some software (output) format * is given. These programs are discussed below.

Note that dvips and gs play a special role: even if not invoked directly as ps-format is not used, converter like dvipdf or dvipdft invoke them as a combination to create ps from dvi via dvips and then apply gs to obtain pdf.

The structure of dvipdf allows to reconstruct its version from that of dvips and of gs.

To check style of latex sources use chktex. To convert to text, first convert to pdf and then to pdf via pdftotext.

Currently, to create hmtl, htlatex, htxelatex and related are used to create. These come in package texlife-tex4ht which suffer several flaws. E.g. CTAN does not hold the definitive sources. Also, there is no real versioning. It depends on outdated dvi format, and does not work properly to convert the manual of this LaTeX builder.

These are the reasons why the author would like to ban this altogether.

Although not clearly documented, unoconv offers conversion from html to office formats (not yet used) and conversion between various office formats. In use is just odt2doc. Also in use is latex2rtf which provides a bad conversion from latex to rtf and insofar into the world of office formats.

Pandoc seems to be the future since it can create quite good html and all office formats, maybe also text directly from latex.

The program gs can convert pdf formats of various versions. This may be needed in future to include pictures into latex via pdf.

To support bibliographies, traditionally a variant of bibtex is used.

Executable package
bibtex texlive-latex-bin-bin
bibtexu texlive-latex-bin-bin
bibtex8 texlive-xetex-bin

Accordingly, traditionally makeindex creates indices; a newer alternative is xindy. If one needs split indices, use splitindex invoking makeindex.

Executable package
makeindex texlive-makeindex-bin
splitindex texlive-splitindex-bin
xindy xindy
upmendex texlive-uptex-bin

Closely related to indices are glossaries created by makeglossaries which can use makeindex or xindy.

Executable package
makeglossaries texlive-makeglossaries-bin

A way to include programmatically computed results, originally in python but in the meantime in other languages as well as e.g. matlab (accessible through the matlab clone octave) is offered by pythontex. It has two converters, pythontex and depythontex, which are spread over several packages.

Executable package
pythontex texlive-pythontex-bin
texlive-pythontex-doc
texlive-pythontex

More loosely coupled to the 'LaTeX builder' is a build tool to build from individual sources, latexmk. Currently, it is not used by this software, and maybe it never will. On the other hand, there are reasons to support interaction with that tool in the course of document development. Of course there are alternatives to latexmk, but we decided to concentrate on a single tool, and we chose latexmk.

Executable package
latexmk texlive-latexmk-bin
texlive-latexmk-doc
texlive-latexmk

Next we talk about the graphic formats which can be included into tex format.

The following table shows a list of converters used for various graphic input formats

format executable package
tex --- texlive-pgf
mp mpost texlive-metapost
jpg,png,... ebb texlive-dvipdfmx
gp gnuplot gnuplot
svg inkscape inkscape
xfig fig2dev transfig

The easiest to treat and still very strong graphic package is tikz/pgf. It is included within tex and although it creates intermediate pdf, this LaTeX builder has nothing to do to make it work.

Almost as good is metapost (mp) which is supported natively, and the builder has only to run the converter. The formats bb and xbb specify bounding boxes and are to include jpg and png, also natively. So, in a sense, ebb is for these pixel formats. Gnuplot (gp) and Scalable Vector Graphics (svg) are external formats with converters creating tex for text and pdf or eps (encapsulated postscript) for the graphic part. Finally, xfig format is a bit deprecated. It is not worth it to include when we want to implement incremental build. The formats tikz/pgf provide a superset of the features of xfig.

How to use the latex-maven-plugin

Goals cfg to create, clr to clean up as described in Section 'Cleanup after creation'. Invocation is e.g. as mvn latex:cfg.

These goals are in a one-to-one relation to an according ant task described in Section 'How to use the latex ant tasks'.

The other goals of the maven plugin go beyond ant functionality.

  • There are separate goals to create artifacts in a specific format pdf, dvi, docx, rtf, odt, html and txt.
  • Goal chk for a style check on the sources. This is advisable at the end of development but also as sporadic intermediate step.
  • There is another goal, grp, to build the graphic files only. This is used mainly during development of the documents: If all graphics is present, one can go on with an IDE without this plugin.
  • Goal vrs checks the versions of the converters.

A maven plugin is just an interface between maven and the application(s) doing all the work. We refer the reader to Section 'Installation' for preparatory installations.

Unfortunately, this plugin did not yet make it into maven central. Thus, one has to add the providers' repository to the pom:

<project ...>
  ...
  <repositories>
    <repository>
      <id>publicRepoAtSimuline</id>
      <name>repo at simuline</name>
      <url>https://www.simuline.eu/public_html/RepositoryMaven</url>
    </repository>
  </repositories>
  ...
</project>

Then it can be used from command line, e.g. to create pdfs as mvn latex:pdf or for cleanup mvn latex:clr with default configuration:

<project ...>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>eu.simuline.m2latex</groupId>
        <artifactId>latex-maven-plugin</artifactId>
        <version>1.5-SNAPSHOT</version> 
      </plugin>
      ...
   </plugins>
    ...
  </build>
  ...
</project>

To make the plugin available within a build, one has to add executions, e.g. as listed below. The execution

  • process-latex-sources is to process latex sources as with mvn latex:cfg,
  • clear-latex-sources is to clean input folders from created files as with mvn latex:clr
  • validate-converters is recommended to ensure that the converters used by the plugin are checked for their versions as with mvn latex:vrs.

Note that, in order to install the plugin from the sources for development of the plugin itself, the executions must be deactivated, because the plugin is invoked in several phases of the build.

<plugin>
  <groupId>|\groupId|</groupId>
  <artifactId>|\artifactId|</artifactId>
  <version>|\versionID|</version>
  <configuration>
  ...
  </configuration>
  <executions>
    <execution>
      <id>process-latex-sources</id>
      <!-- grp, dvi, pdf, html, rtf, odt, docx, txt, chk -->
      <goals><goal>cfg</goal></goals>
    </execution>
    <execution>
      <id>clear-latex-sources</id>
      <goals><goal>clr</goal></goals>
    </execution>
    <execution>
      <id>validate-converters</id>
      <goals><goal>vrs</goal></goals>
      <configuration>
        <versionsWarnOnly>true</versionsWarnOnly>
       </configuration>
    </execution>
  </executions>
</plugin>

In the above declaration, the section configuration is left empty and can be omitted completely. This may be appropriate for many use cases but in case of case the plugin is broadly configurable.

The following code snippet shows all possible configuration settings with their default values.

      <!-- create html and pdf and other formats from latex -->
  <plugin>
	<groupId>eu.simuline.m2latex</groupId>
	<artifactId>latex-maven-plugin</artifactId>
	<version>1.5-SNAPSHOT</version><!--uptodate?-->
	
	<configuration>
          <settings>
            <!-- The latex source directory as a string 
		 relative to $baseDirectory, 
		 containing $texSrcProcDirectory. 
		 This directory determines also the subdirectory of 
		 $outputDirectory to lay down the generated artifacts. 
		 The default value is 'src/site/tex' on Unix systems. -->
            <texSrcDirectory>src/site/tex</texSrcDirectory>

	    <!-- The latex source processing directory as a string 
		 relative to $texSrcDirectory
		 containing all tex main documents 
		 and the graphic files to be processed 
		 and also to be cleaned. 
		 Whether this is done recursively in subfolders 
		 is specified by $readTexSrcProcDirRec. 
		 The default value is '.'. -->
            <texSrcProcDirectory>.</texSrcProcDirectory>

	    <!-- Whether the tex source directory $texSrcProcDirectory 
		 shall be read recursively, 
		 i.e. including the subdirectories. 
		 This is set to 'false' only during information development. 
		 The default value is 'true'. -->
	    <readTexSrcProcDirRec>true</readTexSrcProcDirRec>

           <!-- The artifacts generated by $latex2pdfCommand 
		will be copied to this folder 
		relative to $targetSiteDirectory 
		which is by default '$targetDirectory/site' on Unix systems. 
		The default value is '.'.  -->
            <outputDirectory>.</outputDirectory>

	    <!-- A comma separated list of targets 
		 to be stored in $targetSet. 
		 Allowed values are pdf, html, txt, odt and docx. 
		 The default value is 'pdf, html'. -->
	    <targets>pdf</targets><!-- , html -->

	    <!-- A comma separated list of excluded {@link Converter}s 
		 given by their command, i.e. by {@link Converter#getCommand()}
		 returned as a set by {@link #getConvertersExcluded()}. 
		 Excluded converters need not be installed. 
		 They don't show up in the version check of target 'vrs' 
		 and of course they are not allowed to be used. 
		 By default, this list is empty. -->
	    <convertersExcluded></convertersExcluded>
	    <!--convertersExcluded>xindy, upmendex</convertersExcluded-->


	    <!-- The pattern to be applied to the contents of tex-files 

NOT QUITE: to the beginning 
		 which identifies a latex main file. 
		 The default value is choosen to match quite exactly 
		 the latex main files. 
		 Here we assume that the latex main file should contain 
		 the declaration '\documentclass' 
		 or the old fashioned 'documentstyle' 
		 preceeded by a few constucts. 
		 Strictly speaking, this is not necessary. 
		 For a more thorough discussion,  
		 and for an alternative approach, consult the manual. 
		 
		 The default value is choosen to match quite exactly 
		 the latex main files, no more no less. 
		 Since the pattern is chosen 
		 according to documentation collected from the internet, 
		 one can never be sure whether the pattern is perfect. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. -->
	    <patternLatexMainFile>
\A(\\RequirePackage\s*(\[(\s|\w|,)*\])?\s*\{\w+\}\s*(\[(\d|\.)+\])?|
\\PassOptionsToPackage\s*\{\w+\}\s*\{\w+\}|
%.*$|
\\input\{[^{}]*\}|
\s)*
\\(documentstyle|documentclass)
	    </patternLatexMainFile>

           <!-- Path to the TeX scripts or null. 
		In the latter case, the scripts must be on the system path. 
		Note that in the pom, <texPath /> 
		and even <texPath>    </texPath> represent the null-File. 
		The default value is null. -->
            <texPath/> 

            <!-- Clean up the working directory in the end? 
		 May be used for debugging when setting false. 
		 The default value is 'true'. -->
            <cleanUp>false</cleanUp>

	    <!-- This pattern is applied to file names 
		 and matching shall accept all the files 
		 which were created from a latex main file 'xxx.tex'. 
		 It is neither applied to directories 
		 nor to 'xxx.tex' itself. 
		 It shall not comprise neither graphic files to be processed 
		 nor files created from those graphic files. 
		 
		 This pattern is applied 
		 in the course of processing graphic files 
		 to decide which graphic files should be processed 
		 (those rejected by this pattern) 
		 and to log warnings if there is a risk, 
		 that graphic files to be processed 
		 are skipped or that processing a latex main file overwrites 
		 the result of graphic preprocessing. 
		 
		 When clearing the tex source directory $texSrcProcDirectory, 
		 i.e. all generated files should be removed, 
		 first those created from latex main files. 
		 As an approximation, 
		 those are removed which match this pattern. 
		 
		 The sequence 'T$T' 
		 is replaced by the prefix 'xxx'. 
		 The sequence 'T$T' must always be replaced: 
		 The symbol '$' occurs as end-sign as ')$' 
		 or as literal symbol as '\$'. 
		 Thus 'T$T' is no regular occurrence 
		 and must always be replaced with 'xxx'. 
		 
		 Spaces and newlines are removed 
		 from that pattern before matching. 
		 
		 This pattern may never be ensured to be complete, 
		 because any package 
		 may create files with names matching its own patterns 
		 and so any new package may break completeness. 
		 
		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. 
		 The default value is given below. -->
	    <patternCreatedFromLatexMain>
^(
T$T(                        \.([^.]*|synctex\.gz|out\.ps)|
      (-|ch|se|su|ap|li)?\d+\.x?html?|
                        \d+x\.x?bb|
                       \d+x?\.png|
                        -\d+\.svg|
                         -.+\.(idx|ind|ilg))|
zzT$T\.e?ps|
(cmsy)\d+(-c)?-\d+c?\.png|
(pdf)?latex\d+\.fls)$
	    </patternCreatedFromLatexMain>

	    <!-- The fig2dev command for conversion of fig-files 
		 into various formats. 
		 Currently only pdf combined with pdf_t is supported. 
		 The default value is 'fig2dev'.  -->
	    <fig2devCommand>fig2dev</fig2devCommand>

	    <!-- The options for the command $fig2devCommand 
		 common to both output languages. 
		 For the options specific for the two output langugages 
		 'pdftex' and 'pdftex_t', 
		 see $fig2devPtxOptions and $fig2devPdfEpsOptions, 
		 respectively. 
		 The default value is the empty string. 
		 
		 o '-D +/-rangelist' 
		 Export layers selectively ('+') 
		 or exclude layers from export ('-'). 
		 E.g. -D +10,40,55:70,80  means  keep 
		 only layers 10, 40, 55 through 70, and 80.
		 o '-j' 
		 i18n (internationalization feature)
		 o '-m mag' 
		 Set the magnification at which the figure is rendered 
		 to 'mag'.
		 The default is '1.0'. 
		 This is not usable within latex; not even '1.0'. 
		 o '-s fsize' 
		 Set the default font size (in points) 
		 for text objects to 'fsize'.
		 Refers to the latex-fonts only. 
		 o '-b width' 
		 specify width of blank border around figure (1/72 inch). -->
 	    <fig2devGenOptions />

	    <!-- The options for the command $fig2devCommand 
		 specific for the output languages 'pdftex_t' 
		 and 'pstex_t' which are the same. 
		 Note that in addition to these options, 
		 the option '-L pdftex_t' specifies the language, 
		 $fig2devGenOptions specifies the options 
		 common for the two output langugages 
		 'pdftex' and 'pdftex_t' 
		 and '-p xxx' specifies the full path 
		 of the pdf/eps-file to be included without extension. 
		 
		 Possible options are the following: 
		 (These seem to work for tex only 
		 although according to documentation for all languages. )
 		 Possible values are 
		 
		 o options specified for $fig2devGenOptions 
		 o '-E num'  
		 set encoding for text translation 
		 (0 no translation, 1 ISO-8859-1, 2 ISO-8859-2)
		 o '-F'  
		 do not set font family/series/shape, 
                 so you can set it from latex. 
		 o '-v' 
		 Verbose mode.
  
		 The default value for this option is the empty string. -->
	    <fig2devPtxOptions />

	    <!-- The options for the command $fig2devCommand 
		 specific for the output language 'pdftex'. 
		 Note that in addition to these option1s, 
		 the option '-L pdftex' specifies the language and 
		 $fig2devGenOptions specifies the options 
		 common for the two output langugages 
		 'pdftex' and 'pdftex_t'. 
		 The default value for this option is the empty string. -->
	    <fig2devPdfEpsOptions />

	    <!-- The command for conversion of gnuplot-files 
		 into various formats. 
		 Currently only pdf (graphics) 
		 combined with pdf_t (latex-texts) is supported. 
		 The default value is 'gnuplot'. -->
	    <gnuplotCommand>gnuplot</gnuplotCommand>

	    <!-- The options specific for $gnuplotCommand s
		 output terminal 'cairolatex', 
		 used for mixed latex/pdf-creation. 
		 Note that the option 'pdf|eps' 
		 of the terminal 'cairolatex' is not available, 
		 because it is set internally. 
		 The default option string is empty. -->
	    <gnuplotOptions />

	    <!-- The command for conversion of gnuplot-files 
		 into metapost`s postscript. 
		 The default value is 'mpost'. -->
	    <metapostCommand>mpost</metapostCommand>

	    <!-- The options for the command $metapostCommand. 
		 Leading and trailing blanks are ignored. 
		 A sequence of at least one blank separate the proper options. 
		 The default value is 
		 '-interaction=nonstopmode -recorder -s prologues=2'. 
		 FIXME: does not work:'outputtemplate="%j_%c.mps"' -->
	    <metapostOptions>
	      -interaction=nonstopmode -recorder -s prologues=2 
	    </metapostOptions>

	    <!-- The command for conversion of svg-files 
		 into a mixed format. 
		 The default value is 'inkscape'. -->
	    <svg2devCommand>inkscape</svg2devCommand>

	    <!-- The options for the command $svg2devCommand 
		 for exporting svg-figures into latex compatible files. 
		 
		 The following options are mandatory: 
		 o '-z' or '- -without-gui' 
		 process files from console. 
		 o '-D' or '- -export-area-drawing' 
		 Export the drawing (not the page)
		 o '- -export-latex' 
		 Export PDF/PS/EPS without text. 
		 Besides the PDF/PS/EPS, a LaTeX file is exported,
		 putting the text on top of the PDF/PS/EPS file. 
		 Include the result in LaTeX like: \input{latexfile.tex}. 
		 Note that the latter option is necessary, 
		 to create the expected files. 
		 It is also conceivable to export text as pdf/eps 
		 
		 The following options are prohibited, 
		 because they are automatically added by the software: 
		 o '-A=FILENAME' or '- -export-pdf=FILENAME' 
		 Export document to a  PDF file. 
		 o '-E=FILENAME' or '- -export-eps=FILENAME' 
		 Export document to an EPS file. 
		 
		 The default value is the minimal value, 
		 '-z -D - -export-latex'. -->
	    <svg2devOptions>-z -D --export-latex</svg2devOptions>

	    <!-- The command to create bounding box information 
		 from jpg-files and from png-files. 
		 This is run twice: 
		 once with parameter '-m' 
		 to create '.bb'-files for driver 'dvipdfm' and 
		 once with parameter '-x' 
		 to create '.xbb'-files for driver 'dvipdfmx'. 
		 The default value is 'ebb'. -->
	    <ebbCommand>ebb</ebbCommand>

	    <!-- The options for the command $ebbCommand 
		 except '-m' and '-x' 
		 which are added automatically. 
		 The default value is '-v'. -->
	    <ebbOptions>-v</ebbOptions>

            <!-- The LaTeX command to create a pdf-file. 
		 Possible values are e.g. 
		 'lualatex' 'pdflatex', and 'xelatex'. 
		 The default value (for which this software is also tested) 
		 is 'lualatex'. -->
            <latex2pdfCommand>lualatex</latex2pdfCommand>

 <!-- occurs for xelatex but neither for pdflatex nor for lualatex: 
      LaTeX Font Warning: Font shape 'OMS/cmtt/m/n' undefined
      (Font)              using 'OMS/cmsy/m/n' instead
      (Font)              for symbol 'textbackslash' on input line 371. -->

             <!-- The options for the command $latex2pdfCommand. 
		  Leading and trailing blanks are ignored. 
		  A sequence of at least one blank 
		  separates the proper options. 
		  
		  The default value  comprises the following options: 
		  -interaction=nonstopmode 
		  prevents latex from stopping at the first error. 
		  -synctex=1
		  makes latex create a pdf file 
		  which synchronizes with an editor supporting synchtex. 
		  -src-specials 
		  includes source specials into the output. dvi only? 
		  -recorder
		  makes latex create an fls-file 
		  specifying all inputted files. 
		  -shell-escape enables \write18 
but this can also be done via 
-shell-restricted       enable restricted \write18 and 
-enable-write18 
		  which is needed for some reason for driver dvipdfmx 
		  which seems to be the sole one supporting 
		  pdf-pictures in dvi-mode and pdf-pictures in pdf-mode. 
		  In pdftex this must be specified explicitly as 
		  Driver dvipdfmx is always used by xetex. 
required: 

-interaction=STRING     set interaction mode (STRING=batchmode/nonstopmode/
                        scrollmode/errorstopmode)

-ipc                    send DVI output to a socket as well as the usual
                        output file

[-no]-shell-escape      disable/enable \write18{SHELL COMMAND}
-shell-restricted       enable restricted \write18


-translate-file=TCXNAME use the TCX file TCXNAME
-8bit                   make all characters printable by default


// maybe, this shall be mandatory 
-recorder               enable filename recorder


allowed: 
-file-line-error-style  
-record-package-usages 
-include-directory=dir
-enable-write18 
-enc                    enable encTeX extensions such as \mubyte
-etex                   enable e-TeX extensions
-halt-on-error          stop processing at the first error
-ipc-start              as -ipc, and also start the server at the other end
-mktex=FMT              disable/enable mktexFMT generation (FMT=tex/tfm/pk)
-mltex                  enable MLTeX extensions such as \charsubdef
[-no]-parse-first-line  disable/enable parsing of first line of input file
-src-specials           insert source specials into the DVI file
-src-specials=WHERE     insert source specials in certain places of
                        the DVI file. WHERE is a comma-separated value
                        list: cr display hbox math par parend vbox
-synctex=NUMBER         generate SyncTeX data for previewers if nonzero
-ini                    be pdfinitex, for dumping formats; 
                        this is implicitly true 
                        if the program name is 'pdfinitex'
not allowed: 
-draftmode              switch on draft mode (generates no output PDF)
-output-directory=dir   to specify the output dir 
-aux-directory=dir      to specify the output aux-dir 
-job-name=name          effectively changes the output file name 
-quiet                  makes the log quiet and 
                        so circumvents error and warning detection 
-no-file-line-error     disable/enable file:line:error style messages
-fmt=FMTNAME            use FMTNAME instead of program name or a %& line 
-output-format=FORMAT   use FORMAT for job output; FORMAT is `dvi' or `pdf'
                        pdf is the only allowed...
-progname=STRING        set program (and fmt) name to STRING
                        only names also without -progname are possible 
-help                   display this help and exit
-version                output version information and exit

-->
            <latex2pdfOptions>
	      -interaction=nonstopmode 
	      -synctex=1 
	      -src-specials 
	      -recorder 
	      -shell-escape 
	    </latex2pdfOptions>

	    <!-- The pattern is applied linewise to the log-file 
		 and matching indicates an error 
		 emitted by the command $latex2pdfCommand. 

		 The default value is choosen to match quite exactly 
		 the latex errors in the log file, no more no less. 
		 Since no official documentation was found, 
		 the default pattern may be incomplete. 
		 In fact it presupposes, that $latex2pdfOptions 
		 does not contain '-file-line-error-style'.   

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. 
		 The default value is '(^! )' (note the space). -->
	    <patternErrLatex>(^! )</patternErrLatex>

	    <!-- The pattern is applied linewise to the log-file 
		 and matching indicates a warning 
		 emitted by the command $latex2pdfCommand, 
		 disragarding warnings on bad boxes 
		 provided $debugWarnings is set. 
		 
		 This pattern may never be ensured to be complete, 
		 because any package may indicate a warning 
		 with its own pattern any new package may break completeness. 
		 Nevertheless, the default value aims completeness 
		 while be restrictive enough 
		 not to indicate a warning where none was emitted. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. 
		 The default value is given below. -->
	    <patternWarnLatex>
^(LaTeX Warning: |
LaTeX Font Warning: |
(Package|Class) .+ Warning: |
pdfTeX warning( \((\d|\w)+\))?: |
\* fontspec warning: |
Missing character: There is no .* in font .*!$|
A space is missing\. (No warning)\.)
	    </patternWarnLatex>

	    <!-- Whether debugging of 
		 overfull/underfull hboxes/vboxes is on: 
		 If so, a bad box occurs in the last LaTeX run, 
		 a warning is displayed. 
		 For details, set $cleanUp to false, 
		 rerun LaTeX and have a look at the log-file.
		 The default value is 'true'. -->
	    <debugBadBoxes>true</debugBadBoxes>

	    <!-- Whether debugging of warnings is on: 
		 If so, a warning in the last LaTeX run is displayed. 
		 Note that warnings on boxes 
		 is controlled separately via $debugBadBoxes. 
		 For details, set $cleanUp to false, 
		 rerun LaTeX and have a look at the log-file. 
		 The default value is 'true'. -->
	    <debugWarnings>true</debugWarnings>

	    <!-- Whether creation of pdf-files from latex-files 
		 goes via dvi-files. 
		 
		 If $pdfViaDvi is set 
		 and the latex processor needs repetitions, 
		 these are all done creating dvi 
		 and then pdf is created in a final step 
		 invoking the command $dvi2pdfCommand. 
		 If $pdfViaDvi is not set, 
		 latex is directly converted into pdf. 
		 
		 Currently, not only conversion of latex-files is affected, 
		 but also conversion of graphic files 
		 into graphic formats which allow inclusion in the tex-file. 
		 If it goes via latex, 
		 then the formats are more based on (encapsulated) postscript; 
		 else on pdf. 
		 
		 In the dvi-file for jpg, png and svg 
		 only some space is visible and only in the final step 
		 performed by $dvi2pdfCommand, 
		 the pictures are included using the bounding boxes 
		 given by the .bb or the .xbb-file. 
		 These are both created by $ebbCommand
		 
		 Of course, the target dvi is not affected: 
		 This uses always the dvi-format. 
		 What is also affected are the tasks 
		 creating html, odt or docs: 
		 Although these are based on htlatex which is always dvi-based, 
		 the preprocessing is done in dvi or in pdf. 
		 Also the task txt is affected. 
		 
		 Performance: 
		 false: 17.692s-18.892s
		 true:  22.449s-24.500s

		 The default value is 'false'. -->
	    <pdfViaDvi>false</pdfViaDvi>

	    <!-- The driver to convert dvi into pdf-files. 
		 Note that this must fit the options 
		 of the packages 'xcolor' and 'graphicx'. 
		 Sensible values are 
		 'dvipdf', 'dvipdfm', 'dvipdfmx', 
		 and 'dvipdft' 
		 (which is 'dvipdfm' with option '-t').  
		 The default value is 'dvipdfmx'. -->
	    <dvi2pdfCommand>dvipdfmx</dvi2pdfCommand>

	    <!-- The options for the command $dvi2pdfCommand. 
		 The default value is the empty string. -->
 	    <dvi2pdfOptions />

	    <!-- The pattern is applied linewise to the log-file 
		 and matching triggers rerunning $latex2pdfCommand 
		 if $maxNumReRunsLatex is not yet reached 
		 to ensure termination. 
		 
		 This pattern may never be ensured to be complete, 
		 because any package 
		 may indicate the need to rerun $latex2pdfCommand 
		 with its own pattern any new package may break completeness. 
		 Nevertheless, the default value aims completeness 
		 while be tight enough not to trigger a superfluous rerun. 
		 
		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. 
		 The default value is given below. 



-->
	    <patternReRunLatex>
^(LaTeX Warning: Label\(s\) may have changed\. Rerun to get cross-references right\.$|
Package \w+ Warning: .*Rerun( .*|\.)$|
Package \w+ Warning: .*$^\(\w+\) .*Rerun .*$|
LaTeX Warning: Etaremune labels have changed\.$|
\(rerunfilecheck\)                Rerun to get outlines right$)
	    </patternReRunLatex>

	    <!-- The maximal allowed number of reruns of $latex2pdfCommand. 
		 This is to avoid endless repetitions. 
		 The default value is 5. 
		 This shall be non-negative 
		 or -1 which signifies that there is no threshold. -->
	    <maxNumReRunsLatex>-1</maxNumReRunsLatex>


            <!-- The BibTeX command to create a bbl-file 
		 from an aux-file and a bib-file 
		 (using a bst-style file). 
		 The default value is 'bibtex'. -->
            <bibtexCommand>bibtex</bibtexCommand>

	    <!-- The options for the command $bibtexCommand. 
		 The default value is the empty string. -->
	    <bibtexOptions />

	    <!-- The pattern is applied linewise to the blg-file 
		 and matching indicates that $bibtexCommand failed. 
		 The default value is chosen 
		 according to the 'bibtex' documentation. -->
	    <patternErrBibtex>error message</patternErrBibtex>

	    <!-- The pattern is applied linewise to the blg-file 
		 and matching indicates a warning $bibtexCommand emitted. 
		 The default value is chosen 
		 according to the 'bibtex' documentation. -->
	    <patternWarnBibtex>^Warning--</patternWarnBibtex>

	    <!-- The MakeIndex command to create an ind-file 
		 from an idx-file logging on an ilg-file. 
		 The default value is 'makeindex'. -->
	    <makeIndexCommand>makeindex</makeIndexCommand>

	    <!-- The options for the command $makeIndexCommand. 
		 The default value is the empty string. -->
	    <makeIndexOptions>-c</makeIndexOptions>

	    <!-- The pattern is applied linewise to the ilg-file 
		 and matching indicates that $makeIndexCommand failed. 
		 The default value '(!! Input index error )' 
		 is chosen according to the 'makeindex' documentation. -->
	    <patternErrMakeIndex>
	    (!! Input index error )
	    </patternErrMakeIndex>

	    <!-- The pattern is applied linewise to the ilg-file 
		 and matching indicates a warning $makeIndexCommand emitted. 
		 The default value '(## Warning )' 
		 is chosen according to the 'makeindex' documentation. -->
	    <patternWarnMakeIndex>(## Warning )</patternWarnMakeIndex>

	    <!-- The pattern is applied linewise to the log-file 
		 and matching triggers rerunning $makeIndexCommand 
		 followed by $latex2pdfCommand. 

		 This pattern only matches a warning 
		 emitted by the package 'rerunfilecheck' 
		 e.g. used with option 'index'. 
		 The default value 
		 is chosen according to the package documentation. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the bug. -->
	    <patternReRunMakeIndex>
(^\(rerunfilecheck\) +Rerun LaTeX/makeindex to get index right\.$)
	    </patternReRunMakeIndex>

	    <!-- The SplitIndex command to create ind-files 
                 from an idx-file logging on ilg-files. 
                 This command invokes $makeIndexCommand. 
                 The default value is 'splitindex'. -->
	    <splitIndexCommand>splitindex</splitIndexCommand>

	    <!-- The options for $splitIndexCommand. 
                 Here, one has to distinguish between the options 
                 processed by $splitIndexCommand 
                 and those passed to $makeIndexCommand. 
                 The second category cannot be specified here, 
                 it is already given by $makeIndexOptions. 
                 In the first category is the option '-m' 
                 to specify the $makeIndexCommand. 
                 This is used automatically and cannot be specified here. 
                 Since $splitIndexCommand is used 
                 in conjunction with package 'splitidx', 
                 which hardcodes various parameters 
                 which are the default values for $splitIndexCommand 
                 and because the option may not alter certain interfaces, 
                 the only option which may be given explicitly 
                 is '-V', the short cut for '- -verbose'. 
                 Do not use '- -verbose' either for sake of portability. 
                 The default value is '-V'; it could also be empty. -->
	    <splitIndexOptions>-V</splitIndexOptions>

	    <!-- The MakeGlossaries command to create a gls-file 
		 from a glo-file (invoked without file ending) 
		 also taking ist-file or xdy-file 
		 into account logging on a glg-file. 
		 The default value is 'makeglossaries'. -->
	    <makeGlossariesCommand>makeglossaries</makeGlossariesCommand>

	    <!-- The options for the command $makeGlossariesCommand. 
		 These are the options for 'makeindex' 
		 (not for $makeIndexCommand) 
		 and for 'xindy' (also hardcoded). 
		 The aux-file decides on whether program is executed 
		 and consequently which options are used. 
		 
		 The default value is the empty option string. 
		 Nevertheless, 'xindy' is invoked as 
		 'xindy -L english  -I xindy -M ...'. 
		 With option '-L german', this is added. 
		 Options '-M<' for 'xindy' '-s' for 
		 'makeindex' and '-t' and '-o' for both, 'xindy' and 'makeindex'. -->
	    <makeGlossariesOptions />

	    <!-- The pattern is applied linewise to the glg-file 
		 and matching indicates that $makeGlossariesCommand failed. 
		 The default value '(^\*\*\* unable to execute: )' 
		 is chosen according to the 'makeindex' documentation. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the bug. -->
	    <patternErrMakeGlossaries>
	      (^\*\*\* unable to execute: )
	    </patternErrMakeGlossaries>

	    <!-- The pattern in the glg-file 
		 indicating an error when running 'xindy' 
		 via $makeGlossariesCommand . 
		 The default value is '(^ERROR: )' 
		 (note the space and the brackets). 
		 If this is not appropriate, please modify 
		 and notify the developer of this plugin. -->
	    <!--patternErrXindy>(^ERROR: )</patternErrXindy-->
 
	    <!-- The pattern is applied linewise to the glg-file 
		 and matching indicates a warning when running 'xindy' 
		 via $makeGlossariesCommand. 
		 
		 The default value '(^WARNING: )' 
		 (note the space and the brackets) 
		 is chosen according to the 'xindy' documentation. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the deficiency. -->
	    <patternWarnXindy>(^WARNING: )</patternWarnXindy>

	    <!-- The pattern is applied linewise to the log-file 
		 and matching triggers rerunning $makeGlossariesCommand 
		 followed by $latex2pdfCommand. 

		 This pattern only matches a warning 
		 emitted by the package 'rerunfilecheck' 
		 e.g. used with option 'glossary'. 
		 The default value 
		 is chosen according to the package documentation. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the bug. -->
	    <patternReRunMakeGlossaries>
(^\(rerunfilecheck\) +Rerun LaTeX/makeindex to get glossary right\.$)
	    </patternReRunMakeGlossaries>
 
            <!-- The tex4ht command. 
		 Possible values are e.g. 'htlatex' and 'htxelatex'. 
		 The default value (for which this software is also tested) 
		 is 'htlatex'. -->
            <tex4htCommand>htlatex</tex4htCommand>

	    <!-- The options for the 'tex4ht'-style 
		 which creates a dvi-file or a pdf-file 
		 with information to create sgml, 
		 e.g. html or odt or something like that. 
		 The default value is 'html,2'. 

		 Format: 
		 <Output format>, <index>, <depth>, 
		 ['info'], ['next'], ['fn-in'], ['frames'], 
		 ['pmathml'], ['pmathml-css'], ...
		 
		 options in [] are optional 
		 DEFAULT: html,2 
		 Available formats are html, xhtml, mathml, ooffice 
		 index=2  index in 2 columns. 
		 depth is the depth of sectioning 
		 to which separate files are created. 
		 fn-in specifies inline footnotes 
		 frames specifies separate frames for contents and toc 
		 mathml specifies mathml 
		 uni-html4 is used for unicode
	    -->
	    <!-- xhtml,uni-html4,0 mathml,
,uni-html4,2,svg-->
            <tex4htStyOptions>
	    xhtml,uni-html4,2,pic-tabular
	    </tex4htStyOptions>

	    <!-- options for tex4ht.c, default is empty -->
	    <!-- ' -cunihtf' forces unicode -->
            <tex4htOptions> -cunihtf -utf8</tex4htOptions>

	    <!-- The options for 't4ht' which converts idv-file and lg-file 
		 into css-files, tmp-file and, 
		 by need and if configured accordingly into png files. 
		 The value '-p' prevents creation of png-pictures.
		 The default value is the empty string. -->
            <t4htOptions>-cvalidate</t4htOptions>

	    <!-- The pattern is applied to file names 
		 and matching shall accept 
		 exactly the target files of goal 'html' 
		 for a given latex main file 'xxx.tex'. 
		 Matching triggers copying those files to $outputDirectory. 

		 The patterns for the other targets 
		 are hardcoded and take the form 
		 '^T$T\.yyy$', where 'yyy' 
		 may be an ending or an alternative of endings. 
		 This pattern is neither applied to directories 
		 nor to 'xxx.tex' itself. 
		 
		 For an explanation of the pattern 'T$T', 
		 see $patternCreatedFromLatexMain. 
		 Spaces and newlines are removed 
		 from that pattern before processing. 
		 
		 The pattern is designed to match quite exactly 
		 the files to be copied to $targetSiteDirectory, 
		 for the goal 'html', 
		 not much more and at any case not less. 
		 since $tex2htCommand is not well documented, 
		 and still subject to development, 
		 this pattern cannot be guaranteed to be final. 

		 If the current default value is not appropriate, 
		 please overwrite it in the configuration 
		 and notify the developer of this plugin of the bug. 
		 The default value is given below. -->
	    <patternT4htOutputFiles>
	      ^(T$T(((ch|se|su|ap|li)?\d+)?\.x?html?|
	            \.css|
		    \d+x\.x?bb|
		    \d+x\.png|
		    -\d+\.svg)|
	           (cmsy)\d+(-c)?-\d+c?\.png)$
	    </patternT4htOutputFiles>

            <!-- The latex2rtf command to create rtf from latex directly. 
		 The default value is 'latex2rtf'. -->
	    <latex2rtfCommand>latex2rtf</latex2rtfCommand>

            <!-- The options of the command $latex2rtfCommand. 
		 The default value is the empty string. -->
	    <latex2rtfOptions />

            <!-- The odt2doc command 
		 to create MS word-formats from otd-files. 
		 The default value is 'odt2doc'. -->
	    <odt2docCommand>odt2doc</odt2docCommand>

 	    <!-- The options of the command $odt2docCommand. 
		 Above all specification of output format 
		 via the option '-f'. 
		 Invocation is 'odt2doc -f<format> <file>.odt'. 
		 All output formats are shown by 'odt2doc - -show' 
		 but the formats interesting in this context 
		 are doc, doc6, doc95, docbook, docx, docx7, ooxml, rtf. 
		 Interesting also the verbosity options 
		 '-v', '-vv', '-vvv' 
		 the timeout '-T=secs' and '- -preserve' 
		 to keep permissions and timestamp 
		 of the original document. 
		 The default value is '-fdocx'. -->
	    <odt2docOptions>-fdocx</odt2docOptions>

	    <!-- The pdf2txt-command for converting pdf-files 
		 into plain text files. 
	    	 The default value is 'pdftotext'.  -->
            <pdf2txtCommand>pdftotext</pdf2txtCommand>

	    <!-- The options of the command $pdf2txtCommand. 
		 The default value is the empty string. -->
            <pdf2txtOptions />

	    <!-- The chktex-command for checking latex main files. 
		 The default value is 'chktex'. -->
           <chkTexCommand>chktex</chkTexCommand>

	   <!-- The options of the command $chkTexCommand, 
		except '-o output-file' 
		specifying the output file which is added automatically. 
		
		Here is a list of options useful in this context. 
		The first group of these are muting options: 
		- '-w', '-e', '-m', 
		Make the message number passed as parameter 
		a warning/an error/a message and turns it on. 
		Messages are not counted. 
		- '-n'
		Turns the warning/error number passed as a parameter off. 
		- '-L'
		Turns off suppression of messages on a per line basis. 
		
		The next group of interesting options are for output control: 
		- '-q'
		Shuts up about copyright information.
		- '-o output-file'
		Specifies the output file. This is added automatically 
		and shall thus not be specified by the user. 
		- '-b[0|1]'
		If you use the -o switch, and the named outputfile exists,
		it will be renamed to 'filename.bak'.
		- '-f format'
		Specifies the format of the output 
		via a format similar to 'printf()'. 
		For details consult the manual. 
		- '-vd'
		Verbosity level followed by a number 'd' 
		specifying the format of the output. 
		The verbosity number is resolved as a pattern 
		as if given by the option '-f format'. 
		Thus the option '-v' is ignored 
		if the option '-f format' is specified. 
		
		The default value is '-q -b0' 
		avoiding verbose output and backing up the output log-file. -->
           <chkTexOptions>-q -b0 -v1 -g0 -l ${basedir}/src/site/tex/chktexrc</chkTexOptions>
  	  </settings>
	</configuration>

	<executions>
          <!-- execute latex goal automatically during the site phase -->
          <execution><!-- DEFAULT -->
	    <id>process latex sources</id>
            <phase>site</phase>
            <goals>
              <goal>cfg</goal>
              <!--goal>clr</goal-->
              <!--goal>grp</goal-->
              <!--goal>dvi</goal-->
              <!--goal>pdf</goal-->
              <!--goal>html</goal-->
              <!--goal>rtf</goal-->
              <!--goal>odt</goal-->
              <!--goal>docx</goal-->
              <!--goal>txt</goal-->
              <!--goal>chk</goal-->
  <!--
here is a bug affecting goal odt: 
/usr/local/texlive/2014/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-tex4ht.def
89c89
 \def\pgfsys@svg@newline{{?nl}} % replacement 
- - -
 \def\pgfsys@svg@newline{\Hnewline} % original 
-->
            </goals>
          </execution>
	  <!-- DEFAULT: disable initially if plugin not yet installed: 
	       Plugin de.akquinet.jbosscc.latex:latex-maven-plugin:1.3-SNAPSHOT 
	       or one of its dependencies could not be resolved: 
	       Could not find artifact 
	       de.akquinet.jbosscc.latex:latex-maven-plugin:jar:1.3-SNAPSHOT -->
          <execution>
	    <id>clear latex sources</id>
            <phase>clean</phase>
            <goals>
              <goal>clr</goal>
            </goals>
          </execution>
  	</executions>
      </plugin>

How to use the latex ant tasks

This software provides two ant tasks: one for creation of artifacts and another one to clean them up. Note that the according maven plugin described in Section 'The latex-maven-plugin' provides more functionality than this.

Unlike the maven plugin, which is installed by maven automatically, the according ant plugin must be installed manually. One way is to download the jar file

latex-maven-plugin-1.5.SNAPSHOT-antTask.jar,

or whatever version from

www.simuline.eu/RepositoryMaven

or to download the sources from

GitHub,

build with maven which creates the abovementioned jar file in the target folder.

In any case, the installation is just by copying that jar file into the lib folder of the local ant installation. For details see ant's documentation.

To-dos

This section is just an unsorted collection of to-dos and needs rework. This is itself a to-do.

  • The code contains a lot of FIXME tags waiting to be resolved.

  • Evaluation of

    • alternatives of bibtex like bibtexu, bibtex8, biber, biblatex required

    • alternatives of makeindex like xindy required

    • make-tools like latexmk, arara, rubber and cluttex required

  • I would like to continue to support dvi-format. But I must research how to create that one.

  • Translation of latex to html and to docx required

  • document the role of mathjax

  • The newest version of gnuplot introduce the problem that the pdf output version is 1.7 whereas the one for lualatex is 1.5. This yields a warning. A way to resolve that problem is just downgrading by subsequent invocation of something like

  gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4  -o output.pdf input.pdf 
  • Bug-fix: pandoc missing end aligned at the beginning of manual.
  • Bug-fix: pandoc seems to fail with floating objects
  • evaluation of pandoc. There is a manual. First shot: got a good result with
pandoc -t html -s --toc manualLMP.tex -o manual.html
pandoc -t odt  -s --toc manualLMP.tex -o manual.odt

One could also try with --mathml, --mathjax and with --webtex which works well... somehow. See the pandoc manual for further ideas including gladtex Here, -t or --target indicates the target format. The list of available formats:

pandoc --list-output-formats

shows

  • rtf which may make latex2rtf superfluous,
  • docx, odt, maybe making unoconv superfluous,
  • html, html4, html5 maybe substituting tex4ht
  • plain, maybe text, then substituting
  • pdf (maybe using lualatex)

Pandoc shall be invoked with option --verbose which seem to indicate the most important flaws.

  • Support for ps is missing.

  • pdfinfo and other poppler tools to be evaluated.

  • Evaluation of unoconv: seems to offer also conversion from html to odt and that like. Very bad: no manual. I hate that. Maybe not needed if pandoc works fine. Just type unoconv -f odt manual.html.

  • Evaluation of latex2png, latex2man, latex2nemeth, latex2html

  • evaluation of pstoedit

  • It seems reasonable, to write a new plugin based on texinfo.

To the (plugin) developer

VS code shows: There are lots of FIXME's and TODO's to be eliminated.

In addition, there is some problem running mvn deploy showing An illegal reflective access operation which is currently just a warning but which may in some next release be a showstopper. The core problem is with mockito-core which I cannot update. The problem is that updating this requires update of java 1.8 to java 11. This in turn seems not compatible with maven-plugin-plugin. The latter seems to be the core problem.

In addition, there is a strange problem with clean plugin. Although it says that it deletes the requested files (mvn clean -X), it does not.

Finally, there are various problems with the plugin test harness.

A completely different problem is introduced by the fact, that with new test method based on diffing real pdf's, the tests become sensitive on the versions of lualatex. In particular, if the version of lualatex changes, the pdf files used for comparison must be changed also. To that end, run a script copying the current pdfs overwriting the blueprints from the base directory (this presupposes development in Linux):

src/main/resources/cpDiffPdf.sh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TeX 35.1%
  • Java 28.4%
  • HTML 19.6%
  • CSS 13.6%
  • JavaScript 1.6%
  • Perl 1.2%
  • Other 0.5%