Неправильное форматирование кода C++ указателя около символа с использованием пакета listings и lstlistings

Неправильное форматирование кода C++ указателя около символа с использованием пакета listings и lstlistings

Я пытаюсь сделать простой 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}, теперь все выглядит хорошо: введите описание изображения здесь

Связанный контент