VS2013 のコードエディタでのフォントは、Consolas を使っています。
見やすいので重宝しています。
が、全角罫線文字 (U+2500 付近) を使って絵を書くと、ずれてしまいます。
これは、どうも、Consolas がこの U+2500 のグリフを持っているので、代替フォントセット GlobalMonospace.CompositeFont に定義されている文字を使用しないため、のようです。(推測)
Ricty などのフォントを使うのが一般的なようですが、Consolas フォントはライセンスの都合使えませんから、半角文字に Consolas が使いたい、という要望は満たせません。
TTC を合成してしまう方法もあるようです。が、かなり面倒なようです。
調べたところ、VS2008 以前では Windows の FontLink 機能あるいは vsFontLk.dat ファイルで
フォントリンクを作って合成できた、のかもしれません。
が、VS2013 では、WPF/DirectWrite を使用しているため、この方法は使えない、ということのようです。
WPF を使っている、ということなので、IDE のコードエディタが内部で使っているであろう FontFamily プロパティに自分で作成した CompositeFont を指定できれば、なんとかなるのではないかと思ってやってみました。
まず、XML を自力で一から書くのは面倒なため、既存の CompositeFont を流用します。
管理者コマンドプロンプトで作業します。
>C:
>cd C:\Windows\Fonts
>copy GlobalMonospace.CompositeFont MyFont.CompositeFont
>notepad MyFont.CompositeFont
MyFont.CompositeFont を書き換えます。
FontFamily.FamilyNames の内容にフォント名があるので、
<system:string x:key="en-us">MyFont</system:string>
のように
に書き換えます。
<FontFamily.FontFamilyMaps> の 内容 を一度全部消して、
<FontFamilyMap Unicode="0000-007F" Target="Consolas" Scale="1.0" />
<FontFamilyMap Unicode="0080-2FFFF" Target="MS Gothic" Scale="1.0" />
にします。
ここからがちょっとイタイんですが、この複合フォントファイルを VS2013 に指定するまっとうな方法が、ありません。
(裏ワザに近いけど、EtherNEC ほどじゃないです)
VS2013 を立ち上げます。
メニューの、[オプション] - [環境] - [フォント及び色] で、フォントを変えたいところを、既定値以外の特定の値、
例えば Consolas に変えておきます。
あとでエディタで置換するためです。
メニューの [ツール] - [設定のインポートとエクスポート] で、
[選択された環境設定をエクスポート]
次へ
[すべての設定] のところのチェックボックスをクリアして、一度全部クリアされた状態にします。
[オプション] - [環境] - [フォントおよび色] のところだけチェックします。
次へ
ファイル名を付けて保存します。
完了
閉じる
テキストエディタでさっき保存した設定エクスポートファイルを開きます。
置換機能で、
Consolas -> C:/Windows/Fonts/MyFont.CompositeFont#MyFont
に全部置換します。
保存しておきます。
VS2013 に戻り、
編集した設定ファイルをインポートします。
既知の問題
VS2013 のオプション設定画面、フォントおよび色を表示したあとに OK を押すと、設定が失われる(インポートやりなおし)。
MyFont.CompositeFont ファイルを、VS2013 を開いたまま編集して保存して、VS2013 が新しい文字をレンダリングしようとする(スクロールさせる)と、
VS2013 が強制終了する。
当方のモニタ等で合わせ込んだ設定。
8pt 設定
<FontFamilyMap Unicode="0000-007F" Target="Consolas" Scale="1.0" />
<FontFamilyMap Unicode="0080-24FF,2600-2FFFF" Target="Meiryo" Scale="1.09" />
<FontFamilyMap Unicode="2500-25FF" Target="MS Gothic" Scale="1.0" />
---
Windows10 Thinkpad25 VS2017
<FontFamilyMap Unicode="0000-007F" Target="Consolas" Scale="1.0" />
<FontFamilyMap Unicode="0080-24FF,2600-2FFFF" Target="Meiryo" Scale="1.15" />
<FontFamilyMap Unicode="2500-25FF" Target="MS Gothic" Scale="1.1" />
TODO:ファイルとかのアップロードは、また次の機会。