سؤال

كيف يمكنني تعيين أجزاء معينة من القائمة في Boldface؟

\begin{lstlisting}[escapechar=@]
fun(foo, bar, @\textbf{baz}@ );
\end{lstlisting}

هذا يجمع ، لكن BAZ لم يتم تعيينه في Boldface :( ما الذي أفتقده؟

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

المحلول

يجب أن يكون نهجك الأساسي هو معرفة إدراج الكلمات التي يجب التأكيد عليها. طريقة واضحة للقيام بذلك هي مثل هذا:

\lstset{emph={baz},emphstyle=\textbf}

بالطبع ، سيؤكد ذلك baz كلما حدث. ولكن هذا نهج أفضل من محاولة وضع الترميز في قائمتك نفسها ، فأنت لا تريد (يجب) القيام بذلك لأنك (يجب أن ترغب) في استخدام القوائم لتنسيق جزء من التعليمات البرمجية غير المعدلة. خاصةً إذا كنت تضمن ملفات المصدر بدلاً من كتابة قصاصات رمز.

بمجرد أن تحصل على الأساسيات الموجودة تحت حزامك ، انظر إلى الوثائق ، لمعرفة كيفية تعيين أنماط للكلمات الرئيسية وللمعرفات ، وكيفية تعديل قائمة (قوائم) في ثناياه عوامل للكلمات الرئيسية للغات التي تختارها.

نصائح أخرى

الحل الخاص بك صحيح. ومع ذلك ، فإن خط LaTex Monospaced القياسي لا يحتوي على إصدار Boldface ، لذلك \textbf لا تفعل أي شيء داخل lstlisting بيئة. وفق Macfreek.nl, ، يمكنك القيام بما يلي لإعادة إصدار إصدار Boldface:

\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}

لقد اختبرت المثال التالي ويعمل كما تريد:

\documentclass{article}
\usepackage{listings}
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
\lstset{language=C, basicstyle=\ttfamily}
\begin{document}

\begin{lstlisting}[escapechar=@]
fun(foo, bar, @\textbf{baz}@ );
\end{lstlisting}

\end{document}

أستخدم نفس التقنية مع \color{red} بدلاً من \textbf لتلميح جمهور عرض عاصفة بالفرق بين قوائم الكود المتطابقة تقريبًا.

لقد وجدت إجابة تحت http://www.mrunix.de/forums/archive/index.php/t-42976.html

\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top