Eu tento fazer um simples hello world of C++ em LaTeX com o pacote de listagens. Melhor uma vez para ver.
Aqui o código:
\begin{figure}
\begin{lstlisting}[language={[11]C++},
%float,
keepspaces=true,
escapeinside={},
showspaces=false,
showstringspaces=false,
stringstyle=\color{green},
frame=single,
numbers=left]
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "hello world" << std::endl;
return std::cout.fail();
} \end{lstlisting}
\caption{C++ Hello World Example}
\label{lst:hello}
\end{figure}
Na imagem você pode ver uma posição estranha perto de char** eles parecem sublinhados, mas por que e como consertar isso? Desde já, obrigado!
Responder1
Sugiro que você experimente o pacote piton
(requer o uso do LuaLuaTeX).
Aqui está seu exemplo formatado piton
com a fonte JetBrains Mono.
\documentclass{article}
\usepackage{fontspec}
\usepackage{piton}
\setmonofont{JetBrains Mono}
\begin{document}
\SetPitonStyle[C]{String.Long = \color{green}}
\begin{Piton}[language = C,line-numbers]
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "hello world" << std::endl;
return std::cout.fail();
}
\end{Piton}
\end{document}
Responder2
Como descubro problema com a fonte. Eu uso a fonte JetBrains Mono. Se eu alterar a fonte com o código: basicstyle=\ttfamily, tudo ficará bem, mas agora preciso descobrir como usar o JetBrains Mono dentro das listagens de código... Como fica:
Atualizar:a correção para a fonte JetBrains Mono foi simples. Acabei de definir apenas assim: \setmainfont{JetBrains Mono} e preciso adicionar: \setmonofont{JetBrains Mono} agora tudo parece bom: