обновить предпросмотр из командной строки

16

У меня есть рабочий процесс (редактирование LaTeX в Emacs), который создает PDF-файлы, которые я затем проверяю в Preview. Предварительный просмотр достаточно умен, чтобы повторно загрузить PDF при его изменении, но он делает это только тогда, когда я нажимаю на приложение и выводю его на передний план.

Есть ли способ сказать Preview, чтобы заново загрузить документ (и остаться в фоновом режиме) с помощью командной строки?

Изменить: Чтобы продолжить, я очень рад сделать небольшой взлом AppleScript или что-то еще (я никогда не использовал AppleScript, но это не может быть слишком сложно).

Reid
источник

Ответы:

5

Нет простого решения, которое я могу придумать.

  • Вы можете переключиться на использование Skim или другой предварительный просмотр PDF, который поддерживает поведение, которое вы ищете.
  • Вы можете «открыть file.pdf», чтобы обновить и вывести Preview на передний план, а затем другую команду, чтобы вывести ваш редактор или терминал перед ним (open file.pdf; open -a Terminal.app).

источник
Ским делает то, что я хочу; Благодарю. Ему все еще нравится выдвигать себя во время обновления, но я могу обойти это. Skim также предоставляет гораздо более эффективную AppleScripting, чем Preview (вы можете указать, чтобы он обновлялся напрямую).
Рейд
5

Если вы хотите использовать Applescript для вывода Preview на передний план, то все, что вам нужно, это строка:

tell application "Preview" to activate

Вы также можете использовать osascriptкоманду в командной строке для запуска этого скрипта. Есть определенные вещи, на которые нужно обращать внимание (экранирование кавычек и обработка нескольких строк). Примеров его точного использования предостаточно, и у него есть своя manстраница.

Филип Реган
источник
Спасибо; это было бы частично там, конечно. Можно ли сказать, чтобы Предварительный просмотр обновлялся, но не выходил на передний план? Как выяснить, какие хуки AppleScript доступны для приложения (или это новый вопрос, который я должен задать)?
Рейд
2
@ Не совсем, но вы можете добавить к своему сценарию команду, которая вернет вас в приложение, которое у вас было раньше (в данном случае в вашем редакторе TeX), этого должно быть достаточно для запуска обновления предварительного просмотра, и вы вернетесь к работе.
Мартин Маркончини
@ Мартин, спасибо - я получил это на работу. Одной из оставшихся проблем является то, что порядок окон меняется; Я бы предпочел, чтобы это осталось точно таким же.
Рейд
Это потребует изменения индекса каждого документа (документа n ), но обычно это свойство только для чтения.
Филипп Риган