Domanda

Come è possibile impostare alcune parti di un lstlisting in grassetto?

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

Questa compilazione, ma baz non è impostato in grassetto :( Che cosa mi manca?

È stato utile?

Soluzione

Il tuo approccio di base dovrebbe essere quello di dire messa in vendita di quello che le parole per sottolineare. Un modo semplice per farlo è in questo modo:

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

Naturalmente, che metterà in risalto baz ogni volta che si verifica. Ma questo è un approccio migliore che cercare di mettere il markup nella vostra stessa messa in vendita, non è (dovrebbe) vuole farlo dal momento che (dovrebbe) vuole utilizzare elenchi per formattare un pezzo non modificato di codice. Specialmente se si includono i file di origine, piuttosto che frammenti di codice di battitura.

Una volta che hai le basi sotto il vostro sguardo cintura la documentazione, per imparare a stili impostati per parole chiave e per gli identificatori, e come modificare l'elenco integrato (s) di parole chiave per le lingue di scelta.

Altri suggerimenti

La vostra soluzione è corretta. Tuttavia, lo standard di LaTeX spaziatura fissa dei caratteri non hanno una versione in grassetto, in modo \textbf non fa nulla all'interno dell'ambiente lstlisting. Secondo macfreek.nl , è possibile effettuare le seguenti operazioni per la versione ridichiarare grassetto:

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

Ho testato il seguente esempio e funziona come si desidera:

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

Io uso la stessa tecnica con \color{red} invece di \textbf per suggerire al pubblico di una presentazione proiettore alla differenza tra due listati di codice quasi identiche.

Ho trovato una risposta sotto http: //www.mrunix .de / forum / archive / index.php / t-42976.html

\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top