বিভিন্ন ভাষায় কোডের সিনট্যাক্স হাইলাইট করার জন্য ল্যাটেক্স প্যাকেজ


164

আমি একটি LaTeX প্যাকেজ সন্ধান করছি যা কোডে সিনট্যাক্স হাইলাইট করে। উদাহরণস্বরূপ, এখনই আমি কোড লিখতে ভারব্যাটিম ব্লকটি ব্যবহার করি:

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

এবং এটি আমার দস্তাবেজে কোড প্রদর্শন করতে সূক্ষ্ম কাজ করে। তবে, ধরুন আমি কোনও আইডিই আউটপুট ডকুমেন্টে যেভাবে এইচটিএমএল মার্কআপটি হাইলাইট করতে চেয়েছিলাম? এমন কোন প্যাকেজ রয়েছে যা সাহায্য করতে পারে?

আমি বিভিন্ন ভাষার যেমন জাভা, সি #, এইচটিএমএল, সিএসএস এবং এর জন্য একই কাজ করতে চাই।


4
আমি সন্তুষ্ট নই lstlisting। এটি কোনও ক্ষেত্রে এক্সএমএল কোড হাইলাইট করে না এবং বিদেশী ইউনিকোড অক্ষর ব্যবহার করার সময় স্ক্রু আপ করে। জাভাস্ক্রিপ্টও সমর্থিত নয়, যেমনটি মনে হয়। LGrind এই জিনিসগুলি পরিচালনা করতে পারে?
ওয়েবজুঙ্কি

উত্তর:


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এবং বেশ স্থিতিশীল এবং ব্যবহারযোগ্য।

কেবল এটি দেখানোর জন্য, এখানে মিন্ট সহ একটি কোড হাইলাইট করা হয়েছে:

উদাহরণ কোড


এটি আসলে বেশ ভাল কাজ। পাইগমেন্টগুলি ইনস্টল করা কিছুটা চ্যালেঞ্জের মুখোমুখি হয় তবে আমি নিশ্চিত যে বেশিরভাগ ব্যক্তি তা করতে রাজি হবে।
ভিনসেন্ট রামধনি

1
@Vincent: দুর্ভাগ্যবশত, Windows এ Pygments ইনস্টল বেশ কিছু মুহূর্তে জটিল (ব্যবহারকারী মানিয়ে আছে PATHপরিবর্তনশীল এবং একটি cmd কমান্ড স্ক্রিপ্ট তৈরি করুন)। আমি পদক্ষেপটি রক্ষণাবেক্ষণকারীদের এই পদক্ষেপটি আরও সহজ করার জন্য pygmentizeএকটি .exeমোড়কের সাহায্যে প্রেরণে বোঝানোর আশা করছি ।
কনরাড রুডল্ফ

1
উভয় তালিকা তৈরি করার পরে এবং টুকরো টুকরো টুকরো টুকরো করার পরে আমি সিদ্ধান্ত নিয়েছি যে মিন্ট করা অনেক ভাল (আরও নমনীয়) ছিল flex এটির জন্য কয়েক ডজন হুপের মধ্য দিয়ে ঝাঁপিয়ে পড়া, মিকটেক্স ২.৮-তে উন্নীত করা, পাইথন ইনস্টল করা, অন্যান্য উপাদান ইনস্টল করা ইত্যাদি প্রয়োজন হবে। Minated ডকুমেন্টেশন দুর্বল এবং এটি লম্বা লাইন ভাঙ্গা সমর্থন করে না। তবে অবশেষে আমি এটিকে জাভা / এক্সএমএলকে এক্লিপ্স রঙে রেন্ডার করলাম! jevon.org/wiki/Elipse_Pyitions_Style
jevon

@ সাউন্ডস্লিফফুল: টানা ডকুমেন্টেশন ক্রমাগত আপডেট হয়। ;-) আমি আসলে এটি বেশ বিস্তৃত মনে করি (অবশ্যই আমি পক্ষপাতদুষ্ট) তবে আমি কোনও অভিযোগের সমাধান করতে পেরে খুশি। এটি যেমন দাঁড়ায়, "প্রয়োজনীয়তা" বিভাগটি স্বীকৃতভাবে ভয়াবহ।
কনরাড রুডল্ফ

3
mintedশেয়ারল্যাটেক্স এবং ওভারলিফ উভয়ই ইনস্টল এবং কাজ করছে। পিগমেন্টগুলি ইনস্টল করার মাথা ব্যাথা নিজেকে বাঁচান;)
গ্রোফেট

21

