Secuencia de control indefinida en listados

Secuencia de control indefinida en listados

Estoy intentando utilizar el paquete de listados para formatear mi código para que parezca código Java. Este es MWE que intento usar:

\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}

Al intentar compilarlo, aparece el siguiente mensaje de error: línea 34: Secuencia de control no definida. \begin{lstlisting} Estoy usando TexStudio 2.12.6, Win7, MikTeX 2.9.

¿Me estoy perdiendo algo obvio aquí?

Respuesta1

Desafortunadamente, esta es una falla bien conocida por la cual el editor lo engaña; el mensaje de error es

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

Como el espacio simple no está definido ( setspacequizás se requiera el paquete), el editor solo muestra la línea final de contexto menos útil donde tex detectó el error.

l.33     \begin{lstlisting}

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

información relacionada