2013年2月25日月曜日

Windows 8:装飾記号の表示

下図はコメントでよく見るハートの記号U+2764・U+2765の表示です。


ブラウザはいずれもIE10(Windows 7はプレリリース版)です。
Windows 8では7と字形が異なり文字幅も縮んでいます。Segoe UI Symbolだと思います。一応インストールされているフォントでU+2764を持つものから字形を書きだしてみたところ:


以前に見たU+261Dと同じく、ひらがなに隣接させると8でもゴシックの字形に変化します。


SimSun・Gulim・PMingLiUにこれらの記号はありませんので、フォント変化が起きると代替表示となります。8では元のSegoe UI Symbol(と思われる字形)に戻ります。


上の図の「あ」はコメントのフォント状態を確認するために置いています。このケースでは「あ」がなくてもU+2764の字形は変わりません。

全部試したわけではありませんが、装飾記号ブロック (U+2700~U+27BF)の文字は基本的に上と同様の挙動を取るようです。字形の違いが特徴的なものをいくつか下図に示します。


Segoe UI Symbolで特に文字幅が狭いものは、複数並べると7との違いがかなり目立ちます。


なお一部8でしか表示されないものもあります。


上のU+2728はSegoe UI Symbolにしかありません。ゴシックにもありませんので、8で「あ」に隣接すると表示されるのはU+2764をSimSun化やGulim化させた時と同じ仕組みなのでしょう。7のSegoe UI Symbolにもこの文字はあるのですが、8のような仕組みはないらしく表示はされません。7の挙動は今後もこのままなのか、何かのアップデートで変わることがあり得るのか、気になります。

2013年2月19日火曜日

Windows 8:やっぱりスタートメニューを追加してみた

ソフトの互換性などで問題があるならともかく、新しいUIが不安・不満という理由でWindows 8を避けたり7にダウングレードしたりするのはもったいない気がします。Metroのスタート画面を初めて見た時は「ありえない」と思ったものの、それでも興味を持ったのはDP版の起動の速さと動作の軽快さに感激したからでした。

Windows 8 のパフォーマンス - Microsoft atLife

7と同様に起動したらデスクトップが開いて、スタートメニューが使えれば不安・不満も感じなくなるんでしょうか。自分は8にスタートメニューを追加するソフトなんていらないという話を以前に書きましたが、ちょっと下のソフトを試してみました。

IObit、Windows 8にスタートメニューを追加する「StartMenu8」の正式版を公開 - 窓の杜

インストールすると当たり前のようにデスクトップへスタートボタンが追加されました。


インストール後:


デフォルトでは起動時に自動でデスクトップが開くようになっています。設定で元に戻すこともできます。
Metroは無効にされているわけではなく、「Metroに切り替え」でスタート画面へ移動します。


Windowsキーでスタート画面とデスクトップがコロコロ切り替わっていたのを、かっちり使い分けるようになった気分です(Windowsキーは7と同様に上のスタートメニューを開くようになります)。
MetroはMetroでふつうに使えます。デスクトップの横にスナップさせているところ:


スタートボタンの右クリックからこのソフトの設定を呼び出すことができます。



8の操作に慣れているのであれば「Metroホットコーナーの無効化」 はオフにした方が使いやすいです。
なお「ユーザーインターフェイス」で「スキン」 を「Windows 7」に変更すると、上のメニューやタスクバーがAero Glass風の半透明に変わりました。

デスクトップのみ使っている限りWindows 7.5って感じです。見慣れたスタートボタンを置いただけで妙に安心感があるのは、おかしなもんだなと思いました。でもこれほんとに必要なのかと言ったら、実際は大して使わんのですけど。
やはりシャットダウンをチャームの中に閉じ込めてしまったのが失敗だったんじゃないでしょうか。コンパネなどは右クリックの管理用メニューに入れたというのに。

2013年2月14日木曜日

Excel 2013:Application.OnTimeの再帰呼び出し

自宅に2013導入したというだけで2010でも同じ話です。

Application.OnTimeというメソッドを使ったことがありませんでした。
ところが同じプロシージャを一定時間ごとに自動で実行させたいケースがあり、調べたらこのメソッドで再帰呼び出しをやればいいことがわかりました。しかしそんなかんたんにできるんだろうか。

Application.OnTime メソッド (Excel) - MSDN

例えば上のリンク先にあるサンプル:

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

これをmy_Procedure自体の中に入れて実行すれば、たしかに15秒毎に繰り返し呼び出されます。セルの編集中や他のプロシージャが実行中などに15秒後が来た場合は、実行可能になるまで待機します(待機時間に期限をつけるのが引数LatestTime)。

