skosch / Crimson

The Crimson Text typeface
SIL Open Font License 1.1
518 stars 55 forks source link

Qu contextual alt #25

Open katef opened 8 years ago

katef commented 8 years ago

Hello! I saw there's a glyph for a long-tailed Q, Q.alt01, and I thought I'd try that as an example for contextual alts.

The way I've implemented this involves two parts:

  1. Substitute QQ.alt01 for salt
  2. Have calt match Q u and apply salt for the Q

I tested this on Roman only, illustrated here with smcp set: quickly

What do you think? Is this the right way to implement this?

+Lookup: 5 0 0 "'calt' Contextual Alternates lookup 9" { "'calt' Contextual Alternates lookup 9-1"  } ['calt' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]
+Lookup: 3 0 0 "'salt' Stylistic Alternatives lookup 10" { "'salt' Stylistic Alternatives lookup 10-1"  } ['salt' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]
 Lookup: 4 0 1 "'liga' Ligatures standard lookups7" { "'liga' Ligatures standard lookups7-1"  } ['liga' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]
 Lookup: 4 0 0 "'dlig' Discretionary Ligatures lookup 8" { "'dlig' Discretionary Ligatures lookup 8-1"  } ['dlig' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]
 Lookup: 1 0 0 "'ccmp' Turkish i" { "'ccmp' Turkish i-1"  } ['ccmp' ('latn' <'TRK ' > ) ]
@@ -817,6 +819,13 @@ KernClass2: 14+ 24 "'kern' Horizontal Kerning in Latin lookup 0 kerning class 1"
  25 zero zero.slash zero.prop
  55 d dcaron dcroat uni1E0B uni1E0D uni1E0F uni1E11 uni1E13
  0 {} -37 {} -30 {} -28 {} -22 {} -34 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -17 {} -14 {} -22 {} -21 {} -10 {} -15 {} -21 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 9 {} 0 {} 0 {} 6 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -14 {} -11 {} -16 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -15 {} -13 {} -17 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 30 {} 28 {} 36 {} 0 {} -41 {} 0 {} 0 {} 0 {} -57 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -13 {} -11 {} -14 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -10 {} 0 {} -13 {} 0 {} -26 {} 0 {} 0 {} 0 {} -34 {} -11 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -46 {} -41 {} -33 {} -48 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 68 {} -18 {} 16 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -13 {} 0 {} -33 {} 0 {} 0 {} 0 {} 0 {} -14 {} 0 {} 0 {} 0 {} -11 {} -51 {} -38 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -46 {} -37 {} -30 {} -50 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 84 {} -14 {} 0 {} -11 {} 0 {} -13 {} -10 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -24 {} 0 {} -14 {} -12 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -23 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -35 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -59 {} -14 {} 0 {} 0 {} 0 {} 0 {} -8 {}
+ContextSub2: glyph "'calt' Contextual Alternates lookup 9-1" 0 0 0 1
+ String: 3 Q u
+ BString: 0
+ FString: 0
+ 1
+  SeqLookup: 0 "'salt' Stylistic Alternatives lookup 10"
+EndFPST
@@ -2647,6 +2607,7 @@ SplineSet
  600 464 513 633 358 633 c 0
  208 633 148 484 148 350 c 0
 EndSplineSet
+AlternateSubs2: "'salt' Stylistic Alternatives lookup 10-1" Q.alt01
skosch commented 8 years ago

That makes sense to me! This has been an easter egg of sorts because it was only an experiment very early on. The shape and stroke constrast of the long-tail Q would need work to match the regular Q before any salt/calt rules are added, just as with the fi ligature.

katef commented 8 years ago

Okay! I'll leave this ticket open until that's redrawn. Are there any other glyphs to redraw? Let's list them all on #23.

katef commented 8 years ago

Body of Q.alt01 redrawn in b132570. I left the tail untouched, because that's a design decision.

katef commented 8 years ago

Q.alt01 would also need a mapping for c2sc.

katef commented 8 years ago

I'm having trouble redrawing the long tail for Q.alt01, so as to introduce some stroke contrast. I do love the origional being a long, sweeping stroke, but I can't seem to make that work well.

Here's the Q on the side of the Oxford book of Quotations, which is a lot shorter, but has a pleasant up-curve to it.

quoed

I think the contrast comes from asymmetry in the dip, like it's stroked calligraphically at an angle. So the top part of the outline comes up slightly after the bottom part does, and the apex for the two lines isn't at the same horizontal offset.

I tried to capture that in a style which matches Crimson's short Q, but it doesn't quite feel right. And I think I preferred the original length, but I can't seem to make that work, either. Your thoughts?

qu0

skosch commented 8 years ago

I actually like what you did there!

The main issue, I think, is that the overall curvature is too uniform along the entire tail, and the stroke contrast tapered too gradually. For a slightly more calligraphic feel, I would try to make both the left and right half a bit straighter, and the left half noticeably thicker than the right. I would probably shift both upper and lower extreme points to the left (maybe the bottom one a tad more) and bring in both of their control handles. Maybe the tip will need to be shortened a bit, or raised and tilted up by a few degrees? Just a few ideas.

katef commented 8 years ago

Interesting Qu with a straight tail here, from a Caslon: http://ilovetypography.com/2010/07/26/reviving-caslon-the-snare-of-authenticity/

Maybe the straightness works better with Crimson's Q? I like it — better than the curve, actually. I think it's rather confident.

quc