2.1 Gesamtaufruf

Zuerst ist der Task mit:

  <taskdef name="latex"    classname="de.dokutransdata.antlatex.LaTeX"  
    classpath="c:/Programme/Apache Software Foundation/ant/lib/ant_latex.jar"/>

zu definieren. Anschliessend kann der komplexe Task benutzt werden:

  <target name="doLaTeX">  
    <latex  
      latexfile="${ltx2.file}"  
      verbose="on"  
      clean="on"  
      pdftex="off"  
      workingDir="${basedir}"  
    />  
  </target>

Damit ist ein einfacher LATEX-Lauf definiert, dies hätte aber auch mit einem exec-Element erreicht werden können.

Attribute zum LATEX-Task

Attribut Beschreibung Pflicht



latexfile Die LATEX-Datei, es werden Dateien mit der Endung .tex, .ltx, .dtx oder .ins akzeptiert. Nein, kann durch das Element fileset gesetzt werden.
pdftex Mit on wird PDFLATEX aufgerufen. Nein. Default: off
verbose Gibt bei on Informationen auf der Standardausgabe aus. Nein. Default: off
clean Bei on werden die temporären Dateien nach dem LATEX-Lauf gelöscht, zusätzliche Filter können mit dem Element deletetempfiles ergänzt werden. Nein. Default: off
reRunPattern Pattern nach dem in der Protokolldatei von LATEX zu suchen ist, um zu entscheiden ob ein weiterer Durchlauf notwendig ist. Nein.
workingDir Arbeitsverzeichnis setzen Nein. Default: basedir
command Auszuführender Befehl Nein. Default: latex
path Pfad zu LATEX Nein. Default: leer
jobname Name der Ergebnissdatei, nur bei MikTEXeinsetzbar (s. u.) Nein.
outputDir Verzeichnis in dem die DVI/PDF-Datei gespeichert werden soll, nur bei MikTEXeinsetzbar (s. u.) Nein.
auxDir Verzeichnis für die temporären Dateien, nur bei MikTEXeinsetzbar (s. u.) Nein.
passThruLaTeXParameters
Sonstige Parameter für LATEX mit einem Semikolon getrennt. Nein.
multibib Schalter für die Verwendung des Package multibib Nein. Default: off
MikTeX Schalter für die Verwendung von MikTeX und Einsatz der Optionen outputDir, auxDir und jobname Nein. Default: off
fileExtensions Dateierweiterungen für gültige LATEX-Dateien in der Form .tex;.dtx. Standardmässig werden Dateien mit der Endung .ltx, .tex, .dtx sowie .ins akzeptiert. Dieser Mechanismus kann mit der Option jobname umgangen werden. Nein. Standard: .tex;.ltx;.dtx;.ins

Der Standardwert für reRunPattern ist:

(Rerun (LaTeX|to get cross-references right)|  
     Package glosstex Warning: Term |  
     There were undefined references|  
     Package natbib Warning: Citation\\(s\\) may have changed)

2.1.1 auxDir und outputDir

Die Attribute jobname, outputDir und auxDir werden nicht von jeder LATEX-Version unterstützt, deshalb ist der Schalter miktex4 bei Bedarf umzusetzen.

Die Verwendung von outputDir und auxDir kann bei der Verwendung einer dokumenteninternen Verzeichnisstruktur zu Problemen führen, insbesondere wenn include verwendet wird5 .

Diese Probleme lassen sich mit einem Pre-Target zur Erstellung der Unterverzeichnisse und einem Post-Target zum Löschen der temporären Dateien lösen.

Elemente zum LATEX-Task

Element Beschreibung Pflicht



fileset Fileset-Element Nein, das Attribut latexfile kann für eine einzelne Datei benutzt.
deletetempfiles Fileset-Element zum Löschen von temporären Dateien. Vorsicht: Überschreibt die internen Vorgaben! Nein
makeindex Makeindex-Element Nein. Multiple
bibtex BibTEX-Element Nein. Multiple
jxGlosstex
glosstex GlossTEX-Element Nein

Um jetzt zum Beispiel einen makeindex-Lauf zu integrieren ist folgende Definition notwendig:

  <target name="doLaTeX">  
    <latex  
      latexfile="${ltx2.file}"  
      .  
      .  
      .  
    >  
      <makeindex  
        run="on"  
        idxstyle="${ltx2.idx.style}"  
        protocolFile="${ltx2.idx.protocolFile}"  
        outFile="${ltx2.idx.outputFile}"  
        workingDir="${basedir}"  
        >  
        <fileset dir="${basedir}">  
          <include name="*.nlo"/>  
        </fileset>  
      </makeindex>  
    </latex>  
  </target>

Das fileset-Element für makeindex ist im Normalfall nicht notwendig, weil der Hauptprozess dafür sorgt das makeindex die idx-Datei als Parameter erhält.

Auf ähnliche Weise kann jetzt BibTEX und GlossTEX in den Prozess eingebunden werden. Ein komplettes Beispiel finden Sie im Anhang.

  <target name="doLaTeX">  
    <latex  
      latexfile="${ltx2.file}"  
      .  
      .  
      .  
    >  
      <bibtex  
        terse="${ltx2.bib.terse}"  
        minCrossrefs="${ltx2.bib.minCrossrefs}"  
        run="on"  
        workingDir="${basedir}"  
        />  
      <bibtex  
        terse="${ltx2.bib.terse}"  
        minCrossrefs="${ltx2.bib.minCrossrefs}"  
        run="on"  
        workingDir="${basedir}"  
        inloop="off"  
        >  
        <fileset dir="." includes="*.figbib.aux"/>  
      </bibtex>  
 
 
      <glosstex  
        glossarDefinitionFiles="${ltx2.gloss.databases}"  
        run="on"  
        >  
        <makeindex  
          germanWordOrder="${ltx2.idx.germanWordOrder}"  
          idxstyle="${ltx2.gloss.style}"  
          />  
      </glosstex>  
    </latex>  
  </target>

Durch den Parameter run kann mit on gesteuert werden, ob der Sub-Prozess aufgerufen werden soll. Bei den Sub-Prozessen werden die benötigten Input-Dateien durch den Hauptprozess gesetzt. Ausnahme bildet nur makeindex, wo ein gesetztes fileset-Element Vorrang bekommt6 .

Mit dem mehrfach vorkommenenden Element bibtex und dem darin enthaltenen fileset-Element können unterschiedliche Styles wie figbib oder gloss angebunden werden.

Zu glosstex gibt es eine Alternative die auf einfache XML-Dateien basiert und folgenden Aufruf im latex-Element akzeptiert:

  <jxGlosstex  
      maxdepth="${ltx2.gloss.maxdepth}"  
      language="${ltx2.gloss.language}"  
      run="${ltx2.doGLOSSTEX}"  
  />