2012-01-12 12 views
27

ओआरजी मोड में जब मैं पीडीएफ फ़ाइल में एक लिंक खोलने का प्रयास करता हूं तो कुछ भी नहीं होता है। साथ ही, जब मैं सी-सी सी-ई डी लाटेक्स के रूप में निर्यात करने और पीडीएफ को संसाधित करने और पीडीएफ खोलने के लिए उत्पन्न होता है लेकिन खोला नहीं जाता है। मैं Evince में संगठन मोड ओपन पीडीएफ फाइल कैसे बना सकता हूँ?मैं एवेन्स में ओआरजी मोड ओपन पीडीएफ फाइल कैसे बना सकता हूं?

मैं उबंटू 11.10 में जीएनयू एमएक्स 23.3.1 और इवेंस 3.2.1 में ऑर्ग-मोड 7.6 का उपयोग कर रहा हूं।

उत्तर

9

एक अन्य संभावित निर्माण है कि इस के लिए काम कर सकता था किया जाएगा:

एक अन्य विकल्प है, जो भद्दा लगता है, बजाय मूलभूत मूल्यों को देखने और जो कुछ उन्हें सेट लेकिन पीडीएफ फाइलों के लिए मूल्य बदलने के लिए है add-hook के बजाय eval-after-load का उपयोग करें। यह स्टार्टअप पर केवल एक बार मूल्य निर्धारित करेगा, आपको प्रविष्टियों को जोड़ने या नहीं होने की चिंता करने की आवश्यकता नहीं होगी (जब तक आप नियमित रूप से पुनः लोड नहीं करते)।

setcdr के साथ संयोजन करें और आप सूची से हटने से बच सकते हैं और फिर पुनः जोड़ सकते हैं, if जोड़ें और आप सुनिश्चित करेंगे कि आप या तो मूल्य जोड़ या बदल सकते हैं। यदि केवल उन मानों के लिए आवश्यक है जो डिफ़ॉल्ट रूप से सूची में नहीं हैं, तो यह सुनिश्चित करने के लिए कि आप लाइन के नीचे कहीं भी संघर्ष के साथ समाप्त नहीं होते हैं। स्पष्टीकरण

eval-after-load के लिए

(eval-after-load "org" 
    '(progn 
    ;; .txt files aren't in the list initially, but in case that changes 
    ;; in a future version of org, use if to avoid errors 
    (if (assoc "\\.txt\\'" org-file-apps) 
     (setcdr (assoc "\\.txt\\'" org-file-apps) "notepad.exe %s") 
     (add-to-list 'org-file-apps '("\\.txt\\'" . "notepad.exe %s") t)) 
    ;; Change .pdf association directly within the alist 
    (setcdr (assoc "\\.pdf\\'" org-file-apps) "evince %s"))) 

