[LaTeX] TeXShop: Läufe spezifizieren

Ich nutze LaTeX und den Editor TeXShop.
Derzeit muss ich viele Läufe von Hand durchführen, damit mein Text richtig gesetzt wird:

  • LaTeX-Lauf (in TeXShop)
  • BibTeX-Lauf (in TeXShop)
  • makeindex (von Hand im Terminal (nomencl))
  • 3 weitere Latex-Läufe (in TeXShop)

Erst jetzt wird mein Literaturverzeichnis, die Abkürzungen und Zitationen richtig angezeigt.
Schöner wäre es natürlich, wenn man die Prozesse automatisieren könnte. Und nach etwas Lektüre im Internet habe ich folgende Funktionsweise für mich entdeckt:
Man erstelle eine Textdatei mit folgendem Inhalt:


#!/bin/sh
bfname="`basename "$1" .tex`"
pdflatex "$1"
bibtex "$bfname"
makeindex "$bfname".nlo -s nomencl.ist -o "$bfname".nls
pdflatex "$1"
pdflatex "$1"
pdflatex "$1"

 

Diese Datei speichert man nun unter dem Namen “WASAUCHIMMER.engine” ab. Wichtig ist hier die Endung .engine

Du kannst die Datei auch von hier herunterladen (sie hat dann den Namen AllesMachen.engine).

Diese Datei legt man nun in den Ordner
~/Library/TeXShop/Engines/

Jetzt öffnet man das Programm Terminal und tippt dort ein:
cd ~/Library/TeXShop/Engines/
chmod u+x WASAUCHIMMER.engine
Ersetze hierbei WASAUCHIMMER durch den Dateinamen, den du für die Engine gewählt hast.

Jetzt muss TeXShop neu gestartet werden. Nach dem Neustart kann man rechts neben dem “Setzen”-Knopf die Engine WASAUCHIMMER auswählen. Ist diese ausgewählt, und man drückt auf den “Setzen”-Knopf, wird unsere eigene Engine ausgeführt.

Erklärung zum Script:
Zeile 1: sagt, dass es ein Shell-Script ist
Zeile 2: fängt den Dateinamen ab und entfernt die Endung .tex
Zeile 3: ein LaTeX-Lauf wird durchgeführt (pdflatex)
Zeile 4: ein BibTeX-Lauf wird durchgeführt
Zeile 5: Das Abkürzungsverzeichnis wird erstellt (nomencl)
Zeile 6: ein LaTeX-Lauf wird durchgeführt (pdflatex)
Zeile 7: ein LaTeX-Lauf wird durchgeführt (pdflatex)
Zeile 8: ein LaTeX-Lauf wird durchgeführt (pdflatex)

Das Script macht also all die Läufe, die ich oben erwähnt habe automatisch hintereinander weg durch. Find ich echt super! Natürlich kann das Script an eure individuellen Anforderungen angepasst werden.

Übrigens funktioniert das Script auch mit Kile unter Ubuntu.

This entry was posted in Mac OSX and tagged , . Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback.

