C ++ कोड को प्रिंट करने के लिए टेक्स्ट एडिटर


34

मैं सी + + कोड प्रिंट करने के लिए एक संपादक की तलाश कर रहा हूं। मैं अभी इंजीनियरिंग स्कूल में हूं और प्रशिक्षक ने हमें कागज पर कोड जमा करने के लिए कहा है।

वह नाम + उपनाम, वर्ग संख्या (शीर्ष लेख पर), नीचे पृष्ठ की संख्या और हर पृष्ठ पर बोल्ड शब्द चाहता है!

विंडोज पर इसके साथ किया जा सकता है notepadd++। लेकिन मैं लिनक्स पर हूं और मुझे एक आईडीई या टेक्स्ट एडिटर नहीं मिला है जो काम करता हो। (मैं पहले से ही की कोशिश की है SCITE, geditऔर Syntaxic)


4
a2ps आपका मित्र है इसे कॉन्फ़िगर करने के लिए अपना समय लें।
सातु कटुरा

5
इस तरह के अनुरोधों के लिए, आप softwarerecs.stackexchange.com
एरिक रेनॉफ़

30
लगता है कि आपके शिक्षक ने लॉगिंग उद्योग में निवेश किया है।
एंथन

10
आपका शिक्षक कोड चाहता है ... कागज पर ?!
मोनिका

8
@ loi219 एक "पुराने स्कूल" के शिक्षक या एक पुराने "स्कूल के शिक्षक", या दोनों? ;-)
16:800 पर user800

जवाबों:


76

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

  1. एक LaTeX सिस्टम और आवश्यक पैकेज स्थापित करें

    sudo apt-get install texlive-latex-extra latex-xcolor texlive-latex-recommended
    
  2. report.texनिम्नलिखित सामग्री के साथ एक नई फ़ाइल बनाएं (इसे कॉल करें ):

    \documentclass{article}
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    %% Define your header here. 
    %% See http://texblog.org/2007/11/07/headerfooter-in-latex-with-fancyhdr/
    \fancyhead[CO,CE]{John Doe, Class 123}
    
    \usepackage[usenames,dvipsnames]{color}  %% Allow color names
    
    %% The listings package will format your source code
    \usepackage{listings}
    \lstdefinestyle{customasm}{
      belowcaptionskip=1\baselineskip,
      xleftmargin=\parindent,
      language=C++,
      breaklines=true, %% Wrap long lines
      basicstyle=\footnotesize\ttfamily,
      commentstyle=\itshape\color{Gray},
      stringstyle=\color{Black},
      keywordstyle=\bfseries\color{OliveGreen},
      identifierstyle=\color{blue},
      xleftmargin=-8em,
      showstringspaces=false
    }        
    \begin{document}
    
    \lstinputlisting[style=customasm]{/path/to/your/code.c}
    
    \end{document}
    

    बस यह सुनिश्चित करें /path/to/your/code.cकि आप अपनी सी फ़ाइल के वास्तविक पथ की ओर इशारा करें। यदि आपके पास शामिल करने के लिए एक से अधिक फ़ाइल है, \newpageतो \lstinputlistingअन्य फ़ाइल के लिए एक नया जोड़ें ।

  3. एक पीडीएफ संकलित करें (यह बनाता है report.pdf)

    pdflatex report.tex    
    

मैंने अपने सिस्टम पर एक उदाहरण फ़ाइल के साथ इसका परीक्षण किया, जो मुझे यहां मिली और यह एक पीडीएफ बनाती है जो इस तरह दिखता है:

निर्मित पीडीएफ का पहला पृष्ठ

एक अधिक व्यापक उदाहरण के लिए जो स्वचालित रूप से लक्ष्य फ़ोल्डर में सभी .c फ़ाइलों को ढूंढेगा और एक अलग अनुभाग में प्रत्येक के साथ एक अनुक्रमित पीडीएफ फाइल बनाएगा, मेरा जवाब यहां देखें


17
जैसे ही आप LaTeX से शुरू करते हैं, आप जाने नहीं दे सकते! काश मैं TeX को हाईस्कूल में जानता था ... (या वे इसे शब्द के विकल्प के रूप में सिखाएंगे)।
Kyslik

2
मुझे लगता है कि LaTex को अधिकांश प्रणालियों पर डिफ़ॉल्ट रूप से स्थापित किया जाएगा, खासकर एक इंजीनियरिंग स्कूल में। कमांड प्रॉम्प्ट पर "जो लेटेक्स" टाइप करें: यदि यह एक पथ देता है, आम तौर पर / usr / bin / लेटेक्स, तो आप चरण 1 को छोड़ सकते हैं। इसके अलावा, यदि आपकी पसंद के संपादक में एक सभ्य मैक्रो भाषा है, तो आप लाइव स्क्रिप्ट को प्रदर्शित करने के लिए उदाहरण के लिए "gv --watch" का उपयोग करके, इस स्क्रिप्ट को संपादक के भीतर से चला सकते हैं।
jamesqf

