Org- মোড ফাইলে বিবেটেক্স ফাইল লোড হচ্ছে


16

আমি org-modeপ্রায় সব কিছু করার জন্য ব্যবহার করার চেষ্টা করছি । আমার বৈজ্ঞানিক লেখার ক্রিয়াকলাপে, আমি একটি .orgফাইলের পুরো কাগজটি স্কেচ করতে এবং তারপরে লটেক্সে রফতানি করতে চাই। আমার একাধিক .bibফাইল 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-lineI টি ব্যবহার করে # -*- reftex-default-bibliography: ("./references.bib"); -*-ফাইলের শুরুতে লাইন তৈরি করা যায় ।
পেট্রাক্স

উত্তর:


19

নিম্নলিখিত ফাইলের মতো একটি লাইন যুক্ত করা org-modeকোন .bibফাইলের সাথে পরামর্শ করতে হবে তা যথেষ্ট :

#+BIBLIOGRAPHY: refs plain

refsবিবিটেক্স ফাইলের নাম ( .bibএক্সটেনশন বাদ দেওয়া) এবং plainএটি bibliographystyle

এরপরে উল্লেখগুলি সন্নিবেশ করতে আপনি কল করতে পারেন org-reftex-citation( C-c C-x [ডিফল্টরূপে আবদ্ধ )

ডকুমেন্টেশন থেকে:

(org-reftex-citation)

reftex-citationবাফারে একটি উদ্ধৃতি সন্নিবেশ করানোর জন্য ব্যবহার করুন । এটি একটি লাইনের মতো দেখায়

#+BIBLIOGRAPHY: foo plain option:-d

এবং এটি থেকে উদ্ভূত যা foo.bibএই নথির জন্য প্রাসঙ্গিক গ্রন্থপঞ্জি ফাইল। এরপরে এটি রেফটেক্সের জন্য এই বাফারে কাজ করার জন্য প্রয়োজনীয় পরিবেশ ইনস্টল করে এবং বাফারে reftex-citationএকটি উদ্ধৃতি সন্নিবেশ করানোর জন্য কল করে।

লেটেক্স এবং এইচটিএমএল উভয় ক্ষেত্রে এই জাতীয় উদ্ধৃতি রফতানি ox-bibtexকরা তারু কার্ট্টুনেন দ্বারা অবদান প্যাকেজ দ্বারা পরিচালিত ।

শেষ বাক্যটি যেমন বোঝায়, আপনাকে যুক্ত করতে হবে

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

আপনার সূচনা-ফাইলটিতে রেফারেন্সগুলি ল্যাটেক্সে সঠিকভাবে রফতানি করা হয়েছে তা নিশ্চিত করতে। যখন আমি এটি নিজের জন্য সেট আপ করি, আমি দেখতে পেলাম যে 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"); -*-একটি নতুন রেফারেন্স যুক্ত করতে সাধারণ রেফটেক্স কী বাইন্ডিংটি ব্যবহার করতে পারি সেই সুবিধার সাথে আমি সমমানের ব্যবহার দেখছি । আমি কিছু অনুপস্থিত করছি? ভবিষ্যতের যে কোনও পাঠকের জন্য এটি আরও সম্পূর্ণ করার জন্য আমরা কি উত্তরটি সম্পাদনা করব? ধন্যবাদ।
পেট্রাক্স

@ পেট্রাক্স আপনি কেবল org-reftex-citationএকই কী ক্রমিকায় আবদ্ধ হতে পারেন reftex-citationসাধারণত ব্যবহৃত হয় ... আমার উত্তরের আপডেটগুলি দেখুন।
itjeyd

আমি এটি নিয়ে একাধিক গ্রন্থলিপি ফাইল ব্যবহার করার কোন উপায় নেই org-reftex-citation? আমি যদি একটি সেকেন্ড যোগ করি তবে #+BIBLIOGRAPHYপ্রথমটিকে এড়িয়ে যাওয়া বলে মনে হচ্ছে।
ব্রায়ান জেড

@ ব্রায়ানজেড আমি মনে করি না যে আপনি বর্ণিত ব্যবহারের কেসটি বাক্সের বাইরে সমর্থনযোগ্য। তবে এখানে কারও কারও হাত ঘূর্ণিত সমাধান আছে? আমি যদি আপনি থাকতাম তবে আমি একটি নতুন প্রশ্ন জিজ্ঞাসা করতাম (রেফারেন্সের জন্য এই থ্রেডের দিকে ইঙ্গিত করে); এটি অবশ্যই এমন কিছু মনে হয় যা অন্যরাও এতে আগ্রহী।
itjeyd

1
মূল্যায়ন করা (setq reftex-default-bibliography '("./a.bib" "./b.bib"))কৌশলটি মনে হচ্ছে। সুতরাং # -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-, যদিও এটি একটি সতর্কতা দেয় যে এই ভেরিয়েবলটি স্থানীয়ভাবে সংজ্ঞায়িত করা উচিত নয়।
ব্রায়ান জেড

4

দেখে মনে হচ্ছে অক্স-বিবেটেক্স সর্বশেষতম org প্যাকেজটিতে অন্তর্ভুক্ত নেই (8.2.10-34-gc41bbc-elpa)। সুতরাং আমি এটি অনলাইনে অনুসন্ধান করেছি এবং একবার ডাউনলোড করে / ডিরেক্টরি / লিস্প / ডিরেক্টরিতে রেখেছি। কিছু বাইবেটেক্স জড়িত রফতানি করার চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটির মধ্যে পড়েছিলাম।

প্রতীকটির ফাংশন সংজ্ঞাটি বাতিল: org-عنصر-সন্নিবেশ-আগে before

তারপরে আমি 'org-element.el' ফাইলটি পরীক্ষা করে দেখি, অবশ্যই এর আগে কোনও ফাংশন পূর্বনির্ধারিত নেই। তবে কেন নেই? Org- উপাদানটির অনলাইন এপিআই ডকুমেন্টটি একবারে এটি উল্লেখ করেছে ।

সুতরাং আমি অনুমান করি যে বর্তমানে আপনি বিটা সংস্করণ বা কিছু পুরানো সংস্করণে স্যুইচ না করতে চাইলে নথির যেভাবে ডকুমেন্ট বর্ণনা করেছে সেভাবেই রেফটেক্স ব্যবহার করা অসম্ভব। দেখা

এখানে আমি বিটা সংস্করণটি ব্যবহার করার উপায়টি শেয়ার করি

  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))

