Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I very much like the design of the Computer Modern fonts, except that the strokes (mostly the hairlines) are too thin and "spindly", so not well suited to low-resolution devices like computer screens. I guess I'm not alone -- I often see complaints about this. This problem could be solved just by re-running Metafont with some "fatter" parameter values, couldn't it? Has anyone done that?

A few things I discovered by myself:

  1. Alan Hoenig created a package called MathKit. The idea is to define sets of parameters that make the Computer Modern fonts look like standard ones (Times, Palatino, etc.) The Cambria font is nice and fat. I suppose one could use MathKit to create a CM fat-alike of Cambria. Of course, I could just use Cambria, but CM just looks "nicer" to me (somehow).

  2. Metafont has parameters like "blacker" that are intended to adjust rasterization according to the properties of the output device. In ancient times, people used to fiddle with these parameters quite a bit to get good output on the printers of the day (which typically had resolutions of 200 to 300 dpi). Of course, none of this helps if you're using outline fonts rather than bitmap ones. When using outline fonts, the OS or the viewing app handle the rasterization, and it's beyond your control.

  3. Something could perhaps be done by adjusting the hinting of the CM outline fonts, but hinting seems like a black art that hardly anyone knows much about. The standard Y&Y/Blue Sky CM fonts were hinted by real experts, so no further hinting exercise is likely to produce better results, presumably.

  4. One could use a smaller design size, as suggested by NauC in the answer below. This will produce thicker strokes. It will also produce wider characters, but I was thinking I might be able to narrow them again using fontspec's "FakeStretch". The end result (if I'm lucky) will be characters with thicker hairlines.

To try out the idea from #4, I used the following code:

\documentclass[a4paper,10pt]{memoir}
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase}

\begin{document}
\raggedright

\chapter{Motivation}
\section{Background Material}
bedbugs in flowery bloomers.

\fontspec[OpticalSize=0, FakeStretch = 0.876]{Latin Modern Roman 7 Regular}
bedbugs in flowery bloomers.

\fontspec[OpticalSize=0, FakeStretch = 1.09]{Latin Modern Roman 17 Regular}
bedbugs in flowery bloomers.

\end{document}

and I got these results: three bedbugs

At huge sizes like this, any rasterization looks fine, of course. I provided the images just so that people could see the outline differences. The important thing (to me) is that the second line looks better than the first one at small sizes in a PDF viewer, so I'm happy with the progress. I am a raw beginner with TeX/LateX, so maybe someone with more expertise can improve my solution. Now I need to figure out how to do the same thing with math.

share|improve this question
2  
Change the paper feeder or the tray.... Sorry it had to be done. –  percusse Mar 2 '13 at 16:29
1  
Paper output is fine. It's the screen output that's too skinny. I don't have a paper feeder on my monitor. Do you?? –  bubba Mar 2 '13 at 16:46
2  
You say you're ok with the look of CM when the output is printed on paper. Have you tried a version of this font with better on-screen "hinting"? E.g., have you tried using Latin Modern instead of Computer Modern? Separately, have you tried changing the resolution (pixel count) of your display? Oddly enough, sometimes lowering the resolution slightly can produce better-looking on-screen rendering of certain fonts. –  Mico Mar 2 '13 at 19:12
2  
A font is both an aesthetic object and a practical tool. I wouldn't take the blueprints for a car, distort the x and y axes by unequal scale factors, and expect the result to be a good blueprint for a car. I also wouldn't go through an art museum taking snapshots of paintings and subjecting them to similar changes in their horizontal and vertical proportions. Metafont provides the ability to do this kind of thing so that it can be done by the designer, who presumably has carefully considered practical and aesthetic reasons for his choices. If you want a less spindly font, don't use CM. –  Ben Crowell Mar 2 '13 at 19:53
3  
@Ben -- sounds like you think parameterizing a font is a bad idea, and any attempt at adjusting the parameters will lead to a design atrocity. Maybe. Depends who does it, obviously. But, OTOH, it seems likely that it could improve screen readability. So, my questions were "can it be done", and "has it been done". I didn't ask "should it be done". If someone gives a positive answer to the "has it been done" question, then I can judge whether the results are useful to me, and you are free to ignore them if you find them unbearably hideous. –  bubba Mar 4 '13 at 15:03
show 3 more comments

1 Answer

up vote 11 down vote accepted

This post on a german typography board provides a possible solution for this problem. The OP also gives a snippet of Knuth's 'Digital Typography' to show that the CM was never meant to look that thin in print (as it does with modern laser printers; see third snippet).

Another workaround – although kludgy – would be to use a different optical size for standard text. If you set the text in 11pt, the default optical size is 10pt. Choosing 9pt instead will result in slightly thicker strokes but also a slightly wider letter shape.

share|improve this answer
    
Good ideas. Thanks. My German is pretty poor, but I will try to struggle through the article you referenced. –  bubba Mar 6 '13 at 10:55
    
The German guy did the adjustments using the "blacker" parameter in Metafont, which only works if you use Metafont-generated bitmap fonts, of course. I'd prefer to stick with outline fonts, if possible. –  bubba Mar 7 '13 at 3:30
    
The idea of using a smaller design size seems promising. I'm going to try that out. Also, I might try using the fontspec FakeStretch command to make some further minor adjustments. –  bubba Mar 7 '13 at 3:32
    
The idea involving FakeStretch sounds interesting! Could you maybe post an example when you find a pleasing solution? –  NauC Mar 7 '13 at 16:12
    
I added a picture to the question. Thanks again. –  bubba Mar 9 '13 at 11:49
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.