PDF 阅读器

Posted on May 23, 2025 by Yu Cong
Tags:
要研究东西总是需要读纸, 纸都是 pdf, 所以好用的 pdf reader 很有用.

我在 macOS 上用过这些阅读器:
  1. skim. skim 还挺好用的, 缺点是快捷键太不灵活, 如果能自己设置 jk 翻页之类的就好了, 之前修改了代码, 勉强可用, 但是后来花了很长时间问 AI 工具都没搞明白如何更新目录和页码.
  2. Preview 是一坨屎. 为什么文件修改之后要 focus 才能更新页面? 设置的视图在文件重新加载也不能恢复. 这就导致完全无法用 Preview 来 preview :( skim 和 Preview 都用 Apple pdfkit, 在 app 显示了纵向滚动条的情况下 pdfkit 不能正确处理 pdf 页面宽度. (见 skim bug report)

    我的解决方法是调整 skim 显示 scrollbar 的模式
    defaults write net.sourceforge.skim-app.skim AppleShowScrollBars -string "WhenScrolling"

    Preview 在 pdf 里面的搜索功能据说会漏掉一些.
  3. PDF.js(in Firefox) 比 chrome 的阅读器好很多. 某个版本是使用j,k移动页面的(也许我记错了, 是 chrome 的插件 ), 但是目前变成了翻页. 这种按键逻辑很奇怪, 为什么已经有了n,p来翻页还要把j,k设置成这样的功能? 即使有人想用j,k来翻页, 那么使用 singe page mode 也可以. sumatra 的快捷键就是这样设计的, 可惜只能在 windows 上用. 如果用 PDF.js 来和编辑器一起写纸的话, vscode 的插件可以在 tab 里用 PDF.js 预览, 编译之后自动刷新, 速度有点慢.
  4. zotero 内置的 reader. 优点是可以准确的显示 link 到的东西(skim 有类似功能,但是不能准确显示到目标), 但是滚动起来好卡, 而且 zotero 的 tab 用起来很难受. 但是 zotero 有个很好的插件 https://github.com/retorquere/zotero-open-pdf, 让你来选择用什么 reader 打开.

对于写 latex 来说, 实际上不需要频繁看编译出来的内容. 我觉得这种 Emacs mode 就很好, 但是我不想花时间学如何用 Emacs

jk移动页面是 Okular 的习惯. 如果能修改 skim, 加入一个修改快捷键的功能会很好, 但是对于不懂 objective-c 的人来说可能太难了. 另一个困难是 skim 源码在 SourceForge 上, 要用 svn.