`.Bib` ফাইলে বিবিটেক্স এন্ট্রিগুলি কীভাবে সাজান (যে কোনও কী দ্বারা)?


13

আমি ল্যাটেক্সের সাথে কাজ করি এবং গিটের সাথে সংস্করণ করি। গ্রন্থপঞ্জি পরিচালনার জন্য আমি মেন্ডেলি ব্যবহার করি।

সমস্যাটি হ'ল প্রতিবার মেনডেলি তার .bibরফতানিকে সিঙ্ক্রোনাইজ করে , তারা বিভিন্ন ক্রমে থাকে, যা গ্রন্থপঞ্জি সংস্করণটিকে আরও শক্ত করে তোলে।

আমার ধারণা হ'ল বিবিটেক্স এন্ট্রিগুলিকে .bibফাইলের মধ্যে, প্রতিবার প্রতিশ্রুতি দেওয়ার আগে বাছাই করা।

আপনি কি আমাকে সাহায্য করতে পারেন, কীভাবে এটি স্মার্ট (সংক্ষিপ্ত এবং মিষ্টি) উপায়ে করবেন? :)

PS আমি নিজেই এই রুটিন চালাতে পারি। আমার গিট সংহতকরণের দরকার নেই। আমি কেবল প্রোগ্রাম / স্ক্রিপ্টটি .bibফাইল বাছাই করতে চাই।


4
এই ধরণের প্রশ্নের টেক্স - ল্যাটেক্স স্ট্যাকএক্সচেঞ্জ সাইটে আরও ভাল শ্রোতা থাকতে পারে ।
স্টাফেন গিমেনেজ

এটি কোথায় আছে তা নিশ্চিত নই (কীভাবে বাছাই করা যায় তার প্রোগ্রামিং প্রশ্নের জন্য স্ট্যাকওভারফ্লো, বা সাধারণভাবে সমস্যার জন্য (লা) টেক্স), তবে এই প্রশ্নটি * নিক্সের সাথে সম্পর্কিত এমন কিছুই আমি দেখতে পাচ্ছি না।
me_ এবং

1
@me_and তিনি বিবিটেক্স এন্ট্রিগুলি বাছাই করার জন্য একটি লিনাক্স সরঞ্জাম বা সহজ শেল স্ক্রিপ্ট পদ্ধতি খুঁজছেন বলে মনে হচ্ছে, তাই সম্ভবত এটি এখানে ভাল
মাইকেল মরোজেক

উত্তর:


8

কীভাবে bibsort?

NAME
     bibsort - sort a BibTeX bibliography file

SYNOPSIS
     bibsort [optional sort(1) switches] < infile >outfile

DESCRIPTION
     bibsort filters a BibTeX bibliography, or bibliography frag-
     ment,  on  its standard input, printing on standard output a
     sorted bibliography.

এটি একটি শেল স্ক্রিপ্ট মোড়ানো nawk(এবং tr, sortএবং grep) এবং এতে দুটি সতর্কতা অন্তর্ভুক্ত রয়েছে যাতে আপনাকে মনোযোগ দিতে হবে (উত্সটি দেখুন)।

( সম্পাদনা করুন বিবিটেক্স সম্পর্কিত পার্ল মডিউলগুলিও প্রচুর ...)

সম্পাদনা 2 আমি সবেমাত্র বুঝতে পেরেছি যে আপনি যে কোনও কী বাছাই করতে চাইবেন , যদিও কেবল বাইবেটেক্স ট্যাগেরbibsort দ্বারা দৃশ্যত সাজানো হয়েছে - তবে সম্ভবত এর উত্সটি (এটি খুব বেশি দীর্ঘ নয়) এখনও সহায়ক? ...


7

গিট পোস্ট কমিট হুক দিয়ে আপনি bibtool( -sবিকল্প - রেফারেন্স কী অনুসারে বাছাই করুন) ব্যবহার করতে পারেন ।


