2015年11月29日日曜日

Windows 10:空白文字U+200Xの表示について

ニコニコのコメントでの空白文字U+200Xは、デフォルトではArial・CJK文字に隣接した場合はそのフォントに従うのではないか、というのが個人的な考えです。

下図のコメントの空白部分はU+2001を10個並べたものです。上段と下段との違いは「あ」と「a」の位置が逆になっているだけです。


Chromeでは何をしようとArialから変化しません。一方IEの場合、下段は「あ」と隣接したことでゴシックへと変化して、上段よりコメント幅が広がっているのではないかと思います。

さて、このケースをWindows 10上で見たところおかしなことになりました。


Edgeでの下段は2001が極端に縮んでいます。

下図のコメントはU+2000~U+200Aの10種類の空白文字を、幅の広い順に積み上げたところです。この状態ではIEもChromeもフォントはArialだと思われ、両者の表示に差は見られません。


これはWindows 10でも同じです。


次に、これらの空白文字の前に「あ」 を置いたのが下図のコメントです。IEとChromeで表示に若干の差が見られるようになります。これはIEの方がゴシックへフォント変化したからではないかと思います。


これをWindwos 10で表示させると下図のようになりました。


Edgeでは2002と2003以外は同じ幅の空白であるように見えます。なぜこんなことが起きるのかとBabelMapで見たところ、Yu Gothic UIには2002と2003しかありませんでした。


その他の幅の狭い空白は、空白文字というより表示させるものが無いという意味のスペースなのではないでしょうか。

下表は同アプリのFont Coverageの機能を使い、U+200Xを持つフォントのそれぞれの文字を有無を集計したものです。

フォント名 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 200A
Arial
Arial Unicode MS
Calibri
Cambria
Cambria Math
Consolas
Ebrima - - - - - - - - - -
Gadugi - - - - - - - - - -
Leelawadee UI - - - - - - - - - -
Lucida Sans Unicode
Meiryo UI
Microsoft JhengHei - - - - - - - - - -
Microsoft JhengHei UI - - - - - - - - - -
Microsoft PhagsPa
Microsoft Sans Serif
Microsoft YaHei - - - - - - - - - -
Microsoft YaHei UI - - - - - - - - - -
MS Pゴシック
MS P明朝
MS UI Gothic
MS ゴシック
MS 明朝
Palatino Linotype - -
Segoe UI
Segoe UI Emoji - - - - - - - -
Segoe UI Symbol
Tahoma
Times New Roman
Yu Gothic UI - - - - - - - - -
メイリオ
游ゴシック - - - - - - - - -
游明朝 - - - - - - - - -

2002と2003だけがあるというのは、游書体フォントの特徴のようです。他に該当するものはありませんでした。

代替フォントを使わずただ同じスペースを表示してしまうのは、Windows 10上のFlash Playerがこの新しいフォントにまだ対応していないということかもしれません。そのうち直るんでしょうか。

2015年11月15日日曜日

Windows 10:日本語フォントの変更

前回書いたWindows 10のBuild 10586が、先週末に正式版としてリリースされました(バージョンがちょっと上がって10586.3)。Windows Updateで配信されましたが端末によってすぐ来たり来なかったりのようで、来ない端末には公開されているISOからインストールしました。

10IPで見た通り、やはりニコニコのコメントはフォントが変わってしまいました。Firefoxも同様です。


長年見慣れたMS Pゴシックでないのにはまだ違和感があります。Chromeで見れば変わりないんですが。

Gulim化でちょっと気づいたことです。下図の2段目はU+2661によりGulim化、3段目はU+30FCでこのGulim化を解除しています。


デフォルト→フォント変化→デフォルトに戻るという挙動は7も10も変わりません。ただし10の方はU+2661のフォントまで変化しています。字形から、これもYu Gothic UIではないかと思いました。Gulimが無い環境だとデフォルトに変化するということかもしれません。

と言っても、この挙動は不安定なようです。表示した時によっては豆腐になる場合もありました。


原因はわかりません。

ちなみにSimSunは今のところ変わりありません。


もっともSimSunも古いフォントなので、いずれ変わるのかもしれませんが。

2015年11月8日日曜日

Windows 10IP:日本語フォントの変更

先週、Windows 10IP向けにBuild 10586がリリースされました。現在Build 10240の一般ユーザー向けにも今月の月次更新のタイミングで配信されると言われています。


この10586でニコニコを見ていたところ、日本語フォントが変わっていることに気付きました。


10240のMS Pゴシックより幅の狭いフォントとなり、コメント幅が縮んでいます。EdgeだけでなくFirefoxでも同様でした。
字形から、10586のフォントはYu Gothic UIかなと思いました。Yu Gothic UIはMeiryo UIに代わり、Windows 10でシステムフォントとして採用されています。


なおChromeではこの影響はありませんでした。


かな文字は明らかに幅が狭くなっています。


Gulimが標準ではインストールされていない10でGulim化を起こすと、MS UI Gothicが表示されるという話を以前に書きました。同じように幅は狭いものの、これとも字形が異なります。


漢字は変わらないのかと思いきや、比較してみるとこちらも10586の方が若干幅が狭いようです。


2つの画像を重ねあわせたところ:


Chrome 21(PepperFlash)でフォント変化が起こらなくなってから、デフォルトのArialとMS Pゴシックであればブラウザ間でコメント表示に差は出ないという考えでした。しかしこうなると、もうArialだけになってしまいます。
同じWindows環境であっても、幅に依存したコメントはますます難しくなりそうです。

2015年11月3日火曜日

64bit版Firefox:ニコニコでIMEが無効になる問題

Cyberfoxが41に更新された際、ニコニコのコメント欄でIMEが無効になるという問題が発生していました(Waterfoxも同様)。Windows 7では言語バーが表示されなくなるだけでしたが、10だと日本語入力自体ができなくなりました。MSのIMEでもGoogle日本語入力でも同じでした。

これはCyberfoxやWaterfoxの問題ではなく、41以降の64bit版Firefoxで起きる現象のようでした。実際、ベータ版で公開されていた42の64bit版でも確認できました。

Bug 1201904 – [x86_64][Win] IME is disabled on Flash Player - Bugzilla

本日42の安定版が公開されており、64bit版も提供されていました。しかしこのバグについては今のところ直っていないようです。

いちおう回避策はあって、Cyberfoxの掲示板で紹介されています。

Cyberfox Part2 [転載禁止]©2ch.net

こういうことをしていいのか判断がつかないので、お勧めはできません。
コントロールパネルのシステムの詳細設定→環境変数で、このMOZ_ALLOW_WEAKER_SANDBOXを新規に追加します。


そしてFirefoxのabout:configで、dom.ipc.plugins.sandbox-level.flashをデフォルトの2より小さい値に変更します。自分は1にしています。


これで冒頭の現象は起きなくなります。
早くバグが直ればそれに越したことはないんですが。

2015年9月21日月曜日

Windows 10:タスクバーのアイコンが重複する問題

2015/10/1追記:
Cyberfoxについては、41.0.2で下記の問題に対応したようです(既に直した後のため未確認)。

Windows 10にアップグレードしてから時々おかしなことが起きるようになりました。
下図はタスクバーにピン留めしたCyberfoxのアイコンです。これをクリックしてCyberfoxを開くと、ピン留めしたのとは別にCyberfoxのアイコンがもう一つ表示されます。使用する上で問題はありませんが、実に気持ち悪い。


下図はこの状態で7+ Taskbar TweakerのTaskbar Inspectorを表示させたところ。ピン留めしたのと開いているCyberfoxとは別のIDになっています。


一方、下図は同じくピン留めしたWaterfoxを開いた場合です。ピン留めしたIDからWaterfoxは開いています。


ただしこの現象はCyberfoxだけで起きるわけではありません。Waterfoxで起きる場合もありますし、ググってみるとFirefoxや全く別のアプリケーションで起きることもあるようです。
Cyberfoxのフォーラムでこの問題が取り上げられていました。

Cyberfox in W10 taskbar - 8pecxstudios Support Forums

この中でレジストリのTaskBarIDsというキーについて触れられています。FirefoxやCyberfoxをインストールすると、ここにアプリケーションのIDが登録されるようです。ピン留めした際、アイコンがこのIDにならないことが原因みたいです。


フォーラムではこのTaskBarIDsを削除してしまう方法が紹介されています。どうやら必須のキーではないようです。自分の環境では以下の2箇所にありました。

HKEY_CURRENT_USER\Software\Mozilla\Cyberfox\TaskBarIDs
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Cyberfox\TaskBarIDs

この2つを削除したところ、ピン留めしたアイコンからCyberfoxが開くようになりました。


なおWaterfoxの場合はFirefoxのキーの中に登録されており、Waterfoxでこの現象が起きた時にはこれを削除しました。

しかし、このTaskBarIDsはどうもインストールを実行するとまた登録されてしまうようです。バージョンアップの度に削除しなければなりません。やはりTaskBarIDsに登録されたIDでタスクバーにピン留めしないことには根本的な解決になりません。

MSのコミュニティで解決法があるのを見つけました。

タスクバーにピン留めをすると同じアイコンが 2 つ表示される - マイクロソフト コミュニティ

ここで紹介されているwin7appidを試しました。このソフトを適当な場所に置き、コマンドプロンプトから以下のように実行しました。

win7appid1.1.exe [Cyberfoxのショートカットのフルパス] [TaskBarIDsに登録されたID]

実行結果:


これにより、ピン留めしたCyberfoxのアイコンはTaskBarIDsに登録されたIDになりました。


この問題は同じWindows 10環境で起きないこともあり、 何が理由なのかはわかりません。

2015年8月28日金曜日

Windows 10:U+2661の挙動

