まずはWinver 1803までの動きとして。
実際には「従来のWindowsすべて」と「Windows Vista以降からWindows 10 1803までの挙動」としたほうが正しいところだけど。
なお今回のインストール方法は「フォントファイルに対して右クリックした場合のインストール」としてのお話に絞っていたり。
アプローチ方法は複数あれど、今回の場合は「フリーフォントなど、フォントファイル単体で配布されている」「自作フォント」を対象とするため。
実際に、今回使ったフォントは、武蔵システム「OTEdit」で作成したフォントファイルを用いたものとして書いてたりします。
まずはWinver 1803からの話。動作確認を行ったのは、たまたまアップデートしてなかったサブマシンを持ち出して確認。
1803までは、右クリックをした場合に表示されるのは「インストール」のひとつだけ。
これを選べば、C:\Windows\Fontsに対して自動的にインストールされると同時に、インストール情報はレジストリに書き込みが行われる状態に。
一度のインストールであればこれで問題はないのだけど、問題はこの先で、atmarkITとかには書いてない話を。
同名フォントがすでに入っている状態で、さらにインストールを行おうとした場合は、置換してインストールをするかどうかを確認するメッセージが表示されることに。
Windows XPまではこの動作ではなく(インストール済みなので出来ないとしてしか表示されない)、Vista以降からっていうのはここからの話。
しかしこれ、ダイアログ上では「置換」とか書かれてやがりますけど、上書き処理での置換じゃないんですよ、これ。
実際には「既存フォントを残し、リネームする状態で追加インストールされ、レジストリにはリネーム状態のフォント名として変更処理される」が正しい挙動。
なので、C:\Windows\Fonts にはどんどんファイルが蓄積されてしまう、という状態に。
この時のファイル名は「_0」から始まり、9を超えるとA~Fになる(いわゆる16進数)。さらに導入を行うと、10以降でカウントアップしてくれやがります。
「別に問題ないんじゃねーの?」とか思われがちではあるんですが、これ、オリジナルのフォントファイル名とは異なるわけなので、まずは管理上の問題が生じる可能性がある。
次点として「リネームの名称は勝手に書き換えられたものなので、ファイル名などを利用するものではトラブルが起きる可能性が否めない」という点が出てくるという。
では、Winver 1809になってどう変わったのかを。
1809で右クリックをしてコンテキストメニューを表示すると、実はメニュー項目が増えているという現実に遭遇する。
「インストール」はそのままに、それとは別に「すべてのユーザーに対してインストール」。
なので今までの感覚のまま、同じ名称の「インストール」を選んだ時が実は罠で、実際にはインストール先は実際には変わっていることがわかる。
しかしそれがわかるのはおそらく、「異なるユーザーアカウントで該当フォントを利用しようとした場合」になる可能性が高く、まずつうじょうは気づきにくい可能性が高い。
次点としては「決め打ちでC:\Windows\Fonts を参照するアプリケーションがある場合」だと思う。
なおこの時に実際にインストールされるのは「C:\Users\[username]\AppData\Local\Microsoft\Windows\Fonts」で、ユーザーアカウント管理下であるため、他のユーザーからは原則として参照できないことに。
従来通り、C:\Windows\Fonts にインストールしたい場合は、もうひとつの「すべてのユーザーに対してインストール」を利用することに。
ここで注意しなければならないのは「キーボードアクセラレータとしての動作で、Iキー押すのがクセになってる」場合。ここの動作仕様が変わったのが正直、個人的には一番でかい。右クリック+「I」を押した場合に入る先が従来と変わるわけなので、今度からはそういう操作をしないように気をつけなければいけないため。「A」に押しかえる、ということが今度から素早さを求める時のクセにしないと。
そして変わったのはもうひとつ。実は、置換してインストールをするかどうかの場合の挙動が実は変わっている。
もっとも、表示される警告自体は変わってないし、それはどちらのインストールであっても同じ立ったりするけれど。
ただ1809では、1803とは違い、実際に「置換」になった。ここは非常に影響が大きく、これ自体はやっと改善されたって印象。
これで今まで通り、重複を避けるために「事前にアンインストールしたうえで改めてインストール」なんていう手間をかける必要がなくなったという。(しかもアンインストールも、利用されているなどでなかなか削除すらできなかったという問題もあったし)
なので、何度インストールしたとしても、インストール先のフォントはただひとつだけが残る、という状態に。
ともあれ仕様が変わったことは十分注意しなければならないところなので、フォントの入れ替え時には操作に注意しておきたいところ。
ちなみになんだけど、新仕様の「ユーザー単位でインストール」は悪い話ではないものの、アプリケーション利用をする場合には十分な注意が必要。
たとえばだけど、該当フォントを利用して文書を作成し、PSファイルを書き出してからAcrobat DistillerでPDFを作る場合。
Distillerでフォントを埋め込むつもりであれば、作成アプリケーションがPSにエンベッドしない仕様の場合、そのままではフォントは埋め込まれないことになってしまう。
理由は単純、Distiller側で該当フォルダの登録が自動的になされるわけではないため。
これはDistillerの設定メニューから「フォントの場所」を開き、先述の「C:\Users\[username]\AppData\Local\Microsoft\Windows\Fonts」を手作業で追加する必要がある。
もうひとつ。
では、同じフォントに対して「インストール」と「すべてのユーザーに対してインストール」の両方を行った場合はどうなるのか。
実はインストールを両方に行っても、これは置換扱いのインストールにはならず、何もメッセージが出ないまますんなり入ってしまう。
そしてちょっと断言はできないところがあるのだけど、どうやら「先にインストールした側が認識として上位にくる」のではないかと思われるところがあり。
Windowsの設定→個人用設定→フォントを開き、インストールしたフォントのプロパティを確認した時のパスとしてそのような動きの模様であるため。
このあたり、うまく使い分けることもできるような気はするけれど、微妙になんともいえないところもあることから、利用・運用はちょっと慎重に考えたほうがいいのだろうなーと思ってたりします。
もっとも、必ずしもシステムのフォントフォルダ周りで運用する必要がないなら、NexusFontなどで外部管理してしまったほうがいいとは思うんだけれども。
もっとも、1809でもあいかわらず、Font Cache Serviceの停止は行わなければならないのだけど。
コメント