Hinzufügen eines speziellen Schlüsselworts, das in lstinputlisting ignoriert wird

Hinzufügen eines speziellen Schlüsselworts, das in lstinputlisting ignoriert wird

Ich möchte wissen, wie man ein spezielles Schlüsselwort hinzufügt,ignoriertin \lstinputlistingdem im listingsPaket verwendet wird.

Der Screenshot zeigt mein Problem. Ich schreibe ein Tutorial-Dokument zum ROOT-Datenanalyse-Framework (https://root.cern.ch), das über einen eigenen C++-Interpreter mit einer Benutzeraufforderung wie root [n]unten gezeigt verfügt.

Bildbeschreibung hier eingeben

In den meisten Fällen funktioniert die Verwendung der lstlistingUmgebung und der c++Option für den ROOT-Interpreter einwandfrei. Wenn jedoch root (cont'ed, cancel with .@)auf dem Interpreter gedruckt wird, wird das einfache Anführungszeichen in dieser Nachricht als Beginn einer C-Zeichenfolge betrachtet und daher wird die Farbe des Codes auf Grün geändert.

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

Ich möchte wissen, wie ich dem listingsPaket befehle, dieses einfache Anführungszeichen zu ignorieren. Gibt es eine Möglichkeit, die Zeichenfolge cont'edzu einer Art „Ignorieren“-Liste hinzuzufügen?

Antwort1

Ich habe eine vorläufige Lösung gefunden, die verwendet mathescape, suche aber immer noch nach einer besseren Lösung.

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

verwandte Informationen