Jak korzystać z narzędzi pdf (tryb podglądu pdf) w emacsie?

23

Narzędzia pdf obejmują tryb podglądu pdf, który oferuje kilka funkcji nieobecnych w trybie podglądu dokumentu (patrz koniec pytania).

Czy tryb podglądu pdf może być ogólnie stosowany jako zamiennik trybu podglądu dokumentu, czy może musi być „narzędziem” według narzędzia?

W obu przypadkach, czy konieczne jest edytowanie źródła emacsa, aby używać narzędzi pdf w GNUS, eWW i orgmode, czy też można zastosować ich ustawienia systemowe?

--- Funkcje narzędzi pdf tutaj dla wygody; szczegóły na stronie github ---

  1. Wydaje się szybszy niż przeglądanie dokumentów
  2. Rozdzielczość zwykle lepsza, ponieważ nie jest renderowana jako png
  3. Ładne wyszukiwanie, a nawet wyszukiwanie wszystkich wystąpień frazy
  4. Może dodawać adnotacje tekstowe oraz wyróżniać, podkreślać i tym podobne
  5. Może stworzyć impet dla części pdf
  6. Może traktować kilka plików pdf jako pojedynczy plik „wirtualny”
  7. Może zintegrować się z lateksem, aby zobaczyć źródło lateksu i pdf obok siebie i przeskakiwać z jednego miejsca na drugie w równoważnych lokalizacjach (np. Wybierz \section{A section}w LaTeX i dostałem tę sekcję w pdf.
brittAnderson
źródło
Zobacz tutaj pokrewną dyskusję, która prawdopodobnie zawiera odpowiedź na twoje pytania.
tmalsburg
Gnus może być przypadkiem specjalnym? Zobacz: lists.gnu.org/archive/html/help-gnu-emacs/2015-02/msg00438.html
Brian Z
Może być konieczne przeformułowanie pytania z dala od przerażających „najlepszych praktyk”, które według niektórych osób oznaczają, że odpowiedzi będą przede wszystkim oparte na opiniach. Wydaje mi się, że pamiętam, że gnus jest tutaj szczególnym przypadkiem i musisz dodać odpowiednią konfigurację do .mailcap. Jeśli twoje pytanie nie zostanie zamknięte, zanim wrócę do domu, wykopię dla ciebie konfigurację.
Tyler,
1
Gnus używa mailcap, aby dowiedzieć się, z którymi aplikacjami otwierać załączniki. Jeśli masz Emacs skonfigurowany do otwierania plików PDF z PDF-narzędzi, trzeba dodać linię application/pdf; emacsclient %sdo .mailcapi uruchomić Emacs edit-serwer: invoke Emacs jako emacs --daemon, lub dodać (server-start)do swoich .emacs.
Tyler,
Dzięki. To działa, a potem to działa org. (set 'org-file-apps '((auto-mode . emacs) ... ("\\.pdf\\'" . default)))
brittAnderson

Odpowiedzi:

31

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ąć.

Tyler
źródło
Jednak w3m w emacsie nadal używa docview. Wszelkie porady, jak to naprawić?
brittAnderson
zobacz zaktualizowaną odpowiedź
Tyler,
Czy mogę link org-modedo określonej adnotacji w pliku PDF?
AlwaysLearning
1
@ Zawsze uczę się, że nie jestem tego świadomy. Tryb przeplotu obsługuje nagrywanie adnotacji w osobnym, połączonym pliku w trybie organizacji. Zaktualizuję odpowiedź
Tyler