Apakah mungkin membuat okular bukan flash saat memuat ulang file?

11

Ketika saya sedang menulis dokumen TeX, saya menggunakan setup untuk secara otomatis mengkompilasi ulang file * .tex saya menjadi pdf segera setelah file sumber berubah (menggunakan latexmk). Jadi saya meletakkan terminal dengan nvim di satu sisi layar dan okular dengan output pdf di sisi lain layar.

Yang mengganggu adalah okular berkedip / berkedip setiap kali pembaruan pdf. Ini terutama terlihat ketika saya memiliki glosarium + referensi + indeks. Okular kemudian akan berkedip 3 hingga 5 kali tergantung pada apa yang telah berubah pada sumber * .tex, dan menurut saya ini sangat mengganggu. Apakah ada cara untuk menonaktifkan perilaku flashing ini?

Sam De Meyer
sumber
3
Pengaturan -> Konfigurasi Okular -> Umum -> Fitur Program -> hapus centang "Muat ulang dokumen saat perubahan file". Kemudian tekan F5 untuk memuat ulang pdf hanya jika diinginkan.
林果 皞
Nah, ini menyelesaikan masalah flashing tetapi memperkenalkan masalah baru, sekarang saya harus menekan F5 setiap kali saya ingin melihat pembaruan. Saya berharap ada beberapa cara untuk memuat ulang file secara otomatis tanpa mengganggu flash, tapi mungkin ini tidak mungkin dengan okular. Bagaimanapun, terima kasih untuk solusi sementara.
Sam De Meyer
1
File diperbarui beberapa kali selama proses pembuatan. Setiap kali file diperbarui, Okular menyegarkannya. Okular tampaknya tidak memiliki opsi "jika pembaruan, tunggu N detik untuk melihat apakah pembaruan lagi sebelum menyegarkan".
Andy Dalton
Bahkan ini ditanya beberapa waktu lalu, saya ingin menunjukkan, karena mungkin berperilaku lebih seperti yang Anda inginkan. Jika Anda menemukan solusi yang baik untuk sementara, beri tahu kami. Saya memiliki masalah yang persis sama ... (dan tidak dapat menggunakan evince, karena memiliki masalah dengan penerusan x)
Exocom

Jawaban:

2

Oke, saya bermain-main sedikit lebih banyak dan menghasilkan solusi, meskipun solusi yang agak rumit.

Upaya pertama - pdf_update_command + Okular

Ini tidak berfungsi sepenuhnya, karena akan selalu melompat ke awal file, setelah memuat ulang. Demi kelengkapan, saya tetap menambahkannya.

Dalam Okular matikan ulang secara otomatis dengan "Pengaturan" -> "Konfigurasikan Okular" -> Matikan "Muat ulang dokumen dan ubah file".

Ubah file .latexmkrc ke:

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

Ini memberitahu latexmk bahwa ia harus menjalankan perintah pdf_update_command setelah selesai memperbarui file pdf. Apa yang berhasil, dokumen di Okular terlihat sepanjang waktu selama kompilasi dan dimuat kembali setelah selesai. Sayangnya, ketika perintah pembaruan dijalankan, Anda akan melompat ke awal dokumen. Bukan itu yang saya inginkan.

Upaya kedua - pdf_update_command + cp

Karena upaya sebelumnya tidak berhasil, saya sekarang menggunakan solusi peretasan. Untuk ini, dokumen yang memuat ulang harus dihidupkan di Okular.

The .latexmkrc akan terlihat seperti ini:

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

Ini menyalin file dokumen yang sebenarnya ke lokasi pratinjau. Jadi Okular perlu dibuka untuk file pratinjau ini (dan untuk file lain Anda harus menutupnya secara manual). Ini jelas tidak ideal, tetapi ia melakukan apa yang saya inginkan:

  1. Memperbarui file pdf di latar belakang
  2. Memperbarui hanya ketika file siap
  3. Bekerja lintas ssh

Pembaruan (terima kasih kepada Sam De Meyer):

Jika Anda tidak ingin pratinjau dimulai, biarkan $ pdf_previewer kosong:

$pdf_previewer = ''

Jika Anda di sisi lain lebih suka menutup jendela daripada membuka, dimungkinkan untuk menentukan 'doc_preview.pdf' bersama dengan pdf asli. Saya belum menemukan cara, untuk hanya membuka file pdf kedua:

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

PS: Ini berfungsi dengan editor mana pun yang secara otomatis memuat ulang file, seperti misalnya evince.

Exocom
sumber
1
Hai, trik 'cp' mungkin berhasil. Apakah Anda benar-benar perlu melakukan 'start okular' di 'pdf previewer'. Mungkin Anda bisa membiarkannya kosong atau menentukan perintah yang tidak melakukan apa-apa? Maka yang harus Anda lakukan adalah membuka okular pada salinan saat pertama kali Anda kompilasi. Bukankah itu menyelesaikan masalah?
Sam De Meyer
Ya, membiarkannya kosong tidak akan memulai okular. Terima kasih. Akan memperbarui jawabannya (juga dengan tambahan yang memulai pratinjau untuk kedua file). Seluruhnya, bahwa pembaruan file hanya muncul setelah kompilasi selesai sangat membantu. Saya hanya menulis tesis yang lebih besar, di mana ini memang berguna.
Exocom