重新載入文件時是否可以使okular不閃爍?
當我編寫 TeX 文件時,我使用設置在源文件更改時自動將我的 *.tex 文件重新編譯為 pdf(使用 latexmk)。所以我在螢幕的一側放了一個帶有 nvim 的終端,在螢幕的另一側放了一個帶有 pdf 輸出的終端。
令人討厭的是,每次 pdf 更新時,okular 都會閃爍/閃爍。當我有詞彙表 + 參考文獻 + 索引時,這一點尤其明顯。Okular 然後會根據 *.tex 源中的變化閃爍 3 到 5 次,我發現這真的很讓人分心。有什麼辦法可以禁用這種閃爍行為?
好吧,我玩了更多,想出了一個解決方案,雖然是一個相當老套的解決方案。
第一次嘗試 - 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 文件後執行 pdf_update_command。什麼起作用,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(而對於其他文件,您必須手動關閉它)。這肯定不是理想的,但它可以滿足我的要求:
- 在後台更新pdf文件
- 僅在文件準備好時更新
- 跨 ssh 工作
更新(感謝 Sam De Meyer):
如果您不想啟動預覽器,請將 $pdf_previewer 留空:
$pdf_previewer = ''
另一方面,如果您更喜歡關閉一個視窗而不是打開一個視窗,則可以將“doc_preview.pdf”與原始 pdf 一起指定。我還沒有找到方法,只打開第二個 pdf 文件:
$pdf_previewer = 'start okular ~/path/to/doc_preview.pdf'
PS:這適用於任何自動重新載入文件的編輯器,例如evince。