เป็นไปได้ไหมที่จะทำให้ okular ไม่กะพริบเมื่อทำการโหลดไฟล์ซ้ำ?


11

เมื่อฉันเขียนเอกสาร TeX ฉันใช้การตั้งค่าเพื่อคอมไพล์ไฟล์ * .tex ของฉันเป็นไฟล์ pdf โดยอัตโนมัติทันทีที่ไฟล์ต้นฉบับเปลี่ยน (ใช้ latexmk) ดังนั้นฉันจึงวางเทอร์มินัลด้วย nvim ที่ด้านหนึ่งของหน้าจอและตกลงด้วยเอาต์พุต pdf ที่อีกด้านหนึ่งของหน้าจอ

สิ่งที่น่ารำคาญคือ okular กะพริบ / กะพริบทุกครั้งที่มีการอัพเดต pdf นี่เป็นสิ่งที่สังเกตได้โดยเฉพาะเมื่อฉันมีอภิธานศัพท์ + การอ้างอิง + ดัชนี จากนั้น Okular จะกะพริบ 3 ถึง 5 ครั้งขึ้นอยู่กับสิ่งที่เปลี่ยนแปลงในแหล่งข้อมูล * .tex และฉันพบว่าสิ่งนี้ทำให้เสียสมาธิจริงๆ มีวิธีใดในการปิดใช้งานลักษณะการกะพริบนี้หรือไม่


3
การตั้งค่า -> กำหนดค่า Okular -> ทั่วไป -> คุณสมบัติของโปรแกรม -> ยกเลิกการเลือก "โหลดเอกสารใหม่เมื่อเปลี่ยนไฟล์" จากนั้นกด F5 เพื่อโหลด pdf เฉพาะในกรณีที่ต้องการ
林果皞

นี่แก้ปัญหาแวบ ๆ ได้ แต่แนะนำปัญหาใหม่ตอนนี้ฉันต้องกด F5 ทุกครั้งที่ต้องการดูการอัปเดต ฉันหวังว่าจะมีวิธีการโหลดไฟล์โดยอัตโนมัติโดยไม่ใช้แฟลชทำให้เสียสมาธิ แต่บางทีนี่อาจเป็นไปไม่ได้ที่จะทำได้ อย่างไรก็ตามขอบคุณสำหรับวิธีแก้ปัญหาชั่วคราว
Sam De Meyer

1
ไฟล์ได้รับการอัพเดตหลายครั้งในระหว่างกระบวนการสร้าง ทุกครั้งที่ไฟล์ได้รับการปรับปรุง Okular จะรีเฟรช ดูเหมือนว่า Okular จะไม่มีตัวเลือก "ถ้ามันอัปเดตรอ N วินาทีเพื่อดูว่าตัวเลือกนั้นอัปเดตอีกครั้งก่อนรีเฟรช" หรือไม่
Andy Dalton

แม้จะถูกถามเมื่อไม่นานมานี้ผมอยากจะชี้ให้เห็นว่าพฤติกรรมอาจจะเหมือนกับสิ่งที่คุณต้องการ หากคุณพบวิธีแก้ปัญหาที่ดีในระหว่างนี้โปรดแจ้งให้เราทราบ ฉันมีปัญหาเดียวกันทั้งหมด ... (และไม่สามารถใช้ evince ได้เนื่องจากมีปัญหากับการส่งต่อ x)
Exocom

คำตอบ:


2

โอเคฉันเล่นอีกสักหน่อยแล้วคิดวิธีแก้ปัญหา

ความพยายามครั้งแรก - pdf_update_command + Okular

สิ่งนี้ไม่ทำงานอย่างเต็มที่เนื่องจากมันจะข้ามไปยังจุดเริ่มต้นของไฟล์เสมอหลังจากโหลดซ้ำ เพื่อความสมบูรณ์ฉันเพิ่มมันต่อไป

ใน Okular ปิดการโหลดซ้ำอัตโนมัติโดย "การตั้งค่า" -> "กำหนดค่า Okular" -> ปิด "โหลดเอกสารใหม่และเปลี่ยนไฟล์"

