修改PDF文件时自动刷新Mac预览

时间:2015-02-04 07:16:44

标签: macos pdf latex preview

我在Mac机器上编写LaTeX,同时使用Mac的Preview.app进行预览。重新编译LaTeX文件后:

  1. Preview.app不会自动刷新,
  2. 当我点击预览窗口时,它会刷新,但跳转到文档的顶部。
  3. 我想知道是否有一种方法可以配置它,所以

    1. 当基础PDF文件发生更改时,Preview.app会自动刷新,
    2. 刷新后
    3. ,Preview.app停留在同一页面上。

4 个答案:

答案 0 :(得分:13)

我自己也很生气,(不幸的是)我只有一个"黑客攻击"解决方案给你。

您可以在单页模式(cmd 2)中查看pdf,以便在排版后保持在同一页面上。

我希望有人发布一个可以连续滚动的永久解决方案。

答案 1 :(得分:6)

我相信有几种选择......

  1. 安装Skim,请参阅here

  2. 使用fswatch自行整理一些内容,您可以使用homebrew安装,以提供类似于Linux inotify的内容,并设置运行监控PDF,并在修改后修改使用一些Applecript刷新预览。

  3. 它看起来像这样:

    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"
    

    如果您不熟悉脚本,则需要在Terminal

    中使脚本可执行
    chmod +x RefreshPreview
    

    我刚刚发现更简单,更优雅的脚本会更好用:

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

答案 2 :(得分:1)

我找到了一个与“预览”中的“连续滚动”模式一起使用的解决方案。当我在TeX编辑器中按下某个按钮时,我使用BetterTouchTool链接了一系列命令和按顺序激活的按键。我将LyX用作LaTeX编辑器,并在BetterTouchTool中设置了F5来触发操作链。这是BetterTouchTool窗口的屏幕截图。

Link to screenshot

该链由以下序列组成:

  1. 触发按键Cmd+Shift+R会触发LyX中的“更新”操作。如果您使用其他LaTeX软件,则将其替换为在编辑器中执行“更新”或“重新编译”操作的相应快捷方式。
  2. 延迟0.5秒。这允许LyX中的“更新”操作完成。您可能会根据计算机的速度增加或减少延迟时间。
  3. 运行Apple脚本tell application "Preview" to activate。这将切换到“预览”并使它成为活动应用程序。此时,预览将重新读取文件并重新加载视图。
  4. 按触发键Cmd+2
  5. 按触发键Cmd+1
  6. 运行Apple脚本tell application "LyX" to activate。这会将控件返回到主TeX应用程序。

答案 3 :(得分:0)

这不是预览的答案,但我发现Skim可以通过更改几个设置来做到这一点(来自Skim帮助):

  

当其他内容在磁盘上更改时,Skim可以自动重新加载您查看的文件。

     

要在磁盘上的内容更改时重新加载文件,

     
      
  • 选择“略读”>“首选项”,
  •   
  • 点击同步,然后
  •   
  • 选择“检查文件更改”。
  •   
     

除非您选择了“自动”,否则Skim始终会首先询问您是否在磁盘上的内容更改时重新加载文件。

然后选中“自动重新加载”框。 重新启动Skim,并在构建文件后立即自动对其进行更新。

Skim > Preferences > Sync