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

Win32: 異体字が正しく表示されない #1106

Closed
k-takata opened this issue Oct 12, 2017 · 8 comments
Closed

Win32: 異体字が正しく表示されない #1106

k-takata opened this issue Oct 12, 2017 · 8 comments

Comments

@k-takata
Copy link
Member

質問・報告の内容

Windows 10 にて IVS (異体字セレクタ) を使った異体字が正しく表示されません。

サンプルテキスト (ivs_test.txt):

葛 (U+845B)
葛󠄀 (U+845B E0100)
葛󠄁 (U+845B E0101)

実行方法:

gvim -N -u NONE -i NONE --cmd "set enc=utf-8 gfn=MS_Gothic:h20" ivs_test.txt

表示結果:

ivs_before_fix

字形が3つとも変化が無い上に、IVSが四角い枠で表示されてしまっています。

パッチ:
https://bitbucket.org/k_takata/vim-ktakata-mq/src/d71a28fb36b97a57c58d5df31ca475b8acbab680/win32-fix-composing-chars.patch?at=default&fileviewer=file-view-default

パッチ適用後:

ivs_after_fix

2つめの字形が残りと違うことが確認できます。

Vimのバージョン

8.0.1185

OSの種類/ディストリ/バージョン

  • Windows 10 Pro 64bit (10.0.15063)

関連パッチ

#293 (7.3.781)

@k-takata
Copy link
Member Author

Windows版の文字表示は、合成文字が見つかると、ベースの文字の上に合成文字を重ね合わせて描画する処理になっていました。それをまとめて1回で描画するように変更しています。

@k-takata
Copy link
Member Author

よく考えたら、今までは IVS だけでなく、合成用濁点・半濁点もダメでした。

が (U+304C)
が (U+304B 3099)
か゚ (U+304B 309A)

ば (U+3070)
ば (U+306F 3099)
ぱ (U+3071)
ぱ (U+306F 309A)

@mattn
Copy link
Member

mattn commented Oct 13, 2017

ちなみに一番下で ga した時の表示もおかしい気がする。

異体

@k-takata
Copy link
Member Author

ga は合成用文字もばらして1文字ずつ表示させますから、ある意味仕方がない気がしますね。
対策するとしたら、合成用文字は表示しないようにするか、1個または2個の半角スペースあるいは全角スペースと合成させて表示するか…。

@mattn
Copy link
Member

mattn commented Oct 13, 2017

あ、いえ。ここ、こうじゃないかなと。

異体

@k-takata
Copy link
Member Author

合成用文字をつけるべきものではないものにつけているせいで、レンダラーの特性上、表示位置がずれているだけだと思います。GDIとDirectWriteを切り替えたり、フォントを変更すると表示が変わったりしますし。
半角スペースあるいは全角スペースと合成させてもあまりうまくいかないようです。

@k-takata
Copy link
Member Author

Posted: vim/vim#2206

@k-takata
Copy link
Member Author

8.0.1234
https://groups.google.com/d/topic/vim_dev/ZH9U7Tiz55Y/discussion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants