actualiser l'aperçu à partir de la ligne de commande

16

J'ai un workflow (édition LaTeX dans Emacs) qui produit des PDF que j'examine ensuite en Aperçu. L'aperçu est suffisamment intelligent pour recharger le PDF lorsqu'il change, mais il ne le fait que lorsque je clique sur l'application et la mets au premier plan.

Existe-t-il un moyen de dire à Aperçu de recharger le document (et de rester en arrière-plan) à l'aide de la ligne de commande?

Edit: Pour le suivi, je suis parfaitement heureux de faire un petit piratage AppleScript ou autre (je n'ai jamais utilisé AppleScript, mais ça ne peut pas être trop difficile).

Reid
la source

Réponses:

5

Aucune solution simple à laquelle je peux penser.

  • Vous pouvez passer à l'aide de Skim ou d'un autre aperçu PDF qui prend en charge le comportement que vous recherchez.
  • Vous pouvez "ouvrir fichier.pdf" pour actualiser et mettre Aperçu au premier plan, puis une autre commande pour placer votre éditeur ou terminal devant lui (ouvrir fichier.pdf; ouvrir -a Terminal.app).

la source
Skim fait ce que je veux; Merci. Il aime toujours se mettre en avant pendant le rafraîchissement, mais je peux contourner cela. Skim offre également un AppleScripting beaucoup plus efficace que Preview (vous pouvez lui dire de se rafraîchir directement).
Reid
5

Si vous souhaitez utiliser Applescript pour mettre l'aperçu au premier plan, alors tout ce dont vous avez besoin est cette ligne:

tell application "Preview" to activate

Vous pouvez également utiliser la osascriptcommande de la ligne de commande pour exécuter ce script également. Il y a des choses spécifiques à surveiller (échapper les guillemets et gérer plusieurs lignes). Les exemples sur son utilisation exacte abondent et il a sa propre manpage.

Philip Regan
la source
Merci; ce serait certainement à mi-chemin. Est-il possible de dire à Preview de se rafraîchir mais de ne pas venir au premier plan? Comment déterminer quels crochets AppleScript sont disponibles pour une application (ou s'agit-il d'une nouvelle question que je devrais poser)?
Reid
2
@Reid pas vraiment, mais vous pouvez ajouter à votre script une commande pour vous ramener à l'application que vous aviez auparavant (dans ce cas, votre éditeur TeX), cela devrait être suffisant pour déclencher l'actualisation de l'aperçu et vous remettre en activité.
Martin Marconcini
@Martin, merci - j'ai réussi à travailler. Le seul problème restant est que l'ordre des fenêtres est tordu; Je préférerais qu'il reste exactement le même.
Reid
Cela nécessiterait de jouer avec l'index de chaque document (document n ), mais il s'agit généralement d'une propriété en lecture seule.
Philip Regan