0 वोट
524 व्यूज़

सभी को नमस्ते,

मुझे एक संदर्भ बाइबल (Reference Bible) बनाने में आपकी सहायता चाहिए।
हमारे पास क्रॉस-रेफरेंस के साथ बाइबल का पाठ है।

डिफ़ॉल्ट रूप से क्रॉस-रेफरेंस का क्रम है
“कॉली - श्लोक संख्या - संदर्भ”
जैसे “a 1 Ps 102:25; Is 40:21; John 1:1,2; Heb 1:10”

मैं इसे बदलना चाहता हूँ ताकि पहले अध्याय आए, फिर उसी श्लोक के तहत सभी कॉली एक साथ आ जाएँ, जैसे सामान्य संदर्भ बाइबल में, जैसे
“अध्याय 1
1 a Ps 102:25; Is 40:21; John 1:1,2; Heb 1:10 b Psa 89:11; 90:2; Acts 17:24; Rom 1:20; Heb 11:3 c Job 38:4…”

मुझे लगता है कि इसके लिए कुछ स्क्रिप्ट की आवश्यकता होगी। क्या कोई कोई सहायता कर सकता है?

English से मशीन-अनुवादित
PTXprint में द्वारा (102 अंक)
फिर से दिखाया गया | 524 व्यूज़

6 उत्तर

0 वोट

हम्म। हाँ, यह लगभग निश्चित रूप से केवल कोड की प्रीप्रोसेसिंग (preprocessing) द्वारा ही किया जा सकता है। अध्याय में पहला 'अध्याय' (Chapter) टेक्स्ट के साथ मिलता है, और इसी तरह। TeX में ऐसा करने की कोशिश करना बहुत कठिन होगा।

यह मानते हुए कि जब भी आप टेक्स्ट से चयन (selections) का उपयोग करते हैं, आप प्रक्रिया को दोबारा चलाएंगे, तो यह ठीक से काम करेगा। वर्तमान कोड बाहरी सूचियों (external lists) को लागू करने के लिए एक ट्रिगर सूची (trigger list) बनाकर काम करता है, जिसमें इस तरह के प्रविष्टियाँ होती हैं:

\AddTrigger MAT28.15
\x - \xo 28:15 \xt Mt 9:31; 27:8\x*
\EndTrigger

\AddTrigger MAT28.19
\x - \xo 28:19 \xt Mt 13:52; 24:14; Mk 16:15-16; Lk 24:47; Acts 1:8; 2:38; 8:16; 14:21; Rom 6:3; 1 Cor 1:13; 2 Cor 13:14; Gal 3:27\x*
\EndTrigger

आप python को किसी भी टेक्स्ट मैनिपुलेशन प्रोग्राम (जैसे perl, python, या unix वर्ल्ड से sed) के साथ काम करने के बजाय अपने स्वयं के ट्रिगर फ़ाइलें बना सकते हैं।
फ़ाइल के USFM भाग में आप क्या डालेंगे ताकि आपकी इच्छित प्रारूप (format) उत्पन्न हो, इसमें मैं 100% निश्चित नहीं हूँ। एक
श्लोक (verse) पर कई ट्रिगर होने से कोई समस्या नहीं होनी चाहिए, इसलिए आपको अपनी पंक्तियों को मर्ज (merge) करने की आवश्यकता नहीं है, लेकिन मुझे उम्मीद है कि आपको सुपरस्क्रिप्टेड (superscripted) कैल्स (calees) उत्पन्न करने के लिए कुछ कस्टम मार्कर (custom markers) की आवश्यकता होगी।

लेकिन मैं यह मान रहा था कि आप टेक्स्ट में कॉलर्स (callers) नहीं चाहते, क्या मैं गलत हूँ? आपके उदाहरण में वे मौजूद हैं… पाठक callee को शब्द से कैसे जोड़ता है? क्या आप वास्तव में अपने xrefs को पवित्र ग्रंथ (Biblical) टेक्स्ट के बीच में मर्ज करना चाहते हैं? मुझे उम्मीद है कि इसके लिए एक मैनुअल या कम से कम सेमी-मैनुअल (semi-manual) प्रक्रिया की आवश्यकता होगी।

English से मशीन-अनुवादित
द्वारा (1.1k अंक)

नमस्ते,

मुझे लगता है कि मेरी व्याख्या पर्याप्त नहीं थी।
हमारे पाठ में पाठ के बीच क्रॉस-रेफरेंस हैं, जैसे

