Release 2.1 – 2023-08-28
Type |
Changes |
By |
|
Based on new rerun algorithm could reliably re-add classical glossary to manual. |
reissner |
|
Rerun algorithms now based on hash of files aux, idx, glo and pytxcode.
The new algorithm is better in that it is correct for pytxcode,
taking into account pythontex. |
reissner |
|
Tried with enabled assertions through `export MAVEN_OPTS="-ea"`
Fixed certain points in code, deactivated and documented others in backlog. |
reissner |
|
Using getter methods for filtering command names in injections instead of parameters directly,
fixes the problem for commands without category,
that the parameter is `name:category` but what is needed is `name` returned by the getter. |
reissner |
|
Feature that for filtering injections not only fields annotated @RuntimeParameters (parameters),
but also getter methods (i.e. methods without parameters) annotated @RuntimeParameters.
Apply this to injection latexmkrc fixes the problem with filtering names of commands without a category
(see the according fix). |
reissner |
|
added parameter latexmkUsage on usage of latexmk:
NotAtAll, AsBackend, Fully
added parameters latexmkCommand and latexmkOptions.
All this is fully functional and integrates well with document development with latexmk |
reissner |
|
added magic comment latexmk with latexmk short for latexmk=true but also latexmk=false is possible.
Generalized magic comment chkDiff into chkDiff=true|false,
where old chkDiff is short for chkDiff=true. |
reissner |
|
Injection .latexmkrc can now read magic comments and extract information from the opening.
For example it reads chkDiff and program (compiler).
This is used when invoking latexmk from this builder
but also if invoking manually for document development.
For example latexmk reading magic comments in comfortable when initiating reproducibiltiy checks.
latexmk knows whether to create reproducible or not.
Magic comments override settings in the pom and allow individual treatment of each document. |
reissner |
|
Unlike before when reproducibiliby checks worked only for files with restricted metadata,
as e.g. data had to be always 1970-01-01,
the only restriction is now the timezone UTC.
This is a useful restriction as it allows reproducibility in time and space.
The concept behind is that when an original PDF is present,
the new PDF is compiled with the enviroment variables setting timestamp/timezone read from the original PDF
ensuring that timezone is UTC.
A third setting ensures that timestamp affects both metadata and visible data.
This works also from within latexmk.
To that end, injection latexmkrc is extended considerably,
for example reading magic comments of TEX files but also metadata from PDF files. |
reissner |
|
reimplemented ntlatex which has functionality like invoking latexmk:
- now adapts to the settings without need to reinstall.
- reads magic comments
This is now important as latexmk may not recompile in any case wanted. |
reissner |
|
Systematic logging of infos in processing (after preprocessing)
Essentially, the new system reflects the structure of the program:
- in outer loop visit all latex main files
accordingly display the name of the latex main file to be 'processed'
The word process is the same as used for graphic files in preprocessing.
If a magic comment overwrites the compiler given by configuration: display an info message.
The compiler covers more than one target.
- inside first adapt the targets
according to the document class (see docClassesToTargets), if present magic comments.
Log when setting targets is overwritten that way.
- inner loop: pass through the targets
For special targets (currently pdf only)
log if usage of latexmk or chkdiff are overwritten by magic comments.
Finally, notify if chkdiff succeeded so we know it has been performed.
(else the build fails anyway) |
reissner |
|
In documentation added command \tool preparing a tools glossary. |
reissner |
|
from bibliography extracted bib on tools. |
reissner |
|
logging: file are no longer absolute
but relative to the project folder.
This improves overview and is more secure,
as the environment is no longer exposed. |
reissner |
|
header.tex: patch for package listings:
take into account that \makeatletter, \makeatother and \xpatchcmd
don't work inside an argument |
reissner |
|
latexmk may be correct even if target is not updated.
Took this into account as this is very special.
Note also that ntlatex has been generalized accordingly. |
reissner |
|
corrected default value for setting 'diffDirectory' |
reissner |
|
vmdiff: finds differences in both visual content and important metadata. |
reissner |
|
Versions of tools: gnuplot, exiftool, python, ... |
reissner |
Release 2.0 – 2024-04-23
Type |
Changes |
By |
|
added several document classes to general usage:
beamer, leaflet, scrlttr2, minimal |
reissner |
|
Low level addition:
The pattern 'patternLatexMainFile' used to detect latex main files
has been extended and offers now more functionality:
- PassOptionsToPackage is necessary
because now crucial packages are loaded in a standardized header.
But the options depend on the document, e.g. on its class
- newbool, setbool is required e.g. for beamer clas
- DocumentMetadata will have many usecases e.g. setting pdf version.
To support it, even the class of regular expressions had been extended
because structures may be nested in arbitrary depth
- input is a fallback if even more specific patter would be needed
- arguments are generalized in a subtile way
- argument of documentclass/style is generalized
This allows to define options influencing more than one package
unlike PassOptionsToPackage
Besides matching, also this pattern can extract pieces of information:
- magic comments. In this version the latex compiler and the target.
That way, both can be specified for the document individually
overwriting the basic setting.
- the documentclass which is also used to restrict the target.
E.G. beamer, leaflet and letter are restricted to pdf. |
reissner |
|
High level addition:
support of magic comments: this allows to treat particular documents individually,
- compiling with pdflatex instead of default lualatex
- setting targets individually
This affects parameter patternCreatedFromLatexMain.
Magic comments overwrite other settings. |
reissner |
|
High level addition:
make output formats depend on document class
(e.g. no html for beamer or letter).
using parameter 'docClassesToTargets'.
But as a consequence, need a defined set of document classes
and let detect the document class via the 'patternLatexMainFile'.
Others are processed with warning and targets cannot be restricted. |
reissner |
|
goal inj with parameter: injecting files are
- config files .latexmkrc, .chktexrc with lot of improvements
- headers
- header.tex intended to be input always
- headerGrp for graphic
- headerSuppressMetaPdf used in conjunction with reproducibility of PDFs
- instVScode4tex.sh,
- ntlatex for support of monitoring reproducibility of PDFs
- pythontexW and depythontexW for including code into latex documents
To that end, added @RuntimeParameter, which unlike @Parameter persists at runtime
In Settings: toString now based on reflection.
In Settings: introduced filtering omg.
Also extended clr cleaning all what inj creates
added parameter injections and added property latex.injections for command line use
Some injections are influenced by the config, some are executable. |
reissner |
|
some injections are set executable and this action is even supervised,
so a warning indicates if that goes wrong. |
reissner |
|
injections as properties.
In particular scripts are likely to be put in workspace that way,
because this is done once.
Injections to be updated each build run, are better injected classically
via plugin config. |
reissner |
|
developped header.tex, which is intended as always to be included, further:
added A4 opt ion to geometry, added option destlabel to hyperref, tocbibind,
microtype, anyfontsize (e.g. for beamer), xurl,
babel, csquote, ...
but also extracted includes related with graphics and meta info
into separate headers or into the tex file itself.
Eliminated also packages:
ifthen replaced by \IfClassLoadedTF and \IfPackageLoadedTF.
Tricked about useful ordering.
So far it is possible to include header.tex always
preceeded or followed by other package loading. |
reissner |
|
concept for creating reproducible documents
which allows dates.
The core idea is to use SOURCE_DATE_EPOCH and FORCE_SOURCE_DATE.
To create a document of diffing use ntlatex (no time latex)
which is one of the new injections |
reissner |
|
To PDF documents created added meta info.
This is disentangled now from headers.
injection headerSuppressMetaPdf suppresses the rest |
reissner |
|
For document development: support \include instead of \input
and use this in the manual.
That speeds up the pdf conversion
and requires just removal of additional aux files. |
reissner |
|
XXXXXXXXXXpartial support for destlabel.
Would be good for HMTL and docs there.
Rest on backlog. |
reissner |
|
Weak CI: could compile all documents in a CI pipeline,
but diff did not yet work.
So the test consist in successful compilation. |
reissner |
|
to prepare place in maven central: added gpg plugin and issue management. |
reissner |
|
Updated and extended default string for setting patternCreatedFromLatexMain |
reissner |
|
added items to backlog. |
reissner |
|
undergo buildParams.tex and pom4pdf.xml
a filter inserting settings of this plugin. |
reissner |
|
because of a bug in package hyperref
disable loading of auxhook before loading hyperref
and enable after in order not to affect package transparency |
reissner |
|
extended pattern 'patternWarnLatex'
to detect warnings in log files. |
reissner |
|
xelatex never enters if branch of \ifpdf!
Take this into account for
- suppression of meta info
- creation of html and related with 'tex4ht'
that |
reissner |
|
Design: e.g.
- core package cannot depend on mojo package
- layered architecture with low level services TexFileUtils
- eliminated getTargetSet() |
reissner |
|
could update maven plugin framework because could find the critical code
causing errors in class Target. |
reissner |
|
eliminated lot of warnings, also from ltex, extended dictionary,
reformatted tex files. |
reissner |
|
in LatexProcessor.runDiffPdf concerning return values. |
reissner |
|
interpretation of return code (triggered by fix with with runDiffPdf
and by introducing chktex) |
reissner |
|
base LatexProcessor.needRun on both log AND aux file. |
reissner |
|
fixed several default values in config of this maven plugin in pom. |
reissner |
|
in headers replaced booleans by \IfPackageLoadedTF and \IfClassLoadedTF |
reissner |
|
in header.tex: options of package rerunfilecheck
which corrects page numbers in index. |
reissner |
|
in site: now use automatically generated site on goals. |
reissner |
|
documentation on the web site. before it was mainly the manual in PDF format.
Now replace apt by md and md.vm
unify.
Used automatic generation of documentation.
Had to adapt apidocs of Mojos.
Added a lot of examples. |
reissner |
|
Added a lot of literature. |
reissner |
|
To manual added lots of material
on document development and preferred usage |
reissner |
|
updated literature.
Now for the updated literature the reference name includes the date.
This shall be now a general rule
but this is realized only if something changes. |
reissner |
|
added litPub.bib to use in dependent projects
like our quality management project https://github.com/Reissner/QMngMnt. |
reissner |
|
added documentation on files fdb_latexmk.
Strictly speaking, this is needed in later versions invoking latexmk. |
reissner |
|
modified .latexmkrc and the headers so
that latexmk with that file yields the same result
as this software with default settings.
This is a bunch of changes.
Also added bib2gls so that also with bib2gls this works
as we want for this software
(prepare release 2.1)
Turned .latexmkrc into a resource and added to pom accordingly.
Let .latexmkrc undergo a filter inserting settings of this plugin.
This is to synchronize.
Note that this is not completed.
Correct .latexmkrc creating figures from mpost.
Added to site |
reissner |
|
took chktex into account;
added also lots of warnings based on the return value
in particular introduced .chktexrc as a resource
added goal chk and added to targets and to the default set.
Note that chk does not emit output files.
Added link to .chktexrc injected to each folder containing tex files.
Also .chktexrc is synchronized with header.tex:
there are commands functionally equivalent with known commands
but arguments not checked by chktex. They are named xxxNoChk{...} |
reissner |
|
updated versions of converters, dependencies and plugins, java, ...
parameterized a lot of versions.
Replaced default pdflatex by lualatex
updated logging mechanism. |
reissner |
|
in goal vrs generalized patterns for versions
to make correct for general texlive.
and took into account that a tool may be never used and thus not installed. |
reissner |
|
in goal vrs now take also languages java (this is a java plugin),
python for (de)pythontex and perl (for latexmk) into account
and also built tools maven and ant. |
reissner |
|
document minTikz.tex showing that fig2dev can export 'everything' lossless in tikz format.
Here, all kinds of objects can be exported,
but still not clear whether this is true with all options.
This illustrates documentclass 'minimal' and is preparatory for rework on fig files. |
reissner |
|
rework on mpost: much better and also simpler results and better documentation.
In particular, read log files and scan for warnings and errors.
luamplib, documentation |
reissner |
|
updated parameters of inkscape: long form. |
reissner |
|
for tool ebb:
add parameter createBoundingBoxes
and added explanation of fine type xbb and bb |
reissner |
Release 1.6 – 2022-04-16
Type |
Changes |
By |
|
extracted new way to determine the latex main file
from changex.xml into detMainFile.md.
This preparatory for the next release. |
reissner |
|
pom: version updates |
reissner |
|
metadata: tried on pdfversion and added documentation |
reissner |
|
reworked manuals so that they compile for any tex engine
and also for htlatex. |
reissner |
|
extended and restructured backlog for further releases. |
reissner |
|
added config for vscode, the new editor. |
reissner |
|
added a lot of external documentation and also restructured.
This affects also the literature file lit.bib.
Focus is on engines, recorder option, distributions, metapost, ... |
reissner |
|
including xdv alongside dvi on a minimum effort base.
Still preparing a better support. |
reissner |
|
added document recorder.tex and its artifact. |
reissner |
|
added document latexEngines.tex and its artifact.
Gained an overview over the tex engines above all xelatex |
reissner |
|
added documentation for pythontex and depythontex
going beyond the manual but needed for implementation of this software.
Added references to original software by Poore |
reissner |
|
added BuildFailureException TLP02 |
reissner |
|
added latexmkrc to support document development better. |
reissner |
|
added invocation of pythontex (depythontex not yet)
including documentation.
This is the core functionality for this release. |
reissner |
|
added converter depythontex (pythontex was added already.) |
reissner |
|
Generalized default value for patternLatexMainFile
taking package names into account which contain `-` in addition to letters. |
reissner |
|
Turned lualatex into the default.
This is a kind of update because the former default pdflatex starts to outdate.
Nevertheless, a strong motivation is pythontex:
I want to create figures without memory restrictions, which is offered by lualatex. |
reissner |
|
Updated versions, version patterns and strings, also form e.g. inkscape, pdftotext, pdfinfo, exiftool, gnuplot. |
reissner |
|
Added support for unregistered converters specifying their category for safety.
This is needed for the moment for (de-)pythontex.
Although removed in later releases is useful in its own right. |
reissner |
|
Added parameters 'mainFilesIncluded' and 'mainFilesExcluded'
and added according warnings WPP05, WPP06 and WPP07. |
reissner |
Release 1.5 – 2022-05-03
Type |
Changes |
By |
|
Added check for reproducibility.
This is a step towards a clean release management
as this shall remove the dependency of this plugin to itself,
potentially the same version. |
reissner |
|
Added VersionMojo to phase validate.
To that end, added configuration versionsWarnOnly
and convertersExcluded. |
reissner |
|
Added validity checks on converters: registered, in correct category.
In the course of this, added a lot of exceptions:
TSS05, TSS06, TSS07 and TSS08 |
reissner |
|
Prepared for check in phase validate or initialize:
Added a way to exclude converters. |
reissner |
|
Added rudimentary change management. |
reissner |
|
Added a readme.md file. |
reissner |
|
Converter gnuplot from gp to pdf changed version
and command line interface.
Likewise for inkscape, the converter from svn to pdf.
Added according manuals.
Updated converters again and again. |
reissner |
|
Aligned licenses: eliminated contradictions:
License delivered is what is given top level on github. |
reissner |
|
Handling of versions: now in a separate resource file
for access from markdown, latex and java (the latter to come).
Also updated several times
and proved for now that the format is useful.
Among the changes: |
reissner |
|
Updated a lot of versions in pom. |
reissner |
|
Eliminated most of the javadoc failures. |
reissner |
|
Use maven enforcer plugin. |
reissner |
|
added docs for various packages. |
reissner |
|
added goal vrs displaying versions also of the converters
and whether they are valid. |
reissner |
|
added exception TSS04 checking validity of targets. |
reissner |
Release 1.3 – 2016-09-09
Type |
Changes |
By |
|
Renamed plugin due to new convention into latex-maven-plugin
and changed version. (without release plugin)
CAUTION: Thus no snapshot release was created
and so there is more than one checkin with a release version,
i.e. no snapshot. |
reissner |
|
Updated java version to 1.5,
replaced javadoc tags by annotations,
updated junit to 4.12,
replaced easymock by mockito,
updated all to eu.simuline.m2latex |
reissner |
|
Made rerun mechanism configurable:
added parameter patternNeedAnotherLatexRun
containing a pattern to regocnize need to rerun from log file
and added parameter maxNumReruns signifying a maximum number of reruns. |
reissner |
|
added parameter tex4htOutputDirectory |
reissner |
|
added conversion to rtf via latex2rtf and parameter latex2rtfCommand |
reissner |
|
added conversion to odt and docx also via htlatex and dot2doc
adding parameter odt2docCommand |
reissner |
|
added conversion of document to dvi and ps and
conversion of graphic to eps besides pdf |
reissner |
|
added conversion to txt via pdftotext with parameter pdf2txtCommand |
reissner |
|
added support for makeindes along the same lines as bibtex
also multiple indices and split ones.
added glossaries
adding parameters makeIndexCommand |
reissner |
|
now in one run conversion in many formats can be done
and made configurable through the parameter targets.
There are goals to create a specified output format
e.g running mvn latex:pdf
or all formats configured by mvn latex:cfg |
reissner |
|
added detection of failures and warnings for latex, htlatex
auxiliary programs like bibtex.
In particular added parameters patternErrLatex,
patternErrMakeindex
Made display of warnings and box-warnings over/underfull configurable
adding parameters debugWarnings and debugBadBoxes
Detected errors and warnings on conversions
due to monitoring of files to be created.
TBD: just mere existence, but could be also modification time.
Added warnings on files skipped. |
reissner |
|
added handling of toc, listoffigures, listoftables, listoflistings |
reissner |
|
added support for new graphic formats fig, gnuplot, jpg, png, svg
with parameters fig2devCommand, |
reissner |
|
added selection of latex documents from all files with ending .tex |
reissner |
|
added javadoc plugin |
reissner |
|
added ant tasks besides the maven plugin
dividing the software in mojos defining a mavan plugin,
ant tasks and core classes in separate packages. |
reissner |
|
added a manual written in tex and to be compiled
by this plugin and by ant task defined here. |
reissner |
|
added documentation of latex pacakges, tools,
and file formats including self written ones on fig and dvi. |
reissner |
|
processing in source directories
which is considered the working directory
and move of results into target directory.
Also clean goal and task to restore the source directory.
This eases development of latex files considerably
because one can invoke the needed tools directly
without using this plugin/task.
Also one can use forward/backward search between editor and viewer.
But the viewer has to be in the source directory then.
Nevertheless cleaning up works. |
reissner |
|
added goal/task clear.
Added goals grp (graphics) and chk (check) |
reissner |