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

Noto Sans CJK支持variable font #22

Closed
WordlessEcho opened this issue Apr 9, 2021 · 18 comments
Closed

Noto Sans CJK支持variable font #22

WordlessEcho opened this issue Apr 9, 2021 · 18 comments
Labels
enhancement New feature or request

Comments

@WordlessEcho
Copy link
Collaborator

https://github.com/googlefonts/noto-cjk/tree/main/Sans/Variable

@simonsmh simonsmh added the enhancement New feature or request label Apr 9, 2021
@simonsmh
Copy link
Owner

simonsmh commented Apr 9, 2021

参考wght值是多少?

@WordlessEcho
Copy link
Collaborator Author

我只知道Source Han Sans有文档,第十页,关键词weights
https://github.com/adobe-fonts/source-han-sans/blob/release/SourceHanSansReadMe.pdf

@simonsmh simonsmh closed this as completed Apr 9, 2021
@WordlessEcho
Copy link
Collaborator Author

WordlessEcho commented Apr 11, 2021

# SC as a example. They were same.
ttx -y 3 -t fvar NotoSansCJK-VF.ttc
  <fvar>

    <!-- Weight -->
    <Axis>
      <AxisTag>wght</AxisTag>
      <Flags>0x0</Flags>
      <MinValue>100.0</MinValue>
      <DefaultValue>100.0</DefaultValue>
      <MaxValue>900.0</MaxValue>
      <AxisNameID>265</AxisNameID>
    </Axis>

    <!-- Thin -->
    <!-- PostScript: NotoSansCJKscVF-Thin -->
    <NamedInstance flags="0x0" postscriptNameID="267" subfamilyNameID="266">
      <coord axis="wght" value="100.0"/>
    </NamedInstance>

    <!-- Light -->
    <!-- PostScript: NotoSansCJKscVF-Light -->
    <NamedInstance flags="0x0" postscriptNameID="269" subfamilyNameID="268">
      <coord axis="wght" value="300.0"/>
    </NamedInstance>

    <!-- DemiLight -->
    <!-- PostScript: NotoSansCJKscVF-DemiLight -->
    <NamedInstance flags="0x0" postscriptNameID="271" subfamilyNameID="270">
      <coord axis="wght" value="350.0"/>
    </NamedInstance>

    <!-- Regular -->
    <!-- PostScript: NotoSansCJKscVF-Regular -->
    <NamedInstance flags="0x0" postscriptNameID="273" subfamilyNameID="272">
      <coord axis="wght" value="400.0"/>
    </NamedInstance>

    <!-- Medium -->
    <!-- PostScript: NotoSansCJKscVF-Medium -->
    <NamedInstance flags="0x0" postscriptNameID="275" subfamilyNameID="274">
      <coord axis="wght" value="500.0"/>
    </NamedInstance>

    <!-- Bold -->
    <!-- PostScript: NotoSansCJKscVF-Bold -->
    <NamedInstance flags="0x0" postscriptNameID="277" subfamilyNameID="276">
      <coord axis="wght" value="700.0"/>
    </NamedInstance>

    <!-- Black -->
    <!-- PostScript: NotoSansCJKscVF-Black -->
    <NamedInstance flags="0x0" postscriptNameID="279" subfamilyNameID="278">
      <coord axis="wght" value="900.0"/>
    </NamedInstance>
  </fvar>

Tools: fonttools/fonttools: A library to manipulate font files from Python.
See also: fvar — Font Variations Table (OpenType 1.8.4) - Typography | Microsoft Docs

@simonsmh simonsmh pinned this issue Apr 11, 2021
@simonsmh
Copy link
Owner

联动 #25 #21
v11 替换 NotoSansCJK Regular 字重后,在多字重效果仍在的同时, #25 的符号正常显示了,但也复现了 #21 的问题。这应该是VF字形缺失了部分字符,或是正常字形包含了不应该包含的字符导致的,但有没有什么更好的办法能临时解决这个问题?