11 Comments

  1. maggi
    Posted 7. Januar 2010 at 16:15 | Permalink

    Hallo,

    ich habe alles was hier ist brav eingesetzt. Ich bekomme schon den Titel “Abkürzungsverzeichnis” in meine PDF Datei angezeigt. Nun wie soll ich jetzt meine Abkürzungen im Text beschriften so dass sie auch wirklich im Abkürzungsverzeichnis erscheinen?

    Vielen Dank im Voraus für die Antwort.
    MfG
    Maggi

  2. Roling
    Posted 1. Juli 2010 at 05:50 | Permalink

    Hallo Maggi,

    sorry, habe eben erst die Page und deinen Kommentar gesehen. Ich habe es in meiner DA so gelöst.

    Folgendes habe ich in meiner setup.tex

    %Abkuerzungsverzeichnis
    \usepackage{nomencl}
    %Neuen Befehl setzen -> \abk
    \let\abk\nomenclature
    \renewcommand{\nomname}{Abkürzungsverzeichnis}
    \setlength{\nomlabelwidth}{.25\hsize}
    \renewcommand{\nomlabel}[1]{#1 \dotfill}
    \setlength{\nomitemsep}{-\parsep}
    \makenomenclature
    %Kommando fuer die Initialisierung
    \newcommand{\Abkuerzung}{}

    Im Dokument musst du dann Abkürzungen so \abk{Abk}{Abkürzung} angeben. dann wird es auch im Abkürzungsverzeichnis als Abk…………..Abkürzung angezeigt.

    ciao Roling

  3. nik
    Posted 13. Februar 2011 at 21:35 | Permalink

    Hallo Produnis, Maggi und Roling,

    ich bin mit LaTeX noch etwas unbedarft freue mich aber über jeden Schritt den ich weiter komme, nur bei den Verzeichnissen (Glossar und Abk-Verzeichnis) häng ich massiv fest.
    Ich habe gerade das Verzeichnis versucht so ein zu bauen, wie ihr es beschrieben habt leider mit bescheidenem Erfolg. Ich erhalte als Meldung nach dem Setzen:

    AllesMachen.engine does not have the executable bit set.

    Was will mir die Software sagen und wo versteh ich das Prinzip beim erstellen von dem Abk-V noch nicht?

    Eine .nlo Datei wird erzeugt mehr leider nicht.

    Ich nutze auch TeXShop und pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009)
    sowie MacOSx 10.5.8 -falls das hilft.

    Schon mal herzlichen Dank an euch.

    Gruß nik

  4. Posted 14. Februar 2011 at 07:38 | Permalink

    Naja, die intereessante Fehlermeldung ist “AllesMachen.engine does not have the executable bit set.” D.h., auf deinem System ist AllesMachen.engine (noch) nicht als ausführbares Programm markiert.
    Öffne einTerminal, gehe in den Ordner, in welchem AllesMachen.engine liegt, und setze dann folgenden Befehl ab:

    chmod +x AllesMachen.engine

  5. Yps
    Posted 1. März 2011 at 13:05 | Permalink

    Das ist eine perfekte Lösung mit einer perfekten Erklärung zu einem Problem an dem ich sehr lange gehangen habe!

    Tausend DANK!!!!!!!!

    Yps

  6. phil
    Posted 31. Juli 2011 at 10:40 | Permalink

    Erstmal danke für die tolle Erklärung produnis!

    Eine kleine Erweiterung des Shell Scripts, da ich Probleme beim Compilieren hatte. Das Problem bei mir ist, dass ich \usepackage{auto-pst-pdf} nutze und deshalb immer eine Fehlermeldung erhalten habe. Für diejenigen unter Euch die auch dieses Problem haben, Abhilfe schafft -shell-escape:

    #!/bin/sh
    bfname=”`basename “$1″ .tex`”
    pdflatex -shell-escape “$1″
    bibtex “$bfname”
    makeindex “$bfname”.nlo -s nomencl.ist -o “$bfname”.nls
    pdflatex -shell-escape “$1″
    pdflatex -shell-escape “$1″
    pdflatex -shell-escape “$1″

  7. S
    Posted 16. August 2011 at 14:56 | Permalink

    Hallo,
    ich möchte in \LaTex mit dem Paket multind Verzeichnisse erzeugen. Ich habe dazu die nötigen Befehle in mein Dokument eingefügt und mehrere Läufe mit der Wirkung durchgeführt, dass nun die Verzeichnissüberschriften gesetzt wurden und die Dateien des Typs name.idx erzeugt wurden, die Befehle des Typs \indexentry{name}{seite} enthalten.
    Um mein Dokument mit den Verzeichnissen zu setzen, muss ich nun wohl im Terminal die Befehle makeindex name ausführen, diese werden aber leider nicht gefunden.
    Ich wüsste gerne, wie sich dieses Problem lösen ließe.
    Viele Grüße

  8. Chris
    Posted 23. August 2011 at 12:20 | Permalink

    Hallo zusammen,
    eigentlich passt das hier nicht so ganz her, aber das war die einzige Seite mit aktuellen Kommentaren, die ich zu diesem Thema gefunden habe.

    Bisher hatte ich SnowLeopard installiert und meine Nomenklatur konnte ich problemlos mit dem makeindex Befehl (makeindex “$bfname”.nlo -s nomencl.ist -o “$bfname”.nls) erstellen. Jetzt habe ich Lion installiert und wenn ich den makeindex-Befehl im Terminal ausführe, erhalte ich nur die Fehlermeldung: -bash: makeindex: command not found

    Woran liegt das und was kann ich da tun?

    Grüße Christina

  9. Alex
    Posted 11. September 2011 at 15:03 | Permalink

    Danke für den hilfreichen Tipp!

  10. daniel
    Posted 25. September 2011 at 12:25 | Permalink

    Hey super Anleitung. Vielen Dank dafür. Funktioniert perfekt

  11. doall
    Posted 18. September 2013 at 16:41 | Permalink

    Genial. Vielen Dank.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Your email address will never be published.