リスト内の未定義の制御シーケンス

リスト内の未定義の制御シーケンス

私は、コードを Java コードのようにフォーマットするために listings パッケージを使用しようとしています。これは私が使用しようとしている MWE です:

\documentclass[a4paper,11pt]{report} 

\usepackage[utf8]{inputenc} % utf8
\usepackage[T1]{fontenc} 
\usepackage{xcolor}

\usepackage{listings}

\definecolor{pblue}{rgb}{0.13,0.13,1}
\definecolor{pgreen}{rgb}{0,0.5,0}
\definecolor{pred}{rgb}{0.9,0,0}
\definecolor{pgrey}{rgb}{0.46,0.45,0.48}
\definecolor{annotation}{cmyk}{0, 0, 1, 0.2}

\lstdefinestyle{Java}{  
    language=Java, %if declared outside, causes problems
    showspaces=false,
    showtabs=false,
    breaklines=true,
    showstringspaces=false,
    breakatwhitespace=true,
    commentstyle=\color{pgreen},
    keywordstyle=\color{pblue},
    stringstyle=\color{pred},
    basicstyle=\ttfamily\singlespacing,
    moredelim=[il][\textcolor{annotation}]{\$\$},
    moredelim=[is][\textcolor{annotation}]{\%\%}{\%\%},
    rulecolor= \color{black} 
}

\begin{document}
    \lstset{style=Java}
    \begin{lstlisting}
        public byte getSelectedPortAsByte(){
            int temp;

            switch(selectedPort){
                case "PORTB":
                    temp= 0x01;
                    break;
                case "PORTC":
                    temp= 0x02;
                    break;
                case "PORTD":
                    temp= 0x03;
                    break;
                default:
                    temp= 0x00;
                break;
            }
            return (byte)temp;
        }
    \end{lstlisting}
\end{document}

ビルドしようとすると、次のエラー メッセージが表示されます: 行 34: 未定義の制御シーケンス。\begin{lstlisting} TexStudio 2.12.6、Win7、MikTeX 2.9 を使用しています。

ここで何か明らかなことを見逃しているのでしょうか?

答え1

残念ながら、これはエディターのよく知られた欠陥で、あなたを誤解させてしまいます。エラーメッセージは

! Undefined control sequence.
\lst@basicstyle ->\ttfamily \singlespacing 

シングルスペースが定義されていないため(setspaceおそらくパッケージが必要)、エディターは、テキストがエラーを検出したコンテキストの最も役に立たない最終行のみを表示します。

l.33     \begin{lstlisting}

https://sourceforge.net/p/texstudio/feature-requests/1068/

関連情報