क्या मैं DocView के बजाय PDF के लिए PDF-view-mode (PDF-tools से) का उपयोग करने के लिए eww को कॉन्फ़िगर कर सकता हूं?


12

मैं Emacs के अंदर PDF पढ़ने के लिए PDF-tools का उपयोग करता हूं और इसे DocView को बहुत पसंद करता हूं। मैंने अभी देखा कि जब मैं एक पीडीएफ में URL थार बिंदुओं को पीडीएफ में खोलने की कोशिश करता हूं, तो यह पीडीएफ-टूल्स के बजाय पीडीएफ-व्यू-मोड के बजाय डॉक्यू का उपयोग करता है। यह विशेष रूप से कष्टप्रद है क्योंकि DocView PDF प्रदर्शित करने में विफल रहता है! बफर को पीडीएफ-व्यू-मोड में मैन्युअल रूप से स्विच करना फिर सक्सेसफुल दिखाता है। क्या मैं चीजों को कॉन्फ़िगर कर सकता हूं ताकि पहले प्रयास में eww pdf-view-mode का उपयोग करे?


संलग्न लिंक में स्रोत कोड की लाइन 403 पर एक नज़र डालें: bzr.savannah.gnu.org/lh/emacs/trunk/annotate/head:/lisp/net/… यह किस संस्करण के आधार पर एक अलग रेखा पर हो सकता है आप उपयोग कर रहे हैं।
कानून सूची

धन्यवाद, @lawlist, सवाल पूछने के बाद मैंने पाया कि वह वह जगह doc-view-modeथी जहां सेटिंग करके बुलाया गया था (debug-on-entry 'doc-view-mode)
उमर

3
क्या इससे आपके सवाल का जवाब मिलता है? Emacs में pdf-tools (pdf-view-mode) का उपयोग कैसे करें?
टायलर

@ टायलर, मुझे यकीन नहीं है, लेकिन मैं इसकी जांच करूंगा कि यह करता है या नहीं क्योंकि (1) यह सवाल पहले से ही वर्ष 2014 में उत्तर दिया गया था, जैसा कि आपने मेरे द्वारा स्वीकार किए गए उत्तर को नीचे स्क्रॉल करके सत्यापित किया है, (2) यहां तक ​​कि उत्तर आजकल अनावश्यक है क्योंकि Emacs और pdf-tools के अधिक हाल के संस्करणों के साथ मैं जो चाहता था वह बॉक्स से बाहर काम करता है! (इसलिए मैंने कुछ साल पहले टी। वेरॉन द्वारा सुझाए गए कोड को हटा दिया।
उमर

1
@ मुझे लगता है कि वाक्यांश "क्या यह आपके प्रश्न का उत्तर देता है?" जब आप एक प्रश्न को एक डुप्लिकेट के रूप में चिह्नित करते हैं तो स्वचालित रूप से जुड़ जाता है? मैंने इसे हाथ से, वैसे भी नहीं डाला। मैंने इसे एक डुप्लिकेट के रूप में ध्वजांकित किया, क्योंकि लिंक किए गए प्रश्न "एक्स के लिए काम करने के लिए पीडीएफ-टूल्स कैसे प्राप्त करते हैं" फॉर्म के सवालों के विहित उत्तर के रूप में कार्य करता है। बेशक, आपका प्रश्न पूछा गया था और दूसरे प्रश्न से पहले उत्तर दिया गया था, लेकिन मुझे लगता है कि ऐसा करना सामान्य है जब एक व्यापक सामान्य उत्तर एक पुराने, अधिक विशिष्ट प्रश्न को संबोधित करता है।
टायलर

जवाबों:


7

चेतावनी: गंदा काम आगे-पीछे

चूँकि आप " DocView में [pdf-tools] बहुत पसंद करते हैं ", क्या यह मान लेना सुरक्षित है कि सभी pdfs देखने के लिए इसका उपयोग करना स्वीकार्य है?

निम्नलिखित कोड स्निपेट दस्तावेज़ को pdf-view-modeकिसी भी समय दस्तावेज़ doc-viewमें दर्ज किए जाने पर स्विच कर देगा pdf

(defvar tv/prefer-pdf-tools (fboundp 'pdf-view-mode))
(defun tv/start-pdf-tools-if-pdf ()
  (when (and tv/prefer-pdf-tools
             (eq doc-view-doc-type 'pdf))
    (pdf-view-mode)))

(add-hook 'doc-view-mode-hook 'tv/start-pdf-tools-if-pdf)

व्यवहार को t या nil setqके चर tv/prefer-pdf-toolsको सक्षम या अक्षम किया जा सकता है ।


ओह, मुझे याद आया कि doc-view-modeएक हुक था! मैंने कोशिश की eww-display-pdfऔर काम नहीं किया (यकीन है कि क्यों नहीं)। मैं आपके समाधान की कोशिश करूँगा और वापस रिपोर्ट करूँगा।
उमर

बहुत अच्छे धन्यवाद! यह काम करता है (आप कोष्ठक को दूर करने के बाद tv/prefer-pdf-tools, जो एक फ़ंक्शन नहीं है)।
उमर

3

आप अस्थायी रूप eww-display-pdfसे परिभाषा को ओवरराइड करने के लिए एक सलाह का उपयोग कर सकते हैं doc-view-mode। नए nadviceपुस्तकालय के साथ यह उतना ही आसान है:

(advice-add 'eww-display-pdf
            :around (lambda (orig &rest args)
                      (cl-letf (((symbol-function 'doc-view-mode) #'pdf-view-mode))
                        (apply orig args)))
            '((name . eww-display-pdf-tools)))

मूल पर वापस जाने के लिए doc-view-mode, उपयोग करें (advice-remove 'eww-display-pdf 'eww-display-pdf-tools)

मैंने EWW PDF मोड को अनुकूलन योग्य बनाने के लिए Emacs बग 19270 को खोला है


ठंडा! मैंने सलाह देने की कोशिश की कि eww-display-pdfइसे चलाने के लिए pdf-view-mode :afterइसे अपना सामान्य काम किया जाए, लेकिन यह किसी कारण से काम नहीं आया। यह मेरे लिए कभी नहीं हुआ doc-view-modeकि मैं फंक्शन की परिभाषा गूँज सकूँ (शायद इसलिए कि मैं लेक्सिकल स्कोप का अभ्यस्त हूँ!)।
उमर

बग रिपोर्ट खोलने के लिए भी धन्यवाद। मुझे लगता है कि बहुत से लोग वास्तव में अपने प्रथागत बाहरी पीडीएफ दर्शक में पीडीएफ खोलने के लिए eww पसंद करेंगे।
उमर

0

मैं emacs-28 का उपयोग करता हूं, eww पीडीएफ को खोलने के लिए मेल का उपयोग करता है, इसे पीडीएफ़-टूल्स के साथ खोलें।

(add-to-list 'mailcap-user-mime-data
               '((type . "application/pdf")
                 (viewer . pdf-view-mode)))

देखें Emacs - सहायता - पीडीएफ दर्शक अधिक जानकारी के लिए।


क्या आप भविष्य से हैं? मुझे नहीं लगता कि Emacs 27 को अभी तक रिलीज़ किया गया है (यह प्री-रिलीज़ बिल्ड मैं उपयोग कर रहा हूं), अकेले 28 को जाने दो।
उमर

मैं emacs के विकास संस्करण के साथ आर्कलिनक्स का उपयोग करता हूं: aur / emacs-git 28.0.50.139945-1 [स्थापित: 28.0.50.140001-1] (74) (1.07) GNU Emacs। विकास मास्टर शाखा।
ज़िनफा तांग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.