संपादित केवल ब्लॉक जब (require 'org) कहा जाता है मूल्यांकन करता है। अगर संगठन पहले ही लोड हो चुका है तो यह तुरंत मूल्यांकन करेगा (मैंने गलती से सोचा था कि प्रत्येक बार पुस्तकालय लोड होने पर यह दौड़ता था, लेकिन ऐसा लगता है कि यह पहली बार होता है)। add-hook और eval-after-load के बीच का अंतर here समझाया गया है।

org-file-apps के बाद से एक defcustom है यह अगर तुम (अपने दूसरे (भद्दा है) समाधान में के रूप में डिफ़ॉल्ट मान सहित) खरोंच से सूची का निर्माण, अगर आप उन्हें सेट मूल्यों में परिवर्तन नहीं होगा पहले ऑर्ग भरी हुई है बस setq आप कर सकते थे में आपका init.el और सबकुछ काम करेगा। इसका मतलब यह भी है कि यह आपके परिवर्तनों को ओवरराइट नहीं करेगा।

पीडीएफ एंट्री में (if (assoc जोड़ना कुछ भी नुकसान नहीं पहुंचाएगा, यह केवल यह सुनिश्चित करेगा कि यदि पीडीएफ को डिफ़ॉल्ट org-file-apps से हटा दिया गया है, तो यह अभी भी जोड़ा जाएगा। पीडीएफ हटा दिए जाने पर एकमात्र समाधान विफल नहीं होगा, यह आपका दूसरा है।अन्य सभी मानते हैं कि प्रवेश एक रूप में या किसी अन्य रूप में मौजूद है।

+0

मैं कभी-कभी सत्र में कई बार बफर के लिए ऑर्ग-मोड लोड करता हूं। क्या यह इस समाधान को प्रभावित करता है? या यह सिर्फ अगर मैं 'org-reload' का उपयोग करता हूं? साथ ही, क्या मैं एक '(अगर (भविष्य में सबूत बनाने के लिए पीडीएफएस के लिए assoc' संरचना' जोड़ सकता हूं? –

+0

@NN ने उस विवरण में कुछ विवरण जोड़े जो उस प्रश्न का उत्तर देना चाहिए। –

+0

आपके विस्तार के लिए धन्यवाद। यह समाधान अब तक का सबसे सुरुचिपूर्ण है । –

21
M-x customize-variable [RET] org-file-apps [RET] 

अगर संगठन आपके सिस्टम डिफ़ॉल्ट का उपयोग करता है, तो आपको अपनी ./mailcap फ़ाइल को संपादित करना होगा।

इस लाइन जोड़ने का प्रयास करें:

application/pdf; /usr/bin/evince %s 
+0

क्या कोई लाइन है जो मैं 'एम-एक्स कस्टमाइज़-वेरिएबल [आरईटी] ऑर्ग-फाइल-ऐप [आरईटी]' का उपयोग करने के बजाय अपने .emacs में जोड़ सकता हूं? –

+0

'org-file-apps' में 'find-variable' के अनुसार' ("\\। Pdf \\ '" डिफ़ॉल्ट) है। –

+0

आप शायद '.qq org-file-apps ...)' के आधार पर अपने .emacs में कुछ जोड़ सकते हैं, लेकिन मुझे नहीं लगता कि आप अपनी आवश्यकताओं के अनुसार चर सेट क्यों नहीं करेंगे। यदि आप 'एफ 1 वी ओआरजी-फाइल-ऐप' का प्रयास करते हैं, तो पहला उदाहरण यह है कि यह उदाहरण है: "उदाहरण: (" पीडीएफ "।" Evince% s ") evince के साथ पीडीएफ खोलने के लिए। तो मदद फ़ाइल पर एक नज़र डालें और इसे विकसित करने की कोशिश करें। – certainly

7

आप https://stackoverflow.com/a/3985552/789593 को एक निर्माण समान का उपयोग लेकिन पीडीएफ फाइलों और जताना करने के लिए इसे अनुकूलित कर सकते हैं। आप क्या करना चाहते हैं सूची org-file-apps को बदलने के लिए है। यह आपके .emacs के लिए निम्न जोड़कर किया जा सकता है:

;; PDFs visited in Org-mode are opened in Evince (and not in the default choice) https://stackoverflow.com/a/8836108/789593 
(add-hook 'org-mode-hook 
     '(lambda() 
     (delete '("\\.pdf\\'" . default) org-file-apps) 
     (add-to-list 'org-file-apps '("\\.pdf\\'" . "evince %s")))) 

यह पीडीएफ फाइलों के लिए डिफ़ॉल्ट सेटिंग हटा कर उन्हें जताना में खोलने (और सब कुछ किसी और org-file-apps में शामिल बनाए रखने) होगा। मैं elisp के लिए नया हूँ इसलिए मुझे नहीं पता कि यह समाधान मजबूत है, लेकिन यह मेरे लिए काम करता है और नीचे दिए गए की तुलना में अधिक सुरुचिपूर्ण लगता है।

;; PDFs visited in Org-mode are opened in Evince (and other file extensions are handled according to the defaults) 
(add-hook 'org-mode-hook 
     '(lambda() 
     (setq org-file-apps 
      '((auto-mode . emacs) 
      ("\\.mm\\'" . default) 
      ("\\.x?html?\\'" . default) 
      ("\\.pdf\\'" . "evince %s"))))) 
+0

एक अच्छा समाधान की तरह लगता है! – certainly

+0

@ निश्चित रूप से मैंने समाधान संपादित किया है क्योंकि 'एपेंड' ने प्रत्येक बार ऑर्ग-मोड लागू किया था, जो चर को बाढ़ आया था। शायद मैं 'एड-टू-लिस्ट' के साथ कुछ और सुरुचिपूर्ण कर सकता हूं। –

+0

@ निश्चित रूप से मैंने कुछ जोड़ा है जो अधिक सुरुचिपूर्ण हो सकता है। –

संबंधित मुद्दे