@WordlessEcho
Copy link
Collaborator Author

WordlessEcho commented Apr 12, 2021

联动 #25 #21
v11 替换 NotoSansCJK Regular 字重后,在多字重效果仍在的同时, #25 的符号正常显示了,但也复现了 #21 的问题。这应该是VF字形缺失了部分字符,或是正常字形包含了不应该包含的字符导致的,但有没有什么更好的办法能临时解决这个问题?

VF字形缺失了部分字符

应该不是,可能是配置上的bug
我举个例子 ●(U+25CF)

<map code="0x25cf" name="H18533"/><!-- BLACK CIRCLE -->

有是有的,但是只有VF显示不出来这个字符,super OTC的就正常

正常字形包含了不应该包含的字符导致的

不仅是常规版本,VF版也有这个问题
再举一个例子 🆓(U+1F193)
2.003版本Noto Sans CJK (super OTC)

<map code="0x1f193" name="cid59356"/><!-- SQUARED FREE -->

从Android 11上复制出来的2.001版本Noto Sans CJK Regular (OTC)没有这个字符

@WordlessEcho
Copy link
Collaborator Author

我刚刚试着把这两行放到比CJK更前的位置,但是没有用,所以我能想到的唯一办法就是重新编译字体了。

    <family lang="und-Zsye">
        <font weight="400" style="normal">NotoColorEmoji.ttf</font>
    </family>
    <family lang="und-Zsym">
        <font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted2.ttf</font>
    </family>

@WordlessEcho
Copy link
Collaborator Author

WordlessEcho commented Apr 12, 2021

我刚刚测试了一下,如果把模块里的NotoSansCJK-Regular.ttc删掉,#21 就正常了

@WordlessEcho
Copy link
Collaborator Author

最后的结论是,Android里的NotoSansCJK-Regular.ttc和noto-cjk上的是不一样的。如果要避免 #21 的问题,就是每次都修改字体,把这些特定的字符删掉

详见: notofonts/noto-cjk#191 (comment)

@WordlessEcho
Copy link
Collaborator Author

@simonsmh simonsmh reopened this Apr 14, 2021
@simonsmh
Copy link
Owner

感觉nototools有点bug,这个脚本没办法成功跑

@WordlessEcho
Copy link
Collaborator Author

因为这段代码有点Python 2的历史,又缺乏维护,我修改了三处因为Python 3改动出现的问题,目前正在执行

@WordlessEcho
Copy link
Collaborator Author

WordlessEcho commented Apr 14, 2021

明天会想办法把改过的subset_noto_cjk.py发出来,当然就算改过了还是有一些问题,不过影响不是很大,暂时没什么余力修。
大概会考虑修改成一个能用的工具再发布出来?还没想好用什么软件协议

@simonsmh
Copy link
Owner

新的commit中,还是不要额外修改字体文件名比较好吧,这样可以直接对原文件进行替换来避免重复字体名产生冲突

@WordlessEcho
Copy link
Collaborator Author

新的commit中,还是不要额外修改字体文件名比较好吧,这样可以直接对原文件进行替换来避免重复字体名产生冲突

行,但是麻烦你看一下actions,我好像没法用自动release?

@simonsmh
Copy link
Owner

新的commit中,还是不要额外修改字体文件名比较好吧,这样可以直接对原文件进行替换来避免重复字体名产生冲突

行,但是麻烦你看一下actions,我好像没法用自动release?

action需要签tag才会自动release,等新版本准备好时我来签tag

@WordlessEcho
Copy link
Collaborator Author

那你测试一下,我都弄好了

@WordlessEcho
Copy link
Collaborator Author

variable版本传错了,传成了remove codepoints但还没加chws的版本

@vvb2060
Copy link

vvb2060 commented Apr 22, 2021

https://issuetracker.google.com/issues/186033995

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants