Emacs में pdf-tools (pdf-view-mode) का उपयोग कैसे करें?


23

पीडीएफ-टूल्स में पीडीएफ-व्यू-मोड शामिल है जो डॉक्स-व्यू-मोड (प्रश्न के अंत में देखें) में मौजूद नहीं है।

क्या पीडीएफ-व्यू-मोड को आम तौर पर डॉक्टर-व्यू-मोड के प्रतिस्थापन के रूप में इस्तेमाल किया जा सकता है, या क्या इसे टूल द्वारा "टूल" होना चाहिए?

या तो मामले में, क्या gnus, eww और orgmode में pdf-tools का उपयोग करने के लिए emacs स्रोत को संपादित करना आवश्यक है या उनकी सिस्टम-वाइड सेटिंग्स हैं जिन्हें नियोजित किया जा सकता है?

--- सुविधा के लिए यहां पीडीएफ-टूल्स की विशेषताएं; देख GitHub साइट जानकारी के लिए ---

  1. डॉक्टर-दृश्य की तुलना में तेजी से लगता है
  2. संकल्प आम तौर पर बेहतर होने के बाद से पीएनजी के रूप में प्रदान नहीं किया जाता है
  3. अच्छी खोज, और यहां तक ​​कि एक वाक्यांश के सभी घटनाओं के लिए खोज कर सकते हैं
  4. पाठ एनोटेशन, और हाइलाइटिंग, रेखांकित, और जैसे जोड़ सकते हैं
  5. Pdf भागों के लिए imenus बना सकते हैं
  6. एक "आभासी" पीडीएफ के रूप में कई pdfs का इलाज कर सकते हैं
  7. लेटेक्स के साथ लेटेक्स स्रोत और पीडीएफ़ को एक साथ देखने के लिए एकीकृत कर सकता है और समकक्ष स्थानों पर एक से दूसरे में कूद सकता है (जैसे \section{A section}कि एलएटीएक्स में चयन करें और उस अनुभाग को पीडीएफ में मिला।

संबंधित चर्चा के लिए यहां देखें जिसमें आपके प्रश्नों का उत्तर शामिल है।
tmalsburg

Gnus एक विशेष मामला हो सकता है? देखें: lists.gnu.org/archive/html/help-gnu-emacs/2015-02/msg00438.html
ब्रायन जेड

आपको अपने प्रश्न को खतरनाक 'सर्वोत्तम प्रथाओं' से दूर करने की आवश्यकता हो सकती है, जिसे कुछ लोग मानते हैं कि उत्तर मुख्य रूप से राय आधारित होंगे। मुझे प्रतीत होता है कि ग्नस यहाँ एक विशेष मामला है, और आपको .mailcap के लिए उपयुक्त विन्यास जोड़ना होगा। अगर आपके घर जाने से पहले आपका प्रश्न बंद नहीं हुआ है, तो मैं आपके लिए अपना विन्यास खोद लूंगा।
टायलर

1
Gnus मेलकैप का उपयोग यह पता लगाने के लिए करता है कि किन एप्लिकेशन के साथ अटैचमेंट को खोलना है। यदि आपके पास पीडीएफ-टूल्स के साथ पीडीएफ फाइल खोलने के लिए Emacs कॉन्फ़िगर है, तो आपको लाइन application/pdf; emacsclient %sको जोड़ने .mailcapऔर Emacs एडिट-सर्वर को शुरू करने की आवश्यकता है: Emacs को इनवाइट करें emacs --daemon, या (server-start)अपने .emacs में जोड़ें ।
टायलर

धन्यवाद। वह काम करता है, और उसके बाद यह काम करता है org(set 'org-file-apps '((auto-mode . emacs) ... ("\\.pdf\\'" . default)))
brittAnderson

जवाबों:


31

जब आप इंस्टॉल करते हैं तो 'स्वचालित रूप से' पर स्विच docviewकरना । एक बार जब आप इस किया है, किसी भी समय Emacs एक PDF खोलने की कोशिश करता है Emacs में , इसका इस्तेमाल होगा । हालांकि, कुछ पैकेज ऑपरेटिंग सिस्टम को कॉल करेंगे, या एमएसीएस के भीतर अलग-अलग कॉन्फ़िगरेशन का उपयोग करेंगे, यह तय करने के लिए कि क्या उन्हें पीडीएफ खोलने के लिए एमएसीएस या किसी अन्य प्रोग्राम का उपयोग करना चाहिए। इसलिए पीडीएफ-टूल्स का उपयोग करने के लिए सभी एमएसीएस पैकेज प्राप्त करने के लिए कुछ 'टूल-बाय-टूल' कॉन्फ़िगरेशन की आवश्यकता होती है।pdf-toolspdf-toolspdf-tools

यदि आप चाहते हैं कि आपके pdfs Emacs के समान उदाहरण में खोले जाएं, तो आपको इसे डेमॉन मोड में चलाने की आवश्यकता है (यानी, इसे शुरू emacs --daemonकरें), या (server-start)अपने इनिट में कॉल करें ताकि emacsclientकाम हो सके।

संगठन मोड लिंक

आउट ऑफ द बॉक्स, org-modeपीडीएफ-टूल्स के बारे में नहीं जानता। हालांकि, आप ऑर्ग लिंक को पीडीएफ फाइलों को ओआरजी-पीडीएफव्यू के साथ खोलने के लिए समर्थन जोड़ सकते हैं , जो एमईएलपीए पर एक पैकेज के रूप में उपलब्ध है। एक बार इंस्टॉल हो जाने के बाद, आप इसे अपने कोड में निम्न के साथ सक्रिय कर सकते हैं .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]]

