Wie kann ich das Listings-Paket mit mehr als einer Sprache verwenden?

Wie kann ich das Listings-Paket mit mehr als einer Sprache verwenden?

Ich schreibe ein Buch, das Code in zwei Sprachen (R und SAS) enthalten wird. Ich weiß, dass ich \verbatimoder verwenden könnte \alltt, um die Codeabschnitte festzulegen, aber das listingsPaket hat einige nette Funktionen.

Gibt es eine Möglichkeit, es listingsmit zwei Sprachen zu verwenden?

Antwort1

Wenn Sie für die beiden Sprachen unterschiedliche Optionen haben, können Sie zwei Stile definieren und die entsprechende Option style=...Ihrer lstlistingUmgebungen verwenden.

\documentclass{book}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{SAS}{
  language=SAS,  
  basicstyle=\ttfamily,
  } 
\lstdefinestyle{R}{
  language=R,
  breaklines=true,  
  basicstyle=\ttfamily
}
\begin{document} 
Example of SAS code:
\begin{lstlisting}[style=SAS]
data myoutput;
set myinput;
if myvar = "OK" then output;
run;
\end{lstlisting}
Example of R code:
\begin{lstlisting}[style=R]
# I don't know R, code copied from http://www.rexamples.com/2/Functions
Square <- function(x) {
  return(x^2)
}

print(Square(4))
print(Square(x=4)) # same thing
\end{lstlisting}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen