"ASCII पाठ, ओवरस्ट्रीकिंग के साथ" फ़ाइल प्रारूप का उद्देश्य


46

बैश के लिए स्रोत कोड डाउनलोड करने के बाद, मैं docनिर्देशिका के माध्यम से ब्राउज़ कर रहा था और निम्नलिखित फाइलों में आया था:

ये नियंत्रण वर्ण Git वेब इंटरफ़ेस द्वारा प्रदान किए गए प्रतिनिधित्व में प्रदर्शित नहीं होते हैं, लेकिन वास्तविक फ़ाइल को विम जैसे पाठ संपादक में डाउनलोड और जांच की जा सकती है

निम्न आउटपुट fileपर bash.0प्रिंट को कमांड चलाना :

bash.0: ASCII text, with overstriking

मैं इस फ़ाइल प्रारूप में पहले कभी नहीं आया हूं और मैं सोच रहा था कि इसका उद्देश्य क्या है और इसका उपयोग कैसे किया जाता है। वाक्यांश "ASCII पाठ, अतिव्याप्ति के साथ" के लिए वेब खोजना बहुत ज्ञानवर्धक नहीं है।

जवाबों:


14

"बैकस्पेस" और "ओवरस्ट्राइक" के लिए एक वेब खोज के बेहतर परिणाम मिलेंगे।

फ़ाइल एक मैन्युअल पृष्ठ है - जिसका उपयोग करके स्वरूपित किया गया है nroff। आमतौर पर फ़ाइलें जैसे कि bash.0केवल उत्पन्न होती हैं और खारिज की जाती हैं। कुछ समय पहले, वे manकार्यक्रम के लिए काम कम करने के लिए, बच गए थे । इसके बजाय /usr/share/man/man1, आपके मैनुअल पेज से पढ़ा जाएगा /usr/share/man/cat1catmanउदाहरण के लिए विवरण पढ़ें ।

nroffमैनुअल पृष्ठों और अन्य फ़ाइलों को प्रारूपित करने के लिए यूनिक्स कमांड है। जब यह पहली बार लिखा गया था, तब कई अन्य उपयोगिताएँ थीं, प्रत्येक की अपनी मार्कअप भाषा थी। मैंने कम से कम एक दर्जन अलग-अलग का उपयोग किया है। लेकिन उन्होंने सभी को एक ही तरह से पाठ पर जोर देने की समस्या को हल किया: गाड़ी पर नियंत्रण का उपयोग करना। बैकस्पेस केवल ध्यान देने योग्य हैं क्योंकि उनका उपयोग अन्य सादे-टेक्स्ट फ़ाइलों में नहीं किया जाता है। टैब्स , कैरिज रिटर्न्स , लाइन-फीड्स और फॉर्म-फीड्स सभी की प्लेन टेक्स्ट फाइलों में भूमिका होती है (हालांकि फॉर्म-फीड्स मूल रूप से उनके मुकाबले बहुत कम महत्वपूर्ण हैं)।

nroffबोल्ड का प्रतिनिधित्व करने के लिए इटैलिक और ओवरस्ट्रिकिंग को इंगित करने के लिए अंडरलाइनिंग का उपयोग करता है । तकनीक दिनांकित है: यह हार्ड-कॉपी डिवाइसों के लिए उपयोगी है जहां एक ही स्थिति में एक से अधिक वर्ण मुद्रित किए जा सकते हैं। बहुत कम वीडियो टर्मिनल ऐसा करते हैं। में , यह होगाterminfo(5)

   over_strike               os     os   terminal can over-
                                         strike

या अधिक पूरी तरह से :

यदि टर्मिनल ओवरस्ट्रीक करता है (एक चरित्र को खत्म करने पर स्थिति को साफ करने के बजाय) तो इसकी os क्षमता होनी चाहिए ।