4
@jamesqf मैंने कभी डिफ़ॉल्ट रूप से लाटेक्स के साथ एक सिस्टम नहीं देखा है। हां, कुछ स्कूल के आईटी लोगों ने इसे स्थापित किया हो सकता है, और विशेष रूप से लिनक्स वितरण हो सकते हैं जो डिफ़ॉल्ट रूप से होते हैं, लेकिन अधिकांश सिस्टम नहीं होंगे।
terdon

3
@terdon - मैंने एक इंजीनियरिंग विभाग में लाटेक्स के बिना स्थापना नहीं देखी है । यह प्रिंट करने योग्य आउटपुट का उत्पादन करने की आवश्यकता वाले किसी भी व्यक्ति के लिए बहुत आवश्यक है।
टॉबी स्पाइट 8

1
@terdon: 'डिफ़ॉल्ट' या इंस्टॉल पर चयनित। मुझे अपने सिस्टम (OpenSuSE) पर LaTeX प्राप्त करने के लिए कुछ विशेष करने की याद नहीं है, लेकिन जब से मैंने आखिरी इंस्टॉल किया है तब से यह एक समय है। किसी भी तरह से, जाँच सरल है।
jamesqf

29

मैं आमतौर पर एनस्क्रिप्ट का उपयोग करता हूं: जैसे कुछ

$ enscript --highlight=cpp
           --header='|Real Name|Class 101'
           --footer='|Page $% of $=|'
           -poutput.ps *.cpp

एक शुरुआत होगी - यह पोस्टस्क्रिप्ट आउटपुट को लिखता है output.ps, इसलिए आप पूर्वावलोकन कर सकते हैं और ओवरराइट कर सकते हैं कि जब आप कॉन्फ़िगरेशन के साथ छेड़छाड़ कर रहे हों और तब खुश हो जाएं। अधिक व्यापक विकल्पों के लिए मैन पेज देखें।

EDIT पाद को सही ढंग से काम करने के लिए पहनावा के साथ दर्द का एक सा है - मैंने कभी ध्यान नहीं दिया क्योंकि मुझे इसकी आवश्यकता नहीं है। यदि आप इस फ़ाइल को सहेजते हैं ~/.enscript/so.hdr(आपको संभवतः निर्देशिका बनाने की आवश्यकता है), तो आप वास्तव में आवश्यक आउटपुट प्राप्त करेंगे

$ enscript --highlight=cpp
           --header='|Real Name|Class 101'
           --footer='|Page $% of $=|'
           --fancy-header=so
           -poutput.ps *.cpp

दे रही है

यहाँ छवि विवरण दर्ज करें


मोटे तौर पर,

  • LaTe to सेट करने के लिए सबसे अच्छी गुणवत्ता और सबसे काम है,
  • एनस्क्रिप्ट या a2ps गुणवत्ता और कार्य दोनों में मध्यवर्ती हैं,
  • vim का :hardcopyकमांड आसान है लेकिन इतना लचीला नहीं है, और
  • गैर-कोड-जागरूक संपादक में मैन्युअल रूप से हाइलाइटिंग करना खराब रिटर्न के लिए बहुत प्रयास है।

यह वही है जो मैं खोज रहा हूं। आपका बहुत बहुत धन्यवाद!
loi219

मैं दूसरा emscript। इसमें विकल्पों का भार है और यह बहुत अच्छे परिणाम देता है।
रुबिक

9

आप :TOhtmlvim में कमांड का उपयोग कर सकते हैं । यह आपको HTML के रूप में (यानी सिंटैक्स हाइलाइटिंग) को प्रस्तुत करता है। वहां से, एक वेब ब्राउज़र जो कि पीडीएफ़ कार्यों पर प्रिंट कर सकता है, जैसा कि आप आमतौर पर हेडर / फ़ूटर सामग्री को अनुकूलित कर सकते हैं।

यह शायद :hardcopyUseless द्वारा उल्लिखित कमांड के समान है , लेकिन मैं अभी अपने सिस्टम पर सत्यापित नहीं कर सकता।

एक और संभावना QtCreator से प्रिंट करने की है, हालांकि हेडर / फ़ुटर्स सेट करने का एक तरीका प्रतीत नहीं होता है।


4

Geany एक साधारण IDE है जो आपको हेडर में जाने के लिए कई विकल्प देता है।

विकल्प मेनू में आरक्षित शब्दों को हेरफेर किया जा सकता है लेकिन कोड हाइलाइटिंग नोटपैड ++ शैली के लिए ऐसा करता है। (आपको अपने इच्छित रंग पाने के लिए अपने "/home/$USER_NAME/.config/geany/colorschemes/" रंग योजनाओं को कॉपी / डाउनलोड करना पड़ सकता है)

बहुत सरल और व्यक्तिगत रूप से मैं वास्तव में लाइन नंबर पसंद करता हूं और इसे प्रिंट करता हूं।

इसके अलावा geany विंडो और लाइनक्स दोनों पर चलती है।

