Przełączanie z docview
na pdf-tools
odbywa 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 emacsclient
działało.
Łącza w trybie organizacji
Po wyjęciu z pudełka org-mode
nie 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, gnus
używa mailcap do otwierania załączników. Aby to skonfigurować, potrzebujesz w swoim .mailcap
pliku:
application/pdf; emacsclient %s
EWW
EWW korzysta również z mailcap, więc zmodyfikuj swój .mailcap
plik 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-pdf
i 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-method
zawiera(pdf . synctex)
Dzięki temu miejscu plik źródłowy tex C-c C-g
powinien wyświetlać odpowiednią sekcję pdf.
ES
Dostosuj zmienną ess-pdf-viewer-pref
do emacsclient
.
xdg-open
W systemie Linux niektóre pakiety wywołują program zewnętrzny w xdg-open
celu 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.desktop
z 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.pdf
w 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-types
w3m sprawdza następnie zmienną pod w3m-content-type-alist
ką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-file
lub podobnej), zamiast zewnętrznego wywołania emacsclient
, ale nie mogłem tego pojąć.