Przełączanie z docviewna pdf-toolsodbywa się „automatycznie” podczas instalacji pdf-tools. Gdy to zrobisz, za każdym razem, gdy Emacs spróbuje otworzyć plik pdf w Emacsie , użyje go pdf-tools. Jednak niektóre pakiety wywołują system operacyjny lub używają innej konfiguracji w Emacsie, aby zdecydować, czy powinny używać Emacsa lub innego programu do otwarcia pliku pdf. Tak więc wymagana jest konfiguracja „narzędzie po narzędziu”, aby wszystkie pakiety Emacsa mogły korzystać z narzędzi pdf.
Jeśli chcesz, aby twoje pdfy były otwierane w tym samym wystąpieniu Emacsa, musisz mieć je uruchomione w trybie demona (tj. Rozpocząć od emacs --daemon) lub wywołać (server-start)init, aby emacsclientdziałało.
Łącza w trybie organizacji
Po wyjęciu z pudełka org-modenie wie o narzędziach pdf. Możesz jednak dodać obsługę otwierania łączy org do plików pdf za pomocą org-pdfview , który jest dostępny jako pakiet na MELPA. Po zainstalowaniu możesz go aktywować za pomocą następującego kodu w swoim .emacs:
(eval-after-load 'org '(require 'org-pdfview))
(add-to-list 'org-file-apps
'("\\.pdf\\'" . (lambda (file link)
(org-pdfview-open link))))
Rozwiązanie to zapewni nowy cel zakończenia dodawania linków poprzez C-c C-l, pdfview:ze wsparciem dla skoków do konkretnych stron. Pełne linki używają formatu:
[[pdfview:/path/to/myfile.pdf::42][My file Description]]
Tryb przeplotu i adnotacje PDF
Tryb przeplotu zapewnia obsługę prezentacji „pliku PDF obok bufora trybu organizacji z notatkami”. Jest to alternatywa dla korzystania z adnotacji osadzonych w pliku pdf (co można zrobić za pomocą narzędzi pdf). Zamiast tego otrzymujesz plik trybu org ze wszystkimi adnotacjami, który prowadzi do strony w pdf, z którą adnotacje są powiązane.
Gnus
Jak wspomniałem w moim komentarzu, gnusużywa mailcap do otwierania załączników. Aby to skonfigurować, potrzebujesz w swoim .mailcappliku:
application/pdf; emacsclient %s
EWW
EWW korzysta również z mailcap, więc zmodyfikuj swój .mailcapplik zgodnie z Gnus powyżej.
AucTeX
W przypadku AucTeX istnieje wiele istotnych opcji:
- przeglądarki są określane za pomocą zmiennej
TeX-view-program-selection: znajdź pozycję output-pdfi wybierz wartość „Narzędzia PDF”.
- aby użyć SyncTex, musisz:
- set
TeX-source-correlate-mode, albo interaktywnie, wywołując tę funkcję przez Mx, albo ustawiając zmienną na stałe przez M-x customize-variable.
- upewnij się, że
TeX-source-correlate-methodzawiera(pdf . synctex)
Dzięki temu miejscu plik źródłowy tex C-c C-gpowinien wyświetlać odpowiednią sekcję pdf.
ES
Dostosuj zmienną ess-pdf-viewer-prefdo emacsclient.
xdg-open
W systemie Linux niektóre pakiety wywołują program zewnętrzny w xdg-opencelu otwarcia plików pdf. Spowoduje to użycie ustawień systemowych w celu ustalenia, którego programu użyć. Jest to zmiana systemowa, więc inne programy wyślą dokumenty pdf do Emacsa po skonfigurowaniu. Jeśli więc nie chcesz tego robić, np. Firefox, nie będziesz chciał wprowadzać tych zmian.
Aby ustawić emacsclient do otwierania plików pdf w całym systemie poprzez xdg-open:
- utwórz plik
~/.local/share/applications/emacsclient.desktopz zawartością:
[Wpis na pulpicie]
Nazwa = Emacs Client
Exec = emacsclient% u
Ikona = emacs-icon
Type = Aplikacja
Terminal = false
MimeType = application / pdf;
- z wiersza polecenia wydaj:
xdg-mime default emacsclient.desktop application/pdf
Możesz przetestować, czy to zadziałało xdg-open your-document.pdf- powinno się otworzyć your-document.pdfw Emacsie.
w3m
w3m najpierw sprawdza zmienną w3m-doc-view-content-types, a jeśli zobaczy tam „application / pdf”, otworzy pdf w widoku dokumentu. Jest to zmienna, którą można dostosowywać, dlatego usuń wpis „application / pdf” za pomocą interfejsu dostosowywania.
Bez wpisu w3m-doc-view-content-typesw3m sprawdza następnie zmienną pod w3m-content-type-alistkątem wpisów pasujących do „application / pdf”. Dostosuj wpis do czytania
[INS] [DEL] Type: application/pdf
Regexp: ( ) Not specified
(*) String: \.pdf\'
Viewer: ( ) Not specified
(*) External viewer:
Command: emacsclient
Arguments:
[INS] [DEL] file
[INS]
Możesz także użyć funkcji emacsa (przypuszczalnie find-filelub podobnej), zamiast zewnętrznego wywołania emacsclient, ale nie mogłem tego pojąć.