Help with ligatures, etc.

Discuss FontCreator here, please do not post support requests, feature requests, or bug reports!
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

MikeW wrote:rr would go under discretionary ligatures as one would not expect it when typical ligatures was turned on.
Makes sense to me -- thanks. ;)
PJMiller
Top Typographer
Top Typographer
Posts: 977
Joined: Tue Jun 16, 2015 8:12 pm
Location: Sheffield, South Yorkshire
Contact:

Re: Help with ligatures, etc.

Post by PJMiller »

There is a problem with Microsoft Word. It doesn't allow discretionary ligatures to be turned on independently of historical ligatures (which is a really stupid design decision in my opinion) so you can only have both or neither.

As many users of fonts will be using them with Microsoft Word this is a problem.

I eventually put the discretionary ligatures for 'Kelvinch' in as contextual ligatures which can be switched on with standard ligatures (i.e. you can have standard ligatures or standard + contextual). I know this isn't the way you are supposed to use contextual ligatures but it solves the problem.
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Help with ligatures, etc.

Post by Bhikkhu Pesala »

Choosing Microsoft Word for serious DTP would be a stupid decision. It's a word-processor, not a page layout application. There are better choices:
  1. PagePlus X9 for £20 (end of range, but its OpenType feature support is good for Latin scripts
  2. InDesign if you can afford it
  3. Scribus may later be a suitable choice, but OT support is new in the latest development version, so it's probably not ready yet I have not tested it.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
PJMiller
Top Typographer
Top Typographer
Posts: 977
Joined: Tue Jun 16, 2015 8:12 pm
Location: Sheffield, South Yorkshire
Contact:

Re: Help with ligatures, etc.

Post by PJMiller »

Yes I agree that MS Word is not a good solution but one must be realistic, more than 90% of the people using your fonts will be using them with MS Word.
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

PJMiller wrote:Yes I agree that MS Word is not a good solution but one must be realistic, more than 90% of the people using your fonts will be using them with MS Word.
I think 90% of those users out there probably don't even know what a "serif" is, let alone what "opentype features" are -- heck, even I am only now starting to grasp the concept of the latter (thanks to this thread), even though I've been interested in printing history and typography for decades and making use of those "features" for years now (despite not entirely understanding them, apparently), and even after years of dabbling off-and-on with type design. And so I don't think one needs to overly concern oneself too much with whether or not users out there will be able to access certain characters because not only are they not even looking for them, but I dare say that even if you told them that they were there, and available to use, they wouldn't be interested in availing themselves of them anyway. :shock:

By the way, I did want to say thank you -- very much! -- for the help here with my original query! Even just looking at the program, I can see that I still have a LOT to learn about FontCreator (and type design in general), but you've given me a really good start in resolving that major hurdle re those ligs. Thanks a bunch! :D
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

Okay, this is weird. Remember when you had me do this?...
Bhikkhu Pesala wrote:If you have the Pro version, use the Glyph Transformation script for "Ligature Collection." If not, just paste this into the Insert Characters dialogue: $EEC5, $EEC8-$EED0, $EED9-$EEDC, $FB00-$FB06 (61125, 61128-61136, 61145-61148, 64256-64262 decimal code-points)
Well, I got those slots inserted, added in several ligatures 'n' stuff, continued completing other characters in my font and then ran auto-metrics and auto-kerning, but then when I went to try out my font in a document, although all the lookups for the ligs worked out just fine and everything, there's just one problem -- in several of those "extra" slots that you had me add in, none of the characters have a right-side bearing, and they're also not listed in the kerning table, and so any characters that come after them (when they appear in a document) just overlap on top.

I can't figure out where/how to create a right-side bearing for those "extra" characters (when one doesn't exist now -- not that I can see anywhere, anyway). :(
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Help with ligatures, etc.

Post by Bhikkhu Pesala »

It worked for me. The side-bearings can be set with the Glyph Properties Toolbar (F3) or by dragging the right side-bearing. Complete Composites should create the correct side-bearing based on the existing bearings for ff - st etc.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

Bhikkhu Pesala wrote:It worked for me. The side-bearings can be set with the Glyph Properties Toolbar (F3) or by dragging the right side-bearing. Complete Composites should create the correct side-bearing based on the existing bearings for ff - st etc.
Oh, interesting, that did resolve the problem (either method), although it does end up leaving me somewhat confused about some other things.

Using the first method, going into the glyph properties, I discovered that the right-side bearing was set at -1601 -- no wonder I couldn't see it! I thought it just wasn't there at all. How the heck did it end up waaaaaaay over there (indeed, to the left of the left-side bearing)?

And using the complete composites method was interesting. For example, I have that rather unusual "rr" ligature, which I'd put in one of those extra slots I'd added in -- I used one of the ones that was seemingly unspecified (unlike the ones for "ct," "st," "fi," etc.), and also renamed that slot to "r_r."

When I right-click on it and choose "complete composites," though, to my surprise it changed it to an "ft" lig! In fact, if I do it on any of those other unnamed slots, it would appear that they're already meant to be used for specific ligatures. Indeed, in that "ft" slot I had my "rr" lig, but I also have an "ft" lig that I'd put in a different slot -- should I move it over?

One nice thing about this is that if I complete composites on that whole slew of "extra" slots that I'd added in, I see ideas for a whole bunch of additional ligs I could make -- do they actually belong in there, though? Like, are those the ligs that are supposed to be in there, and not other, different ligs?

Up until doing that just now, I thought those "unspecified" slots were exactly that -- unspecified as to what was to go in them -- but it would seem that's not the case.

What if I did want to make all of the ligs -- as specified (apparently) -- in those slots, but also wanted to make some additional ligs (like my unusual "rr" one)? Am I out of luck with the latter?
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Help with ligatures, etc.

Post by Bhikkhu Pesala »

Psymon wrote:And using the complete composites method was interesting. For example, I have that rather unusual "rr" ligature, which I'd put in one of those extra slots I'd added in -- I used one of the ones that was seemingly unspecified (unlike the ones for "ct," "st," "fi," etc.), and also renamed that slot to "r_r."

When I right-click on it and choose "complete composites," though, to my surprise it changed it to an "ft" lig! In fact, if I do it on any of those other unnamed slots, it would appear that they're already meant to be used for specific ligatures. Indeed, in that "ft" slot I had my "rr" lig, but I also have an "ft" lig that I'd put in a different slot -- should I move it over?
Read the tutorial thread on Complete Composites and the PDF linked to in that post. FontCreator uses many code-points in the Private Use Area (PUA) for easy creation of ligatures, petite capitals, OldStyle figures, etc.

Code: Select all

58033-58126 Basic Latin
58161-58255 Latin-1 Supplement
58256-58383 Latin Extended-A
58384-58591 Latin Extended-B
58912-58974 Basic Greek
59072-59218 Cyrillic
59680-59829 Latin Extended Additional
60531-60542 Number Forms, Nut Fractions or Stacking Fractions
61125-61148 Selected Ligatures from the Medieval Unicode Font Initiative
We are working on something for the next version that would free up these PUA codepoints, but for now, although you can use them however you wish, if you do, you might encounter issues like those that you saw.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

Bhikkhu Pesala wrote:Read the tutorial thread on Complete Composites and the PDF linked to in that post. FontCreator uses many code-points in the Private Use Area (PUA) for easy creation of ligatures, petite capitals, OldStyle figures, etc.
Thanks for the reply, but that's waaaaaaaaay TMI (too much information) and waaaaaaaaay over my head! That's, like, PhD-level stuff, and I'm still only in my first year of undergrad school here. ;)
We are working on something for the next version that would free up these PUA codepoints, but for now, although you can use them however you wish, if you do, you might encounter issues like those that you saw.
Well, from what you're saying there, it sounds like if it's an "issue" at all, it's not because of any standards with regard to how fonts are designed, but rather with how FontCreator has been set up to make them? Like, those various "extra" slots are specified to be those particular ligs by the designers of FC, but really don't matter when it comes to font design in general?

I guess that latter was really my only question. I did figure out (with earlier help here) how to get those right-side bearings back, and it's no problem to me to put the "wrong" character in them -- it's not like I'm putting ligatures in the main lowercase or numerals slots or something, after all ;) -- but is it only FontCreator (the program) that I'm "offending" by using those extra slots however I want to?

Apart from that right-side bearing issue that I had (which is now resolved) my font did seem to work just fine when I used it in my ebook -- all the ligs got "looked up" no problem in there.

I guess my question was rather a simple one, really. Just because FontCreator specifies a particular slot to be for, say, the "ft" lig, is there anything wrong with my using it for my "rr" lig instead (or whatever else I might want to) -- and same for all those other "extra" slots? As long as the various lookups point to the right things, is there an issue?
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Help with ligatures, etc.

Post by Bhikkhu Pesala »

Psymon wrote:Well, from what you're saying there, it sounds like if it's an "issue" at all, it's not because of any standards with regard to how fonts are designed, but rather with how FontCreator has been set up to make them? Like, those various "extra" slots are specified to be those particular ligs by the designers of FC, but really don't matter when it comes to font design in general?
...
I guess my question was rather a simple one, really. Just because FontCreator specifies a particular slot to be for, say, the "ft" lig, is there anything wrong with my using it for my "rr" lig instead (or whatever else I might want to) -- and same for all those other "extra" slots? As long as the various lookups point to the right things, is there an issue?
It's called the Private Use Area because anyone can use it however they wish. Unicode code-points are a standard, which should be followed, but the PUA is set aside for font designers to use however they see fit.

However, if you design one font with the rr ligature mapped to the code-point that FontCreator uses for longst, and design another font with ligature longst mapped to that same code-point, documents are liable to change if you change fonts. It will be OK if ligature substitutions are used, but not if users insert glyphs from a character map using the code-point.

So, the standards that we have adopted for the Complete Composites feature to map these code-points systematically help users to make their fonts adhere to a standard. If you regularly use "rr" ligature in fonts, the best way would be to find a suitable free PUA code-point to use, and then edit CompositeData.xml to add a definition for it, like this:-

Code: Select all

<Composite><!-- ligature rr -->
<GlyphMapping>61400</GlyphMapping>
	<Member id="1">
	<GlyphMapping>114</GlyphMapping>
		<InheritLSB>TRUE</InheritLSB>
	</Member>
	<Member id="2">
	<GlyphMapping>114</GlyphMapping>
		<InheritRSB>TRUE</InheritRSB>
		<Pos>Next</Pos>
	</Member>
	</Composite>
For all of your future fonts, you could then use Insert Character to insert the new mapped glyph with the chosen code-point, and complete composites to generate the ligature:

Later, we will use something like the code below so that the glyph need not be mapped at all; it just needs to be named correctly. That avoids conflicts, but also means that the font can only be used with applications that support OpenType features.

Code: Select all

<Composite><!-- ligature rr -->
<GlyphName>rr</GlyphName>
	<Member id="1">
	<GlyphName>r</GlyphName>
		<InheritFromGlyphLSB>TRUE</InheritFromGlyphLSB>
	</Member>
	<Member id="2">
	<GlyphName>r</GlyphName>
		<InheritFromGlyphRSB>TRUE</InheritFromGlyphRSB>
		<Pos>Next</Pos>
	</Member>
	</Composite>
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

Bhikkhu Pesala wrote:It's called the Private Use Area because anyone can use it however they wish. Unicode code-points are a standard, which should be followed, but the PUA is set aside for font designers to use however they see fit.
Well, when I read that, then if I understand you correctly then I can do whatever I want in that PUA. But then you say this...
However, if you design one font with the rr ligature mapped to the code-point that FontCreator uses for longst, and design another font with ligature longst mapped to that same code-point, documents are liable to change if you change fonts. It will be OK if ligature substitutions are used, but not if users insert glyphs from a character map using the code-point.
So first you say that ALL fonts are designed such that anyone can do whatever they want in the PUA, but then you say that FontCreator has decided to specify certain slots for certain things (ligs or whatever), and if I change fonts in my document then that won't conform to what FontCreator has specified those slots to be.

But you already said that the Unicode standard is that anyone can do whatever they want -- so if a person changes their font to one that was made by someone who designed their font in a program other than FC, well, then the issue you're talking about will exist then, too.

And if they change fonts, then my "rr" ligature won't be showing up anyway, because that lookup won't exist in the first place -- the person will simply see "rr" (i.e. two "r" characters in a row, not a lig).

And the same for all my other ligs in the PUA -- if a person changes their font, then they simply won't get those lookups and, hence, those ligs, they'll just see the individual character pairs instead.

Pardon my stupidity (or naivete) here, if that's what this boils down to, but I really don't understand how this could be an issue -- it's not like FontCreator rules the type world and tells every type designer out there in the world what to do, regardless of what font design program they're using (not that they'd listen anyway). ;)
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Help with ligatures, etc.

Post by Bhikkhu Pesala »

Psymon wrote:And the same for all my other ligs in the PUA -- if a person changes their font, then they simply won't get those lookups and, hence, those ligs, they'll just see the individual character pairs instead.

Pardon my stupidity (or naivete) here, if that's what this boils down to, but I really don't understand how this could be an issue -- it's not like FontCreator rules the type world and tells every type designer out there in the world what to do, regardless of what font design program they're using (not that they'd listen anyway). ;)
Yes, as long as users type "rr" it won't matter. If another font does not have that ligature or does not support OpenType ligatures, or if it does but they are not enabled, they will just see "rr".

However, if they insert your "rr" ligature via character map to use it in a program that does not support OpenType ligatures, then change the font to one that lacks that PUA glyph, they will just see the .notdef glyph rectangle, or if another font uses that PUA codepoint for longst (or whatever) they will see that instead of your "rr" ligature.

Bottom line: Each font foundry has own standards that it follows, and all fonts from the same foundry will be interchangeable, but other font foundries might do things differently (right or wrong is often a matter of opinion here), and so the document is liable to change if the font is changed.

In my Pali font (top) the Ordinals (ordn) are designed (correctly IMO), in Calibri (bottom) they are not. The user must apply the ordinals feature on a character level, not at the paragraph level. So there are standards, and there are guidelines, but people do whatever they want anyway.
Calibri Ordinals.png
Calibri Ordinals.png (16.68 KiB) Viewed 9134 times
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
MikeW
Posts: 625
Joined: Mon May 20, 2013 2:51 pm

Re: Help with ligatures, etc.

Post by MikeW »

Psst, your ordinals are also set to a correct height, too...

Psymon, a lot of what is being discussed is, as mentioned, a sort of "house style." Where consistency can really come in with your own font is the making of more fonts in the future. The OpenType code can be reused efficiently when it comes time to work on another font.

Other than standard ligatures which have specific code-points (like ff & fi), I stuff all others (like your rr lig) into the PUA for a couple reasons. One reason is they are a kind of "set it and forget it" thing as regards me using those code-points and names in another font. This saves me a lot of time.
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Help with ligatures, etc.

Post by Psymon »

Thanks once again for your replies, guys (Bhikkhu and Mike). I must be slow or something, because I'm still somewhat confused here.

As Mike was saying...
MikeW wrote:Other than standard ligatures which have specific code-points (like ff & fi), I stuff all others (like your rr lig) into the PUA for a couple reasons. One reason is they are a kind of "set it and forget it" thing as regards me using those code-points and names in another font. This saves me a lot of time.
I can understand what you both have been saying, about coming up with a "house" way of doing things and sticking with that -- but isn't it just my luck that the first font that I really put some effort into making (apart from one of my own handwriting that I made many, many years ago) would be this old antique-style blackletter font, which has that rather unusual "rr" lig. That's not something one generally sees in any more modern fonts.

But to respond to what you wrote there, Mike, where else would I put such a lig, other than in the PUA? I mean, that's the only place that makes sense -- I'm not going to replace any of the other standard characters with that, of course.

As far as adding in "extra" characters goes, though, when Bikkhu gave me these earlier instructions, on how to add in slots for those extra ligs and stuff...
If you have the Pro version, use the Glyph Transformation script for "Ligature Collection." If not, just paste this into the Insert Characters dialogue: $EEC5, $EEC8-$EED0, $EED9-$EEDC, $FB00-$FB06 (61125, 61128-61136, 61145-61148, 64256-64262 decimal code-points)
...that gave me 17 more slots to do so.

Is that all the "extra" characters that one can add in? Only 17? You can't add in any more than that? Like, ideally, now that I see that those 17 slots are assigned to specific ligatures (even if it's just FontCreator that has made that assignment, and it's not a hard-and-fast rule), I'm actually tempted to create all those ligs now -- as FC has specified them -- but then it would be nice if I could add in additional glyphs (like the one for that "rr" lig) on top of that, above and beyond those.

Is that not possible? Or is that the limit of "extra" stuff that you can add in to your font, just 17?

My apologies if I'm just not getting it -- I'm slow! :mrgreen:
Post Reply