A serif font created with METAFONT

fujito's picture

Hi everybody

I started designing a new font family with METAFONT (look at the pdf for more examples) and the uppercase letters seem to be quite finished.

What do you mean, is it worth continueing with lowercase letters?

Many thanks for your critique

--------------------------- Current State -------------------------------------

• Construction of letters as a pdf-file

• Specimen (svg):

1996type's picture

If this font is meant as a project to learn from, the answer to your question is yes. Otherwise, no. This typeface adds absolutely nothing to the existing typefaces. If you do want to continue this is has to become absolutely perfect for it to add something to the market, which it is not at moment. Just a few notes:
W is unbalanced and to small.
Z is to wide.
The contrast in width between round letters like the O and 'normal' letters like the V, T, N, etc is to large.

clauses's picture

Looks very promising, and as Philips says it's nothing new, but it's METAFONT, and that makes a big difference. The many benefits inherent to the METAFONT system like optical sizes certainly makes this a worthwhile effort.

I'm looking forward to your lowercase!

fujito's picture

Many thanks for your critique

You are both right, this typeface in not meant to be something completely new. However, if I will ever publish this font it will be quite certain open source. And at this time I think there is no comparable free font coming in different optical sizes. So I surely want to learn from this project, but I could also imagine that this font will be used (probably not by professionals). The optical size 24pt can already be used for titles (same purpose as Trajan), I guess.

I agree, that the W is too narrow and I will change that, but unbalanced? Compare it to Albertina, I think many fonts have unbalanced W's. (Or am I getting something wrong?)

The widths of the letters are actually quite similar to Minion Pro an if you look at some Garamond fonts (like Garamond No. 8) you will find an even larger contrast in widths between round letters and 'normal' letters.

I will certainly work further on but I think that lowercase letters will not come before christmas.

And thank you clauses for your appreciation of METAFONT. In opposition to this article this font shows that it is possible to generate type1 fonts using the METAFONT language (thanks to mf2pt1).

Jens Kutilek's picture

This typeface adds absolutely nothing to the existing typefaces.

By this measure, we could as well close the Critique section on Typophile. Most typefaces that are presented here add less to the existing typefaces than this one. Please do continue!

riccard0's picture

This typeface adds absolutely nothing to the existing typefaces.

A Vignelli-ish declaration…
http://typophile.com/node/19950

Khaled Hosny's picture