सामान्य स्थिति में, वीडियो टर्मिनल की दी गई पंक्ति / कॉलम पर लिखा गया अंतिम चरित्र वह सब होगा जो दिखाया गया है। nroffआउटपुट को व्यवस्थित किया ताकि एक रेखांकित चरित्र को एक रेखांकन, एक बैकस्पेस और वास्तविक चरित्र के रूप में लिखा जाए। ऐसा करने से यह सुनिश्चित होता है कि ओवरस्ट्रीक फीचर के बिना टर्मिनल कुछ उपयोगी होगा।

सूचीबद्ध बहुत कम वीडियो टर्मिनलों में, जिनकी ओवरस्ट्रीक क्षमता है, मुझे DEC gt40 दिखाई देता है , जिसका उपयोग मैंने लगभग तीन वर्षों (1976-1979) के लिए किया था। कोई यूनिक्स कि सिस्टम पर नहीं था (यह आर टी -11 भाग गया), लेकिन मुझे एक लिखा पाठ फ़ॉर्मेटर , overstruck पाठ के एक ही प्रकार का उपयोग कर। अंत में, मैं हार्डकॉपी की जरूरत है, और एक ने लिखा उपयोगिता सुनिश्चित करने के लिए कि ऐसा - की तरह कुछ colहै, शायद - लेकिन एक संबंधित समस्या को सुलझाने। टर्मिनल बहुत धीरे-धीरे छपा जब उसमें बहुत सारे रेखांकित पाठ थे, जब तक कि मेरे कार्यक्रम ने पाठ को आगे / पीछे की गति के बीच स्विचिंग की मात्रा को कम करने के लिए पुनर्गठित नहीं किया।

वीडियो टर्मिनलों के साथ, उसके लिए कोई आवश्यकता नहीं है। लेकिन वे ओवरस्टॉकिंग नहीं करते हैं। इसके बजाय, हमारे पास ऐसे प्रोग्राम हैं जो अंडरलाइनिंग को पहचानते हैं और अंडरलाइन दिखाते हैं , या हैं groff, जो अंडरलाइनिंग (और बोल्ड) के बजाय रंगीन टेक्स्ट दिखा सकते हैं।

आगे की पढाई:


दिलचस्प ऐतिहासिक पृष्ठभूमि के साथ व्यापक उत्तर के लिए धन्यवाद। यह मेरे लिए देर रात है इसलिए मैं इसे कल ठीक से पढ़ूंगा। FWIW, मैंने वास्तव में आज मैन पेज बनाने से पहले आपके उत्तर को रद्द कर दिया था जब मैं टेक्स्ट फॉर्मेटर्स के * रफ परिवार पर शोध कर रहा था।
एंथनी जी -

43

ओवरस्ट्रीकिंग एक विधि है जिसका उपयोग nroff( ट्रॉफ पेपर देखें ) सादे ASCII की तुलना में अधिक टाइपोग्राफिक संभावनाएं प्रदान करने की अनुमति देगा:

  • बोल्ड टेक्स्ट (एक ही चरित्र को पछाड़कर)
  • रेखांकित पाठ (overstriking द्वारा _)
  • उच्चारण और विकृति विज्ञान ( उदाहरण के साथ éoverstriking द्वारा निर्मित )e

और विभिन्न अन्य प्रतीक, जैसा कि लक्ष्य आउटपुट डिवाइस द्वारा अनुमति है।

में bash, इन .0फ़ाइलों को सीधे उत्पादन किया जाता है nroff, Makefileजैसे कि नियमों के साथ

.1.0:
        $(RM) $@
        -${NROFF} -man $< > $@

आप ऐसी फ़ाइलों का उपयोग करके देख सकते हैं less; यह ओवरस्ट्रीमिंग अनुक्रमों को संसाधित करेगा और उन्हें उपयुक्त रूप में प्रतिस्थापित करेगा:

less bash.0

