È possibile fare in modo che okular non lampeggi quando si ricarica un file?


11

Quando scrivo un documento TeX, utilizzo un'installazione per ricompilare automaticamente i miei file * .tex in un pdf non appena un file sorgente cambia (usando latexmk). Quindi ho messo un terminale con nvim su un lato dello schermo e okular con l'output pdf sull'altro lato dello schermo.

La cosa fastidiosa è che okular lampeggia / lampeggia ogni volta che il pdf si aggiorna. Ciò è particolarmente evidente quando ho glossari + riferimenti + indice. Okular allora lampeggerà da 3 a 5 volte a seconda di cosa è cambiato nella fonte * .tex, e trovo che questo sia davvero distratto. C'è un modo per disabilitare questo comportamento lampeggiante?


3
Impostazioni -> Configura Okular -> Generale -> Funzionalità del programma -> deseleziona "Ricarica documento su modifica file". Quindi premere F5 per ricaricare il pdf solo se lo si desidera.
林果 皞

Bene, questo risolve il problema lampeggiante ma introduce un nuovo problema, ora devo premere F5 ogni volta che voglio vedere un aggiornamento. Speravo ci fosse un modo per ricaricare automaticamente il file senza il flash di distrazione, ma forse questo non è possibile con okular. Comunque, grazie per soluzione temporanea.
Sam De Meyer

1
Il file viene aggiornato più volte durante il processo di compilazione. Ogni volta che il file viene aggiornato, Okular lo aggiorna. Okular non sembra avere un'opzione "se si aggiorna, attendere N secondi per vedere se si aggiorna nuovamente prima di aggiornare".
Andy Dalton,

Anche questo è stato chiesto un po 'di tempo fa, volevo sottolineare, evadere forse si comporta più come quello che vuoi. Se nel frattempo hai trovato un'altra buona soluzione, faccelo sapere. Ho esattamente lo stesso problema ... (e non posso usare evince, in quanto ha problemi con l'inoltro x)
Exocom

Risposte:


2

Ok, ho giocato un po 'di più e ho trovato una soluzione, anche se una soluzione piuttosto confusa.

Primo tentativo - pdf_update_command + Okular

Questo non funziona completamente, poiché salterà sempre all'inizio del file, dopo il ricaricamento. Per completezza, lo aggiungo comunque.

In Okular disattiva il ricaricamento automatico tramite "Impostazioni" -> "Configura Okular" -> Disattiva "Ricarica documento e modifica file".

Modificare il file .latexmkrc in:

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

Questo dice a latexmk che dovrebbe eseguire il comando pdf_update_ dopo aver finito di aggiornare il file pdf. Ciò che funziona, il documento in Okular è sempre visibile durante la compilazione e viene ricaricato al completamento. Sfortunatamente, quando viene eseguito il comando update, passerai all'inizio del documento. Non è quello che voglio.

Secondo tentativo - pdf_update_command + cp

Dato che il precedente tentativo non ha funzionato, ora vado con una soluzione hacker. Per questo il caricamento del documento deve essere attivato in Okular.

.Latexmkrc dovrebbe apparire così:

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

Questo copia il file del documento effettivo in una posizione di anteprima. Quindi Okular deve essere aperto per questo file di anteprima (e per l'altro file devi chiuderlo manualmente). Questo sicuramente non è l'ideale, ma fa quello che voglio:

  1. Aggiornamento del file pdf in background
  2. Aggiornamento solo quando il file è pronto
  3. Funziona su SSH

Aggiornamento (grazie a Sam De Meyer):

Se non si desidera avviare l'anteprima, lasciare vuoto $ pdf_previewer:

$pdf_previewer = ''

Se invece preferisci chiudere una finestra piuttosto che aprirla, è possibile specificare "doc_preview.pdf" insieme al pdf originale. Non ho trovato un modo per aprire solo il secondo file pdf:

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

PS: funziona con qualsiasi editor che ricarica automaticamente i file, come ad esempio evince.


1
Ciao, il trucco 'cp' potrebbe funzionare. Hai davvero bisogno di fare 'start okular' nel 'pdf previewer'. Forse puoi lasciarlo vuoto o specificare un comando che non fa nulla? Quindi tutto ciò che devi fare è aprire okular sulla copia la prima volta che compili. Non risolverebbe questo problema?
Sam De Meyer,

Sì, lasciarlo vuoto fa il trucco di non iniziare bene. Grazie. Aggiornerà la risposta (anche con un'aggiunta che avvia l'anteprima per entrambi i file). Il fatto che l'aggiornamento di un file appaia solo al termine della compilazione è di grande aiuto. Sto solo scrivendo una tesi più ampia, in cui questo è davvero utile.
Exocom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.