Character spacing in LaTeX with lstlisting package

11.2k Views Asked by At

I'm trying to get my code snippets to look as good as possible and so far I'm having troubles with the character spacing. Here is an example of the output:

alt text http://grab.by/grabs/2bb230de7c088d007733f52b95a40363.png

While the text in small is perfect, all the keywords that are in capital letters look terrible. Here are the settings I use

\lstset{basicstyle=\footnotesize, basewidth=0.5em}

If I increase the basewidth, the capital letters look good, but I can't get any decent sized line of code in one line. The following example does not fit in a page and I already put two line breaks in: alt text http://grab.by/grabs/97ec29aa5a6811ce28bcd30bd389b52f.png

Does anyone have a clue how I can get this to work? Using \ttfamily does the trick, however, I'd prefer keeping the font.

Thanks.

2

There are 2 best solutions below

0
On BEST ANSWER

If you prioritize looking nice, then using flexible colums is preferable:

\lstset{basicstyle=\footnotesize, columns=fullflexible}
0
On

You "obviously" need to scale the capital letters down horizontally. I do not know of a way to do this without actually editing the font itself.

However, you could put the entire listing into a \scalebox resp. \resizebox (from the graphicx package).

On a side note, the font you are using seems a bit strange, though, since the distance between small letters is significantly bigger than that between capital letters.