zathura
zathura 是一款具有 vi 风格快捷键的可定制文档查看器。它提供了一个极简且节省空间的界面。用户主要通过键盘与 zathura 交互。通过插件支持不同的文件格式。支持 PDF, PS, DjVu 和 漫画书 文件。
更多信息请参阅 zathura(1)。
安装
- zathura-cb — 漫画书支持
- zathura-djvu — DjVu 支持
- zathura-pdf-mupdf — 基于 MuPDF 的 EPUB, PDF 和 XPS 支持
- zathura-pdf-poppler — 基于 Poppler 的 PDF 支持
- zathura-ps — PostScript 支持
配置
更多信息请参阅 zathurarc(5)。
启用复制到剪贴板
~/.config/zathura/zathurarc
set selection-clipboard clipboard
将 zathura 设置为默认 PDF 查看器
这可以确保,例如 xdg-open(1) 将使用 zathura 打开 PDF 文件。
首先,确保 zathura 的 桌面条目 (desktop entry) 存在于 /usr/share/applications/org.pwmt.zathura.desktop。如果不存在,请从 zathura 仓库 下载桌面条目至 /usr/share/applications/org.pwmt.zathura.desktop。
然后,使用 xdg-mime(1) 将 zathura 设置为默认程序
$ xdg-mime default org.pwmt.zathura.desktop application/pdf
Emacs 按键映射
zathura 默认使用 Vi 风格的快捷键。Emacs 风格的快捷键可以单独配置。示例可以在这里找到。
用法
就像在 vi 中一样,可以通过按下 : 直接在 zathura 中输入命令。
zathura 会自动重新加载文档。在处理编译类文档(如使用 LaTeX 编写的文档)时,每当编译发生,zathura 就会刷新输出。zathura 具有启用反向搜索(使用 SyncTeX)的选项。
zathura 可以将文档调整为页面自适应 (a) 或宽度自适应 (s),并且可以旋转页面 (r)。它可以并排查看页面 (d) 并具有全屏模式。页面还可以重新配色,以实现黑色背景和白色前景 (C-r)。支持大多数 vi 的移动/滚动命令。
可以通过点击链接来跳转。此外,可以按下 f 来高亮显示页面上的所有链接并为其分配编号,输入链接编号并按回车即可跳转到该链接位置。如果使用 F,则状态栏中仅显示链接的位置。
zathura 可以搜索文本并将文本复制到主 X 选择区。它支持书签并可以打开密码加密的文件。
zathura 能够执行外部 shell 命令。可以使用 tabbed 以标签页形式打开。
zathura 通过使用 seccomp 过滤器提供可选的沙箱模式,以提供硬化的运行时环境,请参阅 #沙箱。
页码偏移
许多印刷书籍仅从正文开始计算页码。然而,zathura 计算 PDF 的所有页面,包括某些版本不计入的页面:封面、版本声明、开头的几页空白页等。因此,zathura 的页码有时与版本不一致,这使得追踪目录或引用中使用的页码变得十分麻烦。
命令 :offset <number> 将使 zathura 在跳转到页码时考虑偏移量(通过输入 <number>G 跳转,但 :<number> 命令将不考虑偏移量 [1])。例如,某本书从 PDF 的第 17 页开始计算页码(因此在第 17 页,索引为 1;在 18 页索引为 2,依此类推)。设置 :offset 16 后,245G 将跳转到 PDF 的第 261 页而非第 245 页。
Sandbox
zathura 附带了一个额外的 zathura-sandbox 二进制文件,它通过使用 seccomp 过滤器和 landlock 提供安全的运行时环境。这个沙箱版本的 zathura 在没有网络访问、仅具有文件系统只读权限且允许的系统调用数量严重受限的情况下运行,从而显著减少了内核攻击面。
使用 zathura-sandbox 时,某些功能将被禁用,例如写入文件、打印和书签。
在 zathura 中阅读 Microsoft Office/LibreOffice 文档
zaread-gitAUR 脚本允许使用 zathura 打开 Microsoft Office/LibreOffice 文档。
要使用它,请运行:
$ zaread /path/to/document.docx
故障排除
字体渲染质量低
- 尝试将后端从 zathura-pdf-poppler 更改为 zathura-pdf-mupdf。
- 尝试改用 PDF.js。
使用 Poppler 时内存占用高
根据该 issue,从 zathura-pdf-poppler 切换到 zathura-pdf-mupdf 可能会解决此问题。然而,如果您在大型文档中进行搜索,仍然会占用大量内存。