\v 1 \x + \xo 1:1 \xt Иох 1:1,2; Евр 1:10\xЭхэнд \x + \xo 1:1 \xt Дуу 8:3; 33:6; 89:11,12; 102:25; 136:5; 146:6; Иса 44:24; Иер 10:12; 51:15; Зех 12:1; Үйл 14:15; 17:24; Кол 1:16,17; Евр 11:3; Илч 4:11; 10:6\xБурхан тэнгэр ба газрыг бүтээжээ.

फिर, परिणाम इस तरह है:
タイトルなし

तो, मेरा सवाल क्रम बदलना और उसी श्लोक के तहत कॉली को मर्ज करना है।

English से मशीन-अनुवादित
0 वोट

तो, अगर मैं अब जो समझता हूँ उसे फिर से बोलूं… आप क्या करना चाहते हैं, वह है \xo डेटा को निम्नलिखित कार्य करके प्रोसेस करना:

  1. वर्तमान नोट के आगे एक नल नोट जोड़ें जिसमें (एनोटेटेड) अध्याय हो, यदि वह पिछले अध्याय से अलग है। (उदा. \x - \xo Chapter 2\x* \x + \xo 1 \xt ...\*)
  2. श्लोक संख्या को केवल तभी प्रिंट करें यदि वह पिछले संदर्भ से अलग है।
  3. यदि \xo प्रविष्टि पिछली प्रविष्टि से समान है, तो उसे पूरी तरह से हटा दें।

मुझे यकीन है कि मैं इसे perl में लिख सकता हूँ, लेकिन python में मेरी जानकारी पर्याप्त नहीं है। आपको perl स्क्रिप्ट चाहिए या नहीं, यह इस बात पर निर्भर करेगा कि आप और आपके सहयोगी किस OS पर चल रहे हैं (perl linux पर लगभग निश्चित रूप से उपलब्ध है, लेकिन मुझे विश्वास है कि windows पर सामान्यतः नहीं)।

English से मशीन-अनुवादित
द्वारा (1.1k अंक)

हाँ, बिल्कुल सही।
मैं Windows पर Perl उपयोग करता हूँ, इसलिए कृपया इसके लिए एक perl स्क्रिप्ट बनाएं।
धन्यवाद।

English से मशीन-अनुवादित

यह काम करने लगता है। आपको पहली पंक्ति को windows पर आवश्यक होने वाली किसी भी चीज़ से बदलना होगा।

#!/usr/bin/perl -w
# This little script answers a request https://community.scripture.software.sil.org/t/cross-references-in-reference-bible/3470/2 "
# * Prepend to the current note a null note with the (annontated) chapter if that is different to the last one. (e.g. \x - \xo Chapter 2\x* \x + \xo 1 \xt ...\*)
# * Only print the verse number if that is different to the last reference.
# * Entirely delete the \xo entry if it is identical to the last one.
#
# It assumes that all xo entries are in the format chapter:verse, and that verses in xref \xo entries are only numeric. 

use strict;
my $chapter='';
my $verse='';

$\=''; # Swallow whole file as one chunk
$/='';
sub beautify {
        my ($c,$v)=@_;
        if ($c ne $chapter) {
                $chapter=$c;
                $verse='';
                print "\\x - \\xo Chapter $c\\x*";
        }
        if ($v ne $verse) {
                $verse=$v;
                "\\xo $v";
        }
}

while(my $file=(<>)) {
        foreach my $chunk (split(/(\\x.*?\\x\*)/, $file)) {
                $chunk=~s/\\xo (\d+):(\d+)/beautify($1,$2)/e;
                print $chunk;
        }
}
English से मशीन-अनुवादित

धन्यवाद। आपकी स्क्रिप्ट Windows पर बिना किसी समस्या के अच्छी तरह से काम करती है।
परिणाम यह है:
タイトルなし
अब, मैं क्रम बदलना चाहता हूँ। अब तक का परिणाम है
“कॉली - श्लोक संख्या - संदर्भ” जैसे “а 1 Иох 1:1,2; Евр 1:10”,
मैं चाहता हूँ
“श्लोक संख्या - कॉली - संदर्भ” जैसे “1 а Иох 1:1,2; Евр 1:10” जैसे मेरे पहले पोस्ट में।
क्या एक ही श्लोक में सभी कॉली एक ही पंक्ति में हो सकते हैं?
क्या आपके पास कोई विचार है?

English से मशीन-अनुवादित
0 वोट

