I'm using Linux-x86-64 as operating system. Can someone explain this behaviour and maybe give a hint how to resolve it? Here are two lines of exact the same number of letters of a monospaced font:

 Style["ZZZZZZZZZZ\n__________", 20, FontFamily -> "Courier"]

As output I get (here with 30 Z and 30 _)

![monospaced](https://i.sstatic.net/99xYc.png)

But what I expect from a *monospaced* font like Courier is to have the same size for every letter (and why is the line dashed anyway?). @Oleksandr was so kind to give me mental support and tried the things on his Windows machine. There the output seems ok:

![monospaced win](https://i.sstatic.net/mu26W.png)


More detailed question
----------------------
What I really want is an image of arbitrary resolution of every letter. I thought when I use a combination of `Style` and `Rasterize` I can get equally sized images of them in exact the same form as they appear in text.

But there is (at least here) a clear difference between an assembled image from rasterized letters and a rasterized version of the string

 ImageAssemble[
 Rasterize[Style[#, 30, FontFamily -> "Courier"], "Image"] & /@ 
 CharacterRange["A", "Z"]]
 
 Rasterize[
 Style[StringJoin[CharacterRange["A", "Z"]], 30, 
 FontFamily -> "Courier"], "Image"]

![Mathematica graphics](https://i.sstatic.net/u3F4g.png)
![Mathematica graphics](https://i.sstatic.net/cgGrA.png)

What I noticed is that the height of the letters is always the same, only the width varies. Looking at how many letters have which width gives here

 Sort@Tally@First@
 Transpose[
 ImageDimensions[
 Rasterize[Style[#, 30, FontFamily -> "Courier"], "Image"]] & /@
 CharacterRange["A", "z"]]
 (*
 Out[138]= {{18, 25}, {19, 16}, {20, 8}, {21, 8}, {24, 1}}
 *)

This is a mess. Any ideas about this issue would be very welcome.