Einfügen eines C++-Codes in mein Latex-Dokument

Einfügen eines C++-Codes in mein Latex-Dokument

Ich versuche, einen C++-Code in mein Latex-Dokument einzufügen. Was ich jedoch versucht habe, funktioniert nicht. Alles andere funktioniert einwandfrei, aber ich sehe das C++ nicht als C++-Code. Es ist nur im gleichen Format wie der Text „Alphapartikel ...“ geschrieben.

Hier ist das MWE: Der Text lautet:

\documentclass{article}  
 \usepackage{listings}
\usepackage{xcolor}
\lstset { 
language=C++,
backgroundcolor=\color{black!5}, % set backgroundcolor
basicstyle=\footnotesize,% basic font setting
}

\begin{document}  
Alpha particles \cite{wikip} (named \cite{Comp} after and denoted by the first letter     in the
Greek alphabet,\[\alpha\]) consist of two protons and two neutrons bound
together.
This means that an particle is a helium nucleus. 

\begin{lstlisting}
int size =1;
*ptr = Mole:getMole(size + 1);
\end{lstlisting}

\bibliographystyle{plain}
\bibliography{BibName}

\end{document}

Erwartetes Ergebnis:

Bildbeschreibung hier eingeben

Antwort1

Sie möchten für die Auflistung eine andere Schriftfamilie verwenden. Da Schlüsselwörter im Stil fett gedruckt sind, sind die Standardschriften für moderne Computerschreibmaschinen nicht gut geeignet, da sie nicht fett gedruckt sind.

Eine gute Monospace-Schriftfamilie, die gut zwischen mittlerer Serie und Fettschrift unterscheidet, ist BeraMono.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{xcolor}
\usepackage[scaled=.85]{beramono}

\lstset{
  language=C++,
  backgroundcolor=\color{black!5}, % set backgroundcolor
  basicstyle=\footnotesize\ttfamily,% basic font setting
  columns=fullflexible,
}

\begin{document}

Alpha particles (named after and denoted by the first letter in the Greek alphabet,
$\alpha$) consist of two protons and two neutrons bound together. This means that an
particle is a helium nucleus.

\begin{lstlisting}
int size =1;
*ptr = Mole:getMole(size + 1);
\end{lstlisting}

\end{document}

Beachten Sie, dass Sie für eine Inline-Formel $\alpha$oder verwenden \(\alpha\), statt \[\alpha\]dass die Formel dadurch zentriert würde.

Ich habe die Zitate entfernt, die für dieses Thema irrelevant sind.

Bildbeschreibung hier eingeben

Antwort2

Falls Sie damit nicht weiterkommen listings, gibt es das verbatimboxPaket, wenn Sie keine Schlüsselworthervorhebung benötigen.

Hier zeige ich listingszum verbatimboxVergleich: Durch Verwendung der verbnoboxUmgebung kann man Seitenumbrüche mitten in der Auflistung erzielen.

\documentclass{article}
\usepackage{xcolor}
% LISTINGS PREP
\usepackage{listings}
\lstset { 
language=C++,
backgroundcolor=\color{black!5}, % set backgroundcolor
basicstyle=\footnotesize,% basic font setting
}
% VERBATIMBOX PREP
\usepackage{verbatimbox}
\def\codesize{\footnotesize}
\newsavebox\thecolorfield
\newcommand\setcolorfield[1][blue!9!gray!8]{%
  \savebox{\thecolorfield}{\codesize%
    \makebox[0pt][l]{\textcolor{#1}{%
    \rule[-\dp\strutbox]{\textwidth}{\dimexpr\ht\strutbox+\dp\strutbox}}}}%
}
\def\colorfield{\usebox{\thecolorfield}}
\setcolorfield
%
\begin{document}  
WITH LISTINGS:
\begin{lstlisting}
int size =1;
*ptr = Mole:getMole(size + 1);
\end{lstlisting}

WITH VERBATIMBOX (ttfamily):
\begin{verbnobox}[\colorfield\ttfamily\codesize]
int size =1;
*ptr = Mole:getMole(size + 1);
\end{verbnobox}

\setcolorfield[green!8]
WITH VERBATIMBOX (bold-rmfamily):
\begin{verbnobox}[\colorfield\rmfamily\bfseries\codesize]
int size =1;
*ptr = Mole:getMole(size + 1);
\end{verbnobox}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen