使用 listings 包和 lstlistings 时,char 附近的指针的 C++ 代码格式不正确

使用 listings 包和 lstlistings 时,char 附近的指针的 C++ 代码格式不正确

我尝试使用 listings 包在 LaTeX 中编写简单的 C++ hello world。最好再试一次。 在此处输入图片描述

这里是代码:

\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)。

这里的示例采用pitonJetBrains 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} 现在看起来不错: 在此处输入图片描述

相关内容