Sioyek, trình xem PDF chuyên cho giáo trình và bài báo nghiên cứu
(github.com/ahrm)- Sioyek là trình xem PDF tập trung vào việc đọc giáo trình và bài báo nghiên cứu, cung cấp khả năng nhanh chóng tìm lại các tệp đã mở trước đó và di chuyển trong cấu trúc của bài báo
- Ngay cả với PDF không có liên kết, nó vẫn có thể nhảy tới hình minh họa và mục tài liệu tham khảo, đồng thời hỗ trợ tìm tên tài liệu tham khảo trên Google Scholar hoặc Libgen
- Công cụ được xây dựng xoay quanh các tính năng điều hướng cần thiết khi đọc tài liệu dài như tìm kiếm mục lục, xem tổng quan nhanh, mark, bookmark và tìm kiếm highlight
- Người dùng nhiều màn hình có thể dùng Portals để liên kết vị trí trong phần nội dung với vị trí hình minh họa, và tự động xem đích cổng gần nhất trong một cửa sổ riêng
- Có sẵn bộ cài chính thức cho Windows, macOS, Linux cùng Homebrew Cask và các gói bên thứ ba cho nhiều bản phân phối Linux; bản build nhánh phát triển yêu cầu Qt 6.7 hoặc 6.8
Tổng quan dự án
- Sioyek là trình xem PDF tập trung vào giáo trình và bài báo nghiên cứu
- Tài liệu chính thức có tại Sioyek documentation
- Có video giới thiệu tính năng và video hướng dẫn chi tiết hơn
Các cách cài đặt
- Bộ cài chính thức cho Windows, macOS, Linux có tại Releases page
- Trên macOS có thể cài bằng Homebrew Cask
brew install --cask sioyek
- Cũng có các gói bên thứ ba cho Linux, nhưng vì do bên đóng gói thứ ba cung cấp nên người dùng phải tự chấp nhận rủi ro
Tính năng điều hướng tài liệu
- Quick Open cho phép tìm kiếm và mở nhanh các tệp mà trước đây đã tương tác bằng Sioyek
- Table of Contents cho phép tìm kiếm các mục trong mục lục và chuyển tới vị trí tương ứng
- Smart Jump cho phép di chuyển tới hình minh họa hoặc mục tài liệu tham khảo được dẫn chiếu ngay cả khi tệp PDF không cung cấp liên kết
- Có thể nhấp chuột giữa hoặc Shift+nhấp chuột giữa vào tên mục tài liệu tham khảo để tìm trên Google Scholar hoặc Libgen
- Overview cho phép nhấp chuột phải vào hình minh họa, tài liệu tham khảo, bảng biểu, v.v. để mở chế độ tổng quan nhanh
- Hoạt động ngay cả khi tài liệu không cung cấp liên kết, tương tự Smart Jump
Tính năng hỗ trợ đọc tài liệu dài
- Mark cho phép lưu các vị trí có tên trong PDF và sau đó nhanh chóng quay lại bằng tên đó
- Mỗi mark có tên là một ký tự đơn như
ahoặcm - Mark chữ thường là cục bộ theo tài liệu, còn mark chữ hoa là toàn cục
- Đây là cách làm quen thuộc với người từng dùng Vim
- Mỗi mark có tên là một ký tự đơn như
- Bookmarks giống mark nhưng dùng tên chuỗi văn bản và đều là toàn cục
- Highlights cho phép đánh dấu văn bản bằng nhiều loại highlight và tìm kiếm trong tất cả highlight
- Portals cho phép liên kết đoạn hiện tại với một vị trí ở xa như hình minh họa
- Hiển thị đích cổng gần nhất trong một cửa sổ riêng
- Cửa sổ này thường được đặt trên màn hình thứ hai
- Khi người dùng di chuyển trong tài liệu, nó sẽ tự động cập nhật tới đích cổng gần nhất
Cấu hình và build
- Configuration cho phép tùy biến mọi phím tắt và một số thành phần UI bằng cách chỉnh sửa
keys_user.configvàprefs_user.config- Cấu hình mặc định nằm trong
keys.configvàprefs.config
- Cấu hình mặc định nằm trong
- Nếu gặp lỗi build Qt 5.* khi build nhánh phát triển thì cần dùng Qt 6.7 hoặc 6.8
- Nếu trên macOS xuất hiện thông báo
"sioyek is damaged and cannot be opened. It is recommended to eject the image."thì đó là vấn đề liên quan đến macOS quarantine, và đã có hướng dẫn thảo luận liên quan - Build trên Linux có cung cấp lệnh cho Fedora và quy trình chung cho các bản phân phối phổ biến
- Bao gồm quy trình đã được kiểm thử trên Fedora Workstation 36
- Quy trình chung cho các bản phân phối hướng dẫn cài Qt 5,
qmake,libharfbuzzrồi chạy./build_linux.sh
- Build trên Windows đã được kiểm thử với Visual Studio 2019, và các phiên bản tương đối mới hơn cũng có thể hoạt động
- Sau khi chuẩn bị Qt 5 và
qmake, chạybuild_windows.battrong 64-bit Visual Studio Developer Command Prompt
- Sau khi chuẩn bị Qt 5 và
- Build trên Mac hướng dẫn cài Xcode và Qt6, sau đó chạy
build_mac.sh, chuyểnsioyek.appđã build vào/Applications/rồi thực hiện codesign
1 bình luận
Ý kiến trên Hacker News
Tôi thích đến mức đã cài đặt trước cả khi đọc hết danh sách tính năng, nhưng có vẻ vẫn cần cải thiện, chẳng hạn như hiển thị 2 trang
Giao diện điều khiển bằng bàn phím rất tuyệt, nhưng tiếc là không có lệnh trong menu. Việc không có cách nào mở lại trợ giúp ngay trong chương trình cũng khá lạ. Lúc mở lần đầu thì thấy trợ giúp, nhưng khi mở tệp thì nó biến mất, cuối cùng phải vào trang tài liệu trên website
Dù vậy, có quá nhiều tính năng tốt được tối ưu cho nghiên cứu nên những bất tiện này vẫn đáng chấp nhận
:rồi tìm kiếm lệnh và phím tắtTôi đã làm việc theo hướng tích hợp tốt hơn nội dung mình đọc với ghi chú của mình. Tôi muốn tập hợp những vị trí trong tài liệu nơi một ý tưởng nào đó được phát triển hoặc bị phản bác, đồng thời thu thập cả các ý tưởng hay
Cahier (https://getcahier.com) mà tôi đang phát triển cho phép tạo các thẻ tham chiếu tới những đoạn cụ thể trong PDF đã đọc
Thật thú vị khi thấy những tiến triển trong lĩnh vực này vài năm gần đây
Kết quả là nhiều silo xuất hiện, chẳng hạn bài báo nằm riêng trong Zotero, ghi chú nằm riêng trong Obsidian. Cahier chắc chắn có vẻ đi đúng hướng khi nhìn nhận quản lý tri thức như một workflow tích hợp, nối liền đọc, ghi chú, sắp xếp ghi chú, tạo insight mới và viết lách
Tuy nhiên tôi lo rằng ở một số mảng sẽ phải phát minh lại bánh xe. Ví dụ, tôi tò mò liệu có kế hoạch tích hợp cả những tính năng như trình thu thập tích hợp web của Zotero hay không. Đó sẽ là khối lượng công việc khổng lồ, nhưng nếu không có thì khó thay thế hoàn toàn Zotero như một giải pháp quản lý tài liệu tham khảo. Tôi tò mò về roadmap, phạm vi tính năng cuối cùng và workflow của người dùng
Tôi thường đọc và chú thích bài báo trên iPad, và thích việc highlight cùng ghi chú được đồng bộ để có thể tham khảo ngay khi viết trên MacBook hoặc desktop Windows
Tuy vậy, giải pháp ghi chú của Cahier có vẻ tốt hơn nhiều. Đôi khi tôi ước có thể ghép nhiều phần mềm lại với nhau để tạo ra công cụ vừa khít cho từng người
Đã vài năm kể từ khi tôi nghiêm túc tìm hiểu cho mục đích cá nhân, nhưng khi đó tôi khá thất vọng với các lựa chọn. Về đọc hoặc sắp xếp PDF, Zotero và org-noter thuộc nhóm tốt nhất theo hai cách hoàn toàn khác nhau
Tôi cũng đã dùng OneNote trong 1 năm và lúc đó thấy thích, nhưng vì nó không hỗ trợ tìm kiếm, khám phá và ôn lại thông tin nên khó dùng lâu dài cho xây dựng nền tảng tri thức hoặc tổng quan tài liệu
Tôi nghĩ phần mềm để đọc và kết nối thông tin tài liệu dưới bất kỳ dạng nào như PDF, HTML, video, v.v. có thể tốt hơn rất nhiều so với những gì tôi dùng hằng ngày hiện nay
Nếu không thì công việc hôm nay sẽ biến mất. Tôi tò mò điều gì sẽ xảy ra nếu một ngày nào đó Cahier ngừng phát triển hoặc tôi phải chuyển sang hệ thống khác
Tôi dùng ứng dụng này suốt. Đây là một ứng dụng tốt. Một số tính năng, như nhảy tới trích dẫn, cũng có trong tiện ích Google Scholar cho Chrome, nhưng ý tưởng biến ứng dụng thành thứ có thể điều khiển giống Vim thật sự rất hay
Trước Sioyek, tôi dùng Karabiner để thiết lập
j/kvà các phím khác trong macOS Preview nhằm di chuyển bằng phím Vim, nhưng quá trình đó rườm rà và không có nhiều tính năng mà Sioyek cung cấp. Ngoài ra, để giảm mỏi mắt, tôi dùng màu nền PDF kiểu solarized, và ứng dụng này còn hỗ trợ chế độ ban đêm cho cả các biểu đồ trong PDFTôi cũng có vài phàn nàn. Có một extension để xem PDF song song trong panel hai cột, nhưng nó lại thay đổi chính tệp PDF thực tế. Việc cài plugin nói chung khó, tôi đã tìm và báo cáo một cách workaround nhưng không biết nó đã được đưa vào cải tiến ứng dụng chưa. Tệp cấu hình có vẻ được lưu trong thư mục Applications của ứng dụng, sẽ tốt hơn nếu nằm ở
~/.config. Tính năng mở nhanh tệp từ thư mục không hoạt động với các ổ đĩa đám mây, bao gồm iCloudVề plugin, nhánh phát triển đã hỗ trợ extension JavaScript native. Vì dùng engine JavaScript nội bộ của Qt nên không có phụ thuộc bên ngoài và sẽ dễ xử lý hơn nhiều
Tôi nghĩ tệp cấu hình trong nhánh phát triển cũng có thể dùng
~/.config, nhưng không chắc 100%Tôi thật sự không nhớ nổi cái tên
sioyek, nên đã tạo alias choxpdfTôi đã thử một cách tiếp cận mang tính cộng tác hơn để đọc và thảo luận các bài báo nghiên cứu. Tại https://www.scholars.io hoặc https://app.scholars.io, chúng tôi cho phép mọi người chú thích, bình luận và cộng tác trên các nghiên cứu
Tò mò liệu tính năng mục lục có hoạt động ngay cả khi PDF không có mục lục hay không. Đây là tính năng mà tôi luôn mong trình đọc PDF làm được
Với bài báo nghiên cứu thì thường hoạt động khá tốt, thỉnh thoảng chỉ bỏ sót vài mục hoặc thêm vài mục linh tinh. Với giáo trình, đặc biệt là sách có nhiều dàn trang công thức, thường có quá nhiều mục vô dụng hoặc bị bỏ sót
Nếu chỉ cần một số phần của bài báo hoặc giáo trình thì mục lục tự động tạo và bookmark nhìn chung là đủ. Ngoài ra, tôi thích dùng pdf.tocgen(https://github.com/Krasjet/pdf.tocgen) để tạo mục lục chính xác theo cách bán thủ công hơn
Nếu tệp không có mục lục và tùy chọn được bật, nó sẽ tạo mục lục bằng phương pháp heuristic. Có thể dùng
max_created_toc_sizeđể ngăn tạo mục lục quá lớnhttps://sioyek-documentation.readthedocs.io/en/latest/config...
Tôi nghĩ liên kết nên trỏ về trang web thì hợp lý hơn
Một cách lách đơn giản cho tính năng chuyển qua lại giữa hai trang, vốn dễ với sách giấy nhưng khó trên máy tính, là mở PDF hai lần nếu phần mềm cho phép chạy hai instance
Nếu nó quá “thông minh” nên không cho làm vậy, hãy sao chép PDF, mở bản sao thứ hai, cuộn hai cửa sổ tới các vị trí khác nhau rồi dùng
alt-tabđể chuyển qua lạiTrên điện thoại có thể dùng Acrobat Reader và Koreader cùng lúc
Sioyek có các tính năng hay, nhưng khá nhiều lỗi. Việc sửa lỗi và viết test có thể tốn rất nhiều công sức
Hơi ngoài lề, nhưng không biết có ai biết trình đọc PDF tốt nào tích hợp tìm kiếm dựa trên LLM không. Sẽ rất hay nếu tìm “cities in USA” trong tài liệu thì nó hiển thị tất cả các lần xuất hiện như New York, Los Angeles, Chicago chẳng hạn
Sẽ rất tốt nếu trình đọc này tích hợp với Zotero. Có vẻ cũng có thể làm dưới dạng plugin
Tôi từng khá thích Sioyek như một Zathura nhiều tính năng hơn, nhưng có hai lý do khiến tôi không thể dùng nó làm trình đọc PDF mặc định
Thứ nhất, không thể mở nhiều PDF cùng lúc. Nếu đã mở một PDF rồi mà cố mở PDF thứ hai, cả hai instance đều bị crash
Thứ hai, chú thích được lưu vào tài liệu riêng thay vì chính file PDF
Những người dùng khác cũng từng ghi lại cả hai điểm này. Tôi chưa tìm được cách giải quyết dễ cho điểm 1; còn giải pháp một phần cho điểm 2 là dùng extension, nhưng theo tôi nhớ thì vẫn phải chạy lệnh thủ công để chuyển chú thích vào chính tài liệu PDF
Lý tưởng nhất là nên cung cấp cả hai lựa chọn, giống như Zotero và extension đã nhắc tới, nhưng tôi thích tách riêng chú thích hơn vì có thể giữ bản sạch của PDF để chia sẻ với người khác
Hơn nữa, hiện mỗi trình xem PDF hỗ trợ chú thích lại xử lý theo cách riêng, và các chương trình không phân biệt tốt highlight hoặc ghi chú do chương trình khác tạo ra với nội dung gốc
Tuy vậy, Zotero và một số trình đọc đã bắt đầu dùng Web Annotation Data Model(https://www.w3.org/TR/annotation-model/) làm cơ chế lưu chú thích phổ quát. Hy vọng một ngày nào đó có thể xem và chỉnh sửa highlight và ghi chú tạo bằng Sioyek trong KOReader trên máy đọc sách, rồi gửi tệp chú thích cho đồng nghiệp dùng Zotero hoặc Obsidian/PMK có bản sao riêng của cùng PDF đó. Việc này vẫn còn rất sơ khai, nhưng đang được triển khai. https://hypothes.is cũng hoạt động hơi giống vậy
Khi đặt
should_launch_new_instancethành 1, tôi có thể mở nhiều PDF cùng lúc trong Sioyek, nhưng chỉ khi mở các PDF sau cái đầu tiên từ terminal. Nếu mở từ trong Sioyek hoặc từ dmenu thì PDF đang mở sẽ bị thay thế. Dù vậy tôi chưa từng gặp crash. Tôi dùng dwm trên DebianTôi thấy điểm 2 là hợp lý
new-windowhoặc truyền tùy chọn dòng lệnh--new-windowNếu xảy ra crash, mong bạn mở issue trên GitHub