Pregunta

¿Cómo puedo configurar ciertas partes de un lstlisting en negrita?

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

Esto compila, pero Baz no se establece en negrita :( ¿Qué me falta?

¿Fue útil?

Solución

Su enfoque básico debe estar lista para decirle qué palabras para enfatizar. Una forma sencilla de hacerlo es la siguiente:

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

Por supuesto, que hará hincapié baz cada vez que se produce. Pero este es un enfoque mejor que tratar de poner el marcado en su lista en sí, no (debería) a querer hacer eso ya que (debería) que desee utilizar listados para formatear una pieza sin modificar del código. Especialmente por lo que si va a incluir archivos de origen en lugar de fragmentos de código de escritura.

Una vez que tenga los fundamentos bajo su mirada cinturón en la documentación, para aprender a estilos conjunto de palabras clave y los identificadores, y cómo modificar la lista (s) incorporada de palabras clave para sus idiomas de elección.

Otros consejos

Su solución es correcta. Sin embargo, el látex estándar monospaced fuente no tiene una versión negrita, por lo \textbf no hace nada dentro del entorno lstlisting. De acuerdo con macfreek.nl , puede hacer lo siguiente para redeclare la versión negrita:

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

He probado el siguiente ejemplo y funciona como usted desea:

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

Yo uso la misma técnica con \color{red} en lugar de \textbf hacer alusión a la audiencia de una presentación proyector en la diferencia entre dos listados de código casi idénticos.

He encontrado una respuesta bajo http: //www.mrunix .de / foros / archive / index.php / t-42976.html

\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top