ただしこれだけでは問題があります。このブックを閉じてもExcelは15秒後にまたmy_Procedureを実行しようと、閉じたブックを開いてしまいます。EarliestTime=実行時間の予約は、Excel自体に対してかけられるもののようです。Excelを終了すればもちろん無効になりますが。

そのためにあるのがScheduleという最後の引数でした。EarliestTimeとProcedureを指定してScheduleをFalseにすることにより、Excelにかけられた実行時間の予約はキャンセルされます。
しかし上の例だとEarliestTimeであるNow + TimeValue("00:00:15")は、"my_Procedure"を実行するたびに更新されてしまいます。そこで最後のNow + TimeValue("00:00:15")を保存しておく必要があります。
わかりやすいサンプルコードがありました:

セルを点滅させる方法 - MSDN

上のリンク先のコードをブックが開いている間ずっと実行させたければ、Workbook_OpenでStartBlinking、Workbook_BeforeCloseでStopBlinkingを実行すればいいんじゃないかと。

一つ気になるのは最後のEarliestTimeを変数に格納している点です。ずっとブックを開いていたら、他のプロシージャでエラーが出た際などに変数はクリアされてしまうかもしれません。どこかのセルに保存しておく方が安全じゃないかと思いました。実際そのようにしてこのメソッドを利用していますが、特に問題なく動作しています。こんなかんたんなことならもっと早く知るべきでした。

2013年2月2日土曜日

Chrome 24/Windows 8:三角三様

特に目新しいことではないのですが、Chrome・Windows 7のIE・Windows 8のIEで表示が三者三様になるのがわかりやすかったので。下図は横向き三角U+25BA・U+25C4の表示を見ています。Gulim化を起こすU+25B6・U+25C0とはまた別の文字です。


「あ」 に隣接すると小さくなってます。理由はChromeで表示するとわかります。


要はゴシックよりArialの字形が大きい文字でした。しかし字形は似てるのに幅が大きく変わりますね。


今度はもう一つ似たようなU+25B8と、U+25BAの表示です。「あ」に隣接していると幅が若干違うだけで字形は大して違わないように見えます。


右の図はカッコつき16(U+2483)によってコメントをSimSun化したところです。どちらの三角もSimSunにはないので、これはフォントリンクによる代替表示です。こちらがWindows 8で変わります。


おそらくこれも、フォントリンクが使われずにSegoe UI Symbolで表示されるケースじゃないかと思います。


変化の大きさに差はあれ、同様の挙動をとる特殊文字は多いようです。むしろ表示が変わらない文字を探す方が難しいかもしれません。

ついでに前に書いたWindows 8の話の補足です。上のU+2483でSimSun化を起こすと、U+2639は「あ」をつけなくてもSegoe UI Symbolになりました。


フォント変化文字によってこのような差が出るのは、どうもSimSun化特有の現象のようです。ただしパターンはいまいちわかっていません。

2013年1月29日火曜日

Windows 8:好きな画像でタイルの並びをアレンジ

たまにはMetroアプリの紹介です。

Windows 8のスタート画面は、グループごとにタイルが左から右・上から下へ順番に配置されるようになっています。デスクトップの「アイコンの自動整列」と同じことですが、タイルの追加・削除で他のタイルの位置が一つずつズレてしまうのを止めることはできません。
それと自分の場合、スクリーンの解像度が高いデスクトップPCではスタート画面がスカスカになりがちです。日常的に使うアプリなんて数が限られるからで、画面の左や上にばかりタイルが片寄ってしまいます。

そこで評価版の頃から使っているのがCustom Tiles Makerというアプリです。好きな画像でタイルを作り、スタート画面に追加することができます。この追加したタイルで空けたくないスペースを埋めてしまいます。

Custom Tiles Maker - Windowsストア

タイルは横長と正方形、また行数と列数を指定することができます。下図は横長一つのパターン:


正方形四つのパターン:


使い方はかんたんで、画像と行数・列数のパターンを指定してスタート画面に追加するだけです。無料版では選べる行数・列数のパターンに制限があります(カギマークのついたもの)。


Random Tilesというモードでは複数の画像をライブタイルにより入れ替わりで表示できます。


指定時間ごとにタイルが変わるChanging Tilesというモードもあります。なお作成されたタイルをクリックすると、Custom Tiles Makerが起動します。

大きなスクリーンがスカスカなら、一つのグループ全体をこのタイルにしてしまうのもアリかもしれません。無料版だとこんなものですが、有料版なら最大で7行・6列のタイルが作れるようです。


スタート画面の壁紙やタイルの行数などを変更できるDecor8というアプリもあります。しかしこうしてタイル自体で画面をアレンジするというのも、おもしろいアイディアだなと思います。

2013年1月20日日曜日

Windows 8:タイ文字化の場合

