lstlisting R-Schlüsselwörter

lstlisting R-Schlüsselwörter

Ich möchte R-Quellcode in meine Latex-Datei schreiben, daher verwende ich das Listings-Paket.

Das Problem ist, dass ich möchte, dass R-Schlüsselwörter blau angezeigt werden, aber beispielsweise eine Variable namens abc.log.de mit log blau angezeigt wird. Ich möchte nicht, dass das passiert, wenn log Teil eines größeren Variablennamens in R ist. (Beispiel unten)

Wie soll ich vorgehen?

\documentclass{article}
\usepackage{listings}
\usepackage{color}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
language=R,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
numbers=none,
keywordstyle=\color{blue},
numberstyle=\tiny\color{gray},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3
}

\begin{document}

\begin{lstlisting}
L.V2<-log(V2)
dados.log<-dados
\end{lstlisting}

\end{document}

Bildbeschreibung hier eingeben

Antwort1

Standardmäßig ist dieR-Markupim Listings-Paket betrachtet den Zeitraum .alsandere(d. h., kein Buchstabe) Zeichentyp, zusammen mit _und $, wodurch Schlüsselwörter erkannt werden können, die diese enthalten (wie data.frame). Dies bedeutet jedoch auch, dass im Formular definierte Variablen foo.keyword.bardas Schlüsselwort zwischen den Punkten hervorheben.

Sie können dieses Verhalten verhindern, indem Sie den Punkt .in der Auflistungsauszeichnung als Buchstaben angeben, indem Sie hinzufügen alsoletter={.}. \lstsetLeider verhindert dies auch, dass andere Schlüsselwörter, die Punkte enthalten (wie data.frameoder read.csv), hervorgehoben werden.

Alternativ können Sie Ihre Variablen in Ihrem Code auch anders benennen (z.B, dados.ln).

\documentclass{article}
\usepackage{listings}
\usepackage{color}

\lstset{frame=tb,
language=R,
keywordstyle=\color{blue},
alsoletter={.}
}

\begin{document}

\begin{lstlisting}
L.V2<-log(V2)
dados.log<-dados
\end{lstlisting}

\end{document}

Bildbeschreibung hier eingeben

Zwei kleinere Punkte:

  • Vergessen Sie in Ihrem minimal funktionierenden Beispiel nicht \documentclass{article}.
  • Sie müssen nicht alle Einstellungen in einemminimalfunktionierendes Beispiel.

verwandte Informationen