私用につき午後より出社します

サーバーサイドエンジニア。技術的なメモとか趣味でやってる個人開発について書いていきます。

OneNoteで綺麗なフォントを使おうとするのは止めとけ

会社のPCがWindowsなので、今まで業務に関するメモはMicrosoft謹製のOneNoteを使っていた。 文章と一緒に画像やファイルを自由にペタペタ貼れるし、ちょっとした表も楽に作れるので重宝していたが、我慢できないことが一点だけあった。OneNoteを使う者なら99%が知っていると言われる、Verdanaフォントバグ である。

Verdanaフォントバグとは?

OneNoteではデフォルトのフォントとして欧文(半角文字)にVerdana、日本語にMSゴシックを使用するように設定されている。これを変更すべくオプションの「規定のフォント」に日本語フォントを設定すると、半角のフォントが強制的にVerdanaに置き換えられてしまう。一方日本語のフォントは設定通りに表示されるので、非常にちぐはぐな印象を受ける。 このバグは少なくとも2003年から存在しており、Microsoftのフォーラムでもたびたびユーザーが苦情を寄せているが一向に直る気配は無い。それどころか、最新のOneNote2016では更に「游ゴシックバグ」も追加されたようだ。

answers.microsoft.com

しかし、ごく一部のスーパーエンジニアは(完全では無いにせよ)このバグを克服することに成功しているようだ。下記のブログ記事ではOneNoteにおけるVerdanaバグの原因と対処について詳しく考察されている。リバースエンジニアリングのような事もしていて面白い。

www.nda.co.jp

Verdanaフォントバグとの戦い

上記ブログ記事で紹介されていた対処方法は2つ。さっそく試してみることにした。自分の環境はWindows 10、OneNote2013(デスクトップ版)。

欧文フォントを「規定のフォント」に設定する

欧文フォントを指定すれば半角文字は設定した通りに表示される。ただし、この場合日本語は自動的にMSゴシックに置き換えられてしまう。 ここでWindowsの汚いフォントと格闘してきた歴戦の猛者なら、FontLinkを使うことが思い浮かぶかもしれない。
例えば、コーディング用フォントとして人気のあるRictyは、欧文フォントにInconsolata、和文フォントにMigu 1Mが使用されているので、下記のようにすれば擬似的にRictyを実現できるはずだ。

  1. InconsolataとMigu 1Mを別個にダウンロード
  2. InconsolataをFontLinkによりM+ FONTSを使用するように設定
  3. 規定のフォントとしてInconsolataを指定

そう思って試したが、残念ながら上手く行かなかった。他アプリケーションでは狙い通りに表示されるのに、OneNoteだけ相変わらずVerdanaが呪いのように表示されるのである。どうやらOneNoteにはFontLinkによる代替フォントの設定が無視されるバグもあるらしい。

OneNoteの半角デフォルトフォントを変更する

OneNoteがそんなにVerdanaを使いたがるなら、Verdanaという名の中身が別のフォントを用意すればいいんじゃね?という悪魔的発想。先ほどのブログ記事では、2通りの方法が紹介されていたが、結論から言うと上手くいかなかった。

  1. Verdanaフォントを、メイリオなど形状の近い他の日本語フォントに置き換える
    • Verdanaのフォントファイル(*.ttf)を上書きしようとしたところ、管理者権限をもってしてもアクセス拒否されてしまった。Windows 10になってシステムファイルの置き換えは簡単にはできなくなってしまったのかもしれない。
  2. Verdanaのフォント指定を、他の日本語フォントにリダイレクト(代替)する
    • これも試したが、やはりOneNoteだけ相変わらず半角がVerdanaのまま。(Wordとかではちゃんと代替されるのだが・・・)

結論:Verdanaには勝てなかったよ・・・

以上、貴重な休日を潰して試行錯誤した結果、OneNoteで綺麗なフォントを使うことは絶望的であることが分かった。他にもOneNoteは日本語の検索機能が貧弱だったりするので、そもそも多言語対応自体を怠っているのだろう。自分は気になり始めるとひたすら気になってしまう性分なので、今まで通りOneNoteを使い続ける気が無くなってしまった。これを機に他のメモ系アプリへの乗り換えを検討してみようかと思う。