我如何强调一个列表的部分?

时间:2010-04-24 10:17:03

标签: latex listings

如何以粗体字设置lstlisting的某些部分?

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

这个编译,但是baz没有用粗体字表示:(我错过了什么?

3 个答案:

答案 0 :(得分:5)

您的解决方案是正确的。但是,标准LaTeX等宽字体没有粗体版本,因此\textbflstlisting环境中不执行任何操作。根据{{​​3}},您可以执行以下操作重新声明粗体版本:

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

我测试了以下示例,它可以按您的意愿运行:

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

我使用\color{red}而不是\textbf使用相同的技术来暗示两个几乎完全相同的代码列表之间的差异的投影仪演示的观众。

答案 1 :(得分:4)

您的基本方法应该是列出要强调的词语。一个直截了当的方法就是这样:

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

当然,无论何时发生,都会强调baz。但这比尝试将标记放入您的列表本身更好的方法,您不应该(应该)想要这样做,因为您(应该)想要使用列表来格式化未修改的代码片段。特别是如果您包含源文件而不是键入代码片段。

一旦掌握了基础知识,请查看文档,了解如何为关键字和标识符设置样式,以及如何修改所选语言的内置关键字列表。

答案 2 :(得分:4)

我在http://www.mrunix.de/forums/archive/index.php/t-42976.html

下找到了答案
\lstset{moredelim=[is][\bfseries]{[*}{*]}}
\begin{lstlisting}
bla bla bla
blupp
[*wichtiger hervorzuhebender text*]
weiter im text
\end{lstlisting}