2008-11-18 7 views
139

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

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

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

मैं जावा, सी #, एचटीएमएल, सीएसएस आदि जैसे विभिन्न भाषाओं के लिए ऐसा करना चाहता हूं।

+4

मैं 'lstlisting' से सन्तुष्ट न हों:

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

\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} 

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

उत्तर

139

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

\documentclass{article} 
\usepackage{listings} 

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

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

+11

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

11

LGrind यह करता है। यह एक परिपक्व लाटेक्स पैकेज है जो एडम एक काउबॉय था और कई प्रोग्रामिंग भाषाओं के लिए समर्थन है।

3

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

21

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

+1

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

+0

'बीमर' प्रकार दस्तावेज़ पर यह स्पष्ट रूप से एकमात्र कार्यात्मक विकल्प है। 'बीमर 'के साथ ठीक से' minted 'और न ही' लिस्टिंग 'संकलित करें। –

+0

हां, मैंने 'बीमर' के साथ 'लिस्टिंग' का उपयोग किया है, लेकिन आपको उन फ्रेमों को निर्दिष्ट करना होगा जिनमें लिस्टिंग शामिल हैं [नाजुक] '। – Supernormal

1

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

+0

लिंक सिर्फ 'लिस्टिंग' पैकेज के साथ पायथन कोड को हाइलाइट करने वाले सिंटैक्स के लिए विशिष्ट सेटिंग्स दिखाता है ... – las3rjock

116

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

बस इसे दिखाने के लिए, यहाँ एक कोड ढाला के साथ प्रकाश डाला गया है:

Example code

+0

यह वास्तव में काफी अच्छा काम है। पाइगल्स इंस्टॉल करने के लिए थोड़ा चुनौती है लेकिन मुझे यकीन है कि ज्यादातर लोग ऐसा करने के इच्छुक होंगे। –

+1

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

+1

दोनों लिस्टिंग और minted/पायगल्स की कोशिश करने के बाद मैंने फैसला किया कि minted बहुत बेहतर (अधिक लचीला) था। इसके लिए इसे एक दर्जन हुप्स के माध्यम से कूदने की आवश्यकता होगी, मिकिटेक्स 2.8 में अपग्रेड करना, पायथन स्थापित करना, अन्य घटकों को स्थापित करना आदि। छोटा दस्तावेज खराब है और यह लंबी लाइनों को तोड़ने का समर्थन नहीं करता है। लेकिन आखिरकार मुझे ग्रहण रंगों में जावा/एक्सएमएल प्रस्तुत करने के लिए मिला! http: //www.jevon।संगठन/विकी/Eclipse_Pygments_Style – jevon

4

मैं minted package का प्रयोग करेंगे के रूप में डेवलपर कोनराड रूडोल्फ के बजाय listing package से उल्लेख किया है।

सूची पैकेज

सूची पैकेज डिफ़ॉल्ट रूप से रंग का समर्थन नहीं करता: यहाँ क्यों है। रंगों का उपयोग करने के लिए आपको रंग पैकेज को शामिल करने और \ lstset कमांड के साथ रंग-नियमों को परिभाषित करने की आवश्यकता होगी जैसा मैटलैब कोड here के लिए समझाया गया है।

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

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

\documentclass{article} 
\usepackage{listings} 

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

निम्न छवि पैदा करता है:

enter image description here

ढाला पैकेज

ढाला पैकेज रंग, यूनिकोड का समर्थन करता है और भयानक लग रहा है। हालांकि, इसका उपयोग करने के लिए, आपको Python 2.6 और pygments होना चाहिए। उबंटू में, आप

python --version 

साथ टर्मिनल में अपने अजगर संस्करण की जांच कर सकते हैं और आप फिर

sudo apt-get install python-pygments 

साथ pygments स्थापित कर सकते हैं, ढाला के बाद से pygments को कॉल करता है, तो आप साथ यह संकलन करने की जरूरत - खोल-भागने की तरह इस

pdflatex -shell-escape yourfile.tex 

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

enter image description here

संबंधित मुद्दे