यदि आप इसे प्राप्त करना चाहते हैं, तो आपको थोड़ा प्रोग्रामिंग करना होगा, ताकि:

  1. एक श्लोक से सभी क्रॉस-रेफरेंस को एक ही क्रॉस-रेफरेंस में खींचें, या तो SFM में या ट्रिगर फ़ाइल में, और फिर उन्हें पाठ के अंदर से हटा दें
  2. पाठ में क्रॉस-रेफरेंस की स्थिति को एक उपयुक्त निश्चित लेबल के साथ सरल लेबल पॉइंट्स में बदलें (ताकि यह क्रॉस-रेफरेंस एंकर जैसा दिखे, लेकिन कोई क्रॉस-रेफरेंस न हो)
  3. उसी श्लोक के शुरुआत में आपके पास जो जटिल क्रॉस-रेफरेंस है, वहाँ उन लेबलों को खींचें।
  4. पाठ और नोट दोनों में कॉली बंद कर दें।
English से मशीन-अनुवादित
द्वारा (656 अंक)
0 वोट

मार्टिन (थोड़ा) के विरोध में, स्क्रिप्ट को संशोधित करके आपको कुछ ऐसा मिल सकता है जो इसकी निकटता में है। हालाँकि, मुझे ठीक से पता नहीं है कि यह कैसे प्रदर्शित होगा। यदि आप इसे ऐसा कहने के लिए बनाते हैं:

     if ($v ne $verse) {
                $verse=$v;
                print "\\x - \\xo $v\\*";
        }

तो इस तरह जैसे आपको अध्याय X कहने वाला खाली फुटनोट मिलता है, आपको फिर Y कहने वाला खाली फुटनोट मिलेगा (श्लोक Y पर पहले फुटनोट पर) और फिर उसी श्लोक में पहले फुटनोट का बाकी हिस्सा। अन्य फुटनोटों में न तो अध्याय होगा और न ही श्लोक संख्या। लेकिन आपको पैराग्राफ्ड नोट्स (paragraphed notes) चालू करने की आवश्यकता होगी और शायद फुटनोट के बीच की दूरी जैसी कुछ चीज़ों को बदलना होगा (मुझे याद नहीं है कि इसका क्या नाम है, लेकिन मुझे लगता है कि यह अब यूज़र इंटरफ़ेस में है)। एक बार पैराग्राफ्ड नोट्स चालू करने के बाद, आपको श्लोक Y को अपनी अलग पंक्ति पर नहीं मिलेगा, जब तक कि आप perl के द्वारा निकाले जाने वाले में कुछ raw TeX कमांड शामिल न करें। (श्लोक Y के फुटनोट सामग्री के आगे \penalty -10000\space जोड़ना पर्याप्त हो सकता है)।

संभवतः, इस अभ्यास के किसी बिंदु पर, इस तरह से फुडिंग (fudging) अपने सीमाओं तक पहुँच जाएगा, और या तो मार्टिन का उत्तर इसे करने का सही तरीका बन जाएगा, या TeX कोड में बहुत महत्वपूर्ण परिवर्तन (जो संभवतः अन्य लोगों के प्रोजेक्ट्स को तोड़ देंगे) की आवश्यकता होगी।

TeX की ओर से, आपको \xo मैक्रो को ‘हाजाक’ (hijack) करने की आवश्यकता होगी और अध्याय:श्लोक पैरामीटर्स को मानों के रूप में व्याख्या करने के लिए, जब तक वे आउटपुट स्ट्रीम में प्रवेश न करें, और फिर TeX में तुलना और आउटपुट पुनर्परिभाषा करें। खतरा यह है कि यदि किसी के पास \xo था जो हमेशा अध्याय:श्लोक से अनुसरित नहीं होता था, और इसके बजाय अध्याय.श्लोक या समान था, तो कोड अजीब और अपेक्षित नहीं त्रुटियाँ देगा।
TeX में रोबस्ट मैक्रो परिभाषित करना कठिन है, और कोई मानक नहीं है जो परिभाषित करता है कि लोग \xo में क्या डालेंगे (न ही यह गारंटी है कि वे इसे केवल क्रॉस-रेफरेंस में उपयोग करते हैं!)।
इसे थोड़ा और सोचने पर, वास्तव में यह बेहतर होगा कि आप अपने स्वयं के मैक्रो को एक परिभाषित समापन के साथ परिभाषित करें, जो बदले में \xo को रिज़ॉल्व करे, बजाय इसके कि आप \xo को हाजाक करें।
उदा. \def\zmyxrefstyle#1:#2\*{comparisonde} कॉली के लिए किसी भी प्रीफिक्स सेट करने के लिए।
बेशक, आपको फिर भी फुटनोट कॉलर जनरेटर कोड को कॉली से पहले अध्याय संख्या और / या श्लोक संख्या डालने के लिए मजबूर करना होगा। मैं अनुमान लगा रहा हूँ कि इसमें कम से कम आधा सप्ताह प्रोग्रामिंग और डीबगिंग लगेगा, लेकिन हो सकता है कि कुछ चीज़ें हों जिन्हें मैं भूल गया हूँ जो इसे एक सप्ताह या 3 सप्ताह तक धकेल सकती हैं।

