Smallcaps suggestions?

Okay! It only took me, like, a year to do this, but I finally added in all my smallcaps into my regular/roman font, and everything swaps out nicely when you select the smcp option. :slight_smile:

Just one problem, though… I have so many ligatures in my font, like for all sorts of things including “gg,” “tt,” “pp,” etc. and those still also swap out to those ligatures even if/when you have smcp selected – so you end up with words coming out like “PIggY” (where the uppercase would be smallcaps, and the “gg” a lig, of course), or “LIttLE,” or “HAppY,” etc.

Is there any way to “turn off” those ligatures from happening if/when a person has turned on small caps? Or is that basically just the way things are, and it’s up to the end-user to know enough (hopefully) to turn off ligs if they want smallcaps?

Methinks that wouldn’t work out so well, though, if one doesn’t know any better, or if it’s a circumstance where you just want to select a bunch of text and tell it to be smallcaps – like, say, in a web page with your fonts embedded, and by default standard ligs are turned on, but you might just want a portion of text in smallcaps.

Surely there must be a way to tell the smcp thingie to turn off the liga thingie? :unamused:

Ligatures are one of the OT features that is on by default in applications that adhere to the OT spec.

You have a couple choices. Add the same ligs using your small cap characters and sub them in.

Or, use a Multiple Substitution lookup and swap out the lig for the plain SC characters. This is what I did for the screen shot below. I added a Multiple Sub lookup to my smcp. I added the fi ligature to it and I am “decomposing” that single fi.small cap into two small cap characters. This way even if ligatures is turned on, the fi lig gets turned into two separate small cap characters.

Mike
capture-002369.png

Oh, interesting, I didn’t know you could do a substitution that output back to two characters from a single character – I thought it only worked the other way around.

Cool! Total pain in the butt, too, because I have SO many ligs in that font, but I guess it’s the best solution. Thanks! :slight_smile:

I opted to have small cap versions of all my ligs instead. But I do decompose for other purposes. Works well.

I suppose it depends on the font, whether ligs for the same uppercase combinations would merit having as a lig. Like, with my lowercase, I have ligs for ffb, ffh, ffk, etc. but I can’t see those being ligs as uppercase – at least, I could certainly create them as “three-part glyphs,” but I might as well then just point them right back to the original letters instead.

Mind you, for other combinations like tt (which then becomes TT), I suppose those could still indeed work as ligs – so I guess in my case it’s almost a case-by-case thing to decide on.

What a chore! :wink:

This method doesn’t seem to work – unless I’m doing something wrong???

I went back into the OT Designer, go in my lookup for my smcp, click the ±sign to add another lookup, entered “uniF13B” in the first field for what is my regular “Th” ligature, and then click the smallcaps “T” in the other list.

Click “OK” and then get back to the main OTD window, but when I try to enter in the extra smallcaps “H” to go along with the “T,” it won’t let me! Tried it both with a space and without one, and either way it doesn’t work.

Am I doing something wrong? Did I misunderstand your instructions, Mike? :blush:

My small cap ligatures look no different than the single letters next to each other. I did it this way so that when people enable ligatures or disable them, the small caps remain looking as they ought. And it makes for copying text and pasting it from one app to another for less issues.

Be that as it may…

Exactly what type of look up did you add? If it was a Multiple Substitution, and the “h” was added to the bottom entry section, it should work fine.

Is this the look up you added?
capture-002371.png
You would need the Uni code for your ligature in the very first entry box. Look at the previous post’s screen shot.
Then you need both the small cap characters in the second entry box…again, review the previous post’s screen shot.

And don’t worry. All these things get easier the more you do them.

Oh, I did a single substitution instead. Well, crapperoony – is there a way to change what I already did now, so that I don’t have to re-do the whole shebang again? Or can I add in an additional multiple substitution (for my ligs) on top of the initial single one I already have (for the basic/extended characters)?

Personally? I would just redo it right.

Is there no way to just go right in the code editor thingie there (in the OTD) and simply swap out a line or two with a different one, to change it from a single substitution to a multiple one?

Never mind – just re-did it all from scratch. In fact, I re-did it twice – why? Because I’m an idiot. :blush:

I am certainly still curious, though, if it it WOULD have been possible to just edit the actual code, and saved myself all that re-entering of everything all over again (twice! ugh!) – but maybe that’s getting too advanced for me, to be working in the actual code (although I’ve done it for decades with HTML, etc.). I don’t know… :unamused:

Yes, it is possible to change a substitution lookup type.

Within the OpenType Designer dialog select the lookup and click the “Code editor” button in the upper right toolbar.

To change a ligature into a multiple substitution just change the code. For example change:

lookup Ligature1 {
sub f i → fi;
}

into:

lookup Ligature1 {
sub fi → f i;
}

or for alternates:

lookup Ligature1 {
sub a → [A a.sc A.sc];
}

Interesting, but where/how does it specify that it’s to be a single substitution, or a multiple one? I had initially created a single sub for my smallcaps, but then later learned (thanks to MikeW) that I had needed to make a multiple sub instead – it just wouldn’t let me add in multiple characters for the output

However, when I look at my code before, when it was a single sub, it looked like this…

lookup SmallCapitals {
sub a → uniF300;
sub b → uniF301;
sub c → uniF302;
sub d → uniF303;

}

…but when I look at my code now, with the multiple sub, it looks like this…

lookup SmallCapitals {
sub a → uniF300;
sub b → uniF301;
sub c → uniF302;
sub d → uniF303;

sub ffi → uniF305 uniF305 uniF308;
sub ffl → uniF305 uniF305 uniF30B;
sub longst → uniF312 uniF313;
sub st → uniF312 uniF313;
}

I don’t see any difference, really (other than that the last few in the latter example have multiple glyphs for the output).

Why is it that the OTD won’t let me add in additional (multiple) characters for the output if I initially told it to be a single sub? Indeed, how does it even know whether it’s a single sub or a multi sub, if the code looks virtually the same?