Agregar una palabra clave especial que se ignora en lstinputlisting

Agregar una palabra clave especial que se ignora en lstinputlisting

Me gustaría saber cómo agregar una palabra clave especial para serignoradoen \lstinputlistingel que se utiliza en el listingspaquete.

La captura de pantalla muestra mi problema. Estoy escribiendo un documento tutorial del marco de análisis de datos ROOT (https://root.cern.ch) que tiene su propio intérprete de C++ con un mensaje de usuario root [n]como se muestra a continuación.

ingrese la descripción de la imagen aquí

En la mayoría de los casos, usar el lstlistingentorno y la c++opción funcionan bien para el intérprete ROOT. Pero cuando root (cont'ed, cancel with .@)se imprime en el intérprete, la comilla simple en este mensaje se considera el comienzo de una cadena C y, por lo tanto, el color del código cambia a verde.

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

Me gustaría saber cómo ordenarle al listingspaquete que ignore esta cita única. ¿Hay alguna forma de agregar la cadena cont'eda algo así como una lista de "ignorar"?

Respuesta1

Encontré una solución provisional que utiliza mathescape, pero sigo buscando una solución mejor.

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

información relacionada