1 คะแนน โดย GN⁺ 2024-05-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Sioyek เป็นโปรแกรมดู PDF ที่เน้นการอ่านตำราเรียนและบทความวิจัย โดยมีฟีเจอร์สำหรับค้นหาไฟล์ที่เคยเปิดอย่างรวดเร็ว และนำทางภายในโครงสร้างของบทความ
  • แม้ใน PDF ที่ไม่มีลิงก์ ก็สามารถกระโดดไปยัง รูปภาพและรายการอ้างอิง ได้ และรองรับการค้นหาชื่อรายการอ้างอิงใน Google Scholar หรือ Libgen
  • จัดวางฟีเจอร์โดยเน้น การนำทาง ที่จำเป็นต่อการอ่านเอกสารยาว เช่น ค้นหาสารบัญ, ภาพรวมแบบเร็ว, mark, bookmark และค้นหา highlight
  • ผู้ใช้หลายจอสามารถใช้ Portals เพื่อเชื่อมตำแหน่งเนื้อหากับตำแหน่งรูปภาพ และดูปลายทาง portal ที่ใกล้ที่สุดโดยอัตโนมัติในหน้าต่างแยกได้
  • มีไฟล์ติดตั้งทางการสำหรับ Windows, macOS และ Linux รวมถึง Homebrew Cask และแพ็กเกจจากบุคคลที่สามสำหรับ Linux distribution หลายตัว โดยการ build จาก development branch ต้องใช้ Qt 6.7 หรือ 6.8

ภาพรวมโปรเจกต์

  • Sioyek เป็นโปรแกรมดู PDF ที่มุ่งเน้นตำราเรียนและบทความวิจัย
  • เอกสารทางการมีให้ที่ Sioyek documentation
  • มีวิดีโอแนะนำฟีเจอร์และวิดีโอ tutorial ที่ละเอียดกว่า

ช่องทางการติดตั้ง

ฟีเจอร์นำทางเอกสาร

  • Quick Open ช่วยให้ค้นหาและเปิดไฟล์ที่เคยโต้ตอบด้วยใน Sioyek ได้อย่างรวดเร็ว
  • ฟีเจอร์ Table of Contents ช่วยให้ค้นหารายการในสารบัญและย้ายไปยังตำแหน่งนั้นได้
  • Smart Jump ช่วยให้ย้ายไปยังรูปภาพที่ถูกอ้างถึงหรือรายการอ้างอิงได้ แม้ไฟล์ PDF จะไม่มีลิงก์ให้ก็ตาม
    • สามารถคลิกปุ่มกลางหรือ Shift+คลิกปุ่มกลางที่ชื่อรายการอ้างอิง เพื่อค้นหาใน Google Scholar หรือ Libgen ได้
  • Overview ช่วยให้คลิกขวาที่รูปภาพ รายการอ้างอิง ตาราง ฯลฯ เพื่อเปิดเป็นภาพรวมแบบเร็วได้
    • ทำงานได้แม้เอกสารจะไม่มีลิงก์ให้ เช่นเดียวกับ Smart Jump

ฟีเจอร์ช่วยอ่านเอกสารยาว

  • Mark ช่วยบันทึกตำแหน่งที่มีชื่อใน PDF และกลับไปยังตำแหน่งนั้นด้วยชื่อนั้นได้อย่างรวดเร็วในภายหลัง
    • แต่ละ mark มีชื่อเป็นอักขระเดี่ยว เช่น a หรือ m
    • mark ตัวพิมพ์เล็กเป็นแบบเฉพาะเอกสาร ส่วน mark ตัวพิมพ์ใหญ่เป็นแบบ global
    • เป็นวิธีที่ผู้เคยใช้ Vim จะคุ้นเคย
  • Bookmarks คล้ายกับ mark แต่ใช้ชื่อเป็นสตริงข้อความ และทั้งหมดเป็นแบบ global
  • Highlights ช่วยทำเครื่องหมายข้อความด้วย highlight หลายประเภท และทำให้ค้นหา highlight ทั้งหมดได้
  • Portals ช่วยเชื่อมโยงย่อหน้าปัจจุบันกับตำแหน่งที่อยู่ไกลออกไป เช่น รูปภาพ
    • แสดงปลายทาง portal ที่ใกล้ที่สุดในหน้าต่างแยก
    • โดยทั่วไปหน้าต่างนี้จะถูกวางไว้บนจอที่สอง
    • เมื่อผู้ใช้นำทางเอกสาร หน้าต่างจะอัปเดตไปยังปลายทาง portal ที่ใกล้ที่สุดโดยอัตโนมัติ

