Я пытаюсь сделать простой hello world C++ в LaTeX с пакетом listings. Лучше один раз увидеть.
Вот код:
\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}
На изображении вы можете видеть странное положение около char**, они похожи на подчеркивание, но почему и как это исправить? Заранее спасибо!
решение1
Предлагаю вам попробовать этот пакет piton
(он требует использования LuaLuaTeX).
Вот ваш пример, отформатированный piton
шрифтом 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}
решение2
Как я обнаружил проблему со шрифтом. Я использую шрифт JetBrains Mono. Если я изменю шрифт с помощью кода: basicstyle=\ttfamily, все будет выглядеть хорошо, но теперь мне нужно узнать, как использовать JetBrains Mono внутри листингов кода... Как это выглядит:
Обновлять:Исправление для шрифта JetBrains Mono было простым, я просто установил его так: \setmainfont{JetBrains Mono} и нужно добавить: \setmonofont{JetBrains Mono}, теперь все выглядит хорошо: