
特別なキーワードを追加する方法を知りたいのですが無視された\lstinputlisting
パッケージ内で使用されているものですlistings
。
スクリーンショットは私の問題を示しています。私はROOTデータ分析フレームワークのチュートリアル文書を書いています(https://root.cern.ch) には、以下に示すようなユーザー プロンプトを備えた独自の C++ インタープリターがありますroot [n]
。
ほとんどの場合、lstlisting
環境とc++
オプションを使用すると、ROOT インタープリターでは正常に動作します。ただし、root (cont'ed, cancel with .@)
インタープリターに が印刷されると、このメッセージ内の一重引用符は C 文字列の開始とみなされ、コードの色が緑色に変わります。
\begin{lstlisting}[language=c++,breaklines=true]
root [0] TH2D* h2 = new TH2D("h2", "2D Gaussian Distribution;#it{x};#it{y};Entries", 100, -10, 10, 100, -10, 10)
(TH2D *) 0x7fe8c3615eb0
root [1] const Double_t kSigma = 2.
(const Double_t) 2.00000
root [2] for(Int_t i = 0; i < 100000; i++){
root (cont'ed, cancel with .@) [3] Double_t x = gRandom->Gaus(0, kSigma);
root (cont'ed, cancel with .@) [4] Double_t y = gRandom->Gaus(0, kSigma);
root (cont'ed, cancel with .@) [5] h2->Fill(x, y);
root (cont'ed, cancel with .@) [6] }
root [7] TCanvas* can = new TCanvas("can", "can", 600, 600)
(TCanvas *) 0x7fe8c359a9a0
root [8] h2->Draw("colz")
\end{lstlisting}
パッケージにこの一重引用符を無視するように指示する方法を知りたいです。文字列を「無視」リストなどにlistings
追加する方法はありますか?cont'ed
答え1
を使用する暫定的な解決策を見つけましたmathescape
が、さらに良い解決策を探しています。
\newcommand{\conted}{\texttt{cont'ed}} % for ROOT 6 prompt
\begin{lstlisting}[language=c++,breaklines=true,mathescape]
root [0] TH2D* h2 = new TH2D("h2", "2D Gaussian Distribution;#it{x};#it{y};Entries", 100, -10, 10, 100, -10, 10)
(TH2D *) 0x7fe8c3615eb0
root [1] const Double_t kSigma = 2.
(const Double_t) 2.00000
root [2] for(Int_t i = 0; i < 100000; i++){
root ($\conted$, cancel with .@) [3] Double_t x = gRandom->Gaus(0, kSigma);
root ($\conted$, cancel with .@) [4] Double_t y = gRandom->Gaus(0, kSigma);
root ($\conted$, cancel with .@) [5] h2->Fill(x, y);
root ($\conted$, cancel with .@) [6] }
root [7] TCanvas* can = new TCanvas("can", "can", 600, 600)
(TCanvas *) 0x7fe8c359a9a0
root [8] h2->Draw("colz")
\end{lstlisting}