ubuntuusers.de

HOWTO: Evince + SyncTeX + vim/emacs/scite/lyx/kile/$EDITOR + forward/backward search

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

BratscherBen

Anmeldungsdatum:
6. März 2007

Beiträge: Zähle...

Hi!

Für alle, die noch keinen forward/backward search mit evince hinbekommen haben hier meine Lösung. Dank geht schon mal vornweg an José Aliste, er hat das gedit-synctex-plugin geschrieben, was ich modifiziert habe:

Vorbedingung

Diese Dateien herunterladen und nach ~/bin entpacken (oder irgendwas, was im $PATH steht)

Backward Search (Evince → Editor)

  1. In der Datei »~/bin/evince« die erste Zeile (EDITORCMD) nach eigenen Wünschen anpassen. (was da möglich ist erfährt man, wenn man »evince_backward_search« ohne Parameter aufruft

  2. Seine .tex Datei mit synctex kompilieren (»pdflatex -synctex=1 myfile.tex«)

  3. »evince myfile.pdf« (jetzt sollte das Skript erst evince_backward_search und dann evince starten)

  4. zwei Finger kreuzen

  5. eine Textstelle in evince mit »Strg+Linksklick« klicken

    1. Wenn der Editor an der richtigen Stelle angesprungen wurde: ein spontanes Dankeschön an José ausrufen

    2. Wenn es nicht geht: Ben verfluchen (das bin ich)

Forward Search (Editor → Evince)

  1. Dem Editor beibringen, dass er auf ein gewünschtes Tastenkürzel das Kommando »evince_forward_search $PDFDATEI $ZEILE $TEXDATEI« aufruft.

  2. Zur entsprechenden Zeile gehen und Tastenkürzel drücken

    1. Wenn Evince die richtige Stelle markiert: laut ausrufen, wie sehr man OpenSource und Josés Code mag!

    2. Wenn es nicht geht: Ben verfluchen

zu 1.: Ich habe für Vim + vim-latexsuite folgendes in die ~/.vim/ftplugin/tex.vim geschrieben:

1
2
3
function! Tex_ForwardSearchLaTeX()
  execute '!~/bin/evince_forward_search ' . fnamemodify(Tex_GetMainFileName(), ":p:r") .  '.pdf ' . line(".") . ' ' . "%:p"
endfunction

und kann anschließend mit \ls zur aktuellen Zeile springen.

Nachbearbeitung

Sich bei den Nachbarn für den Lärm entschuldigen, sowie erklären, wer José und Ben sind.

Ich bin für jeglichen Verbesserungsvorschlag offen…

Ben

Feuerfieber

Anmeldungsdatum:
1. Mai 2009

Beiträge: Zähle...

Wohnort: Leipzig

Danke für das Skript! Funktioniert auch unter Arch Linux mit einer kleinen Modifkation

1
        if [ -f `basename "$PDFFILE" .pdf`.synctex.gz ];then

musste ich ersetzen durch

1
        if [ -f "${PDFFILE%%.pdf}.synctex.gz" ];then

ansonsten hätten sich die datein evince, evince_backward_search und evince_forward_search im selben Verzeichnis befinden müssen.

Leider konnte ich Kile noch nicht dazu bewegen die aktuelle Zeilennummer mit über die Kommandozeile zu übergeben, damit funktioniert Forward Search leider noch nicht.

BratscherBen

(Themenstarter)

Anmeldungsdatum:
6. März 2007

Beiträge: 10

danke für den Hinweis, ich hab das Skript angepasst

Antworten |