(alচ্ছিক) আপনি উত্স ফাইলটি সংকলন করতে এবং ডকটি তৈরি করতে মেক কমান্ডটি ব্যবহার করতে পারেন

  1. এখন আপনি পারেন (require 'ox-bibtex)। আমি এটি লিখতে পছন্দ:(eval-after-load 'org (require 'ox-bibtex))

  2. সঠিক জায়গায় রেফারেন্স তালিকা তৈরি করতে #+BIBLIOGRAPHY: your_bib_lib_name plain option:-d, org ফাইলের শেষে কিছু রাখুন । আরও বিকল্প দয়া করে এর মধ্যে সহায়তা দস্তাবেজটি দেখুনox-bibtex.el

  3. এইচটিএমএল রফতানির অংশটি সঠিকভাবে কাজ করতে আপনার সর্বশেষ বিবিটেক্স 2 এইচটিএমএল প্রয়োজন হতে পারে, অর্থাত্ 1.98। এটি উত্স থেকে তৈরি করতে, গিথুব থেকে ডাউনলোড করুন এবং 'README' সহায়তা নথির নির্দেশ অনুসরণ করুন।

আপনি যদি আমার মতো উইন্ডোজ ব্যবহার করে থাকেন তবে সমস্ত ডিভেল প্যাকেজ সহ Cygwin64 ব্যবহার করুন। সাইগুইন 64৪৪ ব্যবহার করে বিডেক্সএক্সএইচটিএমএল এর সিডিতে সিডি করুন এবং টাইপ করুন ./configure, ফিনিস ফিনিস দিন, তারপরে টাইপ করুন make, ওয়েট ফিনিশটি লিখুন । এখন এই দির, আপনি পাবেন bib2bib.exe, bibtex2html.exeএবং aux2bib। এগুলি আপনার পরিবেশের ভারে কিছু দির কাছে অনুলিপি করুন PATHbibtex2htmlসেমিডিতে টাইপ করে এটি পরীক্ষা করুন ।

আমাকে উপরের কাজটি করতে হবে কারণ আমি টেক্সলাইভ2014 ব্যবহার করি। আপনি যদি মিকটেক ব্যবহারকারী হন তবে বিবটেক্স ২ এইচটিএমএল ১.৯৯ খুব ভালভাবে কাজ করতে পারে যা উইন্ডোজ ইনস্টলার সহ সহজেই ইনস্টল করা যায়।

  1. পিডিএফ রফতানির অংশটি সঠিকভাবে কাজ করতে আপনার org- মোডটি আরম্ভ করার জন্য নিম্নলিখিত কোডটি ব্যবহার করুন:

    (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
আমি কেবল ইজিজেড দ্বারা উত্তরের পরিপূরক করতে চাই। ইটারজেড org-reftex-citation এর ডকুমেন্ট অনুসরণ করার পরামর্শ দেয়। আমি করেছি, এবং উপরের সমস্যা পেয়েছি। অন্য লোকেরাও একই পরিস্থিতিতে পড়লে আমি আমার তদন্ত এখানে ভাগ করে নিই।
এমপেনগুইন

contrib/lispIIRC org- মোডের ELPA প্যাকেজটিতে অন্তর্ভুক্ত ফাইলগুলি অন্তর্ভুক্ত নয় , যার মধ্যে অক্স-বিবটেক্স অন্তর্ভুক্ত রয়েছে। আপনি উৎস থেকে সংস্থা-মোড ইনস্টল করতে হবে চাই তাই সহ contrib/lisp বা শুধু কপি ox-bibtex.elআপনার লোড পথের দিকে।
পেপ্রিকা

1
হ্যাঁ. আমি org এর বিটা সংস্করণটি ক্লোন করেছি। এখন এটি ভাল কাজ করে।
এমপেনগুইন

6
@ পাপ্রিকা ডিরেক্টরি org-modeপাওয়ার জন্য উত্স থেকে ইনস্টল করার দরকার নেই contribএখানে যেমন বর্ণনা করা হয়েছে , অর্গের নিজস্ব ইএলপিএ সংরক্ষণাগার রয়েছে। আপনাকে যা করতে হবে তা হ'ল সেই সংরক্ষণাগারটিতে যুক্ত করা package-archives; এরপরে আপনি org-plus-contribপ্যাকেজ ম্যানেজারটি ব্যবহার করে ইনস্টল করতে পারেন (এবং আপডেট করুন) । অবশ্যই এটি বলার অপেক্ষা রাখে না যে আপনার প্রস্তাবিত পদ্ধতির কাজ করে না; আমি কেবল উল্লেখ করতে চেয়েছিলাম (এই আলোচনা জুড়ে আসা অন্য কারও জন্য) যে আরও একটি পদ্ধতি রয়েছে যা org-modeআলাদা করে আপডেট করার ওভারহেডকে জড়িত করে না git
itjeyd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.