Estou tentando incluir um código C++ em meu documento látex. No entanto, o que tentei não está funcionando. Todo o resto funciona bem, mas não estou vendo o C++ aparecendo como um código C++. Está escrito apenas no mesmo formato do texto "Partículas alfa .."
Aqui está o MWE: O tex é:
\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}
Resultado esperado:
Responder1
Você deseja usar uma família de fontes diferente para a listagem. Como as palavras-chave estão em negrito no estilo, as fontes padrão da Computer Modern Typewriter não são adequadas, porque não têm negrito.
Uma boa família de fontes monoespaçadas que distingue bem entre séries médias e negrito é a 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}
Observe que, para uma fórmula embutida, você usa $\alpha$
ou \(\alpha\)
, em vez de \[\alpha\]
centralizar a fórmula.
Removi as citações que são irrelevantes para este tópico.
Responder2
Se você não conseguir listings
trabalhar, existe o verbatimbox
pacote se você não precisar de destaque de palavras-chave.
Aqui mostro listings
e verbatimbox
para comparação. Utilizando o verbnobox
ambiente, pode-se obter quebras de página no meio da listagem.
\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}