#!/bin/sh

# Erstellt von Dr. Diether Knof
# Oktober 2012
#
# Parameter: tex-Dateien
# 
# Kompiliert nacheinander die tex-Dateien.
# Bei Fehler wird die log-Datei angezeigt.
# Tritt kein Fehler auf, wird die pdf-Datei angezeigt und die temporären Dateien werden gelöscht.
# Es werden die Programme pdflatex, grep, basename und dirname benötigt (http://unxutils.sourceforge.net/).
# Für die Anzeige der pdf- und log-Datei wird der explorer verwendet, das bedeutet, dass das mit den Endungen .pdf und .log verknüpfte Programm aufgerufen wird. Dies ist eventuell mit der .log-Datei nicht günstig.
#   Variante 1: log-Dateien mit einem passenden Programm verknüpfen.
#   Variante 2: log-Dateien mit Wordpad oder so aufrufen.

# Erweiterung des Pfades um das Vezeichnis mit den unix utilities.
PATH="$PATH;C:/bin"
LATEX="pdflatex.exe"

while [ $# != 0 ]; do
  file=`basename $1 .tex`
  cd "`dirname "$1"`"

  # Kompilieren
  "$LATEX" -interaction=nonstopmode "$1"
  if [ $? != 0 ]; then
    echo "Fehler beim Kompilieren"
    explorer "$file.log"
    shift
    continue
  fi

  # Weitere Durchläufe
  while grep "Rerun to get cross-references right." "$file.log"; do
    "$LATEX" -interaction=nonstopmode "$1"
    if [ $? != 0 ]; then
      echo "Fehler beim Kompilieren"
      explorer "$file.log"
      shift
      continue
    fi
  done

  # pdf-Datei anzeigen
  explorer "$file.pdf"

  # Temporäre Dateien löschen
  rm -f "$file.aux" "$file.log" "$file.toc"

  shift
done