मूल रूप से nroffआउटपुट ने टाइपराइटर-शैली आउटपुट डिवाइसों को लक्षित किया, जो हर बार बैकस्पेस वर्ण प्राप्त करने के बाद वापस आ जाएंगे; ओवरस्ट्रियकिंग वांछित दृश्य आउटपुट का उत्पादन करेगा। जैसा कि चिर्लू ने कहा , एक ही चरित्र को दो बार मारना आमतौर पर एक फ़ोल्डर उपस्थिति का परिणाम होगा, जो क्रमिक स्ट्राइक के अपरिहार्य मिसलिग्न्मेंट के लिए धन्यवाद है; जमा की गई स्याही की मात्रा में वृद्धि से भी मदद मिलेगी।

( troffलक्षित टाइपिंग मशीनें)


ट्रॉफ़ उपयोगकर्ता के मैनुअल के लिंक के लिए धन्यवाद और फ़ाइलों का उत्पादन कैसे किया जाता है, इस बारे में जानकारी। अपने प्रश्न में, मैंने यह भी पूछा कि इन फ़ाइलों का उपयोग करने का इरादा कैसे है। मैंने nroff bash.0अपने उबंटू सिस्टम पर चलने की कोशिश की, लेकिन इसने कई चेतावनियों का उत्पादन किया, आउटपुट 65 अक्षरों में कठोर था और कोई विशेष स्वरूपण नहीं था।
एंथनी जी -

1
आह हाँ, मैं उस हिस्से को भूल गया; मैंने अपना उत्तर संपादित कर दिया है। nroffइन फ़ाइलों को बनाने के लिए उपयोग किया जाता है, न कि उन्हें देखने के लिए।
स्टीफन किट

2
हाँ, और यह बहुत ज्यादा है कि कैसे man bashकाम करता है; यह फ़ाइल nroff -manको संसाधित करने के लिए उपयोग करता है .1(या जो भी अनुभाग प्रासंगिक है), जो कि एक nroffफ़ाइल है, उसे उपयुक्त पेजर को खिलाने से पहले।
स्टीफन किट

5
@Anthony Geoghegan: विचार यह था कि आप इस फाइल को एक प्रभाव प्रिंटर, जैसे कि डेज़ी-व्हील प्रिंटर पर भेज देंगे । यह वास्तव में एक चरित्र को प्रिंट करेगा, फिर वापस ले जाएगा, फिर दूसरे वर्ण को प्रिंट करें, जैसा कि ऊपर वर्णित है। बोल्ड टेक्स्ट ऑडियो प्रोसेसिंग में एक "कोरस प्रभाव" के समान है: दूसरा चरित्र पहले के साथ बहुत थोड़ा गुमराह किया गया है, जिससे मोटी रेखाएं होती हैं।
चिरालू

1
@chirlu यह एक महान व्याख्या है कि विरासत हार्डवेयर के साथ टाइपोग्राफिक प्रभाव को प्राप्त करने के लिए नियंत्रण वर्णों का उपयोग कैसे किया गया था। उन विशेष वर्णों का उपयोग अब बहुत मायने रखता है। यदि आप इसे उत्तर के रूप में पोस्ट करते हैं, तो मैं इसे ठीक से बढ़ा सकता हूं। संपादित करें: स्टीफन इस पर पहले ही शामिल और विस्तारित हो चुके हैं।
एंथनी जी -

7

और पहले भी, यह गोल्फ-बॉल प्रिंटर पर छपाई का एक तरीका था जो पुराने टाइपराइटरों की तरह काम करता था और इसमें बहुत ही सीमित अक्षर होते थे जिन्हें वे प्रिंट कर सकते थे। तो nroff 'स्क्रीन पर' कैसे दिखना चाहिए, यह दर्शाने के लिए एक पुराने टेलेटाइप प्रिंटर की बाइट स्ट्रीम का उपयोग करता है।


nroffवास्तव में टाइपराइटरों पर मुद्रित करने के लिए शुरू में डिज़ाइन किया गया था, troffजो लक्षित टारगेटर्स के विपरीत था । आउटपुट के लिए स्क्रीन का उपयोग करना बाद में आया ...
स्टीफन किट

9
मैं काफी पुराना हूं कि आपने एक यांत्रिक टाइपराइटर का उपयोग किया है जहां आप टाइप !करके टाइप करते हैं' BACKSPACE .
बरमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.