เปลี่ยนไฟล์. latexmkrc เป็น:

$pdf_previewer = 'start okular --uniuqe %S';
$pdf_update_method = 4;
$pdf_update_command = 'okular --unique %S';

สิ่งนี้บอกให้ Latexmk ทราบว่ามันควรจะเรียกใช้งานไฟล์ pdf_update_command หลังจากทำการอัพเดตไฟล์ pdf เสร็จแล้ว ทำงานอย่างไรเอกสารใน Okular สามารถมองเห็นได้ตลอดเวลาในระหว่างการรวบรวมและโหลดซ้ำเมื่อเสร็จสิ้น น่าเสียดายที่เมื่อมีการใช้งานคำสั่งอัปเดตคุณจะข้ามไปที่จุดเริ่มต้นของเอกสาร นั่นไม่ใช่สิ่งที่ฉันต้องการ

ความพยายามครั้งที่สอง - pdf_update_command + cp

เนื่องจากความพยายามครั้งก่อนไม่ได้ผลตอนนี้ฉันกำลังไปกับโซลูชันแฮ็กเกอร์ สำหรับการโหลดเอกสารนี้จะต้องเปิดใช้ใน Okular

.latexmkrc ควรมีลักษณะเช่นนี้:

$pdf_previewer = 'start okular';
$pdf_update_method = 4;
$pdf_update_command = 'cp ~/path/to/doc.pdf ~/path/to/doc_preview.pdf';

สิ่งนี้คัดลอกไฟล์เอกสารจริงไปยังตำแหน่งแสดงตัวอย่าง ดังนั้นต้องเปิด Okular สำหรับไฟล์ตัวอย่างนี้ (และสำหรับไฟล์อื่นคุณต้องปิดมันด้วยตนเอง) นี้ไม่เหมาะ แต่ก็ทำในสิ่งที่ฉันต้องการ:

  1. การอัปเดตไฟล์ pdf ในพื้นหลัง
  2. อัปเดตเฉพาะเมื่อไฟล์พร้อม
  3. ทำงานข้าม ssh

อัปเดต (ขอบคุณ Sam De Meyer):

หากคุณไม่ต้องการให้โปรแกรมดูตัวอย่างเริ่มทำงานให้ปล่อย $ pdf_previewer ว่างไว้:

$pdf_previewer = ''

หากคุณต้องการปิดหน้าต่างมากกว่าหน้าต่างที่เปิดอยู่คุณสามารถระบุ 'doc_preview.pdf' พร้อมกับ pdf ต้นฉบับได้ ฉันไม่พบวิธีที่จะเปิดเฉพาะไฟล์ PDF ที่สอง:

$pdf_previewer = 'start okular ~/path/to/doc_preview.pdf'

PS: มันทำงานร่วมกับโปรแกรมแก้ไขใด ๆ ที่โหลดไฟล์โดยอัตโนมัติ


1
สวัสดีเคล็ดลับ 'cp' อาจใช้งานได้ คุณจำเป็นต้อง 'เริ่มต้น okular' ใน 'previewer pdf' หรือไม่ บางทีคุณอาจปล่อยให้มันว่างเปล่าหรือระบุคำสั่งที่ไม่ทำอะไรเลย? จากนั้นสิ่งที่คุณต้องทำคือเปิด okular บนสำเนาในครั้งแรกที่คุณคอมไพล์ จะไม่แก้ปัญหาเหรอ?
Sam De Meyer

ใช่ปล่อยให้ว่างเปล่าไม่หลอกลวงไม่เริ่มต้น ขอบคุณ จะอัปเดตคำตอบ (รวมถึงการเพิ่มที่เริ่มต้นโปรแกรมดูตัวอย่างสำหรับไฟล์ทั้งสอง) โดยรวมแล้วการอัปเดตไฟล์จะปรากฏหลังจากคอมไพล์เสร็จสิ้นจะช่วยได้มาก ฉันแค่เขียนวิทยานิพนธ์ที่ใหญ่กว่าซึ่งมันมีประโยชน์มากจริงๆ
Exocom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.