Mudar de docview
para pdf-tools
acontece 'automaticamente' quando você instala pdf-tools
. Depois de fazer isso, sempre que o Emacs tentar abrir um pdf no Emacs , ele será usado pdf-tools
. No entanto, alguns pacotes chamarão o sistema operacional ou usarão configurações diferentes no Emacs para decidir se devem usar o Emacs ou outro programa para abrir um pdf. Portanto, é necessária alguma configuração 'ferramenta por ferramenta' para que todos os pacotes do Emacs usem ferramentas em pdf.
Se você deseja que seus PDFs sejam abertos na mesma instância do Emacs, é necessário executá-lo no modo daemon (por exemplo, inicie-o emacs --daemon
) ou chame (server-start)
seu init para que emacsclient
funcione.
Links de modo organizacional
Fora da caixa, org-mode
não sabe sobre ferramentas de pdf. No entanto, você pode adicionar suporte para abrir links da organização em arquivos pdf com o org-pdfview , que está disponível como um pacote no MELPA. Depois de instalado, você pode ativá-lo com o seguinte código no seu .emacs
:
(eval-after-load 'org '(require 'org-pdfview))
(add-to-list 'org-file-apps
'("\\.pdf\\'" . (lambda (file link)
(org-pdfview-open link))))
Fazendo isso irá fornecer um novo alvo de conclusão para adicionar links via C-c C-l
, pdfview:
com suporte para saltar para páginas específicas. Os links completos usam o formato:
[[pdfview:/path/to/myfile.pdf::42][My file Description]]
Modo de intercalação e anotações em PDF
O modo Intercalar fornece suporte para apresentar "seu PDF lado a lado com um buffer do modo organizacional com suas anotações". Essa é uma alternativa ao uso das anotações incorporadas em um pdf (o que você pode fazer com as ferramentas em pdf). Em vez disso, você acaba com um arquivo de modo organizacional com todas as suas anotações, que vincula à página no pdf à qual as anotações estão associadas.
Gnus
Como mencionei no meu comentário, gnus
usa o mailcap para abrir anexos. Para configurar isso, você precisa do seguinte em seu .mailcap
arquivo:
application/pdf; emacsclient %s
EWW
O EWW também usa o mailcap, portanto modifique seu .mailcap
arquivo conforme o Gnus acima.
AucTeX
Para o AucTeX, existem várias opções relevantes:
- os espectadores são especificados por meio da variável
TeX-view-program-selection
: encontre a entrada output-pdf
e selecione "Ferramentas PDF" para o valor.
- Para usar o SyncTex, você precisa:
- de
TeX-source-correlate-mode
forma interativa, chamando essa função via Mx ou configurando a variável permanentemente via M-x customize-variable
.
- certifique-se de
TeX-source-correlate-method
incluir(pdf . synctex)
Com isso, o arquivo de origem tex C-c C-g
deve exibir a seção correspondente do pdf.
ESS
Customize a variável ess-pdf-viewer-pref
para emacsclient
.
xdg-open
No Linux, alguns pacotes chamam o programa externo xdg-open
para abrir arquivos pdf. Isso usará as configurações de todo o sistema para determinar qual programa usar. Essa é uma alteração em todo o sistema; portanto, outros programas enviarão documentos em PDF para o Emacs quando você configurá-lo. Portanto, se você não quiser, por exemplo, o Firefox, fazer isso, não precisará fazer essas alterações.
Para configurar o emacsclient para abrir pdfs em todo o sistema via xdg-open
:
- crie um arquivo
~/.local/share/applications/emacsclient.desktop
com o conteúdo:
[Entrada da área de trabalho]
Nome = Emacs Client
Exec = emacsclient% u
Ícone = emacs-icon
Tipo =
Terminal de aplicativos = false
MimeType = application / pdf;
- na linha de comando, emita:
xdg-mime default emacsclient.desktop application/pdf
Você pode testar se isso funcionou xdg-open your-document.pdf
- ele deve abrir your-document.pdf
no Emacs.
w3m
O w3m primeiro verifica a variável w3m-doc-view-content-types
e, se vir "application / pdf", abrirá os pdfs na visualização de documentos. Essa é uma variável personalizável; portanto, remova a entrada "application / pdf" usando a interface de personalização.
Sem uma entrada w3m-doc-view-content-types
, o w3m verifica a variável em w3m-content-type-alist
busca de entradas que correspondam a "application / pdf". Personalize a entrada para ler
[INS] [DEL] Type: application/pdf
Regexp: ( ) Not specified
(*) String: \.pdf\'
Viewer: ( ) Not specified
(*) External viewer:
Command: emacsclient
Arguments:
[INS] [DEL] file
[INS]
Você também pode usar uma função emacs (presumivelmente find-file
ou semelhante), em vez de uma chamada externa emacsclient
, mas eu não consegui descobrir a sintaxe para isso.