Stefans Wiki



PDF aus LaTeX-Datei erstellen

Problem

Damit aus einer LaTeX-Datei das fertige PDF-Dokument erzeugt wird, müssen verschiedene Befehle wie pdflatex, makeindex und bibtex ausgeführt werden. Zusätzlich darf man am Ende noch alle temporären Dateien entfernen. Die wiederholte Eingabe der Befehle in der richtigen Reihenfolge mit den korrekten Parametern kann mit der Zeit etwas aufwendig und nervig werden.

Ziel

Aufruf eines Scriptes das alle nötigen Arbeitsschritte für einen abnimmt.

Lösung

fulllatex

  1: #!/bin/sh
  2:
  3: # Dateiname angegeben?
  4: if [ $# -eq 0 ]; then
  5:     echo
  6:     echo Fehler: Kein Dateiname angegeben.
  7:     echo Benutzung: $0 [Dateiname]
  8:     echo
  9:     exit
 10: fi
 11:
 12: # Dateiname ohne Endung ermitteln
 13: DATEINAME=${1%.*}
 14:
 15: # LaTeX-Datei vorhanden?
 16: if [ ! -e $DATEINAME.tex ]; then
 17:     echo
 18:     echo Fehler: Datei $DATEINAME.tex nicht vorhanden.
 19:     echo
 20:     exit
 21: fi
 22:
 23: # LaTeX-Datei übersetzen
 24: echo
 25: echo ----------------------------------------------------------------------
 26: echo pdflatex -intercation=nonstopmode $DATEINAME.tex
 27: echo ----------------------------------------------------------------------
 28: pdflatex -interaction=nonstopmode $DATEINAME.tex
 29: if [ $? -ne 0 ]; then
 30:     echo
 31:     echo Fehler: pdflatex
 32:     echo
 33:     exit
 34: fi
 35:
 36: # Index erstellen
 37: if [ -e $DATEINAME.idx ]; then
 38:     echo
 39:     echo ----------------------------------------------------------------------
 40:     echo makeindex $DATEINAME.idx
 41:     echo ----------------------------------------------------------------------
 42:     makeindex $DATEINAME.idx
 43:     if [ $? -ne 0 ]; then
 44:         echo
 45:         echo Fehler: makeindex
 46:         echo
 47:         exit
 48:     fi
 49: fi
 50:
 51: # Abkürzungsverzeichnis erstellen
 52: if [ -e $DATEINAME.nlo ]; then
 53:     echo
 54:     echo ----------------------------------------------------------------------
 55:     echo makeindex $DATEINAME.nlo -s nomencl.ist -o $DATEINAME.nls
 56:     echo ----------------------------------------------------------------------
 57:     makeindex $DATEINAME.nlo -s nomencl.ist -o $DATEINAME.nls
 58:     if [ $? -ne 0 ]; then
 59:         echo
 60:         echo Fehler: makeindex
 61:         echo
 62:         exit
 63:     fi
 64: fi
 65:
 66: # Literaturverzeichnis erstellen
 67: if [ -e $DATEINAME.aux ]; then
 68:     echo
 69:     echo ----------------------------------------------------------------------
 70:     echo bibtex $DATEINAME
 71:     echo ----------------------------------------------------------------------
 72:     bibtex $DATEINAME
 73:     if [ $? -ne 0 ]; then
 74:         echo
 75:         echo Fehler: bibtex
 76:         echo
 77:         exit
 78:     fi
 79:     AUX=$(sed -e 's/\\\@input{//' -e 's/}//' -n -e '/.aux/ p' $DATEINAME.aux)
 80: fi
 81:
 82: # LaTeX-Datei nochmal übersetzen und alles zusammenführen
 83: for I in 1 2; do
 84:     echo
 85:     echo ----------------------------------------------------------------------
 86:     echo pdflatex -intercation=nonstopmode $DATEINAME.tex
 87:     echo ----------------------------------------------------------------------
 88:     pdflatex -interaction=nonstopmode $DATEINAME.tex
 89:     if [ $? -ne 0 ]; then
 90:         echo
 91:         echo Fehler: pdflatex
 92:         echo
 93:         exit
 94:     fi
 95: done
 96:
 97: # Temporäre Dateien löschen
 98: if [ -n "$AUX" ]; then
 99:     rm -f $AUX
100: fi
101: rm -f $DATEINAME.{aux,bbl,bit,blg,dvi,glo,idx,ilg,ind,lof,log,lot,nlo,nls,out,toc}
102:
103: # PDF im Reader anzeigen
104: if [ -e $DATEINAME.pdf ]; then
105:     open $DATEINAME.pdf
106: fi

Hinweis

Den Befehl open $DATEINAME.pdf für die Anzeige des PDF-Dokuments entsprechend anpassen da der Befehl open ein Mac OS X-Befehl ist.

unix/shell/pdf_aus_latex-datei_erstellen.txt · Zuletzt geändert: 24.03.2011 22:05 (Externe Bearbeitung)
Quelle: http://stefanjahn.de/unix:shell:pdf_aus_latex-datei_erstellen
Webseite: http://stefanjahn.de