Средство просмотра PDF с поддержкой SyncTeX для Gnome

12

Я ищу средство просмотра PDF для работы с LaTeX и SyncTeX (прямой и обратный поиск) в Gnome. Из предыдущих вопросов на различных форумах я знаю, что в Okular есть эта функция, но я предпочитаю не перетаскивать зависимости KDE только для этого.

Есть ли альтернатива, которая будет хорошо работать в Gnome, без слишком большого количества зависимостей? Я не возражаю против использования PPA, сборки из исходного кода, использования старых инструментов в стиле X или написания небольших скриптов - но мне нужно что-то, что, как известно, работает и не будет слишком сильно мешать моей установке.

Маленькие Бобби Столы
источник
Я использую Emacs. Я знаю достаточно, чтобы разобраться с этим, но я не могу выяснить, в чем заключается основная функциональность ответа Gnome на щелчок в PDF-файле в соответствии с данными SyncTeX.
Маленькие столики Бобби
Есть ли какие-либо обновления по этому поводу? Я использую TexStudio в Debian с Xfce, и я не хочу устанавливать Ocular со всеми его зависимостями. Я использую Atril (который был основан на Evince) как мое средство просмотра PDF по умолчанию, но кажется, что он не поддерживает прямой и обратный поиск.
Себастьян Видз

Ответы:

6

Как я отметил в комментарии, было бы полезно знать, если у вас есть определенный редактор, который вы хотите использовать вместе с ним.

Gedit-латекс-плагин добавляет встроенный предварительный просмотр PDF в GEdit, и я понимаю , он поддерживает SyncTeX вперед / назад поиски. Конечно, это то, что приходит мне на ум, когда я думаю о чем-то для пользователей GNOME.

Существуют другие редакторы LaTeX со встроенными программами предварительного просмотра, которые поддерживают переходы SyncTeX, такие как: TeXworks , Texmaker , TeXmakerX . Все они основаны на Qt, а не на GTK, но, тем не менее, ни один из них не требует KDE или его библиотек, как Kile / Okular. ( gummi основан на GTK и имеет встроенный предварительный просмотр - при этом он обновляется в реальном времени - но я не думаю, что он поддерживает synctex ...)

Как отмечается в другом ответе, evince предположительно получает эту функцию, и люди работают над необходимыми плагинами для взаимодействия на стороне редактора. Я полагаю, что он использует DBus для взаимодействия - большая ошибка, если вы спросите меня - но, как вы не можете понять, как это работает. Тем не менее, в Arch Linux User Repository есть более старая версия evince, которая исправлена ​​для более прямой поддержки SyncTeX . Я никогда не пробовал компилировать его в Ubuntu, хотя теоретически это должно быть возможно. Я использовал его на Arch, хотя, и он работает нормально.

Однако я лично использую MuPDF в качестве средства просмотра для композиции LaTeX, которую я выбрал, потому что это самый быстрый просмотрщик PDF, который я знаю, и единственный, достаточно быстрый для сценария live-update-preview, который я использую с Vim в качестве редактора.

Хотя MuPDF не поддерживает SyncTeX напрямую, я собрал несколько сценариев xdotool, которые частично поддерживают SyncTeX. По сути, для прямого поиска сценарии вызывают synctex из vim, чтобы выяснить, какая страница соответствует месту в источнике, а затем отправляют соответствующие нажатия клавиш в MuPDF для перехода на эту страницу. Я делаю это с помощью скрипта vim, но с bash, что-то вроде этого может помочь:

#!/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

Если у вас установлена ​​новейшая версия xdotool (более новая, чем та, что есть в репозиториях Maverick), вы можете запустить аналогичный вид обратного поиска, если xdotool прочитает номер страницы, который MuPDF показывает из строки заголовка, вызовите synctex и затем отправьте соответствующую команду в редактор, чтобы перейти туда, где находится код для этой страницы (- не настолько точный, как вы бы получили с помощью реального средства просмотра PDF, совместимого с SyncTeX, но не слишком потертый для чего-то более легкого, чем MuPDF) ,

В любом случае, вы можете прочитать и загрузить скрипты, которые я на самом деле использую для vim, в этом сообщении в блоге . Но если вы хотите использовать другой редактор, вам придется адаптировать идею по мере необходимости.

Но, надеюсь, ситуация с evince тоже скоро исправится.

радостный
источник
Вот PPA для MuPDF, который я нашел.
JJD
+1 для Гамми. Просто установил его и это здорово! Теперь он также поддерживает SyncTex .
JJD
3

Просто используйте Evince, средство просмотра документов по умолчанию для GNOME и Ubuntu. Начиная с GNOME 2.32 (в Ubuntu 10.10 и в следующей Ubuntu 11.04) Evince поддерживает SyncTex. Для получения дополнительной информации см. Http://library.gnome.org/misc/release-notes/2.32/

user4124
источник
У меня есть эти версии (Ubuntu 11.04 и Gnome 2.32), но я не нашел, как настроить Evince для выполнения прямого или обратного поиска. Что мне не хватает?
Маленькие столики Бобби
Ctrl + F приносит поиск .... и вы можете выбрать направление .... или я что-то упустил?
Лури
4
«прямой поиск» в контексте синхронизации LaTeX означает, что вы можете перейти из редактора на нужную страницу в программе просмотра PDF. «Обратный поиск» означает переход от средства просмотра PDF к исходному коду выбранного абзаца.
Маленькие столики Бобби
Прошу прощения за мое невежество (на самом деле, это неправильное понимание языка). Спасибо за разъяснение этого для меня.
Лури
Какой LaTeX или текстовый редактор вы используете или хотите использовать?
frabjous