আমি পাইগমেন্টের প্রস্তাব দিই । এটি কোনও ভাষায় কোডের একটি অংশ গ্রহণ করে এবং লিনেক্স কোড হাইলাইট করে সিনট্যাক্স আউটপুট দেয়। এটির আউটপুট উত্পাদন করতে এটি অভিনব এবং রঙিন প্যাকেজ ব্যবহার করে । আমি ব্যক্তিগতভাবে এটিকে তালিকা প্যাকেজটিতে পছন্দ করি। আমার মনে হয় অভিনব ফলাফল অনেক সুন্দর ফলাফল তৈরি করে।


1
আমি তালিকার পিছনে ম্যাক্রোলজির প্রশংসা করার সময়, আমি এটিও সম্মত করি যে পাইগমেন্টগুলির প্রান্ত রয়েছে: উত্তম হাইলাইটিং, সহজ স্বনির্ধারণ, সিনট্যাক্সগুলি মিশ্রিত করার কিছু ক্ষমতা এবং এইচটিএমএলের মতো ল্যাটেক্স ছাড়া অন্য বিন্যাসে আউটপুট দেওয়ার ক্ষমতা to
চার্লস স্টুয়ার্ট

কোনও beamerপ্রকার নথিতে এটি দৃশ্যত একমাত্র কার্যকরী বিকল্প। সঙ্গে সঠিকভাবে সংকলন mintedবা নাও । listingsbeamer
Luís de Sousa

হ্যাঁ, আমি ব্যবহার করেছেন listingsসঙ্গে beamer, কিন্তু এই ফ্রেম অন্তর্ভুক্ত যে তালিকা আছে নির্দিষ্ট করতে হবে [fragile]
অতিমানবিক

11

LGrind এটি করে। এটি একটি পরিপক্ক ল্যাটেক্স প্যাকেজ যা প্রায় আদম একটি কাউবয় ছিলেন এবং অনেকগুলি প্রোগ্রামিং ভাষার জন্য সমর্থন রয়েছে।


10

আমি তালিকা প্যাকেজের পরিবর্তে বিকাশকারী কনরাড রুডল্ফের কাছ থেকে উল্লিখিত মিন্টেড প্যাকেজটি ব্যবহার করব । এখানে কেন:

তালিকা প্যাকেজ

তালিকা প্যাকেজটি ডিফল্টরূপে রঙগুলি সমর্থন করে না। রঙগুলি ব্যবহার করার জন্য আপনাকে রঙিন প্যাকেজ অন্তর্ভুক্ত করতে হবে এবং মাতলাব কোডের জন্য বর্ণিত as lstset কমান্ডের মাধ্যমে নিজের দ্বারা রঙ-বিধিগুলি সংজ্ঞায়িত করতে হবে 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}

নিম্নলিখিত চিত্র উত্পাদন করে:

এখানে চিত্র বর্ণনা লিখুন

মিন্টড প্যাকেজ

মিন্টেড প্যাকেজটি রঙগুলি, ইউনিকোড সমর্থন করে এবং দুর্দান্ত দেখায়। তবে এটি ব্যবহার করার জন্য আপনার অজগর ২.6 এবং পাইগমেন্টগুলি থাকা দরকার । উবুন্টুতে, আপনি টার্মিনালে আপনার পাইথন সংস্করণটি পরীক্ষা করে দেখতে পারেন

python --version

এবং আপনি পাইগমেন্টগুলি এর সাথে ইনস্টল করতে পারেন

sudo apt-get install python-pygments

তারপরে, যেহেতু মিন্টেড পাইগমেন্টগুলিতে কল করে, আপনার এটি এটির মতো শেল-পলায়ন দিয়ে সংকলন করতে হবে

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

আমি বেশিরভাগ কাগজগুলিতে লিস্টলিস্টিং ব্যবহার করি তবে রঙিন আউটপুট (স্লাইডগুলির জন্য) আমি তার পরিবর্তে পাইগমেন্ট ব্যবহার করি।


-1

আমি নিম্নলিখিত টেক্সট কোডের উপর ভিত্তি করে আপনার নিজস্ব প্যাকেজটি সংজ্ঞায়িত করার পরামর্শ দেব; এটি আপনাকে সম্পূর্ণ স্বাধীনতা দেয়। http://ubuntuforums.org/archive/index.php/t-331602.html


লিঙ্কটি কেবলমাত্র 'তালিকাভুক্তি' প্যাকেজটির সাথে পাইথন কোডটি হাইলাইট করে সিনট্যাক্সের জন্য নির্দিষ্ট সেটিংস দেখায় ...
লাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.