विभिन्न भाषाओं में कोड के सिंटैक्स हाइलाइटिंग के लिए LaTeX पैकेज


164

मैं एक LaTeX पैकेज की तलाश में हूं जो कोड पर सिंटैक्स हाइलाइटिंग करता है। उदाहरण के लिए, अभी मैं कोड लिखने के लिए शब्दशः ब्लॉक का उपयोग करता हूं:

\begin{verbatim}
    <html>
       <head>
           <title>Hello</title>
       </head>
       <body>Hello</body>
    </html>
\end{verbatim}

और यह मेरे दस्तावेज़ पर कोड प्रदर्शित करने के लिए ठीक काम करता है। लेकिन, मान लीजिए कि मैं HTML मार्कअप को उजागर करना चाहता था जिस तरह से एक आईडीई आउटपुट दस्तावेज़ में होगा? क्या कोई पैकेज है जो मदद कर सकता है?

मैं विभिन्न भाषाओं जैसे जावा, C #, HTML, CSS आदि के लिए भी यही करना चाहूंगा।


4
मैं संतुष्ट नहीं हूं lstlisting। यह एक्सएमएल कोड को बिल्कुल भी उजागर नहीं करता है और विदेशी यूनिकोड वर्णों का उपयोग करते समय खराब हो जाता है। जावास्क्रिप्ट समर्थित नहीं है, भी, जैसा कि लगता है। क्या LGrind ऐसी चीजों को संभाल सकता है?
webjunkie

जवाबों:


157

आप लिस्टिंग पैकेज का उपयोग कर सकते हैं । यह कई अलग-अलग भाषाओं का समर्थन करता है और आउटपुट को अनुकूलित करने के लिए बहुत सारे विकल्प हैं।

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}

20
क्या यह डिफ़ॉल्ट रूप से रंग करता है? मैं अपने परीक्षण उपयोग में रंगीन आउटपुट नहीं देख रहा हूं, और मुझे यकीन नहीं है कि यह मेरी ओर से एक त्रुटि है, या बस एक विशेषता नहीं है।
बेन्सन

12
मुझे यहाँ एक उत्तर मिला: tjansson.dk/?p=419 । आप बस विभिन्न गुणों के लिए सभी प्रकार की शैलियों को सेट करने के लिए lstset कमांड का उपयोग कर सकते हैं।
बेन्सन

144

इसी तरह का प्रश्न पूछने के बाद, मैंने एक और पैकेज बनाया है जो पाइएशंस का उपयोग करता है, और इससे कुछ अधिक विकल्प प्रदान करता है texments। यह कहा जाता है mintedऔर काफी स्थिर और प्रयोग करने योग्य है।

बस इसे दिखाने के लिए, यहां एक कोड को ढाला गया है:

उदाहरण कोड


यह वास्तव में काफी अच्छा काम है। पियूवन्स स्थापित करने के बाद एक चुनौती का एक सा हो जाता है, लेकिन मुझे यकीन है कि ज्यादातर लोग ऐसा करने के लिए तैयार होंगे।
विन्सेंट रामधनी 13

1
@ विन्सेन्ट: दुर्भाग्य से, विंडोज पर पियर्सिंग स्थापित करना फिलहाल थोड़ा अधिक जटिल है (उपयोगकर्ता को PATHचर को अनुकूलित करना और एक cmd स्क्रिप्ट बनाना है)। मैं इस कदम को आसान बनाने के लिए रैपरों को pygmentizeएक .exeरैपर के साथ रखने के लिए मनाने की उम्मीद कर रहा हूं ।
कोनराड रुडोल्फ

1
दोनों लिस्टिंग और मिंटेड / पियुमेंट्स को आज़माने के बाद मैंने तय किया कि यह ज्यादा बेहतर (अधिक लचीला) है। कभी-कभी इसे एक दर्जन हुप्स के माध्यम से कूदने की आवश्यकता होगी, MiKTeX 2.8 में अपग्रेड करना, पायथन को स्थापित करना, अन्य घटकों को स्थापित करना और इसी तरह। टकसाल प्रलेखन खराब है और यह लंबी लाइनों को तोड़ने का समर्थन नहीं करता है। लेकिन अंततः मैंने ग्रहण रंगों में जावा / एक्सएमएल को प्रस्तुत करने के लिए इसे प्राप्त किया! jevon.org/wiki/Eclipse_Pyolution_Style
jevon

@soundasleepful: कीमा बनाया हुआ प्रलेखन लगातार अद्यतन किया जाता है। ;-) मुझे वास्तव में यह काफी व्यापक लगता है (बेशक मैं पक्षपाती हूं), लेकिन मैं किसी भी शिकायत को संबोधित करने में खुश हूं। जैसा कि यह खड़ा है, "आवश्यकताओं" अनुभाग में भयानक रूप से भयानक है।
कोनराड रूडोल्फ

