ऑर्ग-मोड फ़ाइल में bibtex फ़ाइल लोड हो रही है


16

मैं org-modeलगभग सब कुछ करने के लिए उपयोग करने की कोशिश कर रहा हूं । अपनी वैज्ञानिक लेखन गतिविधि में, मैं एक .orgफ़ाइल में पूरे पेपर को स्केच करना चाहूंगा और फिर लाटेक्स में निर्यात करूंगा । मैं .bibbibtex फ़ाइल को लोड नहीं करना चाहता init.elक्योंकि मैं कई लोगों के साथ कर सकता था। अभी के लिए, मैंने इसे अपनी .orgफ़ाइल के शीर्ष पर जोड़ा है :

#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC

लेकिन मुझे इसे हर बार मैन्युअल रूप से निष्पादित करना होगा। क्या इसे स्वचालित बनाने का कोई तरीका है? इष्टतम यह होगा .orgकि प्रत्येक फ़ाइल को एमएसीएस कहते हुए शुरुआत में निर्देश दिया जाए: "ठीक है, अब आपको इस .bib फ़ाइल को लोड करना चाहिए "। कोई संकेत? धन्यवाद।


एक फ़ाइल स्थानीय चर चाल नहीं होगा? जैसेM-x add-file-local-variable
ओलफ बी

जवाब के लिए धन्यवाद। दुर्भाग्य से, यह वह नहीं है जिसकी मुझे तलाश है। इस तरह, हर बार जब मैं फ़ाइल को लोड करता हूं तो मुझे कमांड टाइप करने की आवश्यकता होती है। कुछ लेट गया #+STARTUP: do this
पेट्रोक्स

कौन सी आज्ञा? आपको केवल एक बार फ़ाइल स्थानीय चर सेट करना होगा।
ओलाफ बी

तुम सही थे! add-file-local-variable-prop-lineमैं का उपयोग कर # -*- reftex-default-bibliography: ("./references.bib"); -*-फ़ाइल की शुरुआत में लाइन उत्पन्न कर सकता है ।
पेट्रोक्स

जवाबों:


19

निम्नलिखित की तरह एक पंक्ति जोड़ना यह बताने के लिए पर्याप्त है कि org-modeकिस .bibफ़ाइल से परामर्श करें:

#+BIBLIOGRAPHY: refs plain

refsBibTeX फ़ाइल (का नाम है .bibविस्तार छोड़े गए), और plainहै bibliographystyle

