# Remove spaces from source code

I have this code (javascript from language option supported in listings)

\lstset{language=javascript}

\begin{lstlisting}
$('#term').terminal(function(command, terminal) { var cmd =$.terminal.parseCommand(command);
if (cmd.name == 'echo') {
terminal.echo(cmd.rest);
} else {
terminal.error('Invalid Command');
}
});
\end{lstlisting}


and the result is this (using pdflatex):

$( ’#term’ ) . terminal ( function ( command , terminal ) { var cmd =$ . terminal . parseCommand ( command ) ;
if ( cmd . name == ’echo’ ) {
terminal . echo ( cmd . rest ) ;
} else {
terminal . error ( ’Invalid Command’ ) ;
}
});


My configuration:

\lstset{
language=JavaScript,
showspaces=false,
extendedchars=false,
showstringspaces=false,
showtabs=false,
keepspaces=false,
}


How can I make it show exactly as in tex file? Without spaces (and also if possible ' isntead of ’)

• While code snippets are useful in explanations, it is always best to compose a fully compilable MWE that illustrates the problem including the \documentclass and the appropriate packages so that those trying to help don't have to recreate it. While solving problems can be fun, setting them up is not. Then, those trying to help can simply cut and paste your MWE and get started on solving the problem. – Peter Grill Apr 5 '14 at 17:38

This works for me:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\lstdefinelanguage{JavaScript}{
keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
keywordstyle=\color{blue}\bfseries,
ndkeywords={class, export, boolean, throw, implements, import, this},
ndkeywordstyle=\color{darkgray}\bfseries,
identifierstyle=\color{black},
sensitive=false,
comment=[l]{//},
morecomment=[s]{/*}{*/},
stringstyle=\color{red}\ttfamily,
morestring=[b]',
morestring=[b]"
}

\lstset{
language=JavaScript,
backgroundcolor=\color{lightgray},
extendedchars=true,
basicstyle=\footnotesize\ttfamily,
showstringspaces=false,
showspaces=false,
numbers=left,
numberstyle=\footnotesize,
numbersep=9pt,
tabsize=2,
breaklines=true,
showtabs=false,
captionpos=b
}

\begin{lstlisting}
$('#term').terminal(function(command, terminal) { var cmd =$.terminal.parseCommand(command);
if (cmd.name == 'echo') {
terminal.echo(cmd.rest);
} else {
terminal.error('Invalid Command');
}
});
\end{lstlisting}
\end{document}


If you want to change it, I'd remove one part at a time, or simply use the verbatim environment (no colors, exactly as in the file, typewriter font).