我如何以粗体字母设置lstlist的某些部分?

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

这是编译的,但是BAZ并未以粗体设置为:(我缺少什么?

有帮助吗?

解决方案

您的基本方法应该是告诉列出要强调的单词。这样做的直接方法就是这样:

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

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

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

其他提示

您的解决方案是正确的。但是,标准的乳胶单词字体没有大胆版本,因此 \textbf 在内部没有任何事情 lstlisting 环境。根据 MacFreek.nl, ,您可以执行以下操作以重新计算Boldface版本:

\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 为了暗示观众在两个几乎相同的代码列表之间的差异。

我找到了一个答案 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}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top