No, not oﬀ completely, just making extra work for yourself. Is there any advantage to changing the weight in illustrator rather than using the change weight tools available in Fontlab? Besides which, you’d have to reimport all those outlines again. Joe
I dont know if it
Wow James, that took more than ﬁve years. :-/ http://listserv.heanet.ie/cgi-bin/wa?A2=ind9806&L=typo-l&D=0&I=-3&P=42517 Peter, that’s a great book — I was lucky to ﬁnd an aﬀordable copy shortly after James mentioned it on Typo-L back then. Keep your eyes peeled on bookﬁnder.com and you might get lucky eventually. hhp
Ok and it
Peter, I also like to draw glyphs in illustrator. Mainly because I can put all the glyphs on one page plus multiple weights for easy comparison. Typically though, I manually add weight to the font, point by point. For troublesome letters, print them and get out your pencil. I would not add weight in illustrator using oﬀset paths. Here’s why: 1. Usually doing so adds all kinds of extra and useless points, particularly in curves… so you have to go in and ﬁx them. 2. It adds weight uniformally ie .25pt to both sides of all curves. This isn’t good because: - a. you typically add more weight to the verticals. - b. this creates problems in your joins. Notice in Frutiger’s drawing how little weight is added in the area where the stem and branch join. - c. when adding weight, your baseline stays the same but your overshoots increase a tad.Again see the drawing. By the time you get rid of extraneous points and ﬁx all the problems you’ve spent more time than if you’d just added the weight manually. About the only place this makes sense if when doing a monoline font. Even then you cannot simply draw the wireframe and make light = 1pt stroke, regular 4pt stroke, bold 7pt etc. The light weights will look ok. But they get ugly quickly as you add weight, because you need to do optical thinning and some thinning in the joins, plus baseline maintenence. Consider Foundry Monoline which does those three things so subtly and masterfully, you almost cant tell they did them. But you sure as heck would have if they didn’t! Foundry Monoline used in a PDF. You can make a display font in 10 minutes with a brush and scanner. There is no free lunch if you want to make something that will pass in a text setting. It is long, and it is tedious. And in my opinion, fun. We are talking weeks, months and years. Not days, minutes, and seconds. FontLab has better tools (as other’s described), but even then they still need tweeking. Do it manually ﬁrst so you know the do’s and don’ts. Good Luck! Randy
Randy I think I understand your message thanks! Part of what makes this whole type thing further diﬃcult to me is the fact that Im not english speaking. Believe me thats half of it; every single toturial or essay on the matter is written in english, books, web etc. and the phrases, words used in type-talk (!) are all pretty technical. Maybe that explains the many questions I ask and the “I want to see examples” thing….;) What really could help me out now is an example in form of an .ai document (eps or whatever..) so that I can see but more important: “feel” how things are done, set up etc. And Im not talking display fonts, monotyped pixel fonts or anything. Someone working with their glyphs mainly in Illustrator willing to email me examples? Dont have to be the whole alphabet or anything — could be 10 glyphs, a beta sample or something as long as the glyphs are presented in diﬀerent weights. Someone?
Hi Peter. Unfortunatly my Danish is much worse than your english. I didn’t use more simple language because your english seemed so good! I will show an EPS with steps I use to take a letter from a regular ->bold and maybe heavy too, if I have time. I would like to hear from others too, because I am pretty new to all of this. Regards, Randy
Perhaps not 100% on-topic, but useful just the same — Underware’s Type Work Shop site. More useful tutorials and reference material.
Hi Peter. I’ve gone through and weighted up a grotesque n from regular -> bold. Others please feel free to critique my strategy and ﬁnal result, I’d like to learn too :-) A preview: Here’s a link to an eps. It’s called weight.eps Good luck! Randy
Maybe I’ll post an s next week sometime. - R
Besides that I have a couple of allmost ready alphabets drawn ready in Illustrator and that Im pretty new to this Fontlab thing theres no advantages I guess. Where do I ﬁnd the change weight command and any speciﬁc problems that I should pay attention to using it?
Randy, this is a great ﬁrst! But I can’t load that EPS — too new. PDF? hhp
Here’s a pdf. Comments may be small. The eps was v6.0 Regards, Randy
The Interpolate tool in FontLab is the most eﬃcient way I have found to make bold outlines from the regular weight. This tool interpolates the position of both on and oﬀ curve points (or nodes and control handles in PS outlines) relative to touched points. By making two passes at a glyph, one for x-direction movements and one for y-direction movements, it is possible to increase or decrease weight while maintaining curve characteristics. Typically, the only thing that requires adjustment is transitions between stems, e.g. the crotch of the n as in Randy’s example.
Thanks John. That sounds like a winner! I have only ﬁddled with FontLab. Would you mind taking us through that process step by step, more like a tutorial? Or, if you know of a tutorial, would you mind linking to it? I’ve looked throught the FontLab manual, but I think it would be usefull to show a hands-on example (maybe using the n glyph from my sample?). While this seems easy and convenient, Peter, I still recommend you try it by hand at least a few times. That way you would know when the crotch of the n, needs adjusting after transformation in FontLab.
FontLab Interpolation Tutorial Most discussions of methods to make bold letters use sans serif letters as an example. Since one of the great virtues of FontLab interpolation is that it preserves curve quality and character, I decided to use a serif example that includes curved stems and very irregular forms: Adobe Jenson Pro. The ﬁrst thing to do is to put the original outline in the mask layer (default Ctrl+M on Windows). During interpolation, FontLab will display both the result of everything you do and the original state, but having the initial glyph shape in the mask allows you to maintain a visual reference through multiple interpolation passes. The interpolation tool works with both PS and TT outlines. In PS outline mode, you can only touch on-curve nodes with the tool, but the position of oﬀ-curve control handles will be interpolated relative to touched nodes. In TT outline mode, you can touch both on- and oﬀ-curve points. 1. Here is the lowercase n from Adobe Jenson Pro Regular. The red arrow pointing to the toolbar above indicates the Interpolate tool. Click on this to activate the tool, or use the hotkey (default Ctrl+Alt+P on Windows). 2. When the tool is active, you can click and drag any point. I recommend adjusting a glyph in two passes: one x-direction and one y-direction. You can hold down Shift while dragging to constrain direction. The FontLab measurement bar will tell you how many units you are dragging and, if not constrained, at what angle. When you release a touched point, FontLab will display a preview of the result of the interpolation as a grey line. Note that when you move only one point, the grey preview shows the entire glyph shifted: this is because every untouched point has been moved relative to the ﬁrst touched point. In the illustration, you can see how I have laterally moved ﬁve points to make the stems bolder. The grey outline shows the result of these movements. You should try to touch the minimum number of points necessary to achieve your aims, this allows FontLab to interpolate all the others and to preserve curve character even when curves are stretched or compressed. 3. As well as clicking and dragging points, you can specify relative or ﬁxed positions for points by opening the Set Link Destination dialogue (default Ctrl+Click on a point on Windows). I use this most of the time. 4. The result of the ﬁrst, x-direction pass. 5. In the second pass, make y-direction adjustments. In a Latin typeface, the y-direction adjustments may not be as regularised as the x-direction. For example, to increase the vertical stem weights as shown above, each touched point was moved 20 units. In the y-direction, I try to make optical compensations as I go. For example, the top of the main curve is shifted up 7 units, but the point in the crotch is raised only 3 unit, because I want the connection to the stem to remain relatively light. I’ve also used this pass to not only increase the weight of the top serif, but also to drop its tip slightly so that the diagonal is closer to that of the original outline. Note the dots with circular patterns around them, e.g. halfway up the left stem, these are points that have been touched but not moved. It is possible to ﬁx a point in this way, and because it has been touched other points between it and the next touched point will be interpolated. This is very useful, but you need to be very careful not to touch any point that you want to be interpolated; if you do, you will have to cancel the interpolate session and start again. 6. The result of the second, y-direction pass. At this point I would check the width and, if it needs adjustment, use the interpolate tool again to shift the stems further apart. I would also make any other adjustments that I have not attempted during interpolation, such as shortening the inner serifs slightly. That top serif also needs attention. Note that you can touch a point as many times as you want within a single interpolate session, so if you are not happy with where you move it, you can move it again. All relative positioning is relative to the initial position.
Ooh, John ups the ante. Great stuﬀ — thanks. I have a question about FontLab, which I have but haven’t used for interpolation yet: if I have two weights of a typeface, how well can FontLab extrapolate a heavier weight, automatically? hhp
I’ve found that FontLab 4.6 works brilliantly for extrapolation. You can also enter percentages beyond 200%, unlike Fontographer. (Though that sounds rather extreme, there were many times when I found myself wishing that that limitation could be removed from Fontographer.) Earlier versions had a problem, but the newest one is great. IIRC, it also copies both source glyphs to the mask, where they stay (also unlike Fog). Alan
Thanks Alan. BTW, is there a manual addendum for going from 4.5 to 4.6? I bought a hardcopy of the 4.5 manual, and I want to keep using it. Do I have to download the whole 4.6 manual and manually ﬁgure out what they’ve added?… hhp
Yes, extrapolation is pretty good (you can thank Adam Twardoch for that feature). You build an MM font, and then enter values beyond the extremes of the axis. I generally ﬁnd that one can’t go too far beyond the extreme before things start getting pretty weird — glyphs turning inside out, curves wrapping, etc. — but extrapolation is very useful for getting a head start on a light and heavy weight from a regular and a bold.
I know Yuri has listed the major changes in 4.6, but I think they’re mostly under the hood. That is to say, major parts of the application work better, but the workﬂow isn’t largely eﬀected. I take that back, somewhat: I know there’s a kind of “build family” feature now, but I admit I haven’t tried it. See this thread on the FontLab forums, where Yuri talks about the new features, and wonders out loud why it was a free upgrade. Bless his heart. Alan
Tools > Transform > Eﬀects > Bold The transform panel could keep anyone busy for a very long while. Experiment on glyphs to see what happens when you change weight evenly, or more on the X or Y axis. Check and uncheck the option to see what happens when you “keep glyph dimensions”. This is the key diﬀerence (to me) between the Illustrator method and using Fontlab.
This is the document that describes 4.5 -> 4.6 changes: http://www.pyrus.com/downloads/ChangesInFL46.pdf
I’m interested to hear about anyone’s experience writing bolding algorithms. It seems like there are some pretty speciﬁc things that I do over an over again when I am changing the weight of a font manually. It’s almost like I am applying an algorithm, I’m just doing it by hand. I’ve been thinking about an algorithm based on the relative widths of a character. I envision pulling a slider to make the thicks thicker, and another to make the thins thinner. Or you could do the opposite, evening out the relative widths. It would be easy to manipulate weight as well as optical sizes. I could even see parameters that would aﬀect how the character carried the wieght, say 80% inside, 20% outside for the x transformations, and 100% inside and 0% outside for the y transformations. What if I could draw a medium weight character, then push the thicks wider and keep the thins. The transformations would be pretty accurate for almost every character. Of course there would still be manual tweaking to do, but not nearly as much. Then for a lighter weight I could shrink the thicks and keep the thins, evening out the weight of the strokes. While controls over x and y parameters in current bolding algorithms are helpful, they really mess up S’s, g’s, M’s, Z’s etc. As has been pointed out, they are also insensitive to the joins. By focusing on the comparison of thicks to thins, instead of x to y, most of these problems could be solved. As far as how to do this, I have envisioned a user-deﬁned skeleton [image, 5k], representing various strokes. The line width at any given point would be measured by looking at where the arc tangent runs into the outline of the character. Some consideration would have to be given to how to handle intersections, but I think this could be solved by looking at the other tangents on a stroke, and continuing the trend. It could be visualized as a histogram of thick to thin measurements. One could then adjust the relative lengths of the tangents based on a variety of parameters. The original curve would be altered (pushed out or in) based on the tangent lines. Incidentally, this could be applied to serifs as well (they could be deﬁned by the user as part of the skeleton). It may be possible (though diﬃcult) for the algorithm to determine the appropriate skeleton strokes from the outlines, which would make the operation easier on the user, but I imagine that users would get better results deﬁning the skleton themselves. Does anyone else have any ideas on weight algorithms?
I think a really smart weight algorithm (like where the thins are thickened less than the thicks, as you describe) would be a huge time-saver. It doesn’t have to be perfect, as long as any subsequent manual tweaks are made rare. On the other hand, a stroke approach can never really work, because type is not chirography. hhp
Hi Christian, One drawback is that this is seems pretty speciﬁc to your way of developing typefaces (skeleton ﬁrst). I know you mention getting the skeleton from the outline in the last paragraph, I just don’t know if it can be done. When you work from skeleton->outline there is major tweaking (I assume, particularly as you get more bold.) I’m curious what some of the Python Scriptators think. To clarify, when you say based on thick and thin, not x and y, you mean that it takes into account the angle of contrast? (that might be a slight improvement on x & y controls). But I think you’re adding more complexity with the skeleton thing. As I read your post, the skeleton concept ﬁred the memory bringing up this image from LucasFonts. It’s buried in the information section under Corpid. Don’t know how useful it is.
The only reason for the skeleton is to deﬁne the angle at which the stroke width is to be measured. As I was trying to think of how to measure thickness at any given point, I came up with a drawing that looked a lot like the ‘e’ to the left. I just needed a mathmatical way to draw the lines based on the outline. It occurred to me that my measurement lines were all arc tangents of the average/center line. I couldn’t think of a good way to determine the center line from which I should measure the tangents, particularly where two lines intersect. One solution was a user deﬁned measurement line, separate from the ouline, which naturally (though not necessarily) would be the average of the outlining stroke. However, the circles provide the same answer as the skeleton (thanks Randy). The appropriate angle of measurement can be determined by the points at which the diameter of the circle intersects the outline. I still need a way to translate it into appropriate movement of bezier nodes. (Idea’s anyone?). To Hrant’s point, a stroke based system can never really work, as letterforms have evolved much further than simple lines (though their shapes are abstracty based on strokes). Apart from the bolding algorithm, I can see some usefulness in a skeleton, much like 3d animators use. The muscles and ﬂesh react to a skeleton, changing shapes according to parameters, but maintaining their integrity and form. So to Randy’s point, the skeleton would not be the basis for the design, the outlines would; the skeleton would be added after as the basis for transformations.
Please ﬁnd attached SWF showing a method I used on a font project. It
Pretty nice! Two comments: 1) Bolder weights need larger x-heights to appear the same height. 2) You’re moving the apex of the curves -like the top of the arch- as much as the stems? That’s too much, as you can see from the diﬀerent shape of the arch between the start and the end — try half, then tweak. hhp
James — I see what you
Peter, I work on my fonts in Illustrator then paste them into Fontographer and have found this to be a very satisfactory way of working, especially as I can scan in my pencil sketches to use as an initial guide. That said I am very familiar with Illustrator and feel its tools give me more control. I tried increasing my font weights in Fontographer but found the angle of diagonals would change and this is something I want to avoid. I have also found that working on the heaviest weight ﬁrst then using it as a guide for the lighter weights has been quicker than doing it the other way round. I must say that I agree with the comments James made about manual work helping to understanding the design rather relying on automated devices.
Ok, I understand the message though it sounds kinda funny that working on the heaviest weight ﬁrst is supposed to be the easiest (make no sense to me). Is it possible that someone would send me a sample of how they work on weight in Illustrator? Im also very familier with Illistrator but can not really ﬁgure out how I do the weight thing the easiest way — do I just oﬀset the path, do I redraw the whole thing etc…. An .ai document with a few beta letters in various weight would save my day;)
Bolder weights need larger x-heights to appear the same height.
Can any explain why that is, exactly?
Because the counter is smaller[er].
Notan, baby. No chiro.
James, you said in the new thread--before this was resurrected by Paul--that you can 'go East or go West'. That's what Frutiger does in his example that you posted--go East. But in his FontLab interpolation tutorial, John does both.
Is there any argument for just going one x-direction, as Frutiger? Or is this just a matter of the typeface?