ahrm/sioyek
GitHub: ahrm/sioyek
面向研究论文和教科书的键盘驱动型 PDF 阅读器,支持智能跳转、标记和多屏联动。
Stars: 8712 | Forks: 305
# Sioyek
Sioyek 是一款专注于教科书和研究论文的 PDF 阅读器。
# 开发分支常见问题解答
## 问:使用 Qt 5.* 时出现构建错误。
答:如果您正在构建开发分支,则需要使用 Qt 6.7 或 6.8。
## 问:在 MacOS 上出现“sioyek is damaged and cannot be opened. It is recommended to eject the image.”(sioyek 已损坏且无法打开。建议推出映像。)。
答:这与 macOS 隔离机制有关。请参阅 https://github.com/ahrm/sioyek/discussions/1156#discussioncomment-10822738 。
## 目录
* [安装](#install)
* [文档](#documentation)
* [视频演示](#feature-video-overview)
* [功能](#features)
* [构建说明](#build-instructions)
* [请我喝杯咖啡(或买本书!)](#donation)
## 安装
### 官方安装包
适用于 Windows、macOS 和 Linux 的安装程序。请查看 [发布页面](https://github.com/ahrm/sioyek/releases)。
### Homebrew Cask
此处提供一个 Homebrew Cask:https://formulae.brew.sh/cask/sioyek。通过运行以下命令安装:
```
brew install --cask sioyek
```
### Linux 第三方安装包
如果您更喜欢使用包管理器安装 sioyek,可以查看此列表。请注意,它们由第三方打包者提供。使用风险自负!如果您要报告第三方软件包的错误,请提及您使用的是哪个软件包。
发行版 | 链接 | 维护者
------- | ----- | -------------
Flathub | [sioyek](https://flathub.org/apps/details/com.github.ahrm.sioyek) | [@nbenitez](https://flathub.org/apps/details/com.github.ahrm.sioyek)
Alpine | [sioyek](https://pkgs.alpinelinux.org/packages?name=sioyek) | [@jirutka](https://github.com/jirutka)
Arch | [AUR sioyek](https://aur.archlinux.org/packages/sioyek) | [@goggle](https://github.com/goggle)
Arch | [AUR Sioyek-git](https://aur.archlinux.org/packages/sioyek-git/) | [@randomn4me](https://github.com/randomn4me)
Arch | [AUR sioyek-appimage](https://aur.archlinux.org/packages/sioyek-appimage/) | [@DhruvaSambrani](https://github.com/DhruvaSambrani)
Debian | [sioyek](https://packages.debian.org/sioyek) | [@viccie30](https://github.com/viccie30)
NixOS | [sioyek](https://search.nixos.org/packages?channel=unstable&show=sioyek&from=0&size=50&sort=relevance&type=packages&query=sioyek) | [@podocarp](https://github.com/podocarp)
openSUSE | [Publishing](https://build.opensuse.org/package/show/Publishing/sioyek) | [@uncomfyhalomacro](https://github.com/uncomfyhalomacro)
openSUSE | [Factory](https://build.opensuse.org/package/show/openSUSE:Factory/sioyek) | [@uncomfyhalomacro](https://github.com/uncomfyhalomacro)
Ubuntu | [sioyek](https://packages.ubuntu.com/sioyek) | [@viccie30](https://github.com/viccie30)
## 文档
您可以在此处查看[官方文档](https://sioyek-documentation.readthedocs.io/en/latest/)。
## 功能视频概览
[](https://www.youtube.com/watch?v=yTmCI0Xp5vI)
如需更深入的教程,请观看此视频:
[](https://www.youtube.com/watch?v=RaHRvnb0dY8)
## 功能
### 快速打开
https://user-images.githubusercontent.com/6392321/125321111-9b29dc00-e351-11eb-873e-94ea30016a05.mp4
您可以快速搜索并打开之前使用 sioyek 交互过的任何文件。
### 目录
https://user-images.githubusercontent.com/6392321/125321313-cf050180-e351-11eb-9275-c2759c684af5.mp4
您可以搜索并跳转到目录条目。
### 智能跳转
https://user-images.githubusercontent.com/6392321/125321419-e5ab5880-e351-11eb-9688-95374a22774f.mp4
您可以跳转到任何引用的图表或参考文献条目,*即使 PDF 文件本身没有提供链接*。您还可以通过鼠标中键/Shift+鼠标中键点击参考文献名称,在 Google Scholar/Libgen 中搜索这些名称。
### 概览
https://user-images.githubusercontent.com/6392321/154683015-0bae4f92-78e2-4141-8446-49dd7c2bd7c9.mp4
您可以通过右键单击图表/参考文献/表格等,打开其快速概览(像智能跳转一样,即使文档不提供链接,此功能也能工作)。
### 标记
https://user-images.githubusercontent.com/6392321/125321811-505c9400-e352-11eb-85e0-ffc3ae5f8cb8.mp4
有时在阅读文档时,您需要回退几页(可能是为了查看定义或其他内容),然后快速跳回之前的位置。您可以使用标记来实现这一点。标记是 PDF 文件中的命名位置(每个标记都有单字符名称,例如 'a' 或 'm'),您可以通过其名称快速跳转。在上述示例中,在返回查看定义之前,先标记您的位置,稍后通过调用其名称跳回该标记。小写标记是文档局部的,大写标记是全局的(如果您使用过 vim,应该对此非常熟悉)。
### 书签
https://user-images.githubusercontent.com/6392321/125322503-1a6bdf80-e353-11eb-8018-5e8fc43b8d05.mp4
书签与标记类似,但它们由文本字符串命名,并且全部是全局的。
### 高亮
https://user-images.githubusercontent.com/6392321/130956728-7e0a87fa-4ada-4108-a8fc-9d9d04180f56.mp4
使用不同类型的高亮标记文本。您可以在所有高亮中进行搜索。
### 传送门(此功能对于拥有多显示器的用户最有用)
https://user-images.githubusercontent.com/6392321/125322657-41c2ac80-e353-11eb-985e-8f3ce9808f67.mp4
假设您正在阅读一个段落,其中引用了一个距离当前位置不远的图表。在当前段落和图表之间来回跳转可能会非常烦人。使用传送门,您可以将段落的位置链接到图表的位置。Sioyek 会在单独的窗口中显示最近的传送门目标(该窗口通常放置在第二个显示器上)。当用户浏览文档时,此窗口会自动更新以显示最近的传送门目标。
### 配置
https://user-images.githubusercontent.com/6392321/125337160-e4832700-e363-11eb-8801-0bee58121c2d.mp4
您可以通过编辑 `keys_user.config` 和 `prefs_user.config` 来自定义所有按键绑定和部分 UI 元素。默认配置位于 `keys.config` 和 `prefs.config` 中。
## 构建说明
### Linux
#### Fedora
运行以下命令在 Fedora 上安装依赖项、克隆仓库并编译 sioyek(在 Fedora Workstation 36 上测试)。
```
sudo dnf install qt5-qtbase-devel qt5-qtbase-static qt5-qt3d-devel harfbuzz-devel
git clone --recursive --branch development https://github.com/ahrm/sioyek
cd sioyek
./build_linux.sh
```
#### 通用发行版
1. 安装 Qt 5 并确保 `qmake` 位于 `PATH` 中。
运行 `qmake --version` 以确保路径中的 `qmake` 使用的是 Qt 5.x。
2. 安装 `libharfbuzz`:
```
sudo apt install libharfbuzz-dev
```
3. 克隆仓库并构建:
```
git clone --recursive --branch development https://github.com/ahrm/sioyek
cd sioyek
./build_linux.sh
```
### Windows
1. 安装 Visual Studio(已在 2019 版上测试,其他较新版本应该也可以)
2. 安装 Qt 5 并确保 qmake 位于 `PATH` 中。
3. 使用 64 位 Visual Studio 开发人员命令提示符克隆仓库并构建:
```
git clone --recursive --branch development https://github.com/ahrm/sioyek
cd sioyek
build_windows.bat
```
### Mac
1. 卸载之前由 Homebrew 安装的 Qt6
2. 安装 Xcode。
3. 安装 Qt6。
```
pip install aqtinstall
cd /path/to/qt
aqt install-qt mac desktop 6.8.2 clang_64 -m all
export Qt6_DIR=/path/to/qt/6.8.2/macos/
export QT_PLUGIN_PATH=/path/to/qt/6.8.2/macos/plugins
export PKG_CONFIG_PATH=/path/to/qt/6.8.2/macos/lib/pkgconfig
export QML2_IMPORT_PATH=/path/to/qt/6.8.2/macos/qml
export PATH="/path/to/qt/6.8.2/macos/bin:$PATH"
```
4. 克隆仓库、构建并安装:
```
git clone --recursive --branch development https://github.com/ahrm/sioyek
cd sioyek
chmod +x build_mac.sh
setopt PIPE_FAIL PRINT_EXIT_VALUE ERR_RETURN SOURCE_TRACE XTRACE
MAKE_PARALLEL=8 ./build_mac.sh
mv build/sioyek.app /Applications/
sudo codesign --force --sign - --deep /Applications/sioyek.app
```
## 捐赠
如果您喜欢 sioyek,请考虑捐赠以支持其开发。

标签:C++, Flatpak, Homebrew, PDF查看, PDF阅读器, Sioyek, TruffleHog, 学术论文, 客户端加密, 客户端加密, 技术文档, 教科书, 数据擦除, 文献管理, 文献阅读, 桌面应用, 知识管理, 科研工具, 阅读器