-
Notifications
You must be signed in to change notification settings - Fork 1
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
Inquiries #3
Comments
Thank you for your question! Before the answers I'd like to elaborate a bit more on the background. As you may know, Chiron Hei HK is derived from Google’s Noto Sans CJK and Adobe’s Source Han Sans. It is different from the upstream with the following differences:
As for how Chiron Hei HK is developed, it is quite different from just opening the source using a font editor, edit and save. It is a custom workflow developed for this particular font family, and what’s said here also applies to Chiron Sung HK. During the development phase, the followings are done:
This process is done using scripts and the mapping tool I wrote for this project. In the above image, the selected glyph of the selected region will be exported when building. The “XC” in the second row is the pseudo region. There is no direct modification to the Source Han Sans glyph set, even in the database. The database contains glyph data of the pseudo region and instructions on “which region is preferred for a codepoint”. This allows me to “rebase” my work to synchronize with the latest version of upstream. During the building phase, the build scripts will do the followings:
So the ultimate store of the glyphs is in the MySQL database, but still excluding the Source Sans 3 LGC glyphs. Other files, like cmaps and feature files required to build the final VF OTF, are produced at the building phase. The development of the workflow can be dated back to 2015. The thoughts were to (a) reuse the building process of the Source Han Sans font as much as possible, (b) keep up to date with the upstream at best effort, (c) simplify the glyph selection process. I understand this may not be the best way nowadays. I had been thinking about reworking it, but unfortunately, things got changed a lot and I am no longer able to be as devoted to this project in recent years, so there hasn't been much progress. I also have to confess that as the font becomes increasingly mature, there’s really no big incentive to rebuild the whole building process from scratch, especially when it still may not comply with the Google Fonts standard if I work on it myself. That said, I believe the font is a valuable addition to the Google Fonts repository. So I’d appreciate knowing your thoughts on this. I had a thought of giving the GF version another name so that it’s seen as a fork of the Chiron font, and find a maintainer for it. I can continue to offer the GF-compatible source in a branch of the main repo when a new version is released to ease the maintainer’s work in integrating the latest changes. In this case the Given the above, I think it will bring more clarity to my answer to your questions: Q1: Can you explain the differences between the sources here and the ones in the main / official repositories? How do you update the sources here? A1: Currently, only binaries are available in the official repository. As for the font itself, the difference is that the main repo offers an additional “PADG” axis in VF (which corresponds to the “Text” subfamily in the static configurations). This custom axis isn’t registered in Google Font and is thus removed. The source in this repo is also a result of the “build” phase in the custom pipeline. Q2. I wanted to confirm that the .ufo is the primary editing source for this font. GF requires that the "true source" where any font development takes place is uploaded to the repository, so I wanted to double-check if there was a local source in a different format (say, such as .fcp or .vfb) and, if so, request that you upload it to the repro as well. Thus, as support for other formats in fontmake improves, the binaries can be built directly from the source rather than using an interchange format such as .ufo. A2. “.ufo is the primary editing source for this font” is currently not the case. I am happy to work on a format GF is happy with, but my concern is that given the current font development process they may still be considered “intermediate source” by GF. Q3. I note this repository has a build system, but Chiron Sung does not. Do you have any preference for how the build system is set up in these repositories? Or is it OK if I set it up per Google Font's recommendation? I want to make sure it is easy for you to manage. A3. I don’t have any preference for both repositories. The build system in Chiron Hei should also work for Chiron Sung. I just want the structure of the two repos to be as close as possible. I hope this clarifies some uncertainties. Thanks again! |
Wow! That's quite a build system that you've set up. Thank you for the detailed explanation. Essentially, it sounds like you have an AFDKO-based build system, which is totally fine per the Google requirements and the UFOs may not be required at all. Would you be open to uploading the entirety (either single files, or packaged) of your build system to the repository? That way should someone in 20 years want / need to update the font, the system that you've used is available to do so? As for the need for a GF-specific version of the font and repository, I think that we might be able to make it easier for you. (1) The main blocker for merging the two repositories, as I see it, is the use of the
If you'd be willing to change the name of the axis and the positions of Small / Text / Larger to follow the above requirements, then I think it would be much easier to make any further changes necessary. (2) In running fontbakery, I found several issues that I think may be worth solving in your main repository (not just for GF):
(3) Finally, there's a set of changes I'd suggest, but these are things that potentially we can implement as a post-production step after the production of the main binaries:
I should also note that it could be that as the above get resolved, other issues also crop up that would need resolution. So the question for you is, are you open to making the above changes to to the public release of the font per GF's requirements? Or should we implement a separate build system specifically for GF? This isn't to say that it needs to be in a separate repository, though. It could certainly be a small post-production script that runs after everything else is done to take the AFDKO-ship binary and makes the necessary changes for GF. What would you prefer? |
Thanks again for the comment. I'd like to address them in three categories. A. About the SPAC axisI am aware of the SPAC axis but I think it doesn’t quite match what the custom PADG axis is doing now. In a Chinese typeface, unless for calligraphic type, the default spacing between two CJK characters are realized by defining the “字面率” (lit. letter/character face ratio). An example as in https://typeproject.com/blog/23862:
In this font, increasing the PADG axis value will shrink the CJK glyphs by a little bit (i.e. it will reduce the character’s letter face ratio) to provide more spacing between characters. The em-box and horizontal advance (represented by the outer border) of the CJK glyphs remain unchanged. As the CJK characters look smaller, the LGC characters should look smaller (but not necessary). While the horizontal advance will decrease, this doesn’t increase the spacing between LGC characters visually. To summarize, incrementing the PADG axis will increase the spacing between CJK characters perceptually. While the size of the LGC characters may decreases, its spacing barely changes. B. On uploading the current build systemThe project started as an experimental one and is using a frontend and backend architecture. The backend is primarily written in PHP with a MySQL backend, but it grew more complicated eventually and now depends on code written in other languages (stored in other places), and things unrelated to the font project. The building pipeline is only a part of it. So the current state of the build system is not ready for open sourcing. I had been thinking of splitting the building pipeline from the application, so that the application will be an authoring tool which exports the sources needed to build the binaries. It would be something similar to the Source Han Sans repo, by which glyphs are in a single .ps file. This has been put on hold because (1) I didn’t have the time to do it, (2) I’m not sure it will be acceptable by Google Fonts, if not it would be a waste of effort. C. On resolving the fontbakery issues and other suggested changesI am open to changes, just that I prefer to implement changes that can lead to BC-break together to reduce the need of a major version bump (especially if merging the GF and main repo is the way to go). Non BC breaking changes like updating copyright notices and adding the GASP table are fine to me.
|
@tamcy Thank you for the additional information!
Makes sense. It sounds a bit like the intention of it is to act as an optical size axis wherein the character face becomes a bit smaller to enable clearer rendering at smaller sizes. Is that accurate? If so, perhaps the
Google fonts only really cares about having a mechanism to take the sources, whatever they may be, and outputting binaries via a singular, automated process. So if you have
Great! That makes sense. Assuming we can get the axis naming sorted, which of the items I reported would you be open to implementing in your primary public release? I think most of the GF-specific items I could implement as a post-production script (which I'd PR to your repro to create them as part of the normal build system). |
@tamcy Following up and seeing if you had any thoughts :) |
@aaronbell
Yes, the character face ratio shares certain similarities with "PADG" is not a very descriptive name. I chose the name because I preferred a configuration that (1) the axis starts with a value of 0, and (2) the full-width character face shrinks as the axis value increases. A name abbreviated from the term "letter/character face ratio" (such as CCFR or CFRO) would be more preferable. Adopting "PADG" would certainly ease the onboarding of this font (and its serif counterpart), but I believe it is better to aim for a name that is more beneficial to the font community. Therefore, I suggest inviting experts from CJK font foundries to provide more insights on this matter, including the necessity of the axis, its naming, and a more accurate description. Of course I don’t mind a
I’ll try to summarize the items here:
I'd suggest these be done on the post processing script in GF deployment. In particular, the absence of name ID 16 is probably due to the convention that “if the NameID=16 string is identical to the NameID=1 string, it is omitted” (p.4 of the document). I am not sure if I can override this.
I am not very sure about this one too. The source is in the OpenType CFF/CFF2 font format, so there is no GASP table by default. I believe you will need to add it to your pipeline anyway.
I will try integrating these changes.
I am fine with the changes, but I will need your guidance on how to do (6) properly. Is it acceptable to test this on the source branch (which you can use to build the GF version) without releasing it on my end first? Also, is it required to keep my release version in sync with the Google Fonts version? Thanks again! |
Hi @tamcy
I've submitted an axis registry request here: googlefonts/axisregistry#191. Please take a look at it and see what you think. Given these things need to be more "structured", I suggested some slight modifications of the values used—basically stated that increasing I'll send it over to folks I know to weigh in, and we'll see how it goes. Good to have a stake in the ground at least!
Yes, this would be easy enough to do with a post-processing script. Recommendations as whether to include it or not vary, but GF does require it so that's what I'll implement in the script.
Yup, again, easy enough. Interesting that the build system doesn't automatically add even a basic one, but creating one is no problem.
Oh! Don't look at my fork 🫣. Haha. I ran into issues and decided to abandon that approach, especially given our further discussions regarding the build system. That said, it would be good to figure out how to get a
Yes. Totally! The only issue is that the source branch doesn't have the output fonts themselves. I could probably add my post-processing bits to your
Not at all. You can feel free to update your repository as much as you want, and when you want to push a new version to GF, you can submit an update request here ( |
Hi there!
I am going to be prepping Chiron Hei HK and Chiron Sung HK for onboarding to GF, and had a few questions I wanted to ask.
I note that these repositories have been set up with the intention of being for GF use. Can you explain the differences between the sources here and the ones in the main / official repositories? How do you update the sources here?
I wanted to confirm that the
.ufo
is the primary editing source for this font. GF requires that the "true source" where any font development takes place is uploaded to the repository, so I wanted to double-check if there was a local source in a different format (say, such as.fcp
or.vfb
) and, if so, request that you upload it to the repro as well. Thus, as support for other formats infontmake
improves, the binaries can be built directly from the source rather than using an interchange format such as.ufo
.I note this repository has a build system, but Chiron Sung does not. Do you have any preference for how the build system is set up in these repositories? Or is it OK if I set it up per Google Font's recommendation? I want to make sure it is easy for you to manage.
The text was updated successfully, but these errors were encountered: