使用清單包和 lstlistings 的 char 附近的指標的 C++ 程式碼格式不正確

使用清單包和 lstlistings 的 char 附近的指標的 C++ 程式碼格式不正確

我嘗試使用清單包在 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)。

這裡的範例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} 現在一切看起來都不錯: 在此輸入影像描述

相關內容