emacs에서 pdf-tools (pdf-view-mode)를 사용하는 방법?


23

pdf-tools 에는 doc-view-mode에없는 몇 가지 기능을 제공하는 pdf-view-mode가 포함되어 있습니다 (질문 끝 참조).

pdf-view-mode를 일반적으로 doc-view-mode의 대체물로 사용할 수 있습니까? 아니면 도구별로 "도구"여야합니까?

두 경우 모두, gnus, eww 및 orgmode에서 pdf-tools를 사용하도록 emacs 소스를 편집해야합니까, 아니면 시스템 전체 설정을 사용할 수 있습니까?

--- 편의상 pdf 도구의 특징; 자세한 내용은 github 사이트 를 참조하십시오 ---

  1. doc-view보다 빠르다
  2. PNG로 렌더링되지 않기 때문에 일반적으로 해상도가 더 좋습니다.
  3. 좋은 검색 및 모든 문구를 검색 할 수 있습니다
  4. 텍스트 주석, 강조, 밑줄 등을 추가 할 수 있습니다
  5. pdf 부품에 대한 imenu를 만들 수 있습니다
  6. 여러 pdf를 단일 "가상"pdf로 취급 할 수 있음
  7. 라텍스와 통합하여 라텍스 소스와 pdf를 나란히 볼 수 있으며 동등한 위치에서 서로간에 이동할 수 있습니다 (예 : \section{A section}LaTeX에서 선택 하고 pdf에서 해당 섹션을 얻음).

질문에 대한 답변이 포함 된 관련 토론을 보려면 여기 를 참조 하십시오 .
tmalsburg

Gnus는 특별한 경우일까요? 참조 : lists.gnu.org/archive/html/help-gnu-emacs/2015-02/msg00438.html
Brian Z

일부 사람들은 대답이 주로 의견에 기반을 둔다는 것을 의미하는 두려운 '모범 사례'와는 별도로 질문에 답장을 보내야 할 수도 있습니다. 여기서는 gnus가 특별한 경우라고 생각하는 것 같습니다. .mailcap에 적절한 구성을 추가해야합니다. 집에 오기 전에 귀하의 질문이 닫히지 않으면 구성을 파헤칩니다.
Tyler

1
Gnus는 mailcap을 사용하여 첨부 파일을 열 응용 프로그램을 파악합니다. 당신이 이맥스 PDF-도구를 열고 PDF 파일로 구성되어있는 경우에는 줄을 추가 할 필요 application/pdf; emacsclient %s에를 .mailcap호출 이맥스 같은 : 및 이맥스 편집-서버를 시작 emacs --daemon하거나 추가 (server-start)하여 이맥스에.
Tyler

감사. 그것은 효과가 있고 그 후에는 효과가 org있습니다. (set 'org-file-apps '((auto-mode . emacs) ... ("\\.pdf\\'" . default)))
brittAnderson

답변:


31

에서 전환 docview하려면 pdf-tools설치시 '자동으로'발생 pdf-tools. 이 작업을 완료하면, 이맥스는 PDF 열려고 언제든지 이맥스는 , 그것을 사용합니다 pdf-tools. 그러나 일부 패키지는 운영 체제를 불러 오거나 Emacs 내에서 다른 구성을 사용하여 Emacs 또는 다른 프로그램을 사용하여 pdf를 열지 여부를 결정합니다. 따라서 모든 Emacs 패키지가 pdf-tools를 사용하도록하려면 '도구 별'구성이 필요합니다.

동일한 Emacs 인스턴스에서 pdf를 열려면 데몬 모드로 실행 emacs --daemon하거나 (예 :로 시작 ) (server-start)init을 호출 해야 emacsclient작동합니다.

조직 모드 링크

기본적으로 org-modepdf-tools에 대해 알지 못합니다. 그러나 MELPA 의 패키지로 제공되는 org-pdfview를 사용하여 pdf 파일에 대한 org 링크를 여는 기능을 추가 할 수 있습니다 . 설치가 완료되면 다음 코드를 사용하여 활성화 할 수 있습니다 .emacs.

(eval-after-load 'org '(require 'org-pdfview))

(add-to-list 'org-file-apps 
             '("\\.pdf\\'" . (lambda (file link)
                                     (org-pdfview-open link))))

이렇게하면을 통해 링크를 추가하기위한 새로운 완료 목표를 제공 C-c C-l, pdfview:특정 페이지에 점프에 대한 지원. 전체 링크는 다음 형식을 사용합니다.

