Chuyển từ docview
sang pdf-tools
xảy ra 'tự động' khi bạn cài đặt pdf-tools
. Khi bạn đã hoàn thành việc này, bất cứ khi nào Emacs cố gắng mở pdf trong Emacs , nó sẽ sử dụng pdf-tools
. Tuy nhiên, một số gói sẽ gọi hệ điều hành hoặc sử dụng cấu hình khác trong Emacs để quyết định xem chúng nên sử dụng Emacs hay chương trình khác để mở pdf. Vì vậy, cần có một số cấu hình 'tool-by-tool' để có được tất cả các gói Emacs để sử dụng các công cụ pdf.
Nếu bạn muốn pdf của bạn được mở trong cùng phiên bản Emacs, bạn cần để nó chạy ở chế độ daemon (nghĩa là khởi động nó emacs --daemon
) hoặc gọi (server-start)
init của bạn để nó emacsclient
hoạt động.
Liên kết chế độ Org
Ra khỏi hộp, org-mode
không biết về các công cụ pdf. Tuy nhiên, bạn có thể thêm hỗ trợ để mở liên kết org vào tệp pdf bằng org-pdfview , có sẵn dưới dạng gói trên MELPA. Sau khi được cài đặt, bạn có thể kích hoạt nó với đoạn mã sau trong .emacs
:
(eval-after-load 'org '(require 'org-pdfview))
(add-to-list 'org-file-apps
'("\\.pdf\\'" . (lambda (file link)
(org-pdfview-open link))))
Việc làm này sẽ cung cấp một mục tiêu hoàn thành mới cho thêm các liên kết qua C-c C-l
, pdfview:
với sự hỗ trợ cho nhảy vào các trang web cụ thể. Liên kết đầy đủ sử dụng định dạng:
[[pdfview:/path/to/myfile.pdf::42][My file Description]]
Chế độ xen kẽ & chú thích PDF
Chế độ xen kẽ cung cấp hỗ trợ để trình bày "PDF của bạn cạnh nhau với bộ đệm Chế độ Org với ghi chú của bạn." Đây là một thay thế cho việc sử dụng các chú thích được nhúng trong pdf (mà bạn có thể làm với các công cụ pdf). Thay vào đó, bạn kết thúc với một tệp chế độ org với tất cả các chú thích của bạn, liên kết đến trang trong pdf mà các chú thích được liên kết với.
Gnus
Như tôi đã đề cập trong bình luận của mình, gnus
sử dụng mailcap để mở tệp đính kèm. Để cấu hình, bạn cần những thứ sau trong .mailcap
tệp của mình :
application/pdf; emacsclient %s
EWW
EWW cũng sử dụng mailcap, vì vậy hãy sửa đổi .mailcap
tệp của bạn theo Gnus ở trên.
AucTeX
Đối với AucTeX, có một số tùy chọn liên quan:
- người xem được chỉ định thông qua biến
TeX-view-program-selection
: tìm mục nhập output-pdf
và chọn "Công cụ PDF" cho giá trị.
- để sử dụng SyncTex, bạn cần:
- thiết lập
TeX-source-correlate-mode
, tương tác bằng cách gọi hàm đó qua Mx hoặc bằng cách đặt biến vĩnh viễn qua M-x customize-variable
.
- đảm bảo
TeX-source-correlate-method
bao gồm(pdf . synctex)
Với vị trí này, từ tệp nguồn tex của bạn C-c C-g
sẽ hiển thị phần tương ứng của pdf.
ESS
Tùy chỉnh biến ess-pdf-viewer-pref
thành emacsclient
.
mở xdg
Trên Linux, một số gói sẽ gọi chương trình bên ngoài xdg-open
để mở tệp pdf. Điều này sẽ sử dụng các cài đặt toàn hệ thống của bạn để xác định chương trình nào sẽ sử dụng. Đây là một thay đổi toàn hệ thống, vì vậy các chương trình khác sẽ gửi tài liệu pdf đến Emacs khi bạn thiết lập điều này. Vì vậy, nếu bạn không muốn, ví dụ, Firefox, để làm điều này, bạn sẽ không muốn thực hiện những thay đổi này.
Để đặt emacsclient để mở pdf toàn hệ thống thông qua xdg-open
:
- tạo một tập tin
~/.local/share/applications/emacsclient.desktop
với nội dung:
[Mục trên máy tính để bàn]
Tên = Emacs Client
Exec = emacsclient% u
Icon = emacs-icon
Type = Application
Terminal = false
MimeType = application / pdf;
xdg-mime default emacsclient.desktop application/pdf
Bạn có thể kiểm tra xem cái này có hoạt động không xdg-open your-document.pdf
- nó sẽ mở your-document.pdf
trong Emacs.
w3m
Đầu tiên w3m kiểm tra biến w3m-doc-view-content-types
và nếu thấy "application / pdf" ở đó, nó sẽ mở pdf trong chế độ xem doc. Đây là một biến có thể tùy chỉnh, vì vậy hãy xóa mục "application / pdf" bằng giao diện tùy chỉnh.
Không có mục nhập w3m-doc-view-content-types
, w3m tiếp theo sẽ kiểm tra biến w3m-content-type-alist
cho các mục khớp với "application / pdf". Tùy chỉnh mục để đọc
[INS] [DEL] Type: application/pdf
Regexp: ( ) Not specified
(*) String: \.pdf\'
Viewer: ( ) Not specified
(*) External viewer:
Command: emacsclient
Arguments:
[INS] [DEL] file
[INS]
Bạn cũng có thể sử dụng hàm emacs (có lẽ find-file
hoặc tương tự), thay vì một cuộc gọi bên ngoài emacsclient
, nhưng tôi không thể tìm ra cú pháp cho điều đó.