Автоматическая перезагрузка просмотра PDF при редактировании латексных файлов
Я использую программу просмотра ppp llpp при редактировании моих файлов LaTeX. Чтобы он автоматически обновлял файл pdf при компиляции, я использую обертку для его запуска (см. Это).
Часть, обрабатывающая ожидание и обновление, выглядит так:
inotifywait -m -e close_write $1 | while read; do
kill -HUP $pid_llpp
done &
Моя проблема заключается в следующем: всякий раз, когда возникает ошибка при компиляции tex-файла, вывод pdf не обрабатывается, и llpp закрывается. Я попробовал что-то подобное:
inotifywait -m -e close_write $1 | while read; do
if [ -a $1 ]
then
kill -HUP $pid_llpp
fi
done &
Это работает частично: когда во время компиляции происходит ошибка, llpp не закрывается, но больше не обновляется...
Может ли кто-нибудь помочь мне решить эту проблему?
1 ответ
Я выдвинул частичное решение вашей проблемы (полный сценарий здесь):
inotifywait -m -e close_write "$PWD" | while read dir ev file; do
if [ "$file" = "$pdf" ] && [ -e "$pdf" ]; then
kill -HUP $pid_llpp
fi
done &
Он проверяет, доступен ли текущий файл PDF, и только затем запускает событие обновления. Это похоже на то, что вы сделали. Однако у меня все еще может быть случай, что llpp закроется, поскольку файл может исчезнуть сразу после проверки. Я понятия не имею, как справиться с этим.
Проблема отсутствия обновления после исправления ошибки решается путем просмотра папки, содержащей pdf, и фильтрации событий для pdf. Если inotify - это вызов непосредственно из файла, он, похоже, пропускает все события после delete
,
Если вы все еще заинтересованы в этом, пожалуйста, дайте мне знать, если это работает для вас.
(Как примечание: оболочка теперь также может передавать флаги в llpp)