[[pdfview:/path/to/myfile.pdf::42][My file Description]]

인터리브 모드 및 PDF 주석

인터리브 모드 는 "노트가있는 조직 모드 버퍼와 함께 PDF를 나란히 표시"하는 기능을 지원합니다. 이는 pdf에 포함 된 주석을 사용하는 대신 사용할 수 있습니다 (pdf-tools로 수행 할 수 있음). 대신 모든 주석이 포함 된 org-mode 파일이 생성되며,이 주석은 주석이 연결된 pdf의 페이지로 연결됩니다.

그 누스

내 의견에서 언급했듯이 gnusmailcap을 사용하여 첨부 파일을 엽니 다. 이를 구성하려면 .mailcap파일에 다음이 필요 합니다.

application/pdf; emacsclient %s

EWW

EWW는 또한 mailcap을 사용하므로 .mailcap위의 Gnus에 따라 파일을 수정하십시오 .

오텍

AucTeX의 경우 여러 가지 관련 옵션이 있습니다.

  • 뷰어는 변수를 통해 지정됩니다 TeX-view-program-selection.에 대한 항목을 찾고 output-pdf값으로 "PDF 도구"를 선택하십시오.
  • SyncTex를 사용하려면 다음이 필요합니다.
    • 세트 TeX-source-correlate-mode, 대화식 MX 통해 해당 함수를 호출함으로써, 또는 영구적 통해 변수를 설정하여 M-x customize-variable.
    • TeX-source-correlate-method포함 해야 합니다(pdf . synctex)

이것을 사용하면 tex 소스 파일 C-c C-g에서 pdf의 해당 섹션을 표시해야합니다.

ESS

변수 ess-pdf-viewer-pref를로 사용자 정의하십시오 emacsclient.

xdg-open

Linux에서 일부 패키지는 외부 프로그램 xdg-open을 호출하여 pdf 파일을 엽니 다. 시스템 전체 설정을 사용하여 사용할 프로그램을 결정합니다. 이는 시스템 전체의 변경 사항이므로 다른 프로그램에서 설정하면 pdf 문서를 Emacs로 보냅니다. 따라서 Firefox와 같은 작업을 원하지 않으면 이러한 변경을 수행하지 않을 것입니다.

다음을 통해 시스템 전체에서 pdf를 열도록 emacsclient를 설정하려면 xdg-open:

  • ~/.local/share/applications/emacsclient.desktop내용 으로 파일을 작성하십시오 .

[데스크탑 항목]
이름 = Emacs Client
Exec = emacsclient % u
Icon = emacs-icon
유형 = 응용 프로그램
터미널 = 거짓
MimeType = application / pdf;

  • 명령 행에서 다음을 발행하십시오.

xdg-mime default emacsclient.desktop application/pdf

이것이 작동하는지 테스트 할 수 있습니다 -Emacs에서 xdg-open your-document.pdf열어야 your-document.pdf합니다.

w3m

w3m은 먼저 변수를 확인하고 w3m-doc-view-content-types"application / pdf"가 표시되면 doc-view에서 pdf를 엽니 다. 이는 사용자 정의 가능한 변수이므로 사용자 정의 인터페이스를 사용하여 "application / pdf"항목을 제거하십시오.

에 항목이 없으면 w3m-doc-view-content-typesw3m은 w3m-content-type-alist"application / pdf"와 일치하는 항목을 변수 에서 확인합니다 . 읽을 항목을 사용자 정의하십시오.

[INS] [DEL] Type: application/pdf
  Regexp: ( ) Not specified
          (*) String: \.pdf\'
  Viewer: ( ) Not specified
          (*) External viewer:
                Command: emacsclient
                Arguments:
                  [INS] [DEL] file
                  [INS]

find-file대한 외부 호출 대신 emacs 함수 (아마도 비슷한)를 사용할 수도 emacsclient있지만 구문을 파악할 수는 없습니다.


그러나 emacs의 w3m은 여전히 ​​docview를 사용합니다. 그 문제를 해결하는 방법에 대한 조언이 있습니까?
brittAnderson

업데이트 된 답변보기
Tyler

org-modePDF 파일의 특정 주석으로 링크 할 수 있습니까 ?
AlwaysLearning

1
내가 알지 못하는 @AlwaysLearning. 인터리브 모드는 별도의 링크 된 org 모드 파일로 주석을 기록 할 수 있도록 지원합니다. 대답을 업데이트하겠습니다
Tyler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.