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.
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.
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 converterslualatex
,xelatex
or similar.)html
,xhtml
(partially supported). The author is not content withhtlatex
for many reasons. It is in the packagetexlive-tex4th
.docx
,rtf
,odt
(TBC)txt
- ...
log
file with the result of style checkchktex
for latex sources.
For further plans see here.
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
.
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'.
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 pdf
s 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'.
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.
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.
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
.
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 thetex
converter and needs no action from the LaTeX builder Note thattikzedt
is a good graphical editor for that.- MetaPost,
.mp
is a native format in used in the context of thetex
format jpg
,png
and by need other pixel formats are via packagegraphix
- gnuplot,
.gp
and SVG are converted into atex
file containing text andpdf
/eps
with the pure graphics. xfig
, an old format which is somehow deprecated and can be replaced bytikz
/pgf
. A graphical editor isxfig
.
Note that there is a maven goal grp
to create the graphics files only.
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
.
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; seeOpenDocument
- MS-word (
- cross-platform (
pdf
,ps
)
- from World of TeX (
- floating formats comprising internet formats (
html
,xhtml
,md
, ...) and e-book formats (at leastepub
) - 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
- page oriented formats,
- 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 replacingbibtex
as the default. Also, more conservatively, usebibtexu
orbibtex8
instead ofbibtex
. pythontex
is a great tool to perform computations in python and also other programming languages likematlab
and to include the results in a latex file. This shall be supported in future releases.
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
andodt
, - 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
anddiff-pdf-visually
are not used to create difference output but return a flag only indicating whether twopdf
files coincide. We use this in the context of integration tests to check that thepdf
files created are 'visually equal' to a checked version. - Accordingly,
pdfinfo
andexiftool
collect information onpdf
-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
.
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
andtxt
. - 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 pdf
s 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 withmvn latex:cfg
,clear-latex-sources
is to clean input folders from created files as withmvn latex:clr
validate-converters
is recommended to ensure that the converters used by the plugin are checked for their versions as withmvn 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>
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
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.
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
likebibtexu
,bibtex8
,biber
,biblatex
required -
alternatives of
makeindex
likexindy
required -
make-tools like
latexmk
,arara
,rubber
andcluttex
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 todocx
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 forlualatex
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 makelatex2rtf
superfluous,docx
,odt
, maybe makingunoconv
superfluous,html
,html4
,html5
maybe substituting tex4htplain
, maybe text, then substitutingpdf
(maybe usinglualatex
)
Pandoc shall be invoked with option --verbose
which seem to indicate the most important flaws.
-
Support for
ps
is missing. -
pdfinfo
and otherpoppler
tools to be evaluated. -
Evaluation of
unoconv
: seems to offer also conversion fromhtml
toodt
and that like. Very bad: no manual. I hate that. Maybe not needed ifpandoc
works fine. Just typeunoconv -f odt manual.html
. -
Evaluation of latex2png, latex2man, latex2nemeth, latex2html
-
evaluation of
pstoedit
-
It seems reasonable, to write a new plugin based on
texinfo
.
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 pdf
s overwriting the blueprints
from the base directory (this presupposes development in Linux):
src/main/resources/cpDiffPdf.sh