इंटरलीव मोड और पीडीएफ एनोटेशन

इंटरलीव मोड "आपके नोट्स के साथ ऑर्ग मोड बफर के साथ आपके पीडीएफ पक्ष को प्रस्तुत करने के लिए समर्थन प्रदान करता है।" यह एक पीडीएफ में एम्बेड किए गए एनोटेशन का उपयोग करने का एक विकल्प है (जिसे आप पीडीएफ-टूल्स के साथ कर सकते हैं)। इसके बजाय, आप अपने सभी एनोटेशन के साथ एक ऑर्ग-मोड फ़ाइल के साथ समाप्त होते हैं, जो कि एनोटेशन से जुड़े पीडीएफ में पेज से लिंक होता है।

gnus

जैसा कि मैंने अपनी टिप्पणी में उल्लेख किया है, gnusसंलग्नक खोलने के लिए मेलकैप का उपयोग करता है। इसे कॉन्फ़िगर करने के लिए, आपको अपनी .mailcapफ़ाइल में निम्नलिखित की आवश्यकता होगी :

application/pdf; emacsclient %s

Eww

EWW मेलकैप का भी उपयोग करता है, इसलिए .mailcapऊपर Gnus के अनुसार अपनी फ़ाइल को संशोधित करें ।

AucTeX

AucTeX के लिए, कई प्रासंगिक विकल्प हैं:

  • दर्शकों को चर के माध्यम से निर्दिष्ट किया जाता है TeX-view-program-selection: प्रविष्टि ढूंढें output-pdfऔर मूल्य के लिए "पीडीएफ उपकरण" चुनें।
  • SyncTex का उपयोग करने के लिए, आपको निम्न करने की आवश्यकता है:
    • सेट TeX-source-correlate-modeया तो अंतःक्रियात्मक रूप से उस फ़ंक्शन को Mx के माध्यम से कॉल करके, या चर को स्थायी रूप से सेट करके M-x customize-variable
    • सुनिश्चित करें कि TeX-source-correlate-methodशामिल हैं(pdf . synctex)

इसके स्थान पर, आपके टेक्स स्रोत फ़ाइल C-c C-gसे पीडीएफ का संबंधित भाग प्रदर्शित होना चाहिए।

ईएसएस

चर ess-pdf-viewer-prefको अनुकूलित करें emacsclient

XDG खुले

लिनक्स पर, कुछ पैकेज xdg-openपीडीएफ फाइलों को खोलने के लिए बाहरी प्रोग्राम को कॉल करेंगे । यह आपके सिस्टम-वाइड सेटिंग्स का उपयोग करके निर्धारित करेगा कि किस प्रोग्राम का उपयोग करना है। यह एक सिस्टम-व्यापी परिवर्तन है, इसलिए जब आप इसे सेट करेंगे, तो अन्य प्रोग्राम Emacs को पीडीएफ दस्तावेज़ भेजेंगे। इसलिए यदि आप ऐसा नहीं करना चाहते हैं, जैसे, फ़ायरफ़ॉक्स, ऐसा करने के लिए, आप इन परिवर्तनों को नहीं करना चाहेंगे।

Pdfs को सिस्टम-वाइड खोलने के लिए emacsclient सेट करने के लिए xdg-open:

  • ~/.local/share/applications/emacsclient.desktopसामग्री के साथ एक फ़ाइल बनाएँ :

[डेस्कटॉप प्रविष्टि]
नाम = Emacs क्लाइंट
Exec = emacsclient% u
Icon = emacs-icon
प्रकार = अनुप्रयोग
टर्मिनल = गलत
MimeType = application / pdf;

  • कमांड लाइन से, जारी करें:

xdg-mime default emacsclient.desktop application/pdf

आप परीक्षण कर सकते हैं कि यह किसके साथ काम करता है xdg-open your-document.pdf- इसे your-document.pdfEmacs में खोलना चाहिए ।

w3m

w3m सबसे पहले वेरिएबल को चेक करता है w3m-doc-view-content-types, और अगर यह वहां "एप्लिकेशन / पीडीएफ" देखता है, तो यह doc-view में pdfs खोलेगा। यह एक अनुकूलन चर है, इसलिए अनुकूलन इंटरफ़ेस का उपयोग करके "एप्लिकेशन / पीडीएफ" प्रविष्टि को हटा दें।

एक प्रविष्टि के बिना w3m-doc-view-content-types, w3m अगली w3m-content-type-alistप्रविष्टियों के लिए चर की जांच करता है जो "एप्लिकेशन / पीडीएफ" से मेल खाते हैं। पढ़ने के लिए प्रविष्टि कस्टमाइज़ करें

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

आप find-fileबाह्य कॉल के बजाय एक इमैक फंक्शन (संभवतः या समान) का उपयोग कर सकते हैं emacsclient, लेकिन मैं उसके लिए वाक्य रचना का पता नहीं लगा सकता।


हालांकि emacs में w3m अभी भी docview का उपयोग करता है। किसी भी सलाह कि कैसे एक को ठीक करने के लिए?
ब्रिटनर्सन

अद्यतन उत्तर देखें
टायलर

क्या मैं org-modeपीडीएफ फाइल में एक विशेष एनोटेशन से लिंक कर सकता हूं ?
AlwaysLearning

1
@AlwaysLearning नहीं है कि मैं के बारे में पता कर रहा हूँ। इंटरलीव मोड एक अलग, लिंक्ड, ऑर्ग-मोड फ़ाइल में रिकॉर्डिंग एनोटेशन के लिए समर्थन प्रदान करता है। मैं उत्तर को अपडेट करूंगा
Tyler
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.