像追玄幻小说一样追论文
Read papers like fantasy novels.
PaperLore 是为手机设计的论文阅读器。它把 PDF 或 arXiv 论文重排为类似小说 App 的横向分页,并尽量保留目录、公式、定理、图表和引用,让论文不再只是缩小后的 PDF。
下载 Android APK · 当前为测试版,支持 Android 7.0 及以上系统
iOS 与 Android 共用同一套阅读、导入和 AI 能力;当前 iOS 版需通过 Xcode 安装,TestFlight 安装包尚未发布。
点击封面查看从论文导入、移动端重排阅读到双语翻译的完整演示。
- 小说式横向分页:左右滑动或点击页面两侧翻页;Android 阅读模式还支持音量键。
- 两种导入方式:上传 PDF,或粘贴 arXiv 编号/链接。
- 学术内容重排:支持目录、行内/行间公式、定理与证明、表格、Figure 和引用链接。
- AI 中文阅读:按章节渐进翻译,已完成内容会缓存,可以边翻译边阅读。
- 简洁书架:记录阅读进度,长按论文可删除。
- 阅读控制:日间/夜间模式、目录跳转和链接锁定,避免误触论文中的超链接。
- 本地保存:书架、阅读进度、翻译缓存和千问配置保存在当前设备。
- 在 Android 手机上下载 PaperLore-android-debug.apk。
- 打开下载完成的 APK;如果系统拦截,请为浏览器或文件管理器允许“安装未知应用”。
- 点击“安装”,完成后打开“研趣阁”。
安装新版时直接打开新的 APK 覆盖安装即可。若系统提示签名不一致,需要先卸载旧版;卸载会同时清除本机书架和翻译缓存。
iOS 工程已与 Android 平行维护。按 Capacitor 8 当前要求,建议使用 macOS Sequoia 15.6 + Xcode 26.3,或更新的兼容组合。
git clone https://github.com/e9tian/PaperLore.git
cd PaperLore
npm ci
npm run ios:open在 Xcode 中选择 App Target:
- 打开 Signing & Capabilities,登录 Apple ID 并选择自己的 Team。
- 选择 iPhone 模拟器或已开启开发者模式的真机。
- 点击 Run 安装并启动。
免费 Apple 开发者账号可以在自己的设备上测试;通过 TestFlight 或 App Store 分发需要加入 Apple Developer Program。
书架右上角点击“千问”,粘贴阿里云百炼 API Key,然后选择模型:
- Max: 质量优先,适合复杂 PDF、数学公式和正式翻译。
- Plus: 响应更快、成本更低,适合普通论文和日常阅读。
一个 Key 同时用于 PDF 结构恢复、公式识别和中文翻译。Key 会保存在当前设备;请勿把真实 Key 提交到 GitHub、Issue 或截图中。
首次使用 AI 时,App 会先说明即将发送的数据并请求授权。只有同意后,论文文字、必要的 PDF 页面或公式图片才会发送给阿里云百炼千问;授权可在“千问设置”中撤回。百炼可能按其条款存储调用数据,详见官方隐私说明。
点击书架右上角“+”:
- arXiv: 输入
2503.13986、摘要页链接或 PDF 链接。若论文存在结构化版本,这种方式通常能更完整地保留公式和章节。 - PDF: 从手机文件中选择论文。普通文字会直接重排;复杂公式和版面会由千问进一步恢复。
转换过程中已准备好的内容会先显示,不必等待整篇论文全部处理完。
- 点击书架中的封面进入论文;左右滑动或点击页面两侧翻页。
- 点击页面中央显示或隐藏阅读工具栏。
- 工具栏提供“书架”“目录”“链接开/关”“中文/原文”和“日间/夜间”。
- Android 工具栏隐藏时,音量上键进入上一页,音量下键进入下一页;其他状态下音量键仍调节系统音量。iOS 始终保留系统音量键。
- Android 阅读页执行系统返回手势会回到书架;在书架再次返回时,App 会提示“再按一次退出哦”,再次返回才会退出。iOS 从屏幕左边缘向右滑会从论文回到书架,退出 App 仍使用系统 Home 手势。
- 点击“中文”后译文会逐步出现;切回原文、翻页或退出阅读页不会清除已完成的翻译。
- 长按书架中的论文,可确认删除论文及其阅读进度和翻译缓存。
flowchart LR
A["arXiv 编号或链接"] --> B["arXiv / ar5iv 结构化 HTML"]
C["本地 PDF"] --> D["PDF.js 文字与版面提取"]
D --> E["千问多模态恢复复杂结构与 LaTeX"]
B --> F["语义化 HTML + MathML"]
E --> F
F --> G["移动端分页阅读器"]
G --> H["IndexedDB 书架与翻译缓存"]
- arXiv 导入: 优先使用结构化 HTML/MathML,直接保留章节、公式、定理和 Figure。
- PDF 导入: PDF.js 先提取可检索文字和几何布局;千问多模态处理复杂数学页面、行内公式和结构恢复;PaddleOCR.js 用作无文字层页面的本机识别补充。
- 阅读器: React + CSS Columns 将语义化正文分页;KaTeX/MathML 渲染公式,宽公式和表格可横向查看。
- 翻译: 按 section 切块调用千问,支持渐进显示、重试和本地检查点。
- 移动端: Capacitor 将同一套前端资源打包进 Android/iOS 原生外壳;Android 与 iOS 只分别实现符合平台习惯的返回和硬件控制,IndexedDB 和 App 私有存储负责书架、进度与配置。
| 层级 | 技术 |
|---|---|
| 界面与阅读器 | React 19、Next.js 16、vinext、TypeScript、CSS Columns |
| 论文与公式 | PDF.js、KaTeX、MathML、PaddleOCR.js、ONNX Runtime Web |
| AI | 阿里云百炼千问 Max / Plus 多模态模型 |
| 本地数据 | IndexedDB、Local Storage |
| 移动端 | Capacitor 8、Android WebView、iOS WKWebView |
需要 Node.js >= 22.13.0 和 npm。
git clone https://github.com/e9tian/PaperLore.git
cd PaperLore
npm ci
npm run dev常用命令:
| 命令 | 用途 |
|---|---|
npm run dev |
启动本地开发服务 |
npm run lint |
运行 ESLint |
npx tsc --noEmit |
运行 TypeScript 类型检查 |
npm test |
构建并运行导入、公式、翻译和排版测试 |
npm run mobile:web |
生成移动端静态前端 |
npm run mobile:sync |
生成前端并同步 Capacitor 工程 |
npm run android:apk |
构建 Android debug APK |
npm run ios:sync |
生成前端并同步 iOS 工程 |
npm run ios:open |
同步后用 Xcode 打开 iOS 工程 |
npm run ios:build:simulator |
构建无需签名的 iOS Simulator Debug App |
npm run ios:test:native |
运行无需 Xcode 的 iOS 返回状态机测试 |
构建 Android 版还需要 Android Studio、Android SDK 和 JDK。运行:
npm run android:apkAPK 输出位置:
android/app/build/outputs/apk/debug/app-debug.apk
如需在 Android Studio 中调试,先运行 npm run mobile:sync,再用 Android Studio 打开仓库中的 android/ 目录。
iOS 开发可运行 npm run ios:open;Simulator 构建输出位于 ios/DerivedData/Build/Products/Debug-iphonesimulator/。Xcode 和 macOS 的兼容关系请以 Apple 官方要求为准。
PaperLore 源码采用 PolyForm Noncommercial License 1.0.0 授权,可用于个人使用、学习、研究及其他非商业用途。未经版权所有者另行书面授权,不得将本项目用于商业用途。
Copyright © 2026 Pengfei Tian.
该许可证属于 source-available 许可,并非 OSI 定义的开源许可证。第三方依赖及其附带资源继续遵循各自的许可证。
数据处理方式见 PaperLore 隐私说明。
