حزمة LaTeX لتسليط الضوء على بناء جملة التعليمات البرمجية بلغات مختلفة

StackOverflow https://stackoverflow.com/questions/300521

سؤال

أنا أبحث عن حزمة LaTeX التي تقوم بإبراز بناء الجملة على الكود.على سبيل المثال، أستخدم الآن الكتلة الحرفية لكتابة التعليمات البرمجية:

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

وهذا يعمل بشكل جيد لعرض الكود على المستند الخاص بي.ولكن، لنفترض أنني أردت تسليط الضوء على علامة HTML بالطريقة التي يفعلها IDE في مستند الإخراج؟ هل هناك حزمة يمكن أن تساعد؟

أود أن أفعل الشيء نفسه بالنسبة للغات المختلفة مثل Java وC# وHTML وCSS وما إلى ذلك.

هل كانت مفيدة؟

المحلول

يمكنك استخدام ال القوائم طَرد.وهو يدعم العديد من اللغات المختلفة وهناك الكثير من الخيارات لتخصيص الإخراج.

\documentclass{article}
\usepackage{listings}

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

نصائح أخرى

بعد سؤال أ سؤال مماثل لقد قمت بإنشاء حزمة أخرى تستخدم Pygments، وتقدم عددًا لا بأس به من الخيارات الإضافية texments.تسمى minted وهو مستقر تمامًا وقابل للاستخدام.

فقط لإظهاره، إليك الرمز المميز بالسك:

Example code

أوصي أصباغ.فهو يقبل جزءًا من التعليمات البرمجية بأي لغة ويخرج كود LaTeX المميز.يستخدم com.fancyvrb و لون حزم لإنتاج مخرجاتها.أنا شخصيا أفضل ذلك على حزمة القائمة.أظن com.fancyvrb يخلق نتائج أجمل بكثير.

إل طحن يفعل هذا.إنها حزمة LaTeX ناضجة كانت موجودة منذ أن كان آدم راعي بقر وتدعم العديد من لغات البرمجة.

سأستخدم حزمة مسكوكة كما ذكر من المطور كونراد رودولف بدلاً من حزمة القائمة.هنا هو السبب:

حزمة القائمة

لا تدعم حزمة القائمة الألوان بشكل افتراضي.لاستخدام الألوان، ستحتاج إلى تضمين حزمة الألوان وتحديد قواعد الألوان بنفسك باستخدام ملف \lstset الأمر كما هو موضح لكود MATLAB هنا.

كما أن حزمة القائمة لا تعمل بشكل جيد مع Unicode، ولكن يمكنك إصلاح هذه المشكلات كما هو موضح هنا و هنا.

الكود التالي

\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 و أصباغ.في Ubuntu، يمكنك التحقق من إصدار python الخاص بك في الوحدة الطرفية باستخدام

python --version

ويمكنك تثبيت pygments مع

sudo apt-get install python-pygments

بعد ذلك، نظرًا لأن Mint يقوم بإجراء مكالمات إلى pygments، فأنت بحاجة إلى تجميعها باستخدام -شل الهروب مثله

pdflatex -shell-escape yourfile.tex

إذا كنت تستخدم محررًا لاتكسًا مثل TexMaker أو شيء من هذا القبيل، فإنني أوصي بإضافة أمر مستخدم، بحيث لا يزال بإمكانك تجميعه في المحرر.

الكود التالي

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

ينتج الصورة التالية:

enter image description here

أستخدم في الغالب قوائم lstlistings في الأوراق، ولكن بالنسبة للمخرجات الملونة (للشرائح) أستخدم الأصباغ بدلاً من ذلك.

أود أن أقترح تحديد الحزمة الخاصة بك بناءً على كود النص التالي؛وهذا يمنحك الحرية الكاملة. http://ubuntuforums.org/archive/index.php/t-331602.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top