
Me gustaría saber cómo agregar una palabra clave especial para serignoradoen \lstinputlisting
el que se utiliza en el listings
paquete.
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.
En la mayoría de los casos, usar el lstlisting
entorno 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 listings
paquete que ignore esta cita única. ¿Hay alguna forma de agregar la cadena cont'ed
a 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}