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 の使用が必要です)。
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} これですべて見栄えが良くなりました: