silnrsi / font-gentium

Fonts for languages and writing systems that use Latin, Cyrillic, and Greek scripts
https://software.sil.org/gentium/
SIL Open Font License 1.1
74 stars 5 forks source link

smallcaps could use smaller parentheses #25

Open dankamongmen opened 1 year ago

dankamongmen commented 1 year ago

Hey there! I'm using Gentium Book Plus together with LaTeX and the Memoir class to write a novel, and absolutely love it!

I've got several uses of smallcaps that also have parentheses. The parentheses seem to be the original font size, which doesn't look fantastic with smallcaps:

2023-08-14-064215_649x47_scrot

it would be great if the smallcaps style could have parentheses (and probably brackets etc.) sized to the smallcaps themselves.

thanks so much for the wonderful font!

jvgaultney commented 1 year ago

Thanks. I'll add this to the list of requests for some future version.

dankamongmen commented 1 year ago

appreciate it! if it's not too difficult, i might take a stab at it -- do you welcome PRs? does this seem like the kind of thing someone with very little knowledge of fonts (but thorough knowledge of open source toolchains) could knock out in an hour or so? if nothing else, i might want to do it for my book.

jvgaultney commented 1 year ago

We do welcome PRs, but you may find it more complex than it seems. The simplest solution for your project is to hack the font yourself: open the font in FontForge or some other design app, change the size of the parens, generate a new font with a different name (that doesn't contain "Gentium"). Then use that font only for the parens in your book.

Adding smallcap versions of the paren to the upstream project is much more involved. You'd need to:

A further complication is that to keep smallcap sizes consistent and balanced we generate them from the normally-sized glyphs using specific transformation specs. These are found in the org.sil.lcg.transforms key in the UFO lib.plist and can differ between fonts. Those specs are then applied using the psfmakescaledshifted tool. Then the glyphs need to be manually adjusted to balance the weight, as noted in the tool docs.

Finally, the changes need to be made to all fonts, including the italics.

For a tiny change like adding parens to smcp most people would find this way too much effort. It is so much easier to hack the font yourself just for your own use.

We can certainly do all of this as we're making other changes, and we'd be adding them to all our Latin-script fonts, not just Gentium. We're already adding new smallcaps for other glyphs in this next version and we can just add these to the list. So a PR from you wouldn't save us much work.

dankamongmen commented 1 year ago

thanks for the thorough and authoritative response; i hope you can link to this from other issues in the future, as it seems broadly informative and useful. feel free to leave this open or close it however you deem fit, and thanks again for the extraordinary contribution to open typefaces.

jvgaultney commented 1 year ago

Thanks - you're very welcome. We do hope to add more project-specific developer docs in the future. Those would help connect the general info I linked to with info that applies it to the individual project. I'll leave this open until we've added the small cap parens. Are there other punctuation symbols that you think would be useful to have affected by the small cap features?

dankamongmen commented 1 year ago

in the ideal, []{}()^/]....well, i mean any EGC seems like it could be useful.

in the real world, i'd think that square, curly, and round brackets all might be useful. but that's probably just because my particular need is '('/')'. i doubt i have any kind of insight into what would be most valuable to add =\

notcurses 3.0.7 on Kitty 0.26.5 (Linux 6.4.9nlb2)
64 rows (22px) 132 cols (11px) 1408x1452 rgb+256 colors
gcc-13.1.0 (LE)
terminfo 6.4.20230625 libdeflate 1.14 GPM 2.1.0
af+ ab+ sum- vpa+ hpa+ sgr0+ op+ fgop+ bgop+ bce- rect-   
 ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█⎧ 🬀🬁🬂🬃🬄🬅🬆🬇🬈🬊🬋🬌🬍🬎🬏🬐🬑🬒🬓▌🬔🬕🬖🬗🬘🬙🬚🬛🬜🬝⎫♠♥🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹⅗⅘⅙⅚⅛⎧▕▏⎫┌╥─╥─╥┐🭩⎛⎞
