Ubuntu 上の gVim で powerline 用フォントが少しずれます。
melito00 opened this issue · comments
Ubuntu 上の gVim で powerline 用フォントが少しずれます。
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)
Included patches: 1-1453
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge version with GTK3 GUI. Features included (+) or not (-):
iTerm2 から ssh 接続した時や, terminator 上では問題なく表示できますので、gVim の問題かもしれませんが報告します。
※ ターミナルソフトはどちらも ambiguous 文字を wide で扱うように設定済み
微妙に隙間が開きますね😩
実はWindowsでも似た事象が発生するのですが、フォントサイズ変更しても発生しますか?
自分の環境でも発生します。(Windows 7, Gvim 8.1, render direct x)
何やらフォントサイズを3の倍数にしたときだけフォントズレが起きないようです。
半角文字と全角文字の横幅比が正確に 1:2 にならないことが原因かもしれません。
shino.tumblr.com
http://oogatta.hatenadiary.jp/entry/20130816/1376621767
https://www.rs.tus.ac.jp/yyusa/ricty.html
@kagerouttepaso おおお、知らなかった情報ありがとうございます!関係ありそうな気がしますね...🤔
ありがとうございまーす!
そのIssueは関連するのか...な?ちょっと解らなかったです!
Powerlineのグリフは改めて見直したんですがズレは無かったです。
1.5の倍数で解消するなら回避策としては
set guifont=Cica:h13.5
などとしてもらう事ぐらいでしょうか...?
今手元のWindowsで再現しようとしたら再現できませんでした😫
今日、WindowsのCygwin上でも同じ現象が確認できました。上のコメントは無視してください…
OSのPoint→Pixel変換で横Pixel数が割り切れないとき小数点以下が切り捨てられることで、1Pixel描画されない領域が出てくるのだと思います。
解決方は、Point→Pixel変換の際、2の倍数になる数字を指定することです。
これまで一般的だった96DPI環境下では、1.5の倍数でズレが消えると思います。
ただ、最近のOSではDPIを変更できるので1.5にすれば万事OKといかないかもです。
自分も時間がある時いくつかのDPI環境で動作を確認してみます。
説明が下手ですみません。自分用にメモしたもの下に貼っておきます。
文字を2:1で表示したいときは文字の高さが偶数でないと横幅が割り切れないため表示がずれる。
1Inch = 72Pointなので、Pixel数は下記の式で求まる。
Pixel = (Point / 72) * DPI
標準的なDPIは96DPIなので、Pixel数は下記で求まる。
Pixel = 1.333... * Point
このときPointが1.5nのとき、Pixel=2nとなるので表示のずれは起きない。
しかし、最近のOS(Windows 10など)のDPIは変更できるので、1.5nのときでもずれることはある?
例えば、Windows 10で文字の大きさを150%にしているときは、フォントサイズがn(任意の整数)の時ずれなくなる?