Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Armenian Letters (again) #2556

Merged
merged 14 commits into from
Oct 24, 2024
Merged

Draft: Armenian Letters (again) #2556

merged 14 commits into from
Oct 24, 2024

Conversation

Logo121
Copy link
Contributor

@Logo121 Logo121 commented Oct 19, 2024

Reopening of #2552. Accidentally discarded when trying to merge the new commits to the branch.

images

image image


Things changed since last push:

  • Split the characters roughly into groups by their shape.
    • The remnants of the original file is in other.ptl, though that only contains aliases now. To be cleaned up.
  • Improved the italic serifs for n/u-shaped letters a little bit: now they follow the motion-serif-like pattern of topleft + bottomright outer serifs.
  • Added the currency symbol Dram and the full stop (aliased to colon).
  • As hinted by Optimize auto-serif behavior of four characters. #2553, using single-storey g (aliased to bulgarian de) for lower Co.

For the suggested changes:

I think for Ք ք the bottom bar shall be fit in LeftSB-RightSB space.
You could probably place the top edge of ք's bar at baseline. Balance the spaces.

I only moved the right part of the bar (forgot to do so for upper Keh) for now since the left part should extrude out of the stem. Should I also move left stem rightward?

For the second point, doesn't seem to be possible for ultraextended heavy slab, which the bar will overlap with the bottom serif. I moved it to the center at baseline for now.

For Ֆ ֆ maybe we could make the top-left contour horizonally larger (like having the same horizontal size as the bottom-right contour).

Done (but added overshoot for the hook part so that it looks a little bit better).
image

For Ջ you can maybe make the vertical serif at bottom-left thinner.

Also done (also for Za for consistency).
image

For Թ we could probably make the outer conour still uase Stroke as stroke width. Only make the inner curl thinner.

Barely.
image
With normal stroke the space left in the middle is very small, so the inner curl would be really thin to fit in.

It still works in the ultracondensed case for now:
image

@be5invis
Copy link
Owner

Can you try typeset some text for sample? Also when you take screenshot you could have higher resolution :)

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 19, 2024

Sample text (forgot where I got this):

Նափոլէոն կարդացած է Քորնէյի,
Ռասինի եւ Վոլթերի ստեղծագործութիւնները,
իսկ անոր սիրելի բանաստեղծը Օսսիանն էր։
higher resolution

image
image

QP (less polished)
image

@be5invis
Copy link
Owner

We may need some extra touching for թ which could make the inner stroke thinner, sort of like its uppercase.
Need some balancing for լ and յ at monospace -- Slightly shift them to left or right if necessary. You can follow the shift number of implementation of l.flatTailed or j.flatHook{Serifless | Serifed}.

@be5invis
Copy link
Owner

Consolas have some Armenian that you could use as reference:

image
image

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 20, 2024

We may need some extra touching for թ which could make the inner stroke thinner, sort of like its uppercase.

թ already has the same inner stroke width as the uppercase. Should I make it even thinner?

Need some balancing for լ and յ at monospace -- Slightly shift them to left or right if necessary. You can follow the shift number of implementation of l.flatTailed or j.flatHook{Serifless | Serifed}.

յ is already aliased to dotless j, so i don't think it should have problems.

Changed լ to use LongJut (the same way hookybottom l does).

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 20, 2024

image

image
image

@be5invis
Copy link
Owner

Nice, this looks a lot better.
The space between րծ looks a little large.

alias 'armn/Oh' 0x555 'O'
alias 'armn/oh' 0x585 'o'

do "Ayb" # Upper U Group
Copy link
Owner

@be5invis be5invis Oct 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer remove move the empty "do"s here.
You can leave comments in letter/armenian.ptl, indicating which letter lives in which file. For example

    * U+0531 Ayb     => letter/armenian/upper-u-group.ptl
    * U+0532 Ben     => letter/armenian/hook-group.ptl

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole file is a leftover to be cleaned up anyway, I'll just move all the actual aliases to their corresponding sources and remove this file.

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 20, 2024

