2013年6月27日木曜日

Windows 8.1 Preview入れてみた

いろいろと気になるWindows 8.1Preview、8Proを入れていたノートにとりあえずインストールしてみました。
後で元に戻せるようあらかじめバックアップを取っておきました。

Windows 8.1 Preview - Microsoft Windows

まず上記の特設ページから更新プログラムをダウンロードして実行します。


インストールすると再起動を求められます。


再起動するとWindowsストアの更新の通知が来るという仕組みでした。


Windowsストアのページ。ここでのダウンロード・インストールと、その後の再起動に時間がかかります。。
この環境では始めてから完了まで二時間くらいを要しました。



インストールが終了すると再起動を求められます。アプリケーションがみんな消えるのかと思っていたのですが、そのままでした。

時間がなくてまだ全然いじっていません。一番気になっていたシャットダウンだけ確認しました:


なんではじめからこうしなかったんですかねー

2013年6月23日日曜日

Chrome 28:三角(U+25E2~U+25E5)の縮みを補完するテスト(1)

ChromeでもU+2588などのブロック文字を「Lucida化」で全角幅の表示にできることはわかりました。しかし一緒に使われることの多い三角のブロック文字(U+25E2~U+25E5)は、同じやり方では全角幅になりません。IEでのSimSunより幅の狭い字形のままです。

自分が「Lucida化」と呼んでいるのはArialがLucida Sans Unicodeにフォント変化する現象のことですが、そもそもArialに三角のブロック文字はありません。おそらく始めからLucida Sans Unicodeで表示されており、その字形が全角幅ではないのです。試しに三角のブロック文字にダイアクリティカルマークを合成させると、U+2501やU+2587のようにLucida化を起こすことができます。そして三角自体の字形は変わりません。

他の方法で三角のブロック文字が縮む分を補完できないか下図のコメントで考えてみました。


四角はChromeでも全角幅のU+2587です。

これを下図のようにしてみました。三角の両側に半角スペースU+00A0を追加しています。黄色の枠が無ければIEでの表示は見た目変わりません。
同時に左右の並びを指示する制御文字をいくつか追加しています。これによりChromeでだけこのU+00A0が三角の内側へ移動するように調整しました。


先頭のU+202B(Right-to-Left Embedding)により、左のU+00A0とU+25E2の位置が反転します。U+202C(Pop Directional Format)でこの反転効果は解除され、次のU+202Bで右のU+25E3とU+00A0の位置が反転します。
ポイントは真ん中のU+2587をU+200E(Left-to-Right Mark)で挟んでいるところです。これをやらないと、U+2587も反転の効果に巻き込まれました。

IEでは何も起きません。これら書式制御文字の挙動の話で見たU+202Bとアルファベットの組み合わせと同じく、U+00A0がArialだからではないかと思いました。

さて三角が内側に縮むのを多少なりとも補完できましたが、1段目と2段目は当然のことながらコメント幅が違ってしまいます。上のように一行ずつ積んだコメントであればいいとして、改行を使って1コメントに収めると下図のように1段目と2段目にズレが生じます。


そこで、この場合は下図のように修正してみました。2段目にも両側にU+00A0を追加し、Chromeでは先頭のU+00A0が反転効果で右端に飛ぶようにしました。


Chromeの方はブロック文字の表示位置が左にズレてしまいますが、ueやshitaでなければこれもありかもしれません。

実は三角が縮む分を補完するのにU+00A0ではちょっと幅が広いのですが、それより幅の狭いスペースU+2005やU+2006では上と同じパターンが使えません。これはIE上でU+00A0がArialから変化しないのに対して、U+200XはCJKフォント変化(この場合SimSun化)の影響を受けるからです。同じパターンだとIE上でも反転が起きてしまいます。

このやり方は三角以外にも使えそうですけど、補完に使う文字はArialでないと難しそうでした。

<参考>AH Formatter/XSL Formatter Q&A

2013年6月21日金曜日

Excel 2013:別インスタンスのシートへ数式を貼り付け

通常Excelをわざわざ別インスタンスで起動する必要はありません。しかしそうしたいケースもたまにあります。
ちなみに2013はふつうにもう一つ起動しようとしても別インスタンスにはならないみたいです。Altを押しながらもう一つ起動したら、メッセージが出て別インスタンスになりました。


今さら気づいたのですが、数式を含んだセルは別インスタンス上のシートにそのままコピペすることができません。やろうとすると「貼り付け元の範囲には、Excelのこのインスタンスに貼り付けられない数式が含まれています云々」と言われて値貼り付けにされてしまいます。Excel同士でもリッチテキストに変換されるようです。


同じExcelなんだから同じインスタンス内で貼り付けるようにできないんだろうか。試したら、形式を選択して貼り付けでできました。XMLスプレッドシート形式で貼り付けると数式がそのまま維持されました。


別形式に変換するわけなので、なんでもそのままとはいかないですけど(例えばアウトライン)。

<参考>XML スプレッドシート形式の機能と制限 - Office.com

2013年6月19日水曜日

Chrome 28:ダイアクリティカルマークと書式制御文字

ダイアクリティカルマークで文字の上下位置をずらす話の続きです。

下図はひらがなの途中にU+0309を3つ挟み、後ろを半分くらい持ち上げてるところです。Chromeではこうしてゴシックの途中に入れるとU+0309は豆腐になってしまいます。


これ消せないのかなと思ったら、前回書いた左右の方向を指示する制御文字(U+202A~202E)を前に挟んだら消えました。IEの表示に影響はありません。


U+202Eでは反転が起きています。
なおU+200E(Left-to-Right Mark)・U+200F(Right-to-Left Mark)でも同様でした。理由はわかりませんが、これら左右の方向を指示する制御文字に共通の挙動のようです。

不思議なのは単にU+0309の豆腐が直っただけでなく、字形の表示がどこにも見えなくなったことです。実はこれを試している時にワードパッド上でも同じことが起こりました。
ちなみに下図の3段目は、Lucida化を起こしているダイアクリティカルマークの前にU+202Aを置いてみたところです。IEでは表示に変化はなく、ChromeではやはりU+0309が消えます。


ただしLucida化と組み合わせた場合、Left-to-RightとRight-to-Leftで挙動に違いが見られました。
下図のコメントの真ん中はU+2501にU+0309を合成させており、両側のアルファベットがTimes化(仮)を起こしています。2段目はU+0309の前にU+202A、3段目はU+202Bを挟んでいます。


U+202Aの場合は後ろのTimes化が解除されています。U+202Bの場合はフォント変化全体が解除され、同時に「幅だけLucida化」が起きました。

下図のようなケースでも同様でした。ただし「幅だけLucida化」は1段目の幅ではなく、後ろがArialに戻った2段目の幅でした。


この辺の仕組みはまだよくわからんのですけど、もっと調べれば使いようがあるのかもしれません。

2013年6月9日日曜日

IE 10/Chrome 28:U+202B・U+202Eによる左右反転

制御文字U+202B(RIGHT-TO-LEFT EMBEDDING)やU+202E(RIGHT-TO-LEFT OVERRIDE)がコメントの表示でも左右反転を起こすことは知っていたのですが、ゼロ幅という以外特にメリットも無いと思っていました。最近になってIEとChromeとで挙動に差異があることに気づいたので、あらためて見てみました。

下図のようなブロック文字のコメントを例に挙げます。Lucida化(仮)が絡むとよけいな話になるので、Chromeでもそのままで全角幅で表示されるU+2587・2586・2585・2583・2582です。


先頭にU+202B・202Eを置くと、左右の反転が起きます。これはIEもChromeも変わりません。いずれもゼロ幅なので、見た目では置いてあることがわかりません。


これは特殊文字だからこうなるようで、アルファベットや仮名文字・漢字だとまた挙動が異なります。U+202Bが先頭の場合、一般の文字には反転が起こりません。下図のようにブロック文字の間へ一文字ずつ挟んでみると、アルファベットや仮名文字・漢字はそのままでブロック文字だけ変化が起きました。


左端のU+2587と右端のU+2582だけ、前後が入れ替わっています。またIEでは、アルファベット(というかArial)だとブロック文字にも変化が起きませんでした。

先頭がU+202Eだと一般の文字も反転が起きました。下図の通りブロック文字と一緒に全体が反転しています。ただし、こちらもIEでは一般の文字がArialの場合は何も起きません。


次に、U+202B・202Eを先頭ではなく途中に挟んでみました。


IEでは202Bだと何も起きず、202Eだとそこから後ろだけ左右反転しています。これがOVERRIDEということなのかと思ったら、Chromeではどちらでも同じ変化が起きました。

今度は先頭にU+202B・202Eを置き、途中にU+202A(LEFT-TO-RIGHT EMBEDDING)・U+202D(LEFT-TO-RIGHT OVERRIDE)・U+202C(POP DIRECTIONAL FORMATTING)を置いてみました。なお、これらもゼロ幅です。
202AだとIEでは何も効果が見られず、冒頭と同じように全体が反転します。


Chromeでは202Aより前でだけ反転が起き、かつコメント全体の中でもそれより後ろと位置が反転しています。

一方U+202DだとIEもChromeも同じ挙動になりました。


U+202CもIEとChromeは同じ挙動ですが、上と違ってそれより前でだけ反転が起きました。ちなみにPOP DIRECTIONAL FORMATTINGは、並び方を元の方向に戻すという制御文字だそうです。


IEとChromeで挙動が同じであればやはりメリットはありませんが、組み合わせ方によっては異なるのなら表示の差異を補完するのに使えるかもと思いました。Windows 7でしか試してませんけど。

<参考>HOW TO: Formatting Control Characters - MSDN