Question

Comment puis-je mettre certaines parties d'une lstlisting en gras?

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

Cette compiles, mais baz est pas défini dans :( Qu'est-ce que gras je manque?

Était-ce utile?

La solution

Votre approche de base devrait être de dire la liste ce que les mots pour souligner. Une façon simple de le faire est comme ceci:

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

Bien sûr, qui mettra l'accent baz chaque fois qu'il se produit. Mais cela est une meilleure approche que d'essayer de mettre le balisage dans votre liste elle-même, vous ne (devrait) faire cela puisque vous (devrait) vouloir utiliser des listes pour formater une pièce non modifiée du code. Surtout si vous incluez les fichiers sources plutôt que de taper des extraits de code.

Une fois que vous avez les bases sous votre regard de la ceinture à la documentation, pour apprendre comment les styles définis pour les mots clés et pour les identifiants et comment modifier la liste intégrée (s) de mots clés pour vos langues de choix.

Autres conseils

Votre solution est correcte. Cependant, la norme LATEX police à espacement fixe n'a pas une version gras, donc \textbf ne fait rien dans l'environnement lstlisting. Selon macfreek.nl , vous pouvez effectuer les opérations suivantes redéclarer la version en gras:

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

Je l'ai testé l'exemple suivant et il fonctionne comme vous le souhaitez:

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

J'utilise la même technique avec \color{red} au lieu de \textbf à laisser entendre le public d'une présentation Beamer à la différence entre deux listes de code presque identiques.

J'ai trouvé une réponse sous http: //www.mrunix .de / forums / archives / index.php / t-42976.html

\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top