Windows 10上でのコメント表示は、製品版ビルドになっても結局プレビュー版で見たのと変わってないようでした。日本語版にGulimやMingLiU(PMingLiU)はインストールされておらず、Gulim化やMingLiU化は起きません。
やはりストレージ容量への配慮から、よけいなフォントはオプション扱いにしているようです:

Windows 10 の一部のアプリでテキストの一部が正方形で表示される理由 - Microsoftサポート

それにしてもGulim化のケースが妙なのでもうちょっと見てみました。
下図はひらがなのみのコメント(上段)と、その先頭にGulim化文字U+2661を置いた場合(下段)を比較しています。


10ではひらがながGulimのかわりにゴシックで表示されます。ただしMS Pゴシックではなく、なぜかMS UI Gothicになっています。MingLiU化だと代わりに表示されるのはMS Pゴシックです。


下図は下段のコメントの先頭へさらにSimSun化文字U+2609を追加したところです(U+2588はMingLiU属性も持つためここでは使いません)。


8.1以前ならU+2609に従ってひらがなもSimSunに変化します。一方10では何も変化が起きません。
これがMingLiU化の場合だと、10でもひらがなは8.1以前と同様に変化します。


上の10でのGulim化文字による挙動は、U+2661とひらがなが直接隣接しないと起きなくなるようです。


Gulim化を起こさないU+2661の隣接は、CJKフォント変化そのものを無効化しているように見えます。

ところで、上の図の上段ではU+2661が豆腐になっています。
SimSunにトランプのマークは無いため、8.1以前であればフォントリンク先であるMicrosoft Sans SerifのU+2661が代替で表示されます。10のSimSunのリンク先は増えているものの、途中までは8.1と同じです。


Microsoft Sans Serifを調べてみたところ、10ではこのフォントからU+2661が消えていました。元々ここにあったのはバグだと思われるので、10でようやく消えたのでしょう。


しかし、それであれば同じくリンク先のMS P明朝で表示できるはずです(現に他のトランプマークはそうであると思われます)。

ところがあらためて下図のように見てみると、どうもそういう問題ではないようでした。デフォルトが豆腐です。
この豆腐はArialではないかと思います。Arialに白抜きのトランプマークはありません。


そしてSimSun化させた時も、フォントリンクは使われず豆腐のままです。
ひらがなと隣接したケースだけ、8.1と同じようにSegoe UI Symbolが表示されています。Segoe UI Symbolが表示されるのは8以降の挙動ですが、フォントリンクとは別の理由によるものと考えられます。
豆腐は10特有の挙動なのか、Gulimが無い場合の挙動なのかは確かめていません。

2015年8月3日月曜日

Windows 10:OneDriveフォルダの変更

Windows 8.1から10にアップグレードしてみて、デスクトップPCでは今のところ大きな問題はありません。
ところがタブレットでは一つ困ったことが起きました。OneDriveフォルダをCドライブではなくSDカード(Dドライブ)に保存していたのですが、10ではこれが認識されずエラーになってしまいます。


OneDriveの設定からSDカードの場所を指定し直してもエラーになります。


デスクトップPCでも元々C以外のデータドライブ(HDD)に保存していました。しかしそちらではこのようなエラーは起きていません。SDカードだとだめなんでしょうか。
とりあえず解決するのは簡単でした。SDカードをCドライブに作成した空フォルダにマウントすれば問題ありませんでした。

あらかじめ「C:\SD」というフォルダを作り、コントロールパネルからディスクの管理を開きます。
Dドライブを選択→「ドライブ文字とパスの変更」


「追加」


「次の空のNTFSフォルダにマウントする」で「C:\SD」


後はOneDriveの設定からC:\SD経由でSDカード内の場所を指定すればエラーは出ませんでした。
そう言えば8.1の時からSDカードに保存したアプリがタスクバーにピン止めできなかったのですが、それもこれで解決しました。

上の方法を試す前に、SDカードに仮想HDDを作って解決したという情報を見つけていました。

Windows10のOnedriveフォルダは移動できない? - マイクロソフト コミュニティ

これも試したところ確かにできました
ただしVHDは自動では認識されないため、起動時に自動でマウントする仕掛けが必要でした。バッチファイルでdiskpart.exeを起動して、VHDをマウントするスクリプトを実行させます。

diskpartに実行させるスクリプト(d:\vhdmount.txt):
select vdisk file="d:\Data.vhd"
attach vdisk

上のスクリプトをdiskpartに実行させるバッチファイル(d:\automount.bat):
diskpart -s d:\vhdmount.txt

このautomount.batをタスクスケジューラに登録し、トリガーをログオン時に設定しました。
Windowsを起動したところ、バッチファイル実行→仮想HDDマウント→OneDrive同期開始となり一応うまくいきました。
と言っても起動時にコマンドプロンプトが表示されてしまうこと、特にメリットがないことから前者の方法でやることにしました。