Penampil PDF yang mendukung SyncTeX untuk Gnome

12

Saya mencari penampil PDF untuk bekerja dengan LaTeX dan SyncTeX (pencarian maju dan terbalik) di bawah Gnome. Saya tahu dari pertanyaan sebelumnya di berbagai forum bahwa Okular memiliki fitur ini, tetapi saya lebih suka untuk tidak menyeret dependensi KDE hanya untuk ini.

Apakah ada alternatif yang akan bekerja dengan baik di Gnome, tanpa terlalu banyak ketergantungan? Saya tidak keberatan menggunakan PPA, membangun dari sumber, menggunakan alat gaya X lama atau menulis skrip kecil - Tapi saya butuh sesuatu yang diketahui bekerja dan tidak akan mengacaukan pengaturan saya.

Tabel Bobby Kecil
sumber
Saya menggunakan Emacs. Saya cukup tahu untuk meretas jalan saya dengan itu, tetapi saya tidak bisa mengetahui apa yang ada di Gnome fungsi dasar menanggapi klik dalam PDF menurut data SyncTeX.
Little Bobby Tables
Apakah ada pembaruan tentang itu? Saya menggunakan TexStudio di Debian dengan Xfce dan saya tidak ingin menginstal Ocular dengan semua dependensinya. Saya menggunakan Atril (yang didasarkan pada Evince) sebagai penampil pdf default saya tetapi tampaknya tidak mendukung pencarian maju dan terbalik.
Sebastian Widz

Jawaban:

6

Seperti yang saya catat dalam komentar, akan membantu jika Anda memiliki editor tertentu yang ingin Anda gunakan bersama dengannya.

The gedit-lateks-plugin menambahkan built in PDF preview untuk Gedit, dan saya mengumpulkan mendukung SyncTeX pencarian maju / mundur. Tentu saja itulah yang terlintas dalam pikiran saya ketika saya memikirkan sesuatu untuk pengguna GNOME.

Ada editor LaTeX lain dengan pratinjau bawaan yang mendukung lompatan SyncTeX seperti: TeXworks , Texmaker , TeXmakerX . Ini semua berbasis Qt daripada berbasis GTK, tapi tetap saja, tidak ada yang memerlukan KDE atau pustaka seperti Kile / Okular lakukan. ( Gummi berbasis GTK dan memiliki pratinjau bawaan - pembaruan langsung pada saat itu - tetapi saya tidak berpikir ini mendukung synctex ...)

Seperti yang dicatat oleh jawaban lain, Evince seharusnya mendapatkan fitur ini, dan orang-orang bekerja pada plugin yang diperlukan untuk interaksi di sisi editor. Saya mengumpulkannya menggunakan DBus untuk interaksi - kesalahan besar jika Anda bertanya kepada saya - tapi seperti Anda tidak tahu cara kerjanya. Namun, ada versi lama dari evince di Arch Linux User Repository yang telah ditambal untuk memberikan dukungan SyncTeX lebih langsung . Saya belum pernah mencoba mengompilasinya di Ubuntu, meskipun secara teoritis itu harus dimungkinkan. Saya telah menggunakannya di Arch, dan itu berfungsi dengan baik.

Namun saya pribadi, menggunakan MuPDF sebagai viewer saya untuk komposisi LaTeX, yang saya pilih karena itu adalah viewer PDF tercepat yang saya tahu, dan satu-satunya yang cukup cepat untuk skrip pratinjau pembaruan langsung yang saya gunakan dengan Vim sebagai editor saya.

Sementara MuPDF tidak mendukung SyncTeX secara langsung, saya meretas bersama beberapa skrip xdotool yang menyediakan dukungan SyncTeX parsial. Pada dasarnya, untuk pencarian maju, skrip memanggil synctex dari vim untuk mencari tahu halaman apa yang cocok dengan tempat di sumber, dan kemudian mengirimkan penekanan tombol yang sesuai ke MuPDF untuk melompat ke halaman itu. Saya melakukan ini dengan skrip vim, tetapi dengan bash, sesuatu seperti ini mungkin bisa membantu:

#!/bin/bash
# mupdf-forward.sh
# usage mupdf-forward.sh <line number> <column number> <tex file> <pdf file>
SEARCHLINE="$1"
SEARCHCOL="$2"
TEXFILE="$3"
PDFFILE="$4"
PAGEFORWARD=0
PAGEFORWARD="$(synctex view -i $SEARCHLINE:$SEARCHCOL:"'"'"$TEXFILE"'"'" -o "'"'"$PDFFILE"'"'" | grep -m1 'Page:' | sed 's/Page://' | tr -d '\n'")"
if [ $PAGEFORWARD -gt 0 ] ; then
   xdotool search --class MuPDF type --window %@ "${PAGEFORWARD}g"
fi

Jika Anda memiliki versi terbaru xdotool (lebih baru dari yang ada di repo Maverick), Anda dapat mengumpulkan sejenis pencarian terbalik dengan meminta xdotool membaca nomor halaman yang diperlihatkan oleh MuPDF dari bilah judulnya, panggil sintaksis, dan kemudian kirim perintah yang sesuai ke editor untuk melompat ke tempat kode untuk halaman itu (- tidak hampir setepat yang Anda dapatkan dengan penampil PDF yang benar-benar memenuhi SyncTeX, tetapi tidak terlalu lusuh untuk sesuatu yang ringan seperti MuPDF) .

Bagaimanapun, Anda dapat membaca dan mengunduh skrip yang sebenarnya saya gunakan untuk vim dalam posting blog ini . Tetapi jika Anda ingin menggunakan editor yang berbeda, Anda harus menyesuaikan idenya seperlunya.

Tapi mudah-mudahan situasi dengan Evince akan meluruskan dirinya sendiri dalam waktu dekat juga.

luar biasa
sumber
Berikut ini adalah PPA untuk MuPDF yang saya temukan.
JJD
+1 untuk Gummi. Hanya menginstalnya dan itu hebat! Ini juga mendukung SyncTex sekarang.
JJD
3

Cukup gunakan Evince, penampil dokumen default untuk GNOME dan Ubuntu. Sejak GNOME 2.32 (ditemukan di Ubuntu 10.10 dan Ubuntu 11.04 mendatang), Evince mendukung SyncTex. Untuk lebih lanjut, lihat http://library.gnome.org/misc/release-notes/2.32/

pengguna4124
sumber
Saya memiliki versi ini (Ubuntu 11.04 dan Gnome 2.32), tetapi saya tidak menemukan cara mengkonfigurasi Evince untuk melakukan pencarian maju atau mundur. Apa yang saya lewatkan?
Little Bobby Tables
Ctrl + F membawa pencarian .... dan Anda dapat memilih arah .... atau apakah saya melewatkan sesuatu?
luri
4
"pencarian maju", dalam konteks sinkronisasi LaTeX, berarti Anda dapat beralih dari editor ke halaman yang benar di penampil PDF. "Pencarian terbalik" berarti melompat dari penampil PDF ke kode sumber paragraf yang dipilih.
Little Bobby Tables
Saya minta maaf atas ketidaktahuan saya (sebenarnya, ini adalah kesalahpahaman bahasa). Terima kasih telah menjelaskannya untuk saya.
luri
LaTeX atau editor teks apa yang Anda gunakan atau yang ingin Anda gunakan?
frabjous