different versions of the same letter

Post questions about type and font design here.
Post Reply
Roger Stone
Posts: 3
Joined: Sun Jun 15, 2014 8:42 am

different versions of the same letter

Post by Roger Stone »

Masters, I experimented some time ago with a handwriting font; in those days, this font creator could not provide what I was looking for.

Can you tell me if the latest version will cope?

My key requirements are: 1) letters can overlap. That is, the trailing tail of a capital R or the cross of a t can loop above, around or below other letters. 2) Particularly for the lower-case t, I need to be able to produce more than one form, all of which will be counted as a letter t by spell checkers and when being translated into another font, but the different forms will be used depending on what the previous letter might have been.

Are there ways to do this?

Example: .... Um, how do I insert an image here?
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9869
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: different versions of the same letter

Post by Bhikkhu Pesala »

Your previous question was answered, but you never followed up.

1) Can be done as explained there. You just need to set the side-bearings correctly but swashes may collide with other glyphs requiring the use of contextual alternates.

2) You can do with Contextual Alternates or Character Variants.

OpenType features are not supported by all applications, but support is gradually improving. Serif applications have supported them for many years, and LibreOffice also does now with some code that is not very user friendly. Recent versions of Microsoft Word also support them, but I am unsure which features it supports.

Give the alternative glyphs meaningful names such as t.alt0, t.alt1, etc., and add a contextual alternates feature using FontCreator's OpenType Designer.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
honest.bern
Posts: 42
Joined: Mon May 05, 2008 8:28 am
Location: England
Contact:

Re: different versions of the same letter

Post by honest.bern »

The attached pdf “Bern-cursive.pdf” shows my experiments with making a cursive font with OpenType features. It shows my progress as of today.

I made the font using FontCreator 9.1 Professional.

At the top I show sample text in the default font (left) and my cursive font (right). The only difference in input is the font used: all the coding is in the font, there is no extra markup. This was rendered by Firefox 53 and Windows 10.

Below is the script used in the font.

My purpose was to learn how to write an OpenType script using chaining contextual alternates (calt).

Making the font look nice was not a priority. The letters are crude, as I am a novice at designing and drawing. The letters have wide left and right spaces for joins: this makes the joining lines easy to identify.


Letter shapes

The design is based on how my primary school teachers tried to teach me to write fifty years ago.

I started by identifying classes of letters that had the same combinations of right-side connections, and the classes with the same left-side connections.

Six different “g”s are visible. Six “o”s are used; there should eventually be another three “o”s. (I may put a small break at the top of the connected “o”s, to show that I write them anticlockwise, not clockwise, which would be horrible.) Most of the alphabet is still waiting to be drawn.

The most demanding letter was “e”: it has to start half way between the baseline and the midline. Thus I had to have a variant of “o” like the one in the sequence “ooooe”. It seems to me that most script typefaces have “o”s (and in fact all letters) that join at this height just to make the link to “e” look right.

The sequences “ooo” and “og” show the link out from an “o” at the height of the midline, where it belongs before letters other than “e”. (The “h” has a looped stem so that when I add the variant after an “o” I can show the join above the midline.)

Most of the glyphs are yet to be added.

The glyphs were very easy to name: right click, glyph properties, name, apply.


OpenType script

I used “Font” menu, “OpenType Designer”, “Code Editor…” to write the script myself, because I could not manage the automated system. When I had written the code I checked it with the blue tick; the syntax checker warned that there was a class — @g — that was not used, but an unused class does not prevent the compiler working.

One can see that this font produces initial, final and isolated forms just by using chaining contextual alternates: I have not tried to use “init” or “fina”, which are, I gather, not intended for use with the Latin alphabet.

Actually, of course, I worried away at the code for a week (on and off) before I reached this stage.

The syntax checker found plenty of errors: glyph names not corresponding to glyphs (misspelled glyph names), very many missing semicolons, and so on.

The syntax checker checks that the code is valid, but it does not check whether it actually does what you want it to do! At one point I was convinced that Firefox simply did not show chaining contextual alternates, just simple contextual alternates. In fact, Firefox was showing what I told it to do, not what I wanted it to do.

Now that I know what I was doing wrong, adding code for the rest of the alphabet and tidying or combining classes will be much more straightforward.

My two main errors were:
(1) I forgot to add glyph names to all the relevant classes. As an example, at the end of the script

