forFudan / yuhao

宇浩繁简通打输入法·全汉字覆盖·四重注解·臺灣字形支持
https://yuhao.forfudan.com
Other
58 stars 8 forks source link

yustar_chaifen*.dict.yaml 字根问题 #44

Closed Dieken closed 2 weeks ago

Dieken commented 6 months ago

这是 yustar_chaifen.dict.yaml, yustar_chaifen-tw.dict.yaml 与 https://yuhao.forfudan.com/chaifen.csv 对比的结果:

  1. 目前 yustar_chaifen*.dict.yaml 把 {虍头} 都写成了{虎头}。 请根据 chaifen.csv,把 chaifen yaml 的 {虎头} 改成 {虍头},这两个的笔画有明显区别,会在反查时懵圈。
  2. , , vs , , 西, 都是 CJK Basic,CJK Radicals CJK Stokes, Katakana 字符,很容易支持( 在 iOS 15.8.2 确认显示没问题,没装额外字体),最好也在 chaifen yaml 中区分下,变形有点大,没必要合并成前者。
  3. 27 ⺆ vs (U+E2C2 Private_Use_Area)𠂭 vs (U+E2C9 Private_Use_Area) 字形一模一样,建议 在 chaifen.csv 和 YuhaoSongti.ttf 中改用与 chaifen yaml 中一致的 code point。YuhaoSongti.ttf 中可以增加一个 char to glyph 映射以兼容。
1248 {虎头}( U+E199 Private_Use_Area) vs 虍(U+864D CJK_Unified_Ideographs)
 168 爪 vs 爫(U+722B CJK_Unified_Ideographs)
 155 {虎头} vs 虍(U+864D CJK_Unified_Ideographs)
 145 冖 vs ⺈(U+2E88 CJK_Radicals_Supplement)
  84 卄 vs 廾(U+5EFE CJK_Unified_Ideographs)
  38 キ vs (U+E001 Private_Use_Area)
  37 二 vs (U+E24C Private_Use_Area)
  32 乛 vs ㇆(U+31C6 CJK_Strokes)
  27 ⺆ vs (U+E2C2 Private_Use_Area)
  12 西 vs 覀(U+8980 CJK_Unified_Ideographs)
  11 日 vs (U+E121 Private_Use_Area)
   8 コ vs ユ(U+30E6 Katakana)
   8 豕 vs (U+E068 Private_Use_Area)
   8 𠂭 vs (U+E2C9 Private_Use_Area)
   6 乛 vs 乙(U+4E59 CJK_Unified_Ideographs)
   6 丄 vs (U+E154 Private_Use_Area)
   5 丩 vs (U+E2E5 Private_Use_Area)
image
Dieken commented 6 months ago
  1. PUA U+24C 在 chaifen.yaml 中合并到 了,考虑下要不要在 chaifen yaml 只改叫 {飞右},因为可能有人没仔细看文档或者忘记了那两点算
  2. PUA U+E121{𠯮下} (U+20BEE, CJK Ext B, https://zi.tools/zi/𠯮) 或 𫩏(U+2BA4F, CJK Ext E, https://zi.tools/zi/𫩏)
  3. PUA U+E068𧰨(U+ 27C28 , CJK Ext B, https://zi.tools/zi/𧰨)

还剩几个 PUA 确实需要,没办法:

  1. {虍头} vs  U+E199
  2. {飞右} vs  U+E24C
  3. vs  U+E001
  4. vs  U+E154
  5. vs  U+E2E5
Dieken commented 6 months ago

更完整的版本,纠正了错误的{虎头},这两个错误比较严重,是笔画数都不一致,谈不上是形变了。

下图第一列是 chaifen.csv 中用的 PUA 字符,第二列是期望在 chaifen*.dict.yaml 中使用的字符,尽量用同形的 CJKV 标准字符,第三列是 yustar-v3.4.5 的 chaifen*.dict.yaml 中使用的字符。

image
my %roots_mapping = (
    '' => '{虍头}',     # not {虎头}
    '虍' => '虍',        # not {虎头}
    '爫' => '爫',        # not 爪
    '⺈' => '⺈',        # not 冖
    '廾' => '廾',        # not 卄
    '' => '𰀁',       # not キ
    '' => '{飞右}',    # not 二
    '㇆' => '㇆',        # not 乛
    '覀' => '覀',        # not 西
    '' => '𫩏',       # not 日
    'ユ' => 'ユ',        # not コ
    '' => '𧰨',        # not 豕
    '乙' => '乙',        # not 乛
    '' => '{虫下}',    # not 丄
    '' => '{𠬞左}',    # not 丩
    '' => '高',        # not {高頭}
    '' => '⺆',        # no PUA
    '' => '𰀪',       # not {两撇}
    '' => '𬺰',       # not {于下}
    '' => '𫝀',       # not {五下}
    '' => '𠀎',        # not {冓上}
    '' => '𠂎',        # not {卯左}
    '' => '𰀄',       # not {反彐}
    '' => '𰃦',       # not {向框}
    '' => '𠂇',        # not {左上}
    '' => '𠃜',       # not {眉上}
    '' => '𫶧',      # not {荒下}
    '' => '𣎆',       # not {贏頭}
    '' => '𱍸',      # not {齊右}
    '' => '𪚴',      # not {龜下}
    '' => '{𠇊右}',   # not 𧘇
    '牜' => '牜',       # not 牛
    '⻊' => '⻊',       # not 足
);
Dieken commented 4 months ago

3.5.0 修正了一些,还有一些看要不要把 yustar_chaifen*.dict.yaml 里其它字根修正下:

第一列是官网里用的字根(不用改),第三列是当前的 yustar_chaifen*.dict.yaml 里用的字根,第二列是我想改成的字根(注意跟第一列的 PUA 字根往往不是同一个字符,我用的 CJK 字根),我本地改了下自己用了。

image
my %roots_mapping = (
    '' => '{虍头}',    # not {虎头}
    '虍' => '虍',        # not {虎头}
    '爫' => '爫',        # not 爪
    '⺈' => '⺈',        # not 冖
    '廾' => '廾',        # not 卄
    '' => '𠂇',        # not ナ
    '' => '𰀁',       # not キ
    '乙' => '乙',        # not 乛
    '㇆' => '㇆',        # not 乛
    '覀' => '覀',        # not 西
    '' => '𫩏',       # not 日
    '' => '{曾中}',     # not 日
    'ユ' => 'ユ',        # not コ
    '高' => '高',        # not {膏頭}

    '' => '𰀪',        # not {两撇}
    '' => '𬺰',        # not {于下}
    '' => '𫝀',        # not {五下}
    '' => '𠀎',         # not {冓上}
    '' => '𠂎',         # not {卯左}
    '' => '𰀄',        # not {反彐}
    '' => '𰃦',        # not {向框}
    '' => '𠃜',         # not {眉上}
    '' => '𫶧',        # not {荒下}
    '' => '𣎆',         # not {贏頭}
    '' => '𱍸',        # not {齊右}
    '' => '𪚴',        # not {龜下}
);