Need help with Handwriting Font

Get help with FontCreator here. Please do not post feature requests or bug reports here.
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

PJMiller wrote: Sat Sep 26, 2020 10:10 am One interesting idea for a font like this might be to make slight variations of letters, then use the random function to select which variation is used.

This would make it so that the same letter would look different in different places on the page and this would make it look more handwritten.

Yes I know it's a lot of extra work but it's just an idea. Take it or leave it.
Yes, that would be a great idea! But yes, that would be a great deal more work, too. I could easily come up with tons of variations for practically every letter (except some that only came up very rarely in Thoreau's manuscripts, like x, z, etc.), but I suppose to do so you have to also make sure that each one kerns the same as all the others, even if they "look different," eh?

Definitely an interesting though -- although a little too ambitious for me right now. Maybe some day, for "version 2" of my font. :)

Do you know how to do this stuff, PJ, though? Like, do you know how to do my last/latest question, swapping out a different lowercase "i" whenever it's on either side of a "t"?
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

Erwin Denissen wrote: Sat Sep 26, 2020 3:48 pm I am glad to know you are getting more experienced with OpenType layout features.
I bet! You must be relieved to have me not repeatedly pestering you to explain what seems so ridiculously obvious to me now. ;)
To make a contextual substitution in the middle of a word, just add a backtrack, input, and a lookahead.
Well, that much I figured, but I'm having trouble trying to "logically think through" what exactly I would put in each of those fields. I gather I wouldn't be using that @LATIN class that I have (which contains all latin glyphs), but what do I put instead?

Like, in this case I want to swap out an "i" (to one with the dot up higher) if it's on either side of a "t," so I guess my "input" would be the "t" (alone) and then both backtrack and lookahead would both be an "i"?

But with the other substitutions I did it was that "input" glyph that I swapped out, not the backtrack or lookahead.

And wouldn't that mean that I'm also only looking for combinations of "iti," not just "it" or "ti"? So do I create two different, separate chaining contexts for each, i.e. one for "it" and one for "ti"?

I guess I can just play with it, experiment and "see what happens" -- if you have a quick answer for me, though, that would be great!

And thanks once again, SO much, for your help!

