如何在修改基础文件时自动刷新在macOS预览中打开的PDF文档?
我在macOS机器上用LaTeX编写,同时使用预安装的Preview.app查看编译的文档。重新编译LaTeX文件后,Preview.app:如何在修改基础文件时自动刷新在macOS预览中打开的PDF文档?,macos,pdf,latex,preview,Macos,Pdf,Latex,Preview,我在macOS机器上用LaTeX编写,同时使用预安装的Preview.app查看编译的文档。重新编译LaTeX文件后,Preview.app: 不会自动刷新PDF,并且 单击其窗口时刷新,但跳到文档顶部 我想知道是否有办法对其进行配置,以便Preview.app: 当基础PDF文件更改时自动刷新,以及 刷新后,将保持在同一页上 我自己也对此感到恼火,不幸的是,我只有一个“黑客”解决方案给你 您可以在单页模式下查看PDF(由⌘+2)更新文件时保持在同一页面上 我希望有人发布一个在连续滚动模式下工作
我自己也对此感到恼火,不幸的是,我只有一个“黑客”解决方案给你 您可以在单页模式下查看PDF(由⌘+2)更新文件时保持在同一页面上
我希望有人发布一个在连续滚动模式下工作的永久解决方案。我相信,有两种选择
fswatch
命令自己组装一些东西,您可以通过自制程序安装这些东西,在Linux上提供类似于inotify
的东西,并使脚本监视PDF文件,以便在修改它时,某些AppleScript会在预览中触发刷新
$ fswatch -iI ./*.pdf | xargs -I{} ./RefreshPreview {}
其中,RefreshPreview
脚本
#!/usr/bin/env bash
osascript -e 'tell application "Preview" to quit'
sleep 1
open -a Preview "$1"
如果不希望预览出现并获得焦点,请使用以下选项:
#!/usr/bin/env bash
open -g -a Preview "$1"
不要忘记通过运行命令使脚本可执行
$ chmod +x RefreshPreview
我刚刚发现,更简单、更优雅的脚本会更好:
#!/usr/bin/env bash
osascript<<EOF
tell application "Preview" to open POSIX file "$1"
EOF
#/usr/bin/env bash
osascript我在预览中找到了一种在连续滚动模式下工作的解决方案。我曾经在LaTeX编辑器中按下某个快捷键时,一个接一个地激活一系列命令和按键
下面是BetterTouchTool窗口的屏幕截图。(我已将F5配置为此操作序列的触发快捷方式。)
该链由以下操作组成:
触发⌘+⇧+R keypress,它调用LyX中的更新操作
如果使用不同的LaTeX编辑器,请将其替换为执行LaTeX源重新编译的相应快捷方式
等半秒钟
这允许在LyX中完成更新操作。您可以根据情况增加或减少延迟时间
运行AppleScript命令告诉应用程序“预览”以激活
这将切换到预览并使其成为活动应用程序。此时,“预览”将重新读取文件并重新加载视图
触发⌘+2按键
触发⌘+1个按键
运行AppleScript命令告诉应用程序“LyX”激活
这会将控件返回给LyX
这不是预览的答案,但我发现Skim可以通过更改几个设置来实现这一点(从Skim帮助中):
当磁盘上的文件内容发生变化时,Skim可以通过另一个程序自动重新加载您查看的文件
要在磁盘上的文件内容更改时重新加载文件
- 选择浏览>首选项
- 单击同步,然后单击
- 选择“检查文件更改”
除非您选择了“自动”,否则Skim将始终首先询问您,当磁盘上的内容发生更改时,是否应重新加载文件
然后选中“自动重新加载”框。
重新启动Skim,文件应该在构建后立即自动更新
这个问题最好直接问。