É possível fazer o okular não piscar ao recarregar um arquivo?

11

Quando estou escrevendo um documento do TeX, eu uso uma configuração para recompilar automaticamente meus arquivos * .tex em um pdf assim que um arquivo de origem é alterado (usando o latexmk). Então eu coloquei um terminal com nvim em um lado da tela e okular com a saída pdf no outro lado da tela.

O irritante é que o okular pisca / pisca toda vez que o pdf é atualizado. Isso é especialmente perceptível quando eu tenho glossários + referências + índice. O Okular irá piscar 3 a 5 vezes dependendo do que mudou na fonte * .tex, e eu acho isso realmente perturbador. Existe alguma maneira de desativar esse comportamento intermitente?

    
por Sam De Meyer 06.05.2016 / 22:42

1 resposta

2

Ok, eu brinquei um pouco mais e encontrei uma solução, embora bem hacky.

Primeira tentativa - pdf_update_command + Okular

Isso não funciona totalmente, pois sempre vai saltar para o início do arquivo, depois de recarregar. Por uma questão de completude, eu adiciono mesmo assim.

No Okular, desative a atualização automática por "Configurações" - > "Configurar o Okular" - > Desativar "Atualizar documento e alteração de arquivo".

Altere o arquivo .latexmkrc para:

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

Isso diz ao latexmk que ele deve executar o pdf_update_command após terminar de atualizar o arquivo pdf. O que funciona, o documento no Okular fica visível o tempo todo durante a compilação e é recarregado na conclusão. Infelizmente, quando o comando update é executado, você pula para o início do documento. Não é isso que eu quero.

Segunda tentativa - pdf_update_command + cp

Como a tentativa anterior não deu certo, estou indo agora com uma solução mais hackier. Para isso, o recarregamento do documento deve ser ativado no Okular.

O .latexmkrc deve ficar assim:

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

Isso copia o arquivo de documento real para um local de visualização. Portanto, o Okular precisa ser aberto para este arquivo de visualização (e para o outro arquivo, é necessário fechá-lo manualmente). Isso certamente não é o ideal, mas faz o que eu quero:

  1. Atualizando o arquivo pdf em segundo plano
  2. Atualizando apenas quando o arquivo estiver pronto
  3. Funciona em ssh

Atualização (graças a Sam De Meyer):

Se você não quiser que o visualizador seja iniciado, deixe o $ pdf_previewer vazio:

$pdf_previewer = ''

Se você, por outro lado, preferir fechar uma janela do que abrir uma, é possível especificar o 'doc_preview.pdf' junto com o pdf original. Eu não encontrei um jeito, para somente abrir o segundo arquivo pdf:

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

PS: funciona com qualquer editor que recarregue automaticamente arquivos, como, por exemplo, Evince

    
por 06.08.2018 / 08:16

Tags