If anyone has any other ideas for what sorts of things I could do with this font to make it even better (apart from PJ's suggestion to do piles of "random" glyphs -- which would be very cool, but an enormous amount of work), please do fire away! :)
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Need help with Handwriting Font

Post by Erwin Denissen »

Remember the substitution only applies to the input.
Erwin Denissen
High-Logic
Proven Font Technology
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

Erwin Denissen wrote: Sat Sep 26, 2020 4:24 pm Remember the substitution only applies to the input.
Oh, okay. So I guess I would indeed have to create two separate chaining contexts?

Ugh, it's trying to logically think my way through this that makes my head explode. :shock:

I'm confused here because doing those beginners/enders -- is the "correct" term for those "initials" and "finials"??? -- was fairly straightforward. For my input, backtrack and lookahead fields (in two separate chaining contexts) I simply put that @LATIN class, and then in the single substitution I put specific letters that would get swapped out.

But this situation is different. I want to swap out an "i" for a different "i" whenever it's to the left of a "t" -- and then I guess I also have to create a separate chaining context for if/when it's to the right of a "t" -- but I can't seem to logically think what to put in those various fields now.

I'm not sure if I understand what I'm supposed to do here. While my previous chaining contexts were "all latin characters" (as per my @LATIN class), in this case am I creating a chaining context only for "i"? And I need one chaining context for "i" to the left of a "t," and then a separate chaining context for if I have an "i" to the right of a "t"?

So beginner and enders you can do with a single chaining context, but to do it for letters in the middle of a world requires multiple chaining contexts?

Somehow I don't think that can be right -- but I can't seem to logically think through something to even try out as an experiment. :roll:
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

I keep forgetting that you have to think backwards, in a way, in that chaining context dialog box -- like, if I want to do substitutions related to "iti," then in that dialog box you have to think in terms of "tit." I think that's what keeps screwing me up.

But anyway, I thought I had this latest conundrum all "logically" figured out, and I've managed to get the "i" to change next to a "t" -- but it's changing everywhere!

Attached is my font as it is now (haven't loaded it up to the site in this current semi-broken form). Note that I also have a ligature for "ti," too, and so if you were to type out, say, the word "requisitions" (perfect for testing what I'm trying to accomplish here), then each of the three "i" characters should have the dot in three different places (not just two).

But as you can see, the ligature "ti" changes as its supposed to, and the "i" to the left of the "t" changes -- but so does the other one, it's changing my "i" everywhere and I don't understand why, when the chaining context only specifies my "t" class.

Where the heck did I make my mistake? :shock:
Attachments
Walden.ttf
(615.12 KiB) Downloaded 176 times
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Need help with Handwriting Font

Post by Erwin Denissen »

If you want to substitute an "i" with an "i.alt" if it precedes by a "t" and is followed by any other letter, then use this:

backtrack: t
input: i
lookahead: @letters
substitution tables: sub i -> i.alt
Erwin Denissen
High-Logic
Proven Font Technology
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

Erwin Denissen wrote: Sat Sep 26, 2020 6:44 pm If you want to substitute an "i" with an "i.alt" if it precedes by a "t" and is followed by any other letter, then use this:

backtrack: t
input: i
lookahead: @letters
substitution tables: sub i -> i.alt
Hmm... I wonder if we're addressing the problem in different ways.

Like, I was thinking that the problematic letter here isn't the "i," but rather the "t," and that it's the crossbar that's affecting the dot on the "i" -- as it might also interfere with my "j," too (note to self: need to check the kerning, etc. on "nutjob").

And so I did mine like this...

backtrack: @t (class, not just single character)
input: @LATIN
lookahead: @t
substitution tables: sub i -> i.alt

To me, this seems perfectly logical. With the @LATIN for my input, that covers any characters that I might possibly find there to be issues with (regarding my "t"), but it's in the substitution tables where I specify those changes that I do want to happen.

Except it ends up changing my "i" everywhere, not just next to the "t."

One thing I'm not sure about is that by setting up this part as I did...

backtrack: @t
input: @LATIN
lookahead: @t

...is that an "OR" statement or an "AND" statement? Like, I was treating this as though "If a letter in the alphabet (@LATIN) comes after any t (@t) OR comes before any t, then refer to the subscription table."

But the way I did it, is it really an "AND" statement? Like, did I set that up such that "a letter in the alphabet" has to have a t both before it AND after it?

Hope I'm not confusing you now as much as I've confused myself -- but either way, whether that's OR or AND, I don't understand why all my "i" characters are changing.
Psymon
Posts: 444
Joined: Wed Mar 30, 2011 5:50 pm

Re: Need help with Handwriting Font

Post by Psymon »

Oh, I've got it -- almost! Except now it's doing the opposite of what I want it to do. Instead of only changing the "i" if it's to the left of a "t," it's changing every "i" except those that are next to a "t"!

And that "ti" lig shows up as it's supposed to, too, of course. I gotta be close here, though -- how do I just tell it to do the opposite of what it's doing?

Attached is what I've got now.
Attachments
Walden.ttf
(615.09 KiB) Downloaded 169 times
Last edited by Psymon on Sat Sep 26, 2020 7:50 pm, edited 1 time in total.
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Need help with Handwriting Font

Post by Erwin Denissen »

Psymon wrote: Sat Sep 26, 2020 7:17 pm And so I did mine like this...

backtrack: @t (class, not just single character)
input: @LATIN
lookahead: @t
substitution tables: sub i -> i.alt
This is not what you did, as you ended with two rules:

Rule1:
backtrack: @t (class, not just single character)
input: @LATIN
lookahead: @t
substitution tables: NONE

Rule2:
backtrack: NONE
input: @LATIN
lookahead: NONE
substitution tables: sub i -> i.alt

So do merge them and it will work ;-)
Erwin Denissen
High-Logic
Proven Font Technology
Post Reply