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}
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.bar
das 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={.}
. \lstset
Leider verhindert dies auch, dass andere Schlüsselwörter, die Punkte enthalten (wie data.frame
oder 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}
Zwei kleinere Punkte:
- Vergessen Sie in Ihrem minimal funktionierenden Beispiel nicht
\documentclass{article}
. - Sie müssen nicht alle Einstellungen in einemminimalfunktionierendes Beispiel.