Textmate und LaTeX

By

in

Eine gute Alternative zum Editieren von LaTeX-Dokumenten bietet, im Vergleich zu TeXShop, der Texteditor Textmate. Hier werden alle erforderlichen Befehle und Hilfen durch das integrierte LaTeX-Bundle realisiert. So sind z.B. die möglichen Shortcuts (meiner Meinung nach) im Vergleich zu TeXShop in Textmate etwas besser gewählt und auch das bessere Syntax-Highlighting bietet mehr Übersicht im LaTeX-Quelltext.

Textmate findet pdflatex nicht?

Doch bevor es mit dem Erstellen einer PDF-Datei losging, beschwerte sich Textmate trotz vorhandener LaTeX-Installation (TeXLive 2008) mit folgender Meldung:

Plaintext
Error: pdflatex is not found, you need to install LaTeX or be sure that your PATH is setup properly.

Die Lösung: in der Umgebungsvariablen PATH fehlte die Pfad-Angabe zu TeXLive. Diese lässt sich durch Editieren der Datei .profile im eigenen Benutzerverzeichnis einbinden. (Sollte diese Datei noch nicht existieren, dann einfach mit einem Texteditor erstellen!) In diese Datei muss dann nur die folgende Zeile eingefügt werden:

Plaintext
export PATH=/usr/local/[path-to-texlive-binaries]:$PATH

Im Fall von TeXLive 2008 lautet diese Zeile:

Plaintext
export PATH=/usr/local/texlive/2008/bin/universal-darwin:$PATH

Danach die Datei speichern und fertig!

Textmate nutzt pdflatex nicht?

Sollte Textmate trotz der Auswahl von pdflatex in den LaTeX-Einstellungen unter “Alt + Cmd + ,” beim Erstellen des Dokuments nicht die richtige Engine nutzen, dann kann man Textmate zu pdflatex “zwingen”, indem man folgende Zeile in den Kopf des LaTeX-Dokuments einfügt:

LaTeX
%!TEX TS-program = pdflatex

(Vielen Dank an Gewitterbukk!)

PDF-Datei erstellen

Nachdem die genannten Einstellungen bzw. Anpassungen vorgenommen wurden, kann es auch schon losgehen! Den LaTeX-Code eingeben und ein “Cmd + R” macht aus diesem Quelltext ein PDF-Dokument.
Was einem hierbei noch sehr hilft und in den LaTeX-Einstellungen von Textmate zu finden ist, ist “Use Latexmk.pl”:

LaTeX-Einstellungen

Wird diese Option in den Einstellungen aktiviert, dann wird BibTeX und Makeindex automatisch ausgeführt, sobald diese benötigt werden. D. h. man spart sich hierbei mehrere Durchläufe beim Erstellen der PDF-Datei.

Der Einstellungsdialog lässt sich übrigens über die Tastenkombination “Alt + Cmd + ,” (oder “Alt + Apfel + ,” für ältere Tastaturen 😉 ) in Textmate bei einem geöffnetem LaTeX-Dokument aufrufen!

Erstellte PDF-Datei anzeigen lassen

Die Einstellung des Programms, welches für die Anzeige der erstellten PDF-Datei verwendet werden soll, lässt sich ebenfalls in Textmate einstellen (“Alt + Cmd + ,”). Hier kann das gewünschte Viewer-Programm unter “View in” ausgewählt werden. Die Auswahlliste enthält dabei fast alle gängigen Programme!

LaTeX Einstellungen

Zwischen Quelltext und PDF wechseln

Verwendet man Skim als zum Betrachten der PDF, dann ist der Wechsel zwischen Quelltext und PDF-Datei recht einfach möglich.
Zunächst müssen sich beide Programme gegenseitig “kennen”. Die Einstellungen dazu sehen wie folgt aus: in den Textmate-LaTeX-Einstellungen muss Skim als Viewer gewählt werden (siehe “Alt + Cmd + ,”) und in den Skim-Einstellungen muss Textmate für PDF-TeX-Sync ausgewählt werden:

