Wie möchte ich betonen, Teile eines lstlisting?
Frage
Wie kann ich bestimmte Teile eines lstlisting fett gedruckt?
\begin{lstlisting}[escapechar=@]
fun(foo, bar, @\textbf{baz}@ );
\end{lstlisting}
Dies kompiliert, aber baz ist nicht fett gesetzt :( Was bin ich?
Lösung
Ihr grundlegender Ansatz sollte sein zu sagen, die Auflistung, was Worte zu betonen. Eine einfache Möglichkeit, dies zu tun, ist wie folgt:
\lstset{emph={baz},emphstyle=\textbf}
Natürlich, die baz
wird betonen, wenn sie auftritt. Aber das ist ein besserer Ansatz als zu versuchen, das Markup in der Auflistung selbst zu setzen, die Sie nicht (soll) das tun will, da Sie (sollen) will Auflistungen verwenden, um einen unmodifizierten Stück Code zu formatieren. Vor allem dann, wenn Sie Quelldateien einschließlich eher als Eingabe Code-Schnipsel.
Wenn Sie die Grundlagen unter dem Gürtel Blick in der Dokumentation haben, zu lernen, wie man Satz Stile für Schlüsselwörter und für Bezeichner, und wie die eingebaute Liste (n) von Keywords für Ihre Sprachen der Wahl zu ändern.
Andere Tipps
Ihre Lösung ist richtig. Allerdings Monospace der Standard-LaTeX Schriftart nicht fett gedruckte Version hat, so \textbf
nicht innerhalb der lstlisting
Umgebung tut nichts. Nach macfreek.nl Sie die folgenden Funktionen neu deklarieren die fett gedruckte Version kann tun:
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
Ich habe das folgende Beispiel getestet und es funktioniert, wie Sie wünschen:
\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}
fast identische Codebeispiele Ich benutze die gleiche Technik mit \color{red}
statt \textbf
auf den Unterschied zwischen zwei das Publikum einer Beamer-Präsentation anzudeuten.
fand ich eine Antwort unter http: //www.mrunix .de / Foren / Archiv / index.php / t-42976.html
\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}