การตั้งค่าและการ build

  • Configuration ช่วยให้ปรับแต่ง key binding ทั้งหมดและองค์ประกอบ UI บางส่วนได้ด้วยการแก้ไข keys_user.config และ prefs_user.config
    • การตั้งค่าเริ่มต้นอยู่ใน keys.config และ prefs.config
  • หากเกิดข้อผิดพลาดในการ build ด้วย Qt 5.* เมื่อ build development branch ต้องใช้ Qt 6.7 หรือ 6.8
  • หากบน macOS มีข้อความ "sioyek is damaged and cannot be opened. It is recommended to eject the image." แสดงว่าเป็นปัญหาเกี่ยวกับ macOS quarantine และมีการชี้ไปยังการพูดคุยที่เกี่ยวข้อง
  • การ build บน Linux มีคำสั่งสำหรับ Fedora และขั้นตอนสำหรับ distribution ทั่วไป
    • มีขั้นตอนที่ทดสอบบน Fedora Workstation 36 รวมอยู่ด้วย
    • ขั้นตอนสำหรับ distribution ทั่วไปแนะนำให้ติดตั้ง Qt 5, qmake, libharfbuzz แล้วรัน ./build_linux.sh
  • การ build บน Windows ทดสอบกับ Visual Studio 2019 แล้ว และเวอร์ชันที่ค่อนข้างใหม่ก็น่าจะทำงานได้เช่นกัน
    • หลังเตรียม Qt 5 และ qmake แล้ว ให้รัน build_windows.bat ใน 64-bit Visual Studio Developer Command Prompt
  • การ build บน Mac แนะนำขั้นตอนติดตั้ง Xcode และ Qt6 แล้วรัน build_mac.sh จากนั้นย้าย sioyek.app ที่ build แล้วไปยัง /Applications/ และทำ codesign