Code: Select all

lookup oe {
  context (@mid.out) @lower;
  sub 0 oe1;
}

Code: Select all

lookup oe1 {
  sub e -> e_mid_in;
  sub e_low_out -> e_mid_in_low_out;
}
I added the line

Code: Select all

  sub e_low_out -> e_mid_in_low_out;
but this had no effect because I had not previously added “e_low_out” to the class @lower. The substitutions only affect members of the class @lower in the context of following members of the class @mid.out.

(2) My second error was in misunderstanding how the rendering is performed. I thought that, just as the features are carried out in sequence, so the lookups (i.e. class.1.high.out, class.1.mid.out, class.2.low.out, high.out, low.out, and oe) were also performed one after another, in sequence.

Thus, in the first set of substitutions, I now use

Code: Select all

lookup class.1.high.out.1 {
sub o -> o_high_out;
sub o_high_in -> o_high_in_high_out;
sub o_low_in -> o_low_in_high_out;
}
Before (in the code that did not work properly), I used

Code: Select all

lookup class.1.high.out.1 {
sub o -> o_high_out;
}
because I thought that

Code: Select all

sub o_high_in -> o_high_in_high_out;
sub o_low_in -> o_low_in_high_out;
belonged further down.

That is, even though the glyphs o_high_in and o_low_in are produced from the letter “o” later on, I should still include their replacements here, at the start.


Finding sample scripts to modify


On the internet I have found sample scripts that are posted to show OpenType syntax. But it appears that different compilers use slightly different syntax. For example, Fontcreator uses “->”; elsewhere I have seen “by”. This is fairly trivial. Elsewhere I have also seen

Code: Select all

group @lower [a-z]
which I think does not work here.

Although there are some examples of scripts on the forum I could not find any for cursive Latin type. I hope that my experiences will be useful to others planning to make such fonts.


In answer to Roger Stone
  1. If we want it, we can make letters overlap: a glyph can extend beyond the left or right sidebearing (or both).
  2. My font is an example of one letter corresponding to multiple glyphs. If you use a spell-checker or “find” it identifies the underlying letters but the ink on the paper or pixels on the screen show different glyphs.
Honest Bern
Attachments
Bern-cursive.pdf
(13 KiB) Downloaded 599 times
Jonne Haven
Posts: 441
Joined: Wed Sep 30, 2015 12:02 pm
Location: Kaneohe, Hawaii, USA

Re: different versions of the same letter

Post by Jonne Haven »

If you're interested in making a contextual true cursive font, I've made one. You may want to check out this thread: viewtopic.php?f=3&t=5804

If you'd like to see my code, I can PM it to you. But to warn you, It is very individualized to the way that I work.

Blessings,

Jonne
Jonne Haven
Posts: 441
Joined: Wed Sep 30, 2015 12:02 pm
Location: Kaneohe, Hawaii, USA

Re: different versions of the same letter

Post by Jonne Haven »

Here is a sample of my font. Note that the first 'm' in Lorem followed by an apostophe has a different tail than the Lorem without an apostrophe. This is true for all tails of all letters that precede a symbol.
Sample of Jonne's Melanie Camille.png
Sample of Jonne's Melanie Camille.png (186.42 KiB) Viewed 13270 times
Roger Stone
Posts: 3
Joined: Sun Jun 15, 2014 8:42 am

Re: different versions of the same letter

Post by Roger Stone »

Many thanks to Bikkhu, Bern and Jonne; you have made it clear that what I was looking for is possible. It also looks like it's a BIG chunk of work to get it right... However, that's a choice I have to make. I've spent fifty years writing the book; I might as well invest another decade in developing the print. Time is a big place.

Many thanks.
Jonne Haven
Posts: 441
Joined: Wed Sep 30, 2015 12:02 pm
Location: Kaneohe, Hawaii, USA

Re: different versions of the same letter

Post by Jonne Haven »

Roger,

I started the contextual cursive font as a complete newbie. It won't take you a decade to make. It took about a year to get most of the work done, and about another year to kern everything right. A lot of that was learning how to use CALT features, these forums are very good in support and I encourage you to post any questions you might have. I bet you could do it in less than two years if you spend the appropriate amount of time with it and aren't afraid to ask questions. This is the best supported software program I've ever come across so in short, ASK!!!

Good luck to you and blessings,

Jonne
Post Reply