Wow, I accidentaly found a perfect article, describing the process I tried to explain in my previous post
Hope it will help someone who stuck at this problem just like me.
It describes how you must subtract 0.5 to get corresponding pixel and texel match each other.
That is not correct in D3D11, only in D3D9. It has changed. If that fixes your problem then it is coincidental and not your actual issue, as you see from the letters that still look wrong.
You should divide by 1900 to get correct coordinates if that is the size of the texture, not 1899. The last pixel begins at 1899, but ends at 1900.
Imagine a texture that is just 1x1 or 2x2 in size. If you divide by width-1 you get completely wrong results.
If your Q begins at 795 and is 9 pixels wide then the correct coords are:
795.0 / 1900.0 = 0.4184210526
(795.0 + 9.0) / 1900.0 = 0.4231578947
If you have a 1x1 sized letter at the last pixel on the right side of the texture, then it starts at 1899 and has a width of 1.
1899.0 / 1900.0 = 0.9994736842
(1899.0 + 1) / 1900.0 = 1.0
Each single pixel is a quad with 4 edges, it is not a zero-width point. Each single pixel has a width of 1.0 / 1900.0