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?

War es hilfreich?

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}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top