1 ความคิดเห็น

 
GN⁺ 2024-05-11
ความเห็นจาก Hacker News
  • ชอบมากจนติดตั้งก่อนจะอ่านรายการฟีเจอร์จบด้วยซ้ำ แต่ดูเหมือนยังต้องปรับปรุงบางอย่าง เช่น การแสดงผล 2 หน้า
    อินเทอร์เฟซควบคุมด้วยคีย์บอร์ดทำได้ยอดเยี่ยม แต่น่าเสียดายที่ไม่มีคำสั่งเมนู และก็ดูแปลกที่ไม่มีวิธีเปิดหน้าช่วยเหลือขึ้นมาอีกครั้งภายในโปรแกรม ตอนเปิดครั้งแรกจะเห็นหน้าช่วยเหลือ แต่พอเปิดไฟล์แล้วมันหายไป สุดท้ายเลยต้องไปที่หน้าเอกสารบนเว็บไซต์
    ถึงอย่างนั้น ฟีเจอร์ดี ๆ ที่ปรับมาเพื่อการวิจัยก็มีมากพอจนยอมทนกับความไม่สะดวกเหล่านี้ได้

    • เป็นผู้พัฒนา Sioyek เอง ได้เพิ่ม โหมด 2 หน้า ไว้ใน branch พัฒนาแล้ว
    • ใช้ : เพื่อเปิด command palette แล้วค้นหาคำสั่งกับคีย์ลัดได้
  • ได้ทำงานในแนวทางที่ผสานเนื้อหาที่อ่านเข้ากับโน้ตของตัวเองให้ดีขึ้น พยายามรวบรวมตำแหน่งในวรรณกรรมที่ไอเดียบางอย่างถูกพัฒนาต่อหรือถูกโต้แย้ง รวมถึงเก็บไอเดียดี ๆ ไว้ด้วย
    Cahier(https://getcahier.com) ที่ผมกำลังพัฒนาอยู่ สามารถสร้างการ์ดที่อ้างอิงข้อความเฉพาะใน PDF ที่อ่านได้
    น่าสนใจที่ได้เห็นความก้าวหน้าในด้านนี้ตลอดช่วงไม่กี่ปีที่ผ่านมา

    • Cahier ดูเหมือนเกือบตรงกับสิ่งที่อยากได้มานานพอดี ช่วงไม่กี่ปีที่ผ่านมาเริ่มมีกระแสที่จริงจังกับ การจัดการความรู้ และมีเครื่องมือดี ๆ มากมายอย่าง Obsidian, Zotero, Anki แต่ยังขาดโซลูชันที่ดีสำหรับการไฮไลต์และใส่คำอธิบายประกอบในเอกสารอย่างเหมาะสม แล้วดึงเนื้อหาเหล่านั้นออกจากเอกสารต้นฉบับไปเชื่อมกับบริบทที่กว้างขึ้นของโน้ต
      สุดท้ายก็เกิดไซโลหลายอัน เช่น บทความวิจัยอยู่ใน Zotero ส่วนโน้ตอยู่ใน Obsidian แยกกัน Cahier มองการจัดการความรู้เป็น เวิร์กโฟลว์แบบบูรณาการ ตั้งแต่การอ่าน การจดโน้ต การจัดระเบียบโน้ต การสร้างอินไซต์ใหม่ ไปจนถึงการเขียน ซึ่งดูเป็นทิศทางที่ถูกต้องอย่างชัดเจน
      แต่ก็กังวลว่าอาจต้องสร้างของที่มีอยู่แล้วขึ้นมาใหม่ในบางส่วน เช่น อยากรู้ว่ามีแผนจะรวมฟีเจอร์อย่างตัวเก็บข้อมูลจากเว็บของ Zotero เข้าไปทั้งหมดหรือไม่ นั่นน่าจะเป็นงานมหาศาล แต่ถ้าไม่มี ก็ยากที่จะทดแทน Zotero ได้อย่างสมบูรณ์ในฐานะโซลูชันจัดการบรรณานุกรม อยากรู้ roadmap ขอบเขตฟีเจอร์สุดท้าย และเวิร์กโฟลว์ของผู้ใช้
    • ดูดีนะ เหมือนคนอื่น ๆ ผมก็คงใช้ Zotero ต่อไปอีกพักใหญ่ ฟีเจอร์สำคัญที่สุดของ Zotero คือ การซิงก์ข้ามอุปกรณ์
      โดยปกติจะอ่านและใส่ annotation ในบทความบน iPad และชอบที่ไฮไลต์กับโน้ตซิงก์กัน ทำให้อ้างอิงได้ทันทีตอนเขียนบน MacBook หรือเดสก์ท็อป Windows
      แต่ในแง่โซลูชันการจดโน้ต Cahier ดูดีกว่ามาก บางครั้งก็คิดว่าคงดีถ้าสามารถรวมซอฟต์แวร์หลายตัวเข้าด้วยกันเพื่อสร้างเครื่องมือที่เหมาะกับแต่ละคนจริง ๆ ได้
    • ช่วยอธิบายเพิ่มเติมได้ไหมว่าคุณมองว่าความก้าวหน้าอะไรน่าสนใจบ้าง คงต้องไปดูทั้งลิงก์ต้นทาง ลิงก์นี้ และเครื่องมืออื่น ๆ ในเธรดด้วย
      ผ่านมาหลายปีแล้วตั้งแต่เคยดูอย่างจริงจังเพื่อใช้ส่วนตัว แต่ตอนนั้นค่อนข้างผิดหวังกับตัวเลือกที่มีอยู่ สำหรับการอ่านหรือจัดระเบียบ PDF นั้น Zotero กับ org-noter ถือว่าอยู่ในกลุ่มที่ดีที่สุดด้วยวิธีที่ต่างกันอย่างสิ้นเชิง
      เคยใช้ OneNote อยู่ 1 ปี และตอนนั้นก็ชอบ แต่เพราะมันไม่ช่วยด้านการค้นหา การค้นพบ และการทบทวนข้อมูล จึงทนใช้สำหรับ การสร้างฐานความรู้ หรือการทบทวนวรรณกรรมได้ยาก
      ผมคิดว่าซอฟต์แวร์สำหรับอ่านและเชื่อมโยงข้อมูลเอกสาร ไม่ว่าจะเป็น PDF, HTML, วิดีโอ หรือรูปแบบใดก็ตาม ยังสามารถดีขึ้นได้มากกว่าที่เราใช้กันทุกวันนี้
    • ลองเข้าเว็บไซต์ดูแล้วเห็นว่า ใบรับรอง SSL หมดอายุวันนี้ น่าจะต้องออกใหม่แล้วล่ะ :)
    • ดูน่าสนใจทีเดียว ฟีเจอร์ที่จำเป็นสำหรับผมคือข้อมูล รวมถึงโน้ตและ annotation ต้องยังคง ใช้งานได้ในอีกหลายสิบปีข้างหน้า
      ไม่อย่างนั้นงานที่ทำวันนี้ก็จะหายไป อยากรู้ว่าจะเป็นอย่างไรถ้าวันหนึ่งหยุดพัฒนา Cahier หรือถ้าผมต้องย้ายไปใช้ระบบอื่น
  • ใช้แอปนี้ตลอด เป็นแอปที่ดี ฟีเจอร์บางอย่างอย่างการกระโดดไปยัง citation ก็มีในส่วนขยาย Google Scholar สำหรับ Chrome แต่แนวคิดที่ทำให้ควบคุมแอปได้เหมือน Vim นั้นดีจริง ๆ
    ก่อนใช้ Sioyek เคยใช้ Karabiner ตั้งค่า j/k ฯลฯ ใน macOS Preview เพื่อเลื่อนด้วยปุ่มแบบ Vim แต่ขั้นตอนยุ่งยาก และไม่มีฟีเจอร์มากมายที่ Sioyek มี อีกอย่างคือใช้สีพื้นหลัง PDF แบบ solarized เพื่อลดอาการล้าตา และแอปนี้ก็รองรับ โหมดกลางคืน แม้แต่กับกราฟใน PDF
    ก็มีข้อไม่พอใจอยู่บ้าง มีส่วนขยายสำหรับดู PDF แบบสองคอลัมน์วางข้างกัน แต่มันแก้ไขไฟล์ PDF จริง ๆ ไปเลย การติดตั้งปลั๊กอินโดยรวมทำได้ยาก เคยหาวิธี workaround แล้วรายงานไป แต่ไม่รู้ว่าถูกนำไปปรับปรุงในแอปหรือไม่ ไฟล์ตั้งค่าดูเหมือนจะถูกเก็บไว้ในไดเรกทอรี Applications ของแอป ถ้าอยู่ใน ~/.config จะดีกว่า ฟีเจอร์เปิดไฟล์จากไดเรกทอรีอย่างรวดเร็วใช้ไม่ได้กับคลาวด์ไดรฟ์รวมถึง iCloud

    • เป็นผู้พัฒนา Sioyek เอง ได้เพิ่ม โหมดสองพาเนล แบบเนทีฟใน branch พัฒนาแล้ว
      ฝั่งปลั๊กอิน ใน branch พัฒนาได้รองรับส่วนขยาย JavaScript แบบเนทีฟแล้ว เพราะใช้ JavaScript engine ภายในของ Qt จึงไม่มี dependency ภายนอกและน่าจะจัดการง่ายขึ้นมาก
      ส่วนไฟล์ตั้งค่า ผมคิดว่าใน branch พัฒนาสามารถใช้ ~/.config ได้แล้ว แต่ก็ไม่มั่นใจ 100%
    • เห็นด้วยว่าการติดตั้งส่วนขยายนั้นซับซ้อน
      จำชื่อ sioyek ไม่ได้จริง ๆ เลยทำ alias ไว้เป็น xpdf
  • ได้ลองแนวทางที่ ร่วมมือกันมากขึ้น สำหรับการอ่านและอภิปรายงานวิจัย ที่ https://www.scholars.io หรือ https://app.scholars.io ให้ผู้คนใส่ annotation แสดงความคิดเห็น และร่วมมือกันบนงานวิจัยได้

  • สงสัยว่า ฟีเจอร์สารบัญ จะทำงานได้ไหมแม้ PDF จะไม่ได้มีสารบัญแนบมา เป็นฟีเจอร์ที่อยากให้ PDF reader ทำให้ได้มาตลอด

    • ทำได้ในระดับหนึ่ง Sioyek จะพาร์สข้อความแล้วพยายามสร้างสารบัญ แต่จะไม่แก้ไข PDF ต้นฉบับ และความแม่นยำกับประโยชน์ใช้สอยก็ไม่สม่ำเสมอ
      สำหรับเปเปอร์มักทำงานได้ค่อนข้างดี มีบ้างที่พลาดบางเซกชันหรือมีรายการจิปาถะปนเข้ามา ส่วนตำราเรียน โดยเฉพาะหนังสือที่มีการจัดวางสูตรคณิตศาสตร์เยอะ ๆ มักมีรายการที่ใช้ไม่ได้หรือรายการตกหล่นมากเกินไป
      ถ้าต้องใช้แค่บางส่วนของเปเปอร์หรือตำรา สารบัญที่สร้างอัตโนมัติกับบุ๊กมาร์กก็มักพอแล้ว นอกเหนือจากนั้น ผมชอบใช้ pdf.tocgen(https://github.com/Krasjet/pdf.tocgen) เพื่อสร้างสารบัญที่แม่นยำแบบกึ่งแมนนวลมากกว่า
    • ทำได้
      ถ้าไฟล์ไม่มีสารบัญและเปิดการตั้งค่าไว้ จะสร้างสารบัญด้วยวิธี heuristic สามารถใช้ max_created_toc_size เพื่อป้องกันไม่ให้สร้างสารบัญที่ใหญ่เกินไปได้
      https://sioyek-documentation.readthedocs.io/en/latest/config...
    • ในเว็บไซต์บอกว่าทำได้: https://sioyek.info/
      คิดว่าควรลิงก์ไปที่เว็บไซต์มากกว่า
  • วิธีเลี่ยงแบบง่าย ๆ สำหรับฟีเจอร์ สลับไปมาระหว่างสองหน้า ซึ่งทำได้ง่ายในหนังสือกระดาษแต่ทำยากบนคอมพิวเตอร์ คือถ้าซอฟต์แวร์อนุญาตให้เปิดสองอินสแตนซ์ ก็เปิด PDF ไว้สองครั้ง
    ถ้ามันฉลาดเกินไปจนทำแบบนั้นไม่ได้ ก็ทำสำเนา PDF แล้วเปิดสำเนาที่สอง เลื่อนไปยังตำแหน่งต่างกัน จากนั้นใช้ alt-tab สลับไปมา
    บนโทรศัพท์สามารถใช้ Acrobat Reader กับ Koreader พร้อมกันได้

  • Sioyek มีฟีเจอร์ดี ๆ แต่ค่อนข้าง บั๊กเยอะ การแก้บั๊กและเขียนเทสต์อาจต้องใช้ความพยายามมาก

  • ออกนอกเรื่องเล็กน้อย แต่อยากรู้ว่ามี PDF reader ดี ๆ ที่รวม การค้นหาแบบใช้ LLM ไหม ถ้าค้นหา “cities in USA” ในเอกสารแล้วแสดงทุกจุดที่ปรากฏ เช่น New York, Los Angeles, Chicago อะไรแบบนั้นก็คงดี

    • PDFgear มี LLM รวมอยู่ด้วย และตอนนี้ใช้ฟรี
  • ถ้า reader ตัวนี้รวมเข้ากับ Zotero ได้ก็คงดี ดูเหมือนทำเป็นปลั๊กอินได้ด้วย

  • เคยค่อนข้างชอบ Sioyek เหมือนเป็น Zathura ที่ฟีเจอร์เยอะกว่า แต่มีสองเรื่องที่ทำให้ใช้เป็น PDF reader หลักไม่ได้
    อย่างแรก เปิด PDF หลายไฟล์พร้อมกันไม่ได้ ถ้ามี PDF เปิดอยู่แล้วและพยายามเปิด PDF ไฟล์ที่สอง ทั้งสองอินสแตนซ์จะ crash
    อย่างที่สอง annotation ถูกบันทึกไว้ในเอกสารแยกต่างหาก ไม่ใช่ในตัว PDF เอง
    ผู้ใช้คนอื่น ๆ ก็เคยเขียนถึงทั้งสองเรื่องนี้ไว้แล้ว ยังหาทางแก้ง่าย ๆ สำหรับข้อ 1 ไม่เจอ ส่วนทางแก้บางส่วนของข้อ 2 คือใช้ extension แต่เท่าที่จำได้ก็ยังต้องรันคำสั่งด้วยตัวเองเพื่อย้าย annotation เข้าไปในเอกสาร PDF เอง

    • เห็นด้วยเรื่องปัญหา PDF หลายไฟล์ คิดว่าน่าจะเป็นงานที่กำลังทำอยู่ แต่ส่วนที่เก็บ annotation ไว้ในเอกสารแยก แทนที่จะฝังไว้ใน PDF กลับเป็นสิ่งที่ชอบมากกว่า
      ตามอุดมคติ ถ้ามีให้เลือกทั้งสองแบบเหมือน Zotero กับ extension ที่กล่าวถึงก็คงดี แต่เพราะสามารถเก็บ สำเนาที่สะอาด ของ PDF ไว้แชร์กับคนอื่นได้ จึงชอบให้ annotation แยกออกมาต่างหาก
      อีกอย่าง ตอนนี้ PDF viewer แต่ละตัวที่รองรับ annotation ต่างก็จัดการด้วยวิธีเฉพาะของตัวเอง และโปรแกรมต่าง ๆ มักแยกไม่ค่อยออกว่าไฮไลต์หรือโน้ตที่โปรแกรมอื่นสร้างไว้เป็นของต้นฉบับหรือไม่
      อย่างไรก็ตาม Zotero กับ reader บางตัวเริ่มใช้ Web Annotation Data Model(https://www.w3.org/TR/annotation-model/) เป็นกลไกสากลสำหรับจัดเก็บ annotation แล้ว หวังว่าสักวันจะสามารถดูและแก้ไขไฮไลต์กับโน้ตที่สร้างใน Sioyek บน KOReader ของ e-book reader ได้ แล้วส่งไฟล์ annotation ให้เพื่อนร่วมงานที่เป็นผู้ใช้ Zotero หรือ Obsidian/PMK ซึ่งมีสำเนา PDF แยกของไฟล์เดียวกันได้ ยังอยู่ในช่วงเริ่มต้นมาก แต่กำลังมีงานทำอยู่ https://hypothes.is ก็ทำงานคล้าย ๆ แบบนี้อยู่บ้าง
    • ในเวอร์ชันล่าสุด 2.0.0 ดูเหมือนจะมีการตั้งค่าสำหรับข้อ 1 แต่คอมเมนต์ในไฟล์ตั้งค่าที่ให้มาอาจทำให้เข้าใจผิดได้
      เมื่อตั้ง should_launch_new_instance เป็น 1 ผมเปิด PDF หลายไฟล์พร้อมกันใน Sioyek ได้ แต่ทำได้เฉพาะตอนเปิด PDF หลังไฟล์แรกจากเทอร์มินัลเท่านั้น ถ้าเปิดจากใน Sioyek หรือจาก dmenu ไฟล์ PDF ที่เปิดอยู่จะถูกแทนที่ ถึงอย่างนั้นก็ไม่เคยเจอ crash เลย ใช้ dwm บน Debian
      ข้อ 2 มองว่าเป็นสิ่งที่พึงประสงค์
    • เป็นผู้พัฒนา Sioyek เอง ควรเปิด PDF หลายไฟล์ได้อยู่แล้ว เช่น ใช้คำสั่ง new-window หรือส่งตัวเลือก command line --new-window ก็ได้
      ถ้าเกิด crash รบกวนเปิด issue ใน GitHub ด้วย