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

smallcaps could use smaller parentheses #25

Open
dankamongmen opened this issue Aug 14, 2023 · 6 comments
Open

smallcaps could use smaller parentheses #25

dankamongmen opened this issue Aug 14, 2023 · 6 comments

Comments

@dankamongmen
Copy link

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
Copy link
Contributor

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

@dankamongmen
Copy link
Author

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
Copy link
Contributor

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:

  • Setup our full Docker-based toolchain
  • Fork the project repo
  • Add rows to the glyph_data.csv file with columns populated in a similar way to other smallcap glyphs for every glyph you are adding. Note that this file is carefully ordered.
  • Open the UFOs in a font design tool (see Modifying Font Sources)
  • Add glyphs with appropriate names. If you've named the new glyphs properly the OpenType code generation should automatically add the glyphs to the smcp feature.
  • Export and normalize the UFOs with preflight
  • Review your changes and commit locally
  • Build the fonts and test your changes (Building Font Projects)
  • If all looks good submit a PR

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
Copy link
Author

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
Copy link
Contributor

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
Copy link
Author

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.

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

No branches or pull requests

2 participants