╲╿╱ ◨◧ ◪◩ ◖◗ ⫷⫸ ⎩🬟🬠🬡🬢🬣🬤🬥🬦🬧▐🬨🬩🬪🬫🬬🬭🬮🬯🬰🬱🬲🬳🬴🬵🬶🬷🬸🬹🬺🬻█⎭♦♣¼½¾⅐⅑⅒⅓⅔⅕⅖⅜⅝⅞⅟↉⎪🮇▎⎪├╜╓╫╖╙┤🭫⎜⎟
╾╳╼ ◲◱ ◶◵ 🮣🮠 🮤🮥◜◝ ◿◺ 🮞🮟 ◢◣ ┌┐─ ┏┓━ ╭╮─ ╔╗═ 🭽🭾▁♟♜♞⩘▵△▹▷▿▽◃◁⭡⭣⭠⭢⭧⭩⭦⭨⎪🮈▍⎪├─╨╫╨─┤┇⎜⎟
╱╽╲ ◳◰ ◷◴ 🮡🮢 🮦🮧◟◞ ◹◸ 🮝🮜 ◥◤ └┘│ ┗┛┃ ╰╯│ ╚╝║ 🭼🭿🭵♝♛♚⩗▴⏶⯅▲▸⏵⯈▶▾⏷⯆▼◂⏴⯇◀⎪▐▌⎪╞═╤╬╤═╡┋⎜⎟
⎡⠀⠁⠈⠉⠂⠃⠊⠋⠐⠑⠘⠙⠒⠓⠚⠛⠄⠅⠌⠍⠆⠇⠎⠏⠔⠕⠜⠝⠖⠗⠞⠟⠠⠡⠨⠩⠢⠣⠪⠫⠰⠱⠸⠹⠲⠳⠺⠻⠤⠥⠬⠭⠦⠧⠮⠯⠴⠵⠼⠽⠶⠷⠾⠿⎤⎨🮉▋⎬╞╕╘╬╛╒╡┊⎜⎟
⎢⡀⡁⡈⡉⡂⡃⡊⡋⡐⡑⡘⡙⡒⡓⡚⡛⡄⡅⡌⡍⡆⡇⡎⡏⡔⡕⡜⡝⡖⡗⡞⡟⡠⡡⡨⡩⡢⡣⡪⡫⡰⡱⡸⡹⡲⡳⡺⡻⡤⡥⡬⡭⡦⡧⡮⡯⡴⡵⡼⡽⡶⡷⡾⡿⎥⎪🮊▊⎪└┴─╨─┴┘╏⎝⎠
⎢⢀⢁⢈⢉⢂⢃⢊⢋⢐⢑⢘⢙⢒⢓⢚⢛⢄⢅⢌⢍⢆⢇⢎⢏⢔⢕⢜⢝⢖⢗⢞⢟⢠⢡⢨⢩⢢⢣⢪⢫⢰⢱⢸⢹⢲⢳⢺⢻⢤⢥⢬⢭⢦⢧⢮⢯⢴⢵⢼⢽⢶⢷⢾⢿⎥⎪🮋▉⎪╭──╮⟬⟭╔╗≶≷
⎣⣀⣁⣈⣉⣂⣃⣊⣋⣐⣑⣘⣙⣒⣓⣚⣛⣄⣅⣌⣍⣆⣇⣎⣏⣔⣕⣜⣝⣖⣗⣞⣟⣠⣡⣨⣩⣢⣣⣪⣫⣰⣱⣸⣹⣲⣳⣺⣻⣤⣥⣬⣭⣦⣧⣮⣯⣴⣵⣼⣽⣶⣷⣾⣿⎦⎪██⎪│╭╮│╔═╝║⊆⊇
 ▔🭶🭷🭸🭹🭺🭻▁ 🭁🭌 🭂🭍 🭃🭎 🭄🭏 🭅🭐 🭆🭑 🭇🬼 🭈🬽 🭉🬾 🭊🬿 🭋🭀 ₀₁₂₃₄₅₆₇₈₉ ⎛ ▁▂▃▄▅▆▇█🭫⎞⎪🭨🭪⎪╰╯││║╔═╝⊴⊵
 ▏🭰🭱🭲🭳🭴🭵▕ 🭒🭝 🭓🭞 🭔🭟 🭕🭠 🭖🭡 🭧🭜 🭢🭗 🭣🭘 🭤🭙 🭥🭚 🭦🭛 ⁰¹²³⁴⁵⁶⁷⁸⁹ ⎝ ▔🮂🮃▀🮄🮅🮆█🭩⎠⎩🭪🭨⎭⧒⧑╰╯╚╝❨❩⟃⟄

most of these i think not too critical.