Skim Einstellungen

Damit pdfsync funtkioniert, muss im Kopfbereich der *.tex-Datei das Paket pdfsync eingebunden werden:

LaTeX
\usepackage{pdfsync}

Sollten Probleme mit anderen Paketen auftreten, dann kann das Paket auch, wie in der Readme von pdfsync beschrieben, eingebunden werden:

LaTeX
\usepackage[novbox]{pdfsync}

Wie wechselt man nun zwischen den Programmen?

  • Textmate > Skim: Ctrl + Alt + Cmd + O
    (oder über das LaTeX-Menü: “Show in PDF-Viewer (pdfsync)”)
  • Skim > Textmate: Shift + Cmd + Klick in den Text

Bei kleineren Texten mag dieser Wechsel nicht so wichtig sein, doch bei Dokumenten mit größerer Seitenzahl und mehreren *.tex-Dateien ist dieses Feature wirklich eine große Hilfe!

Fehlt etwas?

Ja, leider! Was mir an Textmate (im Vergleich zu TeXShop) fehlt, ist die Möglichkeit, mit “Cmd + Doppelklick” an einer Stelle im Quelltext an die gleiche Stelle im PDF zu springen (und umgekehrt).
Verwendet man Skim, dann ist auch das zunächst fehlende Feature des pdf-sync mit Textmate möglich, um schnell zwischen Quelltext und Vorschau zu wechseln (Vielen Dank an Michael für den Tipp mit Skim!). Textmate bietet also wirklich eine gute Alternative zu TeXShop. Wer es einfach mag, kommt natürlich auch mit TeXShop zurecht! 😉



Comments

