सिंटैक्स_हाइलाइट <source_file> | LPR


10

क्या किसी को किसी पोस्ट फ़ाइल के सीधे सिंटैक्स-हाइलाइट किए गए संस्करण के लिए पोस्टस्क्रिप्ट का उत्पादन करने का एक सरल तरीका पता है जिसे सीधे पोस्टस्क्रिप्ट प्रिंटर पर पाइप किया जा सकता है?

जैसा कि ऊपर दिए गए प्रश्न के शब्दों से पता चलता है, मैं कुछ ऐसी चीज की तलाश कर रहा हूं जिसे मैं कमांड लाइन से चला सकता हूं। मैं एक बातचीत की तरह सोच रहा हूँ:

% syntax_highlight <SOURCE_FILE> | lp

... आवश्यकतानुसार कमांड-लाइन स्विच आदि।

अब तक मैंने जो सबसे अच्छा पाया है वह यूनिक्स यूटिलिटी कहलाता है highlight, लेकिन इसमें समस्याएं हैं। सबसे गंभीर बात यह है कि इसमें पोस्टस्क्रिप्ट को सीधे आउटपुट करने का विकल्प नहीं है। (चूँकि highlightलाटेएक्स आउटपुट का समर्थन करता है, मैंने एक स्क्रिप्ट को एक साथ पैच करने की कोशिश की, जो पोस्ट फाइल को * .ex => * .dvi => * .ps के माध्यम से उत्पन्न करने की प्रक्रिया को स्वचालित करेगी, लेकिन अंतिम परिणाम का दृश्य स्वरूप भयानक है। एचटीएमएल फ़ाइल के लिए इससे भी बदतर है highlightजो समान स्रोत कोड इनपुट के लिए उत्पन्न होता है।)

धन्यवाद!

जवाबों:


13

आप विम का उपयोग कर सकते हैं।

vim -c hardcopy -c quit /path/to/file

यह फ़ाइल प्रिंट करेगा और तुरंत छोड़ देगा। डिफ़ॉल्ट रूप से, सिंटैक्स हाइलाइटिंग के साथ प्रिंट करता है।

यदि आपको कुछ कमांड के प्रिंटआउट से प्रिंट करने की आवश्यकता है, तो आप यह कर सकते हैं:

cat some_file.c | vim -c hardcopy -c 'quit!' -

यदि आप बाद में .ps को सहेजना चाहते हैं, तो आप हार्डकॉपी कमांड में पुनर्निर्देशन को जोड़कर ऐसा कर सकते हैं, जैसे:

vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file

विम आपको बहुत सारे प्रिंटिंग-संबंधित विकल्प सेट करने देता है, इसलिए यदि आप इसे ट्वीक करना चाहते हैं , तो आप दस्तावेज़ देखना चाहते हैं। बेशक, बहुत सारे सिंटैक्स हाइलाइटिंग विकल्प भी हैं।


5

कई प्रोग्राम हैं जो विभिन्न प्रोग्रामिंग भाषाओं को पोस्टस्क्रिप्ट में प्रिंट करते हैं, जिन्हें चलाने के लिए किसी तीसरे पक्ष के सॉफ़्टवेयर की आवश्यकता नहीं होती है:

यदि आप LaTeX के माध्यम से जाने के इच्छुक हैं, तो आपके पास अधिक विकल्प हैं। यदि आप एक ही दस्तावेज़ में कोड और कुछ और शामिल करना चाहते हैं, तो LaTeX के माध्यम से जाना ज्यादातर उपयोगी है; अन्यथा यह ओवरकिल है।


3

गेडिट में, गनोम के लिए मानक संपादक, आप हाइलाइटिंग का उपयोग करने के लिए फ़ाइल, पोस्टस्क्रिप्ट (डिफ़ॉल्ट पीडीएफ) का चयन कर सकते हैं और तीसरे टैब पर निशान लगा सकते हैं, जो डिफ़ॉल्ट रूप से बंद है, जो मेरे लिए एक अच्छा पीएस-फाइल बनाता है।

और Gedit में बहुत सी सिंटैक्स फाइलें हैं, कई प्रोग्रामिंग भाषाओं, HTML, SQL, XML, rc-files की सेवा करने के लिए, आप इसे नाम देते हैं।


यह काम करता है, मुझे छोड़कर (Ubuntu 14.04.4 पर gedit 3.10.4) उत्पन्न पीडीएफ ग्रेस्केल में है, रंग नहीं। इसके अलावा सीधे ग्रेस्केल में छपाई होती है।
मार्निक्स क्लोस्टर रिंस्टोमोनिका

0

शॉन जे। गोफ के जवाब पर विस्तार:

Vim के भीतर से .ps फ़ाइल बनाने के लिए आप निम्न सिंगल-लाइन vim कमांड का उपयोग कर सकते हैं:

:hardcopy > %.ps

यदि आप .pdf फ़ाइल पसंद करते हैं, तो आप ऐसा कर सकते हैं:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

ध्यान दें:

  • %वर्तमान फ़ाइल नाम के लिए आशुलिपि है, इसलिए HelloWorld.Cकरने के लिए प्रिंट होगा HelloWorld.C.psयाHelloWorld.C.pdf

इसके अतिरिक्त, प्रदान किए गए फ़ॉन्ट को बदलने के लिए, हार्डकॉपी कमांड को निष्पादित करने से पहले प्रिंटरफॉन्ट सेट करें । उदाहरण के लिए, कूरियर 8 का चयन करने के लिए:

:set printerfont=Courier:h8

यह सब एक साथ रखते हुए, मैंने अपनी .vimrc फ़ाइल में निम्न डालने का विकल्प चुना, ताकि मैं बस :HardcopyPsया :HardcopyPdfकमांड को निष्पादित कर सकूं (जो किसी फ़ाइल के भीतर चयनित सीमा पर भी काम कर सकता है):

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.