Автоматическое обновление предварительного просмотра Mac при изменении PDF файла

Я пишу LaTeX на машине Mac, используя Mac Preview.app для предварительного просмотра. После скомпилирования файла LaTeX:

  • Preview.app не автообновляет,
  • Когда я нажимаю окно предварительного просмотра, он обновляется, но переходит в начало документа.

Мне интересно, есть ли способ настроить его, чтобы

  • Preview.app автоматически обновляется при изменении базового файла PDF,
  • после обновления, Preview.app остается на той же странице.

Ответы

Ответ 1

Меня это раздражало, и (к сожалению) у меня есть только "взломанное" решение для вас.

Вы можете просмотреть PDF файл в режиме одной страницы (cmd 2), чтобы оставаться на одной странице после набора.

Я надеюсь, что кто-то отправит постоянное решение, которое работает для непрерывной прокрутки.

Ответ 2

Я считаю, что есть несколько вариантов...

  • Установите Skim, см. здесь.

  • Соберите что-нибудь самостоятельно, используя fswatch, который вы можете установить с помощью homebrew, чтобы обеспечить что-то похожее на Linux inotify и установить, что запущенные файлы мониторинга, а когда они изменены, используйте некоторые Applecript для обновления Preview.

Он будет выглядеть примерно так:

fswatch -iI ./*.pdf | xargs -I{} ./RefreshPreview {}

и RefreshPreview будут выглядеть следующим образом:

#!/bin/bash
osascript -e 'tell application "Preview" to quit'
sleep 1
open -a Preview "$1"

# If you don't want Preview to come forwards and get focus, use the following
# open -g -a Preview "$1"

Если вы не знакомы со сценарием, вам нужно сделать исполняемый файл script следующим образом в терминале

chmod +x RefreshPreview

Я только что нашел, что несколько более простой и элегантный script будет работать лучше:

#!/bin/bash
osascript<<EOF
tell application "Preview" to open POSIX file "$1"
EOF