3
mintedस्थापित है और ShareLatex और Overleaf दोनों पर काम कर रहा है। अपने आप को बचाने के सिरदर्द को स्थापित करने;)
grofte

21

मैं Py Py को सलाह देता हूँ । यह किसी भी भाषा में कोड का एक टुकड़ा स्वीकार करता है और सिंटैक्स हाइलाइट किए गए LaTeX कोड को आउटपुट करता है। यह अपने उत्पादन का उत्पादन करने के लिए फैंसीवेरब और रंगीन पैकेज का उपयोग करता है । मैं व्यक्तिगत रूप से इसे लिस्टिंग पैकेज के लिए पसंद करता हूं। मुझे लगता है कि फैंटेर्वब ज्यादा प्रेट्रियर परिणाम देता है।


1
जबकि मैं लिस्टिंग के पीछे मैक्रोोलॉजी की प्रशंसा करता हूं, मैं यह भी मानता हूं कि पाइलेशन में बढ़त है: अच्छे हाइलाइटिंग, आसान अनुकूलन, वाक्यविन्यास मिश्रण करने की क्षमता, और HTML जैसे लेटेक्स के अलावा अन्य प्रारूपों के आउटपुट की क्षमता।
चार्ल्स स्टीवर्ट

एक beamerप्रकार के दस्तावेज़ पर यह स्पष्ट रूप से एकमात्र कार्यात्मक विकल्प है। न तो mintedऔर न ही listingsसही से संकलन beamer
लुइस डी सूसा

हां, मैंने उपयोग किया listingsहै beamer, लेकिन आपको यह निर्दिष्ट करना होगा कि लिस्टिंग में शामिल फ़्रेम हैं [fragile]
सुपरनैचुरल

11

LGrind ऐसा करता है। यह एक परिपक्व LaTeX पैकेज है जो एडैम के बाद से एक चरवाहे के आसपास है और कई प्रोग्रामिंग भाषाओं के लिए समर्थन है।


10

मैं सूचीबद्ध पैकेज के बजाय डेवलपर कोनराड रूडोल्फ से वर्णित पैकेज का उपयोग करूंगा । यहाँ क्यों है:

लिस्टिंग पैकेज

लिस्टिंग पैकेज डिफ़ॉल्ट रूप से रंगों का समर्थन नहीं करता है। रंगों का उपयोग करने के लिए आपको रंग पैकेज को शामिल करना होगा और रंग-नियमों को अपने आप से परिभाषित करना होगा \ _stset कमांड के साथ जैसा कि यहां matabab कोड के लिए समझाया गया है

इसके अलावा, लिस्टिंग पैकेज यूनिकोड के साथ अच्छी तरह से काम नहीं करता है, लेकिन आप उन समस्याओं को ठीक कर सकते हैं जैसा कि यहां और यहां बताया गया है

निम्नलिखित कोड

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}

निम्नलिखित छवि तैयार करता है:

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

कीमा बनाया हुआ पैकेज

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

python --version

और आप के साथ pyolution स्थापित कर सकते हैं

sudo apt-get install python-pygments

फिर, जब से कीमा बनाया हुआ pyolution को कॉल करता है, तो आपको इसे इस तरह से -भागने के साथ संकलित करने की आवश्यकता है

pdflatex -shell-escape yourfile.tex

यदि आप टेक्समेकर या कुछ और जैसे लेटेक्स संपादक का उपयोग करते हैं, तो मैं एक उपयोगकर्ता-कमांड जोड़ने की सलाह दूंगा, ताकि आप अभी भी इसे संपादक में संकलित कर सकें।

निम्नलिखित कोड

\documentclass{article}
\usepackage{minted}
\begin{document}

\begin{minted}{html}
    <!DOCTYPE html>
    <html>
       <head>
           <title>Hello</title>
       </head>

       <body>Hello</body>
    </html>
\end{minted}
\end{document}

निम्नलिखित छवि तैयार करता है:

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


4

मैं ज्यादातर कागजों में lstlistings का उपयोग करता हूं, लेकिन रंगीन आउटपुट के लिए (स्लाइड के लिए) मैं इसके बजाय pyolution का उपयोग करता हूं।


-1

मैं निम्नलिखित टेक्स कोड के आधार पर आपके अपने पैकेज को परिभाषित करने का सुझाव दूंगा; इससे आपको पूरी आजादी मिलती है। http://ubuntuforums.org/archive/index.php/t-331602.html


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