বছর অনুসারে বাছাইয়ের কোনও উপায় খুঁজে পাওয়া যায় নি :-(
fccoelho

4

রেফারেন্স ম্যানেজারটির jabrefপছন্দগুলিতে এই জাতীয় বিকল্প রয়েছে বলে মনে হয় (ফাইল পৃষ্ঠায় ক্রমবিন্যাস ক্রম দেখুন)। এটিতে অনেকগুলি আকর্ষণীয় বৈশিষ্ট্য রয়েছে:

এখানে চিত্র বর্ণনা লিখুন


এই বিকল্পটি jabref এর আরও সাম্প্রতিক সংস্করণগুলিতে সরানো হয়েছে
fccoelho

না, তা হয়নি। এটি "ফাইল" থেকে "রফতানির বাছাই" মেনুতে রাখা হয়েছিল। এবং আরও বাছাইয়ের মানদণ্ড এখন উপলব্ধ।
জোল্টন সিস্তি

4

আমার ঠিক সরঞ্জামগুলি বেছে নেওয়ার ক্ষেত্রে ঠিক একই সমস্যা ছিল: লিনাক্সে গিট এবং মেন্ডেলি ব্যবহার করে।

কমান্ড-লাইন স্ক্রিপ্টের তুলনায় আমার 'সমাধান' উপ-সমান, তবে তবুও এটি আমাকে আনন্দিত করেছে, সুতরাং এটি এখানে:

(আমি ইতিমধ্যে ইমাস ব্যবহার করছিলাম, সুতরাং) আমি যা করি তা হ'ল মেন্ডলেতে কোনও কাজ করার পরে ইমটাসে বিবেটেক্স ফাইলটির একটি অনুলিপি খোলা হয়, তারপরে আমি রান করি

M-x bibtex-sort-buffer

ইম্যাকগুলিতে, ফলাফলগুলি সংরক্ষণ করুন এবং সেইগুলি বাছাই করা ফলাফলগুলি গিটে প্রতিশ্রুতিবদ্ধ করুন।

স্পষ্টতই বিবটেক্স-মোডটি ইম্যাক্সের মধ্যে স্ট্যান্ডার্ড, কারণ আমাকে কিছু ইনস্টল করতে হয়নি, এবং ইম্যাকস স্বয়ংক্রিয়ভাবে আমার '.bib' কে একটি বিবেটেক্স ফাইল হিসাবে স্বীকৃতি দিয়েছে।


1

আমারও এই সমস্যা হচ্ছে, যা এখনও মেন্ডেলি-তে স্থির হয়নি। কুই কি-র দুর্দান্ত পরামর্শের ভিত্তিতে, আমি ইম্যাক্স ব্যবহার করে আমার সমস্যাটি সমাধান করেছি, তবে ব্যাচ মোডে, আমাকে শেল স্ক্রিপ্টে সমাধানটি খুব ভালভাবে মোড়ানোর অনুমতি দেয়।

প্রথমে, আমি নীচের ইমাস লিস্প স্ক্রিপ্ট তৈরি করেছি (আসুন একে বিবসোর্ট.এল বলি):

( defun bibsort()
    ( bibtex-sort-buffer )
    ( save-buffer )
)

এটি কী নামে কোনও বিবেটেক্স ফাইল বাছাই করে তারপরে সংরক্ষণ করে। কমান্ড লাইন থেকে আপনি স্ক্রিপ্টটি ব্যাচ মোডে কল করতে পারেন। "গিট ডিফ ফাইল নাম " থেকে রিটার্ন কোডটি পরীক্ষা করে মেন্ডেলি প্রতিটি বিবটেক্স ফাইলের জন্য এটি কল করতে শেল স্ক্রিপ্ট লেখার জন্য আরও এগিয়ে গিয়েছিলাম (এটি অকারণে লিসপ কোডটি চালা না করে সময় সাশ্রয় করে) যে ফাইলগুলি পরিবর্তন হয়নি)।

এখানে শেল স্ক্রিপ্টটি রয়েছে (যাক কল্পনাপ্রসূতভাবে একে বিবসোর্ট.শ বলি), যা ধরে নিয়েছে যে বিবটেক্স ফাইল এবং লিসপ স্ক্রিপ্ট উভয়ই বর্তমান ডিরেক্টরিতে রয়েছে:

#!/bin/bash

bibliobasher() {

    IFS=$( echo -en "\n" )
    BIBFILES=*.bib

    for bibfile in $BIBFILES
    do
        git diff --quiet "$bibfile" 2> /dev/null
        if [ $? = 1 ]; then
            emacs --batch -l bibsort.el "$bibfile" -f bibsort
        fi
    done
}

bibliobasher

প্রতিটি গিট কমিট করার আগে কেবল এটি চালান (প্রয়োজনে ফাইল অনুমতি সেট করার পরে):

chmod a+x bibsort.sh
./bibsort.sh
git commit ...

এটি মেন্ডেলি দ্বারা যুক্ত অতিরিক্ত নন-বিবেটেক্স লাইনগুলিকে স্পর্শ করবে না এবং ইমাস সহ কোনও ইউনিক্স / লিনাক্স ইনস্টলেশনতে কাজ করা উচিত। এটি উইন্ডোজের জিআইটি কনসোলেও (যা আমি ব্যবহার করছি) কাজ করে, তবে আপনাকে আলাদাভাবে ইমাকের এমিংডাব্লু বিল্ড ইনস্টল করতে হবে।

আমার জন্য, গিট কমিটস এখন মার্জিত এবং অর্থনৈতিকভাবে কাজ করে। আশাকরি এটা সাহায্য করবে ...


আলাদা bibsortফাংশন তৈরি করার দরকার নেই , emacs Bibliography.bib --batch -f bibtex-sort-buffer -f save-bufferএটিও করবে।
ডিন সেরনেভি

0

emacs (এবং xemacs) এর AUCTeX নামে একটি অ্যাড-অন রয়েছে , যা (অন্যান্য (লা) টেক্স সম্পর্কিত কী-বোর্ড শর্টকাট এবং সহায়কদের মধ্যে) বিবিটেক্সের জন্য একটি বিশেষ মোড রয়েছে, .bibকী দ্বারা ফাইলগুলি বাছাই করা সহ ।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.