Windows 8で、Segoe UI Symbolが表示されるケースは一様ではないという話を前に書きました。
例として挙げた特殊文字U+2639(困ったちゃんマーク)とU+261D(指差しマーク)で挙動の違いを見てみます。


まず単独の状態が異なります。U+2639は8・7ともに初期状態のArialと思われます。ただしグリフが無いので豆腐です。U+261DもArialにはありませんが、これは8ではSegoe UI Symbol・7ではゴシックで表示されています。
「あ」に隣接するとゴシックの字形になるのは共通しています。この件で8・7の表示を統一させるには、これが解決法なのでしょう。もっともChromeとの差異はそれでは解決しませんが(Arial Unicode MSの問題)。

SimSun化させた場合、U+2639もU+261DもSimSunにはありませんので代替表示となります。7ではフォントリンクが参照されます。しかし8ではこれが起きたり起きなかったりします。わかりやすくするため、リンク先のMS P明朝を削除してみます。


フォントリンクで代替表示されていた部分が全角幅の透明に変わります。


8のU+261Dはフォントリンクの影響を受けないことがわかります。「ゴシック化」されない限り元のSegoe UI Symbolのままです。
8のSimSun化では、U+2639も後ろに「あ」 をつければSegoe UI Symbolで表示されます。U+2639とU+261Dの違いは今のところわかりません。Unicodeの属性やコードページの定義とは関係ないようなので、内部的に独自の分類があるのかもしれません。

ところで、8の表示でタイ文字化の場合を見てなかったので試してみました。
「タイ文字化」 という表現はテキトーです。タイ文字はWindowsのバージョンによって表示に使われるフォントが異なるため、他に何と言えばよいのかわかりません。8ではCordia New、7ではDokChampaというフォントになります。いずれにもU+2639やU+261Dが無いのはSimSunと同じで、やはり代替表示が起きます。


ただしSimSunとは異なり、どちらもフォントリンクは登録されていません。代替表示は内部的な別のプロセスによるもののようです。試しにそれぞれのフォントリンクを登録してみました。リンク先はMS UI Gothicにします。


「あ」 もいずれのフォントにもありません。その字形が変わることにより、フォントリンクが参照されたのがわかります。ちなみにXPでタイ文字の表示に使われるTahomaは元から上のようにフォントリンクが登録されていて、「あ」はこの字形で表示されます。


しかし8のU+2639やU+261Dの方は、Segoe UI Symbolのままで変化がありません。また「あ」がついてるかついていないかも関係ありません。冒頭のSimSun化で見られた両者の違いは、あくまでCJKのフォント変化の中で発生することみたいです。

これをやってて今さら気づいたのですが、フォントリンクを追加する前の「あ」はタイ文字化の影響を受けていないですね。そうでないと、7の表示でU+2639・U+261Dだけ巨大化しているのが説明できないからです。
 「あ」 というCJK文字はCJKフォント(デフォルトはMS Pゴシック)で表示する、ただしフォントリンクを使うとそっちが優先するという仕組みなんじゃないでしょうか。そう言えばArialのフォントリンクを登録すると、ひらがなや漢字をリンク先のフォントで表示することができます。

U+2639・U+261Dは「あ」と違って何語の文字という区別が無く、こうしていろいろ変化してしまうんじゃないでしょうか。これはコードページの定義の有無に由来してるのかなと思います。

Unicode cp874 cp932 cp936 cp949 cp950 cp1250-1258
0E01 A1 - - - - -
261D - - - - - -
2639 - - - - - -
3042 - 82A0 A4A2 AAA2 - -

U+2639・U+261Dのような文字がArialに無ければ、Segoe UI Symbolで統一するのが8のルールなのかもしれません。冒頭の例のような差異は、そのルールと別のルールとが競合しているように見えるんですが。

2013年1月11日金曜日

Chrome 24:ニコニコ電子書籍のフォントが直ってた

pepflashplayerがどうこうというか、サイト側が対応したんじゃないかと思いますけど。

今朝Chromeを24にアップデートしたついでにそのままニコニコを見ていたら、前に書いた電子書籍のフォントの件が直っているのに気づきました。
http://seiga.nicovideo.jp/watch/bk46791


以前、pepflashplayerを無効にしてみたりSans SerifフォントをMS 明朝にしてみたりした時と同じ表示です。



試しに文字サイズを変えてみると、ちゃんとリフローされます。スキャンデータに差し替えたというわけではありません。



もっとも、スキャンデータの書籍であれば見た目でわかると思いますが。下図は別の書籍です。
http://seiga.nicovideo.jp/watch/bk66454


念のため動画のコメントも見てみました。IEとの表示の差異は、見た限りでは特に変わりませんでした。


やはり電子書籍のリーダー側でなにか対応したんでしょう。Chromeユーザーの方はよかったですね。