मैं लिनक्स में सादे पाठ को कैसे सही ठहरा सकता हूं?


17

मैं एक सादा पाठ (.txt) दस्तावेज़ की रचना कर रहा हूँ, जिसमें बाएँ और दाएँ न्यायोचित अनुच्छेद हैं। मैं मैन्युअल रूप से रिक्त स्थान जोड़ रहा हूं, यदि आवश्यक हो तो हाइफ़न के साथ शब्दों को तोड़ना, जब तक कि लाइनें समान लंबाई नहीं होती हैं। मेरे दस्तावेज़ से एक उदाहरण का उपयोग करने के लिए, इस तरह एक पैराग्राफ:

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

इस तरह देखना होगा:

इन फैंटैमिक गेंदों के कुछ अजीब गुण हैं,
कुछ साफ-सुथरे, कुछ दिलचस्प, और अन्य सिर्फ इंडिका-
आलसी डिजाइन के tive। वे लगभग सभी के कारण होते हैं
समान डिजाइन दोष: खेल उन्हें बहुत पसंद करता है
नियमित गेंदें।

मैं यह कैसे कर सकता हूँ?

यह रिक्त स्थान जोड़ने के लिए ठीक है (लाइनों पर शब्दों को तोड़े बिना), लेकिन मुझे पैराग्राफ (# वर्णों) की लक्ष्य चौड़ाई को नियंत्रित करने की आवश्यकता है। ऊपर दिया गया उदाहरण प्रति पंक्ति 53 वर्णों के लिए उचित है, लेकिन मेरे वास्तविक दस्तावेज़ में लाइन की चौड़ाई 60 से 79 तक भिन्न है।

यह भी बहुत अच्छा होगा अगर इस तरह की सुविधा के साथ एक पाठ संपादक था।

मैंने पहले ही कोशिश की:

  • OpenOffice और TeX : वे केवल पाठ को प्रदर्शित करने के तरीके को बदलने के लिए स्वरूपण का उपयोग करते हैं।
  • नैनो का औचित्य कमांड गिनती नहीं करता है क्योंकि यह वास्तव में लाइनों को एक समान चौड़ाई नहीं बनाता है।

मैंने निम्नलिखित उत्तर स्वीकार कर लिया क्योंकि यह वह था जिसने मेरे लिए सबसे अच्छा काम किया । मैंने पाया कि Emacs जवाबों के बीच उपयोग करने के लिए सबसे आसान आदेशों को भरता है, और मैं सराहना करता हूं कि यह कैसे गैर-व्हाट्सएप इंडेंटेशन (# और // टिप्पणियों जैसे सामान के लिए) को भी पहचानता है। हालाँकि, अन्य उत्तर सभी अपने स्वयं के नाखूनों को भरते हैं और मैं दूसरों को भी इस सवाल पर ध्यान देने की सलाह देता हूं।


1
क्यों? मैं वास्तव में उत्सुक हूँ। सादे पाठ के फायदों में से एक यह है कि यह प्रारूपण से स्वतंत्र है और आप इसे OpenOffice या TeX में थप्पड़ मार सकते हैं और इसे अच्छा बना सकते हैं। इसके लिए आपका क्या उपयोग है?
डौग हैरिस

इसके अलावा, क्या आप अर्ध-बुद्धिमान हाइफ़नेशन भी करने के लिए इस उपयोगिता की तलाश कर रहे हैं?
डौग हैरिस

1
इसका कारण यह है कि यह GameFAQs के लिए एक गाइड है। GameFAQs केवल सादे पाठ, TXT दस्तावेज़ लेता है। हायफ़नेशन के लिए, मैं इसे पसंद करूँगा, लेकिन यह एक पूर्ण आवश्यकता नहीं है।
एचपी

जवाबों:


5

आप इसे emacs में ( fill-paragraphया डॉक्स भरकर ) कर सकते हैं।fill-region

आपको एक संख्यात्मक उपसर्ग तर्क पास करना होगा। डिफ़ॉल्ट भरण कॉलम 70 है।

भरने और करने के लिए पाठ का चयन करें M-3 M-x fill-region

मैंने आपके सैंपल टेक्स्ट के लिए भरण कॉलम 53 पर सेट किया और मिला:

These phantasmic balls  have some strange properties,
some   neat,  some   interesting,  and   others  just
indicative of lazy  design. They're almost all caused
by  the same design  flaw: The  game treats  them too
much like regular balls.

वह अच्छा दिखता है। मैं इस सुविधा पर एक नज़र डालने के लिए अभी emacs के लिए पैकेज स्थापित कर रहा हूँ।
एचपी

ठीक है, यह असामान्य इंटरफ़ेस और शब्दावली (आज के मानकों से कम से कम) के लिए उपयोग करने के लिए काफी थका हुआ था, लेकिन यह बहुत अच्छा है। Cx f 53, M-1 Mq। यह निश्चित रूप से मेरी योजना बी (जो कि मेरी अपनी रूबी स्क्रिप्ट लिखना उचित होगा), और मेरी संतुष्टि के लिए बहुत आसान है, यह इंडेंटेशन को भी पहचानता है और उचित होने पर इसे ध्यान में रखता है। अच्छा लगा।
एचपी

मैं भरण कॉलम को 53 पर या उस मामले के लिए किसी अन्य मूल्य पर कैसे सेट कर सकता हूं? और मैं कैसे जांच सकता हूं कि यह वर्तमान में क्या है?
हैलोगूडीबाई

1
वैसे, आपके उत्तर की लिंक टूट गई है।
हैलोगूडीबाई

मैंने लिंक को अपडेट किया है
डग हैरिस

18

आप की जरूरत है par

ubuntu पर इसे प्राप्त करने के लिए, जैसे:

sudo aptitude install par

text.txt(80 वर्णों की चौड़ाई पर) को सही ठहराने के लिए newtext.txt:

par j1w80 < text.txt > newtext.txt

vim या gvim में बराबर का उपयोग करने के लिए:

:set formatprg=par\ j1w80

फिर उस टेक्स्ट को हाइलाइट करें जिसे आप gqकमांड को फॉर्मेट और इस्तेमाल करना चाहते हैं ।

अधिक जानकारी के लिए देखें man par


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

क्या आप एक उदाहरण दे सकते हैं? यह मुझे काफी स्थिर लगता है।
sml

1
आपके द्वारा दी गई कमांड सही नहीं है। यह होना ही है par w80 j1, नहीं par 80j। संपादित करें: याpar jw80
गैंडारो

6

fmt पुराने स्कूल समाधान है

मैन पेज से:

fmt [-cmnps] [-d chars] [-l num] [-t num] [लक्ष्य [अधिकतम] | -आवंटन | -w चौड़ाई] [फ़ाइल ...]

तथा

लक्ष्य की लंबाई 65 तक और लक्ष्य की लंबाई से अधिकतम 10 अधिक होती है। अल्टरनेता- tively, एक एकल चौड़ाई पैरामीटर या तो एक हाइफ़न को प्रीपे करके या -w का उपयोग करके निर्दिष्ट किया जा सकता है। उदाहरण के लिए, fmt -w 72'',fmt -72 '', और `` fmt 72 72 '' सभी समान उत्पादन करते हैं।


कुछ संस्करणों में fmtउन विकल्पों में से कई नहीं हैं और वे पूर्ण औचित्य नहीं कर सकते हैं।
अगली सूचना तक रोक दिया गया।

क्षमा करें, लेकिन आपने स्पष्ट रूप से नहीं कहा है कि पाठ का उपयोग करने का औचित्य कैसे है fmt। इसके अलावा, जैसा कि डेनिस ने कहा, मेरे सिस्टम पर मैन पेज ऐसा कोई भी टेक्स्ट उपलब्ध नहीं कराता है जैसा आपने बताया है और यह नहीं कहता कि कैसे सही ठहराया जाए।
जमादग्नि

2

यहाँ एक पर्ल स्क्रिप्ट कहा जाता हैparadj जो पूर्ण औचित्य और हाइफ़नेशन कर सकता है।

यहाँ diffकुछ बदलाव दिखाए जा रहे हैं जिन्हें मैंने बाएँ हाशिये को जोड़ने के लिए किया है:

12c12
< my ($indent, $newline);
---
> my ($indent, $margin, $newline);
15a16
>   "margin:i" => \$margin,
21a23
> $margin = 0 if (!$margin);
149a152
>     print " " x $margin;
187a191,193
>   print "--margin=n (or -m=n or -m n)  Add a left margin of n ";
>   print "spaces\n";
>   print "                                (defaults to 0)\n";

यह आदेश:

./paradj.pl -h --width=53 --both --indent=0 inputfile

अपने उदाहरण के बहुत करीब आउटपुट का उत्पादन करता है (अतिरिक्त स्थान विभिन्न स्थानों पर हैं)।

These  phantasmic balls have some strange properties,
some  neat, some interesting, and others just indica-
tive of lazy design. They're almost all caused by the
same  design flaw: The game treats them too much like
regular balls.

एक महान समाधान जो, दुर्भाग्य से, मैं उपयोग नहीं कर सकता। लगभग एक महीने पहले, मैंने पर्ल में TeX पाने की कोशिश की क्योंकि मैं TeX :: Hyphen (इस प्रश्न के लिए एक अलग लेकिन संबंधित मुद्दे के लिए) का उपयोग करना चाहता था। IIRC, मुझे पता चला कि उबंटू रेपो में केवल TeX लाइब्रेरी के कुछ हिस्से उपलब्ध हैं, और हाइफ़न उनमें से नहीं है। मैंने पर्ल टीएक्स लाइब्रेरी को मैन्युअल रूप से स्थापित करने की कोशिश की, लेकिन वह अच्छी तरह से काम नहीं कर पाई। मैंने पर्ल को तोड़ना शुरू कर दिया और अगले कुछ घंटों को नुकसान से बचा लिया। मैं इसे एक और जाने देने के लिए अनिच्छुक हूं। काश, मेरे पास इस उत्तर के लिए कम से कम आपको +1 देने के लिए पर्याप्त प्रतिनिधि होता, हालांकि।
एचपी

@Exp HP: मुझे खेद है कि आपको इतनी परेशानी हुई। मुझे यह उबंटू 9.10 सिस्टम पर मिला है और मुझे कोई समस्या नहीं है।
अगली सूचना तक रोक दिया गया।

0

मैं नैनो का इस्तेमाल करता हूं।

फ़ाइल को छोटे नाम (8.3) में बदलें। नैनो में खोलें, फिर Alt- Jपूरे दस्तावेज़ को सही ठहराने के लिए। Alt- Oबचाने के लिए। फिर Alt- Xबाहर निकलने के लिए। फिर मूल नाम पर फ़ाइल का नाम बदलें।

बोझिल लग सकता है, लेकिन यह मुझे मार्गदर्शन कर रही है पर समय की एक बहुत कुछ बचा लिया Enter, Delete, End72. करने के लिए 90. नैनो चूक मैं उस के साथ रह सकते हैं करने के लिए कॉलम सीमित करने के लिए।


2
शॉर्ट फ़ाइल नाम के पीछे क्या जादू है?
जवा

0

आप कोशिश कर सकते हैं reformat

आप इसे रनिंग द्वारा डेबियन / उबंटू पर स्थापित कर सकते हैं sudo apt-get install reformat

इसे इस तरह उपयोग करें:

reformat -w 80 -j < mytext.txt

न्यायसंगत पाठ मानक आउटपुट के लिए लिखा जाएगा।

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