बिना कई उपयोगकर्ताओं से एक बहुत स्पष्ट कॉल के, यह संभावना नहीं है कि हम अगले वर्ष के किसी भी समय इसे करने के लिए समय पा सकें।

English से मशीन-अनुवादित
द्वारा (1.1k अंक)
0 वोट

यह एक तरीका है जो मैंने आज सुबह सोचा। हमें एक नया माइलस्टोन लिखना होगा, जैसे \zcaller*, जिसे कोई क्रॉस-रेफरेंस / फुटनोट में डाल सकता है ताकि ptxprint उस बिंदु पर कॉलर (caller) को इंसर्ट कर सके। फिर \x - \xo 1\xt Gen 1:1\x* बन जाएगा \x - \xo 1\xt \zcaller*Gen 1:1\x* और फिर नोट कॉलर आउटपुट बंद कर दिया जाएगा। इसमें डेव टीम को कुछ काम करना होगा, लेकिन यह अब तक की सोच की पन्नों की तुलना में बहुत कम जटिल है!

English से मशीन-अनुवादित
द्वारा (656 अंक)
0 वोट

यह फिर भी एक श्लोक में कई क्रॉस-रेफरेंस होने पर कई 1 को हटाने में सक्षम नहीं होगा। लेकिन यह बस उस श्लोक में बाद के क्रॉस-रेफरेंस से \xo को हटाने का सवाल है।

English से मशीन-अनुवादित
द्वारा (656 अंक)

संबंधित प्रश्न

+1 मत
1 उत्तर 179 व्यूज़
I'm not sure if this is a bug or not, but since I just spent a while trying to solve a problem that I knew ... \toc1, even though I was several chapters and verses into the book.
anon297911 424 पूछा गया फ़रवरी 10, 2021
0 वोट
9 उत्तर 628 व्यूज़
जब मैंने अरबी लिपि आधारित भाषा के लिए एक मॉड्यूल छपाया, तो मुझे लगा कि श्लोक संदर्भ गलत ढंग से छप रहे हैं। ... समानांतर पदों (parallel passage) के शीर्षकों में भी दिखाई देती है।
Jim_Smith 131 पूछा गया अक्टूबर 3, 2023
PTXprint में
0 वोट
4 उत्तर 282 व्यूज़
मैं PTXprint 1.9 का उपयोग कर रहा हूँ। जिस USFM फ़ाइल पर मैं काम कर रहा हूँ, उसमें फुटनोट हैं, लेकिन \fr मार्कर शामिल ... पा रहा हूँ। क्या मैंने कहीं उस सेटिंग को मिस कर दिया है?
da4396 126 पूछा गया जुलाई 22, 2021
PTXprint में
0 वोट
1 उत्तर 38 व्यूज़
मैं एकल पुस्तक प्रकाशन पर काम कर रहा हूँ। अतीत में एकल पुस्तकों के लिए, मैंने एक शीर्षक (header) जोड़ा है जिसमें संदर्भ ... अनुमति दे। समस्या निवारण के लिए मैं और क्या कर सकता हूँ?
Rebecca Peak 102 पूछा गया जून 25
0 वोट
1 उत्तर 151 व्यूज़
सभी को नमस्ते! मैं हेडर में Reference Range के साथ पवित्र ग्रंथ (Scripture) के अंशों का प्रिंट कर रहा हूँ। कुछ ... बीच में समाप्त होता है। आपकी सहायता के लिए धन्यवाद! एंड्रे
Andre_Tousch 116 पूछा गया अप्रैल 15, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Very truly I tell you, whoever accepts anyone I send accepts me; and whoever accepts me accepts the one who sent me.
John 13:20
3,044 प्रश्न
6,004 उत्तर
5,671 टिप्पणियाँ
2,026 उपयोगकर्ता