목록 패키지 및 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}

이미지에서 문자** 근처의 이상한 위치를 볼 수 있습니다. 밑줄처럼 보이지만 왜 그리고 어떻게 수정합니까? 미리 감사드립니다!

답변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} 이제 모두 보기 좋습니다. 여기에 이미지 설명을 입력하세요

관련 정보