listings.sty escapechar

lstlisting環境内で、tex命令をエスケープする方法です。結局使いませんでしたが、せっかく調べたのでメモしておきます。

escape文字を宣言して「escapechar=!」、「!〜!」内にTeXの命令を書きます。

\documentclass{jsarticle}
\usepackage[dvips,usenames]{color}
\usepackage{listings}
\begin{document}
 \begin{lstlisting}[language={C++},escapechar=!]
  #include <iostream>
  using namespace std;
  int main( int argc, char* argv[] )
  {
    cout <<!\textcolor{red}{"Hello?"}! <<endl; /* 'Hello?' in red */
  }
 \end{lstlisting}
\end{document}


(return書いてないのでコンパイラに怒られるのかな?でも、TeXのお話なので、関係ない。)