फिर आप संदर्भ सम्मिलित करने के org-reftex-citationलिए ( C-c C-x [डिफ़ॉल्ट रूप से बाध्य ) कॉल कर सकते हैं ।

प्रलेखन से:

(org-reftex-citation)

reftex-citationबफर में एक उद्धरण डालने के लिए उपयोग करें । यह एक लाइन की तरह लग रहा है

#+BIBLIOGRAPHY: foo plain option:-d

और इससे प्राप्त होता है कि foo.bibइस दस्तावेज़ के लिए प्रासंगिक ग्रंथ सूची फ़ाइल है। यह तब इस बफर में काम करने के लिए RefTeX के लिए आवश्यक वातावरण स्थापित करता है और बफर reftex-citationमें एक उद्धरण डालने के लिए कहता है।

LaTeX और HTML दोनों के लिए इस तरह के उद्धरणों का निर्यात ox-bibtexतारू कार्तुनन द्वारा योगदान पैकेज द्वारा नियंत्रित किया जाता है ।

जैसा कि अंतिम वाक्य बताता है, आपको जोड़ना होगा

(require 'org)
(require 'ox-bibtex)

आपके init- फाइल में यह सुनिश्चित करने के लिए कि LaTeX को ठीक से निर्यात किया जाए। जब मैंने इसे अपने लिए स्थापित किया, तो मैंने पाया कि मुझे org-latex-pdf-processपीडीएफ निर्यात कार्य करने के लिए अनुकूलित करने की भी आवश्यकता है :

(setq org-latex-pdf-process '("texi2dvi -p -b -V %f"))

परिशिष्ट

यदि आप डिफ़ॉल्ट बाइंडिंग का उपयोग नहीं करना चाहते हैं org-reftex-citation, तो आप इसके लिए एक कस्टम कुंजी बाइंडिंग सेट कर सकते हैं। उदाहरण के लिए, निम्नलिखित org-reftex-citationके लिए डिफ़ॉल्ट बाइंडिंग के लिए बाध्य है reftex-citation:

(define-key org-mode-map (kbd "C-c [") 'org-reftex-citation)

जवाब के लिए धन्यवाद। मैं इसे सही के रूप में चिह्नित नहीं कर रहा हूं क्योंकि मैं # -*- reftex-default-bibliography: ("./references.bib"); -*-समकक्ष का उपयोग देखता हूं , इस लाभ के साथ कि मैं एक नया संदर्भ जोड़ने के लिए सामान्य RefTeX कुंजी बाइंडिंग का उपयोग कर सकता हूं। क्या मैं कुछ भूल रहा हूँ? क्या हम भविष्य के पाठक के लिए इसे और अधिक पूर्ण बनाने के लिए उत्तर को संपादित करेंगे? धन्यवाद।
पेट्रोक्स

@petrux आप सामान्य रूप से उपयोग किए org-reftex-citationजाने वाले समान कुंजी अनुक्रम में बाँध सकते हैं reftex-citation... मेरे उत्तर के अपडेट देखें।
इसका अजायबघर

मुझे लगता है कि इसके साथ कई ग्रंथ सूची फ़ाइलों का उपयोग करने का कोई तरीका नहीं है org-reftex-citation? यदि मैं एक दूसरा जोड़ देता हूं #+BIBLIOGRAPHY, तो पहले वाले को नजरअंदाज कर दिया जाता है।
ब्रायन जेड

@BrianZ मुझे नहीं लगता कि आपके द्वारा वर्णित उपयोग मामला बॉक्स से बाहर समर्थित है। लेकिन शायद यहाँ पर किसी के पास एक हाथ से हल है? अगर मैं तुम होते तो मैं एक नया प्रश्न पूछता (संदर्भ के लिए इस सूत्र की ओर इशारा करते हुए); यह निश्चित रूप से ऐसा लगता है कि दूसरों को भी दिलचस्पी हो सकती है।
इसका अजायबघर

1
मूल्यांकन (setq reftex-default-bibliography '("./a.bib" "./b.bib"))करने के लिए चाल लगता है। तो करता है # -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-, हालांकि यह एक चेतावनी फेंकता है कि इस चर को स्थानीय रूप से परिभाषित नहीं किया जाना चाहिए।
ब्रायन जेड

4

ऐसा लगता है कि ऑक्स-बिबटेक्स नवीनतम ओआरजी पैकेज (8.2.10-34-gc41bbc-elpa) में शामिल नहीं है। इसलिए मैंने इसे ऑनलाइन खोजा और एक बार डाउनलोड करने के लिए निर्देशिका / org / lisp / में डाल दिया। लेकिन मैं निम्नलिखित त्रुटि में भाग गया जब कुछ bibtex शामिल निर्यात करने की कोशिश कर रहा था।

प्रतीक की फ़ंक्शन परिभाषा शून्य है: org-element-सम्मिलन-पहले

फिर मैं 'org-element.el' फ़ाइल की जाँच करता हूँ, निश्चित रूप से ऐसा कोई कार्य पूर्वनिर्धारित नहीं है। लेकिन वहाँ क्यों नहीं है? ओआरजी-तत्व के ऑनलाइन एपीआई दस्तावेज़ ने एक बार में इसका उल्लेख किया था ।

इसलिए मुझे लगता है कि वर्तमान में RefTeX का उपयोग करना असंभव है जिस तरह से दस्तावेज़ का वर्णन करता है जब तक कि आप बीटा संस्करण या किसी अन्य पुराने पर स्विच करने के लिए तैयार नहीं होते हैं। देख

यहां मैं बीटा संस्करण का उपयोग करने का अपना तरीका साझा करता हूं

  1. git clone git://orgmode.org/org-mode.git

  2. फ़ोल्डर को इस पर ले जाएं ~/.emacs.d/और इसे नाम देंorg-beta

  3. संशोधित करें load-path, बीटा संस्करण को अन्य संस्करण छाया दें, और उपयोगकर्ता योगदान निर्देशिका शामिल करें

    (add-to-list 'load-path (expand-file-name "org-beta\\lisp" user-emacs-directory))

    (add-to-list 'load-path (expand-file-name "org-beta\\org-contrib\\lisp" user-emacs-directory))

(वैकल्पिक) आप स्रोत फ़ाइल संकलित करने और डॉक्टर बनाने के लिए कमांड बना सकते हैं

  1. अब आप कर सकते हैं (require 'ox-bibtex)। मैं इस तरह लिखना पसंद करता हूं:(eval-after-load 'org (require 'ox-bibtex))

  2. सही स्थान पर संदर्भ सूची तैयार करने के लिए, #+BIBLIOGRAPHY: your_bib_lib_name plain option:-dऑर्ग फाइल के अंत में कुछ डालें । अधिक विकल्प कृपया मदद दस्तावेज़ को देखेंox-bibtex.el

  3. HTML निर्यात भाग को सही काम करने के लिए, आपको नवीनतम bibtex2html, अर्थात 1.98 की आवश्यकता हो सकती है। इसे स्रोत से बनाने के लिए, इसे गिटब से डाउनलोड करें, और 'README' सहायता दस्तावेज़ में दिए गए निर्देशों का पालन करें।

यदि आप मेरी तरह विंडो का उपयोग कर रहे हैं, तो सभी devel पैकेज के साथ Cygwin64 का उपयोग करें। Cygwin64 का उपयोग करके, bibtex2html की dir को cd और टाइप करें ./configure, वेट फिनिश, फिर टाइप करें, वेट makeफिनिश। अब इस dir में, आपको मिलेगा bib2bib.exe, bibtex2html.exeऔर aux2bib। उन्हें अपने पर्यावरण संस्करण में कुछ dir पर कॉपी करें PATH। इसे bibtex2htmlcmd में टाइप करके टेस्ट करें।

मुझे उपरोक्त कार्य करना है क्योंकि मैं texlive2014 का उपयोग करता हूं। यदि आप एक miktek उपयोगकर्ता हैं, तो bibtex2html 1.95 बस अच्छी तरह से काम कर सकता है, जिसे आसानी से विंडोज इंस्टॉलर के साथ स्थापित किया जा सकता है।

  1. पीडीएफ एक्सपोर्ट पार्ट को सही काम करने के लिए, अपने ऑर्ग-मोड को इनिशियलाइज़ करने के लिए निम्न कोड का उपयोग करें:

    (setq org-latex-pdf-process
          '("xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
            "bibtex %b"
            "xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
            "xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
    

यह 'बाइबटेक्स' हिस्सा है जो काम करता है। मैं लेटेक्स के खनन पैकेज के लिए शेल एस्केप कमांड का उपयोग करता हूं।


यह मुझे लगता है कि आपका उत्तर केवल इस अर्थ में प्रश्न से संबंधित है कि यह ऑर्ग-मोड और ऑक्स-बिबेक्स के बारे में भी है। चूंकि आपका मुद्दा अलग है, इसलिए यदि आप एक अलग प्रश्न खोलते हैं तो सबसे अच्छा है जहां अन्य लक्षित जवाब दे सकते हैं।
पेपरिका

1
मैं इसके जवाब से बस एक पूरक बनाना चाहता हूं। itsjeyd org-reftex-citation के दस्तावेज़ का अनुसरण करने का सुझाव देता है। मैंने किया, और उपरोक्त समस्या आई। यदि अन्य लोग समान स्थिति में हैं, तो मैंने अपनी जाँच यहाँ साझा की।
empenguin

IIRC ऑर्ग-मोड के ELPA पैकेज में फ़ाइलों को शामिल नहीं किया गया है contrib/lisp, जिसमें ऑक्स-बिबेक्स शामिल है। तो आपको स्रोत से ऑर्ग-मोड को स्थापित करना होगा, जिसमें आपके लोड-पथ को contrib/lispकॉपी ox-bibtex.elकरना होगा।
पेपरिका १

1
हाँ। मैं org के बीटा संस्करण को क्लोन करता हूं। अब यह ठीक काम करता है।
एम्पिंगिन

6
@paprika निर्देशिका org-modeप्राप्त करने के लिए स्रोत से इंस्टॉल करने की कोई आवश्यकता नहीं है contrib। जैसा कि यहाँ बताया गया है , ऑर्ग का अपना ELPA आर्काइव है। आपको केवल उस संग्रह को जोड़ने की आवश्यकता है package-archives; तब आप org-plus-contribपैकेज मैनेजर का उपयोग करके इंस्टॉल (और अपडेट) कर सकते हैं। बेशक, यह कहना नहीं है कि आपके द्वारा सुझाया गया दृष्टिकोण काम नहीं करता है; मैं सिर्फ इस चर्चा के दौरान (किसी और के लिए) इस बात का उल्लेख करना चाहता था कि एक और दृष्टिकोण है जिसमें org-modeअलग से अद्यतन करने के लिए ओवरहेड शामिल नहीं है git
itsjeyd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.