Visualizador de PDF que lida com a atualização ao vivo de pdf / não bloqueia o arquivo

17

Eu estou trabalhando em um documento de látex (com pdflatex, cygwin, Acrobat Reader) e eu sou estou cansado do fazer - perto - aberto processo.

No osx Preview, não tenho esse problema, pois consigo compilar os .texarquivos, enquanto o pdf resultante é aberto no visualizador (que é atualizado após o processo de compilação).

Enquanto no Win7, com o Acrobat Reader, meu pdflatex(tex-live 2012) reclama que [...] can't write on file xxx.pdf.acho que o leitor bloqueia o arquivo pdf.

Como você produz / edita eficientemente arquivos .tex no Win7? Eu preferiria ficar usando makefiles e um editor de texto em vez de um ambiente de compilação de látex do Windows.

Mike
fonte
Se essa é uma opção para você: eu acho (não posso verificá-la agora) xpdfvia cygwinobras dessa maneira. No entanto, você precisa inverter e voltar a página para atualizar o arquivo exibido.
Mpy
Thx, é bom para iniciantes. Mas como eu sei como é tratado no mac, ficaria feliz em ter outras soluções.
Mike
2
Consulte tex.stackexchange.com/q/2006/5763
Restabeleça Monica - M. Schröder

Respostas:

16

O SumatraPDF pode ser usado no seu fluxo de trabalho atual. Não colocará um bloqueio no arquivo. Também suporta sincronização entre o editor e o documento pdf.

Mattias
fonte
1
Eu queria postar o mesmo há um minuto, mas não consegui responder minha própria pergunta com menos de 10 repetições ... :) De qualquer forma, obrigado!
Mike
2

Embora já exista uma resposta que forneça um leitor de PDF nativo e sem bloqueio de janelas, segui a cygwin/xpdfabordagem e cortei um pequeno script.

Ele é baseado no xpdf's -remoteopção que que é possível recarregar um arquivo já aberto. Portanto, precisamos detectar apenas quando o arquivo é alterado. Como não há nativo inotifyno Windows, você precisa instalar o inotify-win , que é um C#programa.

Meu script xpdf-fparece funcionar bem, no entanto, você precisa fechar os dois, xpdfe o script (via Strg + C) terminou de assistir o PDF.

#!/bin/bash

if [[ "$1" = "" ]]; then
  echo Usage: $0 FILE
  exit 1
fi

if [[ ! -e "$1" ]]; then
  echo Error: File $1 does not exist.
  exit 2
fi

xpdf -remote filewatch "$1" &
XPDFPID=$!

while [[ -e /proc/$XPDFPID ]]; do
  inotifywait `dirname $1` | grep "MODIFY $1"
  [[ $? = 0 ]] && xpdf -remote filewatch -reload
done
mpy
fonte
1

A partir de 2017, o Firefox / Chrome também poderá fazer o trabalho. O Firefox ainda mantém a página atual após a atualização do F5.

isti_spl
fonte
2
Você pode adicionar mais detalhes à sua resposta? Dizer "X faz o trabalho" é muito vago para ser útil. Obrigado por contribuir.
Eu digo Restabelecer Monica
1
Navegadores da Web em geral devem funcionar. O comportamento padrão / normal / esperado para clientes REST é carregar o conteúdo de uma URL e fechar a conexão.
user560822