पृष्ठ 1

पृष्ठ 2

पेज 3


2

चूंकि आप एक संपादक के लिए पूछते हैं , आप सीधे एमएसीएस से प्रिंट कर सकते हैं, उपयोग कर सकते हैं ps-print-buffer

शीर्षलेख और पादलेख कस्टमाइज़ समूह में होते हैं जिसे कहा जाता है ps-print-headers

मान लें कि आप फ़ॉन्ट-लॉक का उपयोग करते हैं, तो आपके पास संभवतः सिंटैक्स हाइलाइटिंग है जो आवश्यक है। ps-extend-faceफ़ंक्शन का उपयोग करके, यदि आवश्यक हो, तो इसे समायोजित किया जा सकता है ।


ऐसा कहने के बाद, मैं अभी भी अनुशंसा करूँगा कि आप a2ps, enscript या LaTeet + लिस्टिंग जैसे उचित 'पीस' टूल का उपयोग करें।


1

पूर्णता के लिए, और यद्यपि मैं उस समाधान की अनुशंसा नहीं करूंगा, lpकार्यक्रम में एक -o prettyprintविकल्प है जो वाक्यविन्यास हाइलाइटिंग कर सकता है।

आप उदाहरण के लिए इसका उपयोग कर सकते हैं:

lp -t "Name Surname | Class" -o document-format=application/x-csource -o prettyprint path/to/code.cpp

-tहेडर सेट करने के लिए यहां मैंने (शीर्षक) विकल्प का उपयोग किया । मैं हालांकि पाद लेख को नहीं बदल सकता (लेकिन पृष्ठ संख्या शीर्ष पर दिखाई देती है)। आप फ़ाइल प्रकार को विकल्प के साथ सेट कर सकते हैं -o document-format (स्वीकार्य मूल्य की सूची में /usr/share/cups/mime/mime.typesया शायद होना चाहिए /etc/cups/mime/mime.types) लेकिन अगर आपकी फ़ाइल में सही एक्सटेंशन है, तो यह आवश्यक नहीं होना चाहिए। इसके अलावा, वाक्य रचना हाइलाइटिंग एकदम सही होने से दूर है।


1

आपको बस लिबर ऑफिस राइटर की जरूरत है ।

अपना C / C ++ कोड पेस्ट करें।

शब्द ढूंढें और सभी C ++ कीवर्ड को बोल्ड करें

आप उन्हें यहां देख सकते हैं: http://en.cppreference.com/w/cpp/keyword

एक शब्द खोजने के लिए Ctrl + F. "मैच केस" चुनें और Find All (जैसा कि स्क्रीनशॉट में दिखाया गया है) पर क्लिक करें।

यहाँ छवि विवरण दर्ज करें

उसके बाद आपको अपने नाम और पृष्ठ संख्या के साथ एक हेडर और फुटर की आवश्यकता होगी।

संपादित करें: ( क्रिस्टोफ़ स्ट्रोब ने टिप्पणी की :)

कोड रंग के लिए एक लिब्रे ऑफिस एक्सटेंशन है: कोड Colorizer फ़ॉर्मैटर । (मैंने अभी तक इसका परीक्षण नहीं किया है)


41
Eww, मैनुअल सिंटैक्स हाइलाइटिंग।
बेकार

क्या आपके पास कुछ विचार है?
loi219

7
इसके अलावा, eww, चर-चौड़ाई फ़ॉन्ट में कोड :(
बिल्ली

2
कोड रंग के लिए एक लिब्रे ऑफिस एक्सटेंशन है: कोड Colorizer फ़ॉर्मैटर । (मैंने इसे अभी तक परीक्षण नहीं किया है।)
16:800 पर user800

1
यह दर्दनाक लग रहा है
जो

0

जब मैं एक जीयूआई इंटरफ़ेस पसंद करता था तो मैं कई साल पहले जब मैं सोलारिस सिस्टम पर था, तो मैं नेडिट का उपयोग करता था। मैं देख रहा हूं कि यह अभी भी आसपास है। इसकी जांच - पड़ताल करें।


-2

अतीत में जब केडीई 3 अभी भी एक बड़ी चीज थी, मैंने एक टेक्स्ट एडिटर के लिए केट बीज़ॉस का इस्तेमाल किया जो वास्तव में सबसे अच्छा आउटपुट पैदा करता है। आज मैं एक और एम्बेड करने योग्य समाधान के लिए लेटेक्स के साथ जाऊंगा, पैकेज के साथ lstlisting। यह पैकेज कलर आउटपुट के लिए नहीं है, लेकिन लेज़र प्रिंटर पर रंगों का फायदा नहीं है।


2
यह वास्तव में सवाल का जवाब नहीं देता है, क्या यह करता है?
countermode

वास्तव में यह प्रश्न का उत्तर देता है। जवाब है: "केट पर एक नज़र डालें, यह मेरे लिए अतीत में अच्छा साबित हुआ"
आर्ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.