19 responses to “Textmate und LaTeX”

  1. Gewitterbukk Avatar
    Gewitterbukk

    Hallo.

    Ich dachte, ich klink mich da mal ein, weil ich die Anleitung befolgt habe, aber trotzdem ein Problem habe. Bei mir wird beim Kompilieren des gleichen LaTeX-Codes in TextMate latex verwendet wenn TeXShop pdflatex verwendet. Woran kann das liegen. Ich bin ziemlich verzweifelt und wäre Dankbar für Anregungen.

  2. mathias Avatar

    Hallo Gewitterbukk!
    Die Engine, mit der das TeX-Dokument verarbeitet wird, lässt sich in Textmate einstellen. Drücke einfach mal bei einem LaTeX-Dokument (also die Sprache muss in der unteren Statusleiste des Fensters auf LaTeX stehen) die Tastenkombination “Alt + Cmd + ,”. Dort gibt es dann die Auswahl “pdflatex, latex, …”. Wenn hier pdflatex ausgewählt wurde, sollte das Dokument eigentlich mit pdflatex verarbeitet werden! Hoffe das hilft!

    1. Gewitterbukk Avatar
      Gewitterbukk

      Hallo Mathias. Danke für die Antwort. Du hast natürlich vollkommen recht. ABER: In meinem Code sollen die Pakete “pstricks” zusammen mit “auto-pst-pdf” eingebunden werden. Wenn ich das tue, kompiliert TextMate ohne das ich das wollte mit latex was natürlich zu Problemen führt. Bei TeXShop ist das nicht der Fall. Da läuft pdflatex ohne Probleme. Aber warum ist das so?

      1. Gewitterbukk Avatar
        Gewitterbukk

        Okay! Hier die Lösung. Offenbar hat TextMate Schwierigkeiten mit dem Paket “auto-pst-pdf”. Keine Ahnung warum. Ist ein relativ neues Paket. Vielleicht liegt es daran. Durch einbinden der Zeile

        %!TEX TS-program = pdflatex

        erzwingt man pdflatex und alles läuft wie in TeXShop auch.

      2. mathias Avatar

        Ok, haben wir wieder was gelernt 😉

        Hatte mir erstmal dieses “auto-pst-pdf” auf CTAN angeschaut, da ich bis jetzt auch noch nichts von diesem Paket gehört hatte… interessant!

  3. Michael Avatar

    pdfsync (also die Fähigkeit zwischen Quelltext und PDF zu springen) funktioniert in der Kombination TextMate und Skim als PDF-Reader einwandfrei: http://apps.sourceforge.net/mediawiki/skim-app/index.php?title=TeX_and_PDF_Synchronization#Setting_up_TextMate

    1. mathias Avatar

      Danke für den Hinweis! Werde die Möglichkeit mit Skim als PDF-Betrachter mit in den Artikel einbauen!

  4. Gewitterbukk Avatar
    Gewitterbukk

    Ich noch mal! Leider habe ich das Problem doch noch nicht gelöst. Zumindest nicht zufrieden stellend. Bei mir scheint es ziemlich egal zu sein, welche Einstellungen ich in den “LaTeX Preferences” in TM vornehme, TM wählst selbstständig zwischen latex und pdflatex.

    Wenn ich zum ersten mal Code kompilieren möchte und noch keinen Pfand angegeben habe, fragt er mich nach “kpsewhich”. Ich habe mir das oben erwähnte Verzeichnis jetzt mal näher angeschaut. Es enthält sowohl “latex”, “pdflatex” (komischerweise als Alias auf latex, ist das normal?) und auch “kpsewhich”. Es ist mir mittlerweile unbegreiflich, warum das ganze bei mir nicht so funktioniert wie es soll. Ich habe alles so gemacht wie in dieser Anleitung. Ich resigniere!

    Vlt hat ja noch jemand eine Idee.

    1. mathias Avatar

      Ja, das mit dem Alias ist normal! Als Ideen, was du noch versuchen/prüfen könntest:

      • wenn der Eintrag in .profile nicht berücksichtigt werden sollte, dann kannst du die Zeile export PATH=... (siehe oben) auch in die Datei .bash_profile schreiben (ebenfalls unter “/Users/name/” speichern)
      • prüfen, ob der unter (1) angegebene Pfad auch mit deiner LaTeX-Installation übereinstimmt
      • in den TM-LaTeX-Einstellungen pdflatex auswählen und zusätzlich noch “–shell-escape” als Option eintragen (diese Option wird auch von TeXShop verwendet)
      • in den TM-LaTeX-Einstellungen “latexmk.pl” aktivieren (oder wenn es hilft: deaktivieren)
      • hast du bei der Definition von \documentclass[..., pdftex]{...} auch die Option “pdftex” eingebunden?
      • oder kann es vllt. doch an irgendwelchen Konflikten zwischen einigen Paketen liegen?

      Woran erkennst du eigentlich, dass TM nicht pdflatex verwendet? Wenn die Ausgabe etwa “Latexmk: applying rule ‘pdflatex’…” lautet, dann verwendet TM es auch. Ansonsten wüsste ich nicht, woran es noch liegen könnte…

  5. Gewitterbukk Avatar
    Gewitterbukk

    Neue Frage zu TextMate in Verbindung mit LaTeX. Obwohl ich den Acrobat Reader nur sehr selten und wenn, dann zur Überprüfung nutze, da ja der größte Teil der Wondows-Nutzer PDFs damit öffnet und ich sicher sein möchte, wie z.B. Links dargestellt werden. Deshalb fände ich es nett, wenn ich den Acrobat Reader als Viewer in TextMate einstellen könnte. Leider wird er – zumindest bei mir – nicht unter “View in:” in den LaTeX Preferences aufgeführt. Weiß vielleicht jemand ob und wie man das hinbekommen könnte?

    Danke!

    1. mathias Avatar

      Hab mir das LaTeX-Bundle mal aus der Nähe angeschaut: geht leider nicht! Die unterstützten PDF-Viewer werden hier an verschiedenen Stellen unterschiedlich behandelt und angesprochen, da jedes dieser Programme mit abweichenden Parametern aufgerufen werden muss!

      Aber unabhängig vom Betrachtungsprogramm sollte eine PDF-Datei immer gleich aussehen! Ok, bei den Linkfarben geb ich dir recht, diese weichen im Acrobat etwas von den anderen Programmen ab (wenn man die Farben nicht gezielt festlegt). Aber solche Sachen definiert man eigentlich einmal im Header des LaTeX-Dokuments und danach braucht man sich darum nicht mehr zu kümmern. LaTeX ist ja dafür gemacht: wenn das Layout einmal steht, dann nur noch auf den Inhalt konzentrieren!

  6. Andreas Avatar

    das Springen aus Textmate hin zu skim funktioniert bei mir nicht. Hier steht: CTRL+ALT+Command+O

    da passiert bei mir garnix. Das Springen aus Skim in den Quelltext funktioniert problemlos. Wäre ja sehr nützlich, wenn ich bei einer Änderung im Quelltext auch direkt im PDF an die richtige Stelle springen könnte um das Ergebnis zu betrachten.

    Danke
    Andreas

    1. mathias Avatar

      Nutzt du die neusten Versionen beider Programme? Ich kann mich daran erinnern, dass das Springen zwischen den Programmen bei mir auch nur in eine Richtung funktionierte… allerdings bin ich mir nicht mehr sicher, ob sich dieses Problem durch ein Update oder eine veränderte Einstellung gelöst hat!

  7. Andreas Avatar
    Andreas

    komischerweise hat sich das Problem von selber gelöst, keine Ahnung, hab nix gemacht, auch kein update! (Neustart?)

    Bei Textmate und latex finde ich überdies komisch, dass ich manchmal Tex Fehler beim compilen erhalte, die aber zehn Minuten später weg sind… und nein, keine aktualisierten Referenzen.

    Trotzdem, bin begeistert von der kombi Textmate/Skim, auch wenn zum schnellen schreiben eines Abschnitts oft lyx einfach komfortabler ist!!

  8. Hallo,

    gibt es mittlerweile die Möglichkeit, Adobe Reader/Acrobat als PDF-Viewer einzustellen? Denn nur der Adobe Viewer ist in der Lage, Audio- und Videofiles abzuspielen.

    Danke und Gruß

  9. Niemand eine Idee ?

    1. mathias Avatar

      bis jetzt scheint das noch nicht zu gehen. Wie ich auch weiter oben schon einmal geschrieben hatte, wird jeder PDF-Viewer im LaTeX-Bundle an verschiedenen Stellen unterschiedlich behandelt und angesprochen, d.h. man müsste sich dazu wohl die Mühe machen und selbst das Bundle anpassen! Oder einfach mal bei den Entwicklern nachfragen…

      1. Habe festgestellt, dass TeXShop als Viewer den Acrobat Reader unterstützt. TeXShop führt dabei AppleSkript aus. Ist es möglich, dieses Skript auszulesen und analog soetwas für Textmate zu schreiben?

  10. ecoment Avatar

    Danke für diese schnelle und gute Anleitung! Ich habe allerdings eine kleine Anmerkung, in der aktuellen Version von TextMate (ich benutze 1.5.0 (1510)) hat sich der Befehl für PDFSync geändert. Um jetzt direkt zu Skim zu wechseln, kann man nicht Ctrl+Alt+Cmd + O eingeben (dadurch springt er zwar zu Skim, allerdings ohne Sync!), sondern der neue Befehl heißt:

    ^+Cmd+W

    Der entsprechende Eintrag im LaTex Menü lautet bei mir “Watch Document”. Nur so sind nach dem Speichern die Änderungen sichtbar!

Leave a Reply

Your email address will not be published. Required fields are marked *