Very interesting, and the fact it is a METAFONT is even more interesting, AFAIK no one made a real parametrised font with METAFONT except Knuth himself (May be the recent GUST fonts are, but they don't provide METAFONT sources), so I think it is very interesting experience, and even if you don't think any body will use it (though I think a free oldstyle family with optical sizes is certainly a very welcomed addition).

For going from MATAFONT to PostScript there is, besides mf2pt1, METATYPE1 which GUST people developed for their fonts, though, IIRC, they use a certain subset of MATAFONT. I'd even an experiment to use directly MetaPost and FontForge to convert Knuth's Punk font to OpenType (but the funny nature of that font makes it a bit special, also the original sources were "metapostified" prior to my work).

clauses's picture

Well, I know of other people who are also pursuing the METAFONT approach in order to make better smarter fonts for computer screens. Some clever javascript and a lot of individual font-files, one for each pixel-size – at least that is what I think they aim to do.

clauses's picture

By the way, does a graphical editor exist for METAFONT or is it all done in code?

sgh's picture

This is really cool! Do you have the source posted somewhere? I'd really like to see which parameters have manual values, and which are computed from others.

A Pen Name and That A's picture

1996typo could not be more wrong. I like comparing fonts and the closer to TNR the better. What is more, the big thing with fonts is the vibe they give the whole written page, not the characteristic of the letters. I love Futura. I'm pretty sure I can remember seeing it in a Ladybird book from my childhood. The O is much wider than the L with its dumb little horisontal, but the the whole font seems so fresh, open and optimistic and without pretense. Those letters give me a good vibe. So there.

And another thing, I recon it is better if there is variation between different letters. If they are too in-proportion they look too much the same and readability suffers. I like Exocet, and it has been prominently used. The letters in Exocet look very different and don't all follow the same rules.

SebastianK's picture

I'm a lover of all three TeX, open source, and good old-style text faces, so: Chapeau!

Then again, I'm kinda glad XeTeX/fontspec have allowed us to say goodbye to METAFONT.
Can you tell me a bit more about what made you use that system? What are your plans for the typeface? Have you used outline editors before, and if yes, what is using MF like? Have you considered joining other efforts or using existent free typefaces as a basis for your work?

Anyway, good luck!

Sebastian

fujito's picture

AFAIK no one made a real parametrised font with METAFONT except Knuth himself (May be the recent GUST fonts are, but they don't provide METAFONT sources)

I think there are quite some fonts written in METAFONT which are not by Knuth (look at this list). However, many of them belong to the following 3 classes

  • only related to TeX (maths fonts or extensions/improvements to Computer Modern)
  • not released in any proper outline form
  • not OpenSource (e.g. fonts from the old Metafoundry)

At the first glance I was stunned by the GUST project and the related METATYPE1. I still think they are doing great work but I had to discover that GUST writes the already existing font outlines to a pseudo-abstract form in METATYPE1 language (instead of a proper reenginering by coding means). In addition, METATYPE1 is not very powerful in comparison to METAFONT, and it seems that the language is still under changements. METATYPE1 could produce parametrised fonts, but afaik there is no such font published yet. Even the LatinModern faces make use of the 1990's outlines of Computer Modern instead of the existing METAFONT sources.

mf2pt1 has also some restrictions (but not as severe ones as METATYPE1 has), in particular it has problems with unfilling and drawing commands (Computer Modern mainly "defines the outlines" and then draws along them with a pen).

Well, I know of other people who are also pursuing the METAFONT approach in order to make better smarter fonts for computer screens

I must admit that I have not cared about pixels/bitmaps for the Nilus typeface.

By the way, does a graphical editor exist for METAFONT or is it all done in code?

I do not know any graphical editor for METAFONT but I also think that this is impossible in general. Personally, I coded the letters and ran METAFONT and gftodvi thousands of time to see how the letters are developping.

Do you have the source posted somewhere? I'd really like to see which parameters have manual values, and which are computed from others.

The sources are not published yet and unfortunately there are still a lot of errors in them. "Manual" values are only

  • slant (italicness, regular has slant=0 and italic has slant=.25)
  • boldness (regular has boldness=0, bold has boldness 1, light would have boldness -1)
  • size (optical size)

All the rest of the parameters are computed of these with some very easy functions (mainly affine dependencies).

I'm a lover of all three TeX, open source, and good old-style text faces

Me too!!!

Then again, I'm kinda glad XeTeX/fontspec have allowed us to say goodbye to METAFONT

So am I. The pdf I attached is done with XeTeX. In fact I am too lazy to do experiments with the local texmf tree.

Can you tell me a bit more about what made you use that system?

I love TeX and I find Computer Modern a very good typeface for formulas (but that is probably just because I seldom see something else), but I do not like it for texts. So I often combined "good old-style text faces" such as URW Garamond No.8 as text typeface with Computer Modern for formulas. Of course, such combinations cannot fit exactly. But I try with Nilus to compose a font that matches well with Computer Modern, which means that capital letter height and x-height are the same. The ascender height of lowercase letters (such as l) is a bit higher than in Computer Modern in order to set the sloped serif to the same height (because Nilus uses a larger serif drop as Computer Modern).

What are your plans for the typeface?

I plan to fill the TeX 8bit encoding scheme (Cork encoding) which is similar to the Adobe Standard encoding.

Have you used outline editors before, and if yes, what is using MF like?

I have been using fontforge for quite a while and it is a great editor, but there are things that a fonteditor never can do (e.g. optical sizes in a sensible way). Using MF is lots of fun for me now and lots of frustration at the very beginning (just like TeX). As I am used to mathematics and programming many things were easy to see for me but could be hard for people who find maths desgusting.

Have you considered joining other efforts or using existent free typefaces as a basis for your work?

I have copied some code from cmbase.mf by Donald Knuth but I have not made use of any existing outline fonts in means of copying traces.

Thank you for all your answers. This encourages me a lot and I have already begun working on lowercase.

Khaled Hosny's picture

At the first glance I was stunned by the GUST project and the related METATYPE1. I still think they are doing great work but I had to discover that GUST writes the already existing font outlines to a pseudo-abstract form in METATYPE1 language (instead of a proper reenginering by coding means).

This is true for TeX Gyre fonts, but not for their original fonts like Antykwa Półtawskiego which I believe were designed from the beginning as parametrised fonts. They don't usually purplish the metatype sources of the fonts, but you can ask them directly for sources and they will provide it.

fujito's picture

Thank you for pointing this out, Khaled Hosny.

For those who are interested in the METAFONT output: look here. (adobe reader does not display it very well, under evince it looks darker)

oneweioranother's picture

Any updates on the lowercase?

fujito's picture

I still work on the lowercase, currently only the letters g,h,i,l,m,n,v are half-ready and also only for non-italic styles. Perhaps I will show some examples in next time, but there is still a lot to do. In the last time, I mainly improved the behavior of the optical scaling, learned about encodings, changed uppercase letters, made a program that converts kerningclasses of a fontforge file to a metafont-style kerning file ...

fujito's picture

Okay, thats the way nlr10.otf (Nilus Roman 10pt) looks right now (I will adjust kerning when all glyphs are done)

SebastianK's picture

This is fantastic work! I would have to see more to be able to better judge the stroke contrast, but I absolutely love what you've done so far. Tiny nitpick: I find the U could be a very slight bit thinner.

Would you mind releasing the source (early and often)? I would suggest services like Sourceforge; they offer both version control and webspace. Just asking :)

fujito's picture

@Sebastian: Thank you, I will think about the U. About releasing the sources: The problem is, that the sources are
- not well documentated (I sometimes have to think a while to understand the things I have done a month ago)
- not very consequent (sometimes I do it like this, sometimes another way)
- under heavy change (I do not only add new glyphs but also improve existing glyphs)
- not well done (You would laugh when you'd saw some improper solutions - just like me)

That's the reason why I won't publish the sources for a long time. At the very end (when all glyphs are done) I will also clean up the code and then I may release the sources.

fujito's picture

@Sebastian: The U is now a tiny bit narrower, thank you for your advice

I deleted the documentation in the starter of this thread as it is out of date. I will instead publish now and then a new version of nlr10.pdf (in the starter) which contains all current glyphs and makes easy visible how the glyphs are constructed. In some time there will also be a new documentation

Due to some stagnancy in lowercase ("e" is incredible awful to parametrize with all metaness in mind) and some progress in uppercase (optical correction for diagonal stems with hair width, adjusted serifs for N and U, new ideas about senseful kerning, etc) I decided to interrupt work on lowercase and to improve and complete the uppercase letters.

So here is the rough plan for the font Nilus
- improvement and completion (Æ,Ø,Þ etc.) of uppercase letters
- punctation
- make Nilus TDS-compliant (for TeX-users)
- publication of experimental font (uppercase only) under restricted license
- roman lowercase
- roman numbers
- italic lowercase
- italic numbers
- special glyphs
- complete kerning
- addition of semibold(fast & easy),condensed(probably fast & easy),smallcaps(easy but annoying)
- publication of font

About publication of experimental font: Does anybody know a license of the form "use it freely at your own risk, do not modify, sell or republish"?

By the way, I said that I have been working on uppercase and optical sizes, I will prove this here with the following image :-)

And oh, Nilus is capable of generating font (smoothly) at any optical size (for example 12.24684167 pt) but I recognized (just as many before me as it seems) that there is no need for more than the following point sizes:

72pt (absent in TeX, "Display" in Adobish, for large titles)
17pt (present in TeX, "Subhead" in Adobish, for normal headers)
10pt (present in TeX, "Regular" in Adobish, for normal text and standard math)
8pt (present in TeX, "Caption" in Adobish, for footnotes and sub/superscript math)
5pt (present in TeX, absent in Adobish, for subsub/supersuperscript math)

SebastianK's picture

Linus,

my genuine congratulations! This may already be the prettiest native TeX font I've ever come across (well, I really have a thing for optical sizes).

I'll wait for the lowercase to be done before suggesting changes, as you don't seem to be happy with it yourself yet.

As for the license, I think a sentence like the above should be enough. Or try licenses like the CC BY-NC-ND. (Any reason why you want to expressly forbid modification and republication? In my experience neither causes any problems, unless you're planning to sell it later on)

Best of luck with this, and keep us posted!

Sebastian

fujito's picture

Thank you very much for your appreciation, Sebastian. I have completely forgotten the creative common licenses, CC BY-NC-ND seems to be a good choice for the experimental font. The reason for this "restrictive" license is that it will probably take much time to complete the whole font. So if I would publish the experimental font under OFL there may be people who decide to "improve" it and that is something I do not want at all yet.

My wish is to publish the final font under OFL or LPPL. However, this will be in quite some time. If I see that the font is shaping well and a (final) publication is in sight I will consider asking TUG for some grants (https://www.tug.org/tc/devfund/grants.html) and then Nilus would be naturally free and opensource anyway.

SebastianK's picture

I was just going to suggest you do that :)

fujito's picture

Nothing much done, as I have nearly no time until this summer. But the nlr10.pdf in the starter has become vector graphics (thanks to mptopdf), so it may be less painful looking at it.

fujito's picture

As I said, one can not see Nilus progressing at the moment, although many things are improving (slowly) in the background. For those who are interested:


Creating an antiqua font that matches Computer Modern is difficult, so I decided to make Nilus more distinct from Computer Modern and to add a mixture between it: Nilus "Modern", which is of course not a modern font.

The "normal" Nilus has optical corrections (look at the thin diagonal stem of the A), and lower capital heights, lower contrasts, is a bit wider etc.

Nilus is the font intended for book texts, Nilus Modern is intended to be a text font for TeX documents that use Computer Modern math fonts.

hrant's picture

I hadn't seen this thread before. Awesome!

If/when you publish this, it would only really make sense
if you leveraged its parametric nature. Either by providing
a ridiculous amount of instances, or maybe by having some
sort of generator that people could use to cook the cut(s)
that they wanted.

Personally I would do this: give away a good number of
instances that cover a lot of usage; but then sell custom
instances based on individual requests.

> there is no need for more than the following point sizes

Not necessarily true.
For example in the hotmetal days they made up to 7 masters.
And one can argue for even more.

hhp

fujito's picture

Thank you hrant!

At the moment, the parametric thing works like this:

A small program fed with very few arguments (e.g. $nl bi 10) creates a file that stores the parametric informations (e.g. nlbi10.mf). These parameters based on some (moredimensional) exponential interpolations.

These nl?.mf files can be processed directly by metafont/metapost. So if one want to change Nilus very strong, one can create an own nl?.mf file where all parameters are defined and process this file afterwards by metafont.

However, Computer Modern has shown that not too many people like to change 60 interdependant parameters of a font (at least not themselves).

hrant's picture

BTW, please read this thread
http://typophile.com/node/81755
and let me know if you'd be willing to generate a pair of fonts where everything
is the same except the x-height is bigger (equally vertically and horizontally).

The immediate purpose would be to test the viability of using a font with greater
apparent size (with everything except the x-height aligning) for emphasis, instead
of Italics.

hhp

fujito's picture

Why not? At the moment I use only one unit width for capital and lower letters. I would have to split them in two (to leave the aspect ratio constant), which is not much work. I tested it shortly:


The second "hov" has normal x-height, the first is 90% of it, the third and fourth at 110% and 120% respectively.

hrant's picture

Awesome. And the descenders stay the same, right? And you can vary
the weight too I assume (since the bigger sizes are looking too light).

I want!

hhp

1985's picture

fujito, this work is amazing.

METAFONT fascinates me… where do I start learning? The way I draw is already "parametrized" to some extent (by applying individual functions manually to a single path).
My concern is that I do not have a strong foundation in maths and I might find Knuth's world impenetrable.

Well done again.

fujito's picture

@ hrant: Yes descenders stay the same, just like the ascenders (it's clear that this distorts the glyphs a bit). Weight can be interpolated easily between normal and bold face, extrapolation (light and extra bold) leads to problems at a certain point. AND: I want it too, but I need some (much) time to work on!

@1985 I would recommend to learn METAFONT in the following way:

- do NOT look at the sources of Computer Modern! (they are way too complicated for beginners)
- read the metafont tutorial
- read the METAFONTbook, at least the first chapters. You will find it in libraries, there are also some (probably illegal?) copies of it in the internet as pdf, but with no pictures (knuth opened the source of the book but didn't make it free)
- forget about pens (and the following commands: bot top lft rt)
- concentrate on filling, unfilling and penstroke (and the following suffices: r l)
- forget about pixelproblems
- define some macros (functions)
- Still: do NOT look at the sources of Computer Modern! you may look at mflogo (but be aware, it works with pens, but it is a good example for a minimal font)
- When you look at the sources of Computer Modern (for serifs, diagonal stems etc), look also at the metafont output too see where the defined points are

I am a mathematician but one can also work with METAFONT with little mathematical knowledge. Basic vector priniciple understandings and basic equation ideas are recommended though.

hrant's picture

> I want it too, but I need some (much) time to work on!

So that "hov" sample was a one-off, and you
would need to do it for all the... metaglyphs?

hhp

fujito's picture

@hrant: No, I only had to change global values for the "hov" example. But I have not done all "metaglyphs" yet. The uppercase "metaglyphs" are quite good developped, the lowercase still need much time to complete.

jdaw1's picture

A proper parameterised font: hurray!

If it isn’t too late, please could your font include a ‘Condensedness’ parameter? I want it for the reasons in the first post of the thread Tall sans-serif font with good digits (though serifs might work). It will help generate families of fonts.

fujito's picture

@jdaw1: I once had included a condensedness parameter, which only changed the unit width. But condensing a font is much more subtle as I found out: Every glyph has it's local degree of condensedness-ability. At the moment I try to have as few local parameters as possible but I will implement this probably later. The programming will be easy but getting the right local parameters for every glyph is a bit annoying.

fujito's picture

@hrant: This looks very promising. The problem will be (just like in Metafont, Font Chameleon, Infinifont) to generate "metaglyphs". Some "metafonts" will probably be given by Yannick Mathey and out of them one can build myriads of fonts. But the design of these "metafonts" will be just as hard as for every other parametric font generating program.

hrant's picture

I would say the difference between a metafont and a regular font
is similar to the difference between a type founder and a scribe.

hhp

speter's picture

Linus, I can't seem to find any other contact info for you, and IM no longer seems to be a part of Typophile. Can you email me (speter AT mac DOT com)?

fujito's picture

Just a picture from the currently done work (improved A, diacritics):

LexLuengas's picture

Great! I have just one comment: Don't forget to also italicize the breve accent. I really can't imagine how laborious it is to develop a METAFONT font! Nice work!

LexLuengas's picture

Correction: italizice more. :-)

fujito's picture

Thank you LexLuengas for this suggestion (and you seem to have very sharp eyes :-) ). The breve is currently slanted 50% as much as the A. My first language is Swiss German, so I have no ideas about correctly slanting a breve. I often saw it slanted by 100% (respectively to the base glyph) and rarely slanted by 50%. My conclusion was that the font designer which slanted by 100% just did not knew better. What are your reasons to slant it more: Æstetic reasons? Historic reasons? Geometric reasons? Would you suggest to slant it 100% or 75%?

LexLuengas's picture

My reasons are primarily æsthetic, which I know derived from the geometric nature (an upward crescent) and contrast of the breve accent. I don't know if there is an habit to slant the breve in a specific way, historically speaking. I am now occupied with the diacritics of an own typeface and couldn't resist noticing.

I'd say 100% will look fine, but I don't have the faintest idea how it will look trying 75%. Let your eye guide you and take the option that looks better to you.

fujito's picture

Here is the direct comparison of 50%, 75% and 100% slanted breve:


I think that the 100% breve version looks too much like a nike hook. So I think I will go for 75%. Thank you LexLenguas.

SebastianK's picture

Very, very excited for this. Keep it coming :)

clauses's picture

I would give it a little more slant than the 75%. Something like 80 or 85% I think.

fujito's picture

Although these 5% or 10% percent make very little difference, these subtle changes look better, so I have set slant to 85%. Thank you, Clauses.

fujito's picture

Slanted capitals still keep me working. D. E. Knuth defined the so called superarcs (as a quarter of a superellipse) in his Computer Modern. But they do not work well for slanted letters. I adjusted the superarc definition a bit and may present you here the result for a mono-width-stroke and slanted supercircle:

(left: Computer Modern superarcs; right: Nilus arcs)

(I just found it interesting and thought I would share it with you.)

Syndicate content Syndicate content