image

@@ -217,6 +217,7 @@ glyph-block Letter-Latin-Lower-G : begin

select-variant 'cyrl/de.BGR' (shapeFrom -- 'g') (follow -- [conditional-follow SLAB 'g/single/autoSerifed/slab' 'g/single/autoSerifed/sans'])
alias 'cyrl/de.SRB' null 'cyrl/de.BGR'
alias 'armn/co' 0x581 'cyrl/de.BGR'
Copy link
Owner

@be5invis be5invis Oct 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest putting these into letter/armenian but create a new file (say, letter/armenian/aliases.ptl).
Similar for other aliases.
(I shall add this part into my refactor plan too...)

@be5invis
Copy link
Owner

image

This looks much better :)

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 21, 2024

hopefully this doesn't break anything...

@be5invis
Copy link
Owner

hopefully this doesn't break anything...

I think they are fine.

@Logo121 Logo121 marked this pull request as ready for review October 22, 2024 06:05
@Logo121
Copy link
Contributor Author

Logo121 commented Oct 22, 2024

Edited changelog, though I suppose the version would probably be bumped.

It's probably ready to be merged, if there are no other problems.

changes/31.9.2.md Outdated Show resolved Hide resolved
@be5invis
Copy link
Owner

be5invis commented Oct 22, 2024

Edited changelog, though I suppose the version would probably be bumped.

It's probably ready to be merged, if there are no other problems.

Right, at least bump the minor version.
(Actually this change is significant enough for a major version bump.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using include : refer-glyph 'q' when the original q character is subject to CV features is not good practice. It should instead select its appropriate variants from within latin/lower-q.ptl. Otherwise it will appear as if it were locked to whatever q variant the user compiles their font with by default, which also might not be one you expect here.

create-glyph 'armn/da' 0x564 : glyph-proc
local df : include : DivFrame 1
include : df.markSet.p
include : refer-glyph 'latn/eta'
Copy link
Contributor

@jmcwilliams403 jmcwilliams403 Oct 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be moved to latin/lower-n.ptl to have more consistent variant behavior. BTW ss17 uses a tailed n under italics which might not be what you want here.
Alternatively it could be remade from scratch to match the other characters in this file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, if the wiki images for Armenian handwriting is any indication, it's probably fine to have the tail in italic (not that I'm trying to replicate that).

Lower ra is already differentiated by having the n shoulder shift inward.

@Logo121
Copy link
Contributor Author

Logo121 commented Oct 22, 2024

Well... yeah, I'm kinda aware of the compatibility problem with variants (see top comment in #2552).

I reckon it will be hard to reliable "link" Armenian letters to some existing character variants, because most characters that share a shape with Latin letters are not actually related to them etymologically(?), and even if we just link by shape, there will be a few characters where the exact character it should link to is ambiguous.

I'd say just merge it as is first (unless there are actual problems where the variant shape would affect the derived character -- I fixed it for q-based ones at least), then handle the variants linking/unlinking later. You can do it as a followup if you want.

Copy link
Owner

@be5invis be5invis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we are good enough.

@be5invis be5invis enabled auto-merge (squash) October 24, 2024 00:52
@be5invis be5invis merged commit 69dadb1 into be5invis:dev Oct 24, 2024
5 checks passed
jmcwilliams403 added a commit to jmcwilliams403/Iosevka that referenced this pull request Oct 24, 2024
be5invis pushed a commit that referenced this pull request Oct 26, 2024
* Initial cleanup of #2556 .

* Fix serifs of `լ` under Etoile.

* Optimize side bearings of `Ա`.

* Improve serifs under italics and monospace.
jmcwilliams403 added a commit to jmcwilliams403/Iosevka that referenced this pull request Oct 28, 2024
be5invis pushed a commit that referenced this pull request Oct 28, 2024
* Further cleanup of #2556 .

* Optimize arch depth of `Պ`.

* Further cleanup of `Ա`.

* Cleanup of `Յ`.

* EOL fixup.

* Cleanup of #2562 .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants