lstlisting の一部を強調するにはどうすればよいですか?
質問
lstlisting の特定の部分を太字に設定するにはどうすればよいですか?
\begin{lstlisting}[escapechar=@]
fun(foo, bar, @\textbf{baz}@ );
\end{lstlisting}
これはコンパイルされますが、太字で baz が設定されていません :( 何が足りないのでしょうか?
解決
あなたの基本的なアプローチは、強調する言葉をリストすることです。これを行うための簡単な方法は次のとおりです。
\lstset{emph={baz},emphstyle=\textbf}
もちろん、それは強調されます baz
それが発生するたびに。しかし、これはあなたのリスト自体にマークアップを入れようとするよりも良いアプローチです。あなたは、あなたがリストを使用して、変更されていないコードをフォーマットしたいので、あなたはそれをしたくない(そうする必要はありません)。特に、コードスニペットを入力するのではなく、ソースファイルを含める場合。
ベルトの下に基本がドキュメントを見て、キーワードや識別子にスタイルを設定する方法、選択した言語のキーワードの組み込みリストを変更する方法を学習します。
他のヒント
あなたの解決策は正しいです。ただし、標準の LaTeX 等幅フォントには太字バージョンがありません。 \textbf
内では何もしません lstlisting
環境。によると macfreek.nl, の場合は、次の手順を実行して太字バージョンを再宣言できます。
\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
これは、ビーマー プレゼンテーションの聴衆に、2 つのほぼ同一のコード リストの違いを示唆するためです。
下の答えを見つけました 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}
所属していません StackOverflow