プログラマ向けの超美しいRictyフォント
以前、開発用として自宅のLinux向けにRictyフォントを生成していて、それを自宅と会社で使っていたのですが、昨年の秋に会社で使っていたマシンのOSがクラッシュし(Windows VistaのWindows Updateをかけたら起動しなくなった。(´・ω・`))、OSをWindows 7に入れ直した際に生成済みで且つ再配布可能の姉妹フォント「Ricty Diminished」をインストールして使っていたのですが、これは第2水準の文字が表示されないものだったので、騙し騙し使っていました。(表示できない文字は□に化ける)
しかし、このところ難しい漢字が多く入っているメールをNTEmacs上で読んでいたら、やたらと文字化けしまくったので、「そろそろちゃんとジェネって化けないようにでもするか…」と、仕事も谷になっていた事もあって、最新のInconsolataフォントやMigu 1Mフォント、生成スクリプトをあちこちからダウンロードして、以前実施した流れでサクサク作っちゃおうっと。(^^)
…と思ったのですが…
「何度生成しても、Windows 7にフォントがインストールできない!」
という情けない事態に…

こんな感じでエラーになります。
「有効なフォント ファイルではありません。」…だと?
「おかしい… 何が行けないんだ???」と思い、生成までの仕様をまるで理解していない私は、トップダウンではなく、ボトムアップで調べて行く事に…
しかし、このところ難しい漢字が多く入っているメールをNTEmacs上で読んでいたら、やたらと文字化けしまくったので、「そろそろちゃんとジェネって化けないようにでもするか…」と、仕事も谷になっていた事もあって、最新のInconsolataフォントやMigu 1Mフォント、生成スクリプトをあちこちからダウンロードして、以前実施した流れでサクサク作っちゃおうっと。(^^)
…と思ったのですが…
という情けない事態に…

こんな感じでエラーになります。
「有効なフォント ファイルではありません。」…だと?
「おかしい… 何が行けないんだ???」と思い、生成までの仕様をまるで理解していない私は、トップダウンではなく、ボトムアップで調べて行く事に…
Microsoft Word 2007 見出しマップ "文書のオートフォーマット"
タグのようなタイトルですが、そのつもりで書いています。こう書くと検索エンジンにすぐに引っかかってくれるので楽ちんです。
さて、振り返ると2.5年振りの「開発のあれこれ」カテゴリですね。
「元エンジニア」なので、これくらいが私にはお似合いですw
現在、仕事で「Microsoft Word 2003」「Microsoft Word 2007」(以降:Word 2003, 2007)をメインに使っているのですが、このうちWord 2003で作成したファイルをWord 2007で開くと、ある時点から場合により「見出しマップのオートフォーマット」というものが働き、その見出しマップのフォーマットが破壊されるという現象が発生しています。

ファイルを開くと「見出しマップ」の「オートフォーマット」
というのが「勝手に」走る…
ネット検索で調べてみると、何件かこの現象に見舞われている人がいるようで(ポータルサイトの質問コーナーにそれが書いてあったりしました)、それに対する回答されている方々の内容が明らかに的を得ていないような感じだったので(現在回答されていた内容では解消されていませんし)、私もこうして何か書いておこうかと思いました。(たまには技術的なノリで)
この現象は「オートフォーマット」と謳っていますが、普段文章を書いている時に実行される文章校正(オートコレクトなど)のものとは違い、Word 2003, 2007のオプションには設定が見当たらない項目となっています。(もしも違っていたら申し訳ございません。誰か指摘をお願いします)
これが発動すると、本機能の抑制はWord 2003, 2007からは困難となります。これは「困難」なだけなので抑制は可能で、ファイルを開いて「文書のオートフォーマット中」という表示が行なわれた瞬間にESCキーを押せばキャンセル(回避)する事は可能です。(気合で目押しです!)
しかし、相手がそのような事を知らないで開いてしまうと「見出しマップは破壊」され、もしもその状態を保存してしまって次の人に渡ると、その先は悲惨な事になります。(実際なりました。トータルで数日位Back to the Futureです)
そこで私はこの現象が直らないか、幾つかの検証をしました。
ちなみにWord 2007は「Microsoft Office Professional 2007(以降:Office 2007)」同梱のWord 2007で、Service Pack 3が当っている状態となり、本現象はWindows XP, Vista上の現象で確認しています。Mac OS上のWordは確認していません。
【検証】
1.文書のオートフォーマットをESCで回避した後に、見出しマップを
表示しないでファイルを保存し、次に開いたら問題が解消されるか?
[結果]
オートフォーマットは走らず現象が発生しない。
ただし、再び見出しマップを開いて保存すると再現してしまう。
2.Word 2003のファイルフォーマットを一旦Word 2007のフォーマット
(docx)に変換して、開き直したら問題が解消されるか?
[結果]
解消しない。
3.発生する人としない人がいるので、新しいアカウントを作成してみて、
その上で開いたらどうか?
[結果]
発生しない。最初は現象が発生しない。
4.コントロールパネルの「プログラムと機能」から、
Office 2007アプリケーションの修復を行なったらどうか?
[結果]
解消しない。
この中の「3」の結果が分ったので、レジストリを疑いました。
一般アプリケーションのレジストリ情報はWindows XP, Vista共々「HKEY_CURRENT_USER\Software」の下に設定されるのがガイドライン(エチケット)となります。
Office 2007のレジストリは「HKEY_CURRENT_USER\Software\Microsoft\Office」となります。
そこで思い切って、このレジストリ下の「12.0」(Office 2007の裏のバージョン番号)キーのバックアップを取り、それを削除をしてWord 2007を新規で実行したところ、ウェルカムダイアログ(ようこそ画面)が表示されました。
そして、オートフォーマットが行われなくなったかというと…なんと行われなくなりました!
(これは自己責任で行いました。真似される方も自己責任でお願いいたします)
しかし、2回目この現象が起きるファイルを開いていたら、再度同じ現象が…
更に酷い事に、見出しマップが…

アギギー!
なんだなんだ、このフォントの状態は… これは酷い状況です。タダの縮小と思ったら、これが最大サイズであり、これ以上の大きさにはないらい状況で、逆にこれを小さくすると物凄い小さいサイズになりました。2ドット位のフォントにw
この事から、
1.Word 2003形式のファイルにはオプションで設定が行えない
「見出しマップ情報」が埋め込まれている。
これに一度「感染」すると、その後は一環して、
見出しマップが表示された状態で保存して開くと、
「文書のオートフォーマット中」が発動する。
2.見出しマップの挙動は、レジストリに格納されている
(可能性がある)。ドキュメントファイル(.doc)を
操作せずにレジストリの操作により、見出しマップの挙動が
変化したため。
3.「1」「2」が連動している。
「1」がON/OFFフラグ、「2」が挙動に関する何か。(かな?)
という結果となりました。
ちなみに、この現象が発生するドキュメントファイルをWord 2010で開いたところ、現象が発生しませんでした。それどころか見出しマップのルック&フィールが非常に良くなっていて驚きました。
つまり、この「文書のオートフォーマット中」というのはWord 2003, 2007の不具合で、Word 2010にて解消されたという見解です。
Word 2007でリボンUIや今回のような不具合… 私はWordを「1.1」「1.2A」「5.0」「6.0」「95」「97」「98」「2000」「2003」「2007」「2010」…と、ずーっと使い続けていますが、年々使いづらくなって仕方がありません。私の中の「Best of Word」は「Word 2000」です。それ以降このワープロソフトは劣悪な道へ突き進んでいる気がします。(庶民は仕方なく何かにバンドルされたOfficeを使うしか道は無いのですが…)
個人的にはそろそろ原点回帰でTeXで物を書きたい気分です。(一応4年前から、20年振りにTeXで物を書いていますが、既存ドキュメントの修正ばかりだったりします…(´・ω・`))
何か趣味的なドキュメントをTeXで書く練習でもしようかな… 元相棒も現在社会人ドクターの論文をTeXで書いていると言っているし…
さて、振り返ると2.5年振りの「開発のあれこれ」カテゴリですね。
「元エンジニア」なので、これくらいが私にはお似合いですw
現在、仕事で「Microsoft Word 2003」「Microsoft Word 2007」(以降:Word 2003, 2007)をメインに使っているのですが、このうちWord 2003で作成したファイルをWord 2007で開くと、ある時点から場合により「見出しマップのオートフォーマット」というものが働き、その見出しマップのフォーマットが破壊されるという現象が発生しています。

ファイルを開くと「見出しマップ」の「オートフォーマット」
というのが「勝手に」走る…
ネット検索で調べてみると、何件かこの現象に見舞われている人がいるようで(ポータルサイトの質問コーナーにそれが書いてあったりしました)、それに対する回答されている方々の内容が明らかに的を得ていないような感じだったので(現在回答されていた内容では解消されていませんし)、私もこうして何か書いておこうかと思いました。(たまには技術的なノリで)
この現象は「オートフォーマット」と謳っていますが、普段文章を書いている時に実行される文章校正(オートコレクトなど)のものとは違い、Word 2003, 2007のオプションには設定が見当たらない項目となっています。(もしも違っていたら申し訳ございません。誰か指摘をお願いします)
これが発動すると、本機能の抑制はWord 2003, 2007からは困難となります。これは「困難」なだけなので抑制は可能で、ファイルを開いて「文書のオートフォーマット中」という表示が行なわれた瞬間にESCキーを押せばキャンセル(回避)する事は可能です。(気合で目押しです!)
しかし、相手がそのような事を知らないで開いてしまうと「見出しマップは破壊」され、もしもその状態を保存してしまって次の人に渡ると、その先は悲惨な事になります。(実際なりました。トータルで数日位Back to the Futureです)
そこで私はこの現象が直らないか、幾つかの検証をしました。
ちなみにWord 2007は「Microsoft Office Professional 2007(以降:Office 2007)」同梱のWord 2007で、Service Pack 3が当っている状態となり、本現象はWindows XP, Vista上の現象で確認しています。Mac OS上のWordは確認していません。
【検証】
1.文書のオートフォーマットをESCで回避した後に、見出しマップを
表示しないでファイルを保存し、次に開いたら問題が解消されるか?
[結果]
オートフォーマットは走らず現象が発生しない。
ただし、再び見出しマップを開いて保存すると再現してしまう。
2.Word 2003のファイルフォーマットを一旦Word 2007のフォーマット
(docx)に変換して、開き直したら問題が解消されるか?
[結果]
解消しない。
3.発生する人としない人がいるので、新しいアカウントを作成してみて、
その上で開いたらどうか?
[結果]
発生しない。最初は現象が発生しない。
4.コントロールパネルの「プログラムと機能」から、
Office 2007アプリケーションの修復を行なったらどうか?
[結果]
解消しない。
この中の「3」の結果が分ったので、レジストリを疑いました。
一般アプリケーションのレジストリ情報はWindows XP, Vista共々「HKEY_CURRENT_USER\Software」の下に設定されるのがガイドライン(エチケット)となります。
Office 2007のレジストリは「HKEY_CURRENT_USER\Software\Microsoft\Office」となります。
そこで思い切って、このレジストリ下の「12.0」(Office 2007の裏のバージョン番号)キーのバックアップを取り、それを削除をしてWord 2007を新規で実行したところ、ウェルカムダイアログ(ようこそ画面)が表示されました。
そして、オートフォーマットが行われなくなったかというと…なんと行われなくなりました!
(これは自己責任で行いました。真似される方も自己責任でお願いいたします)
しかし、2回目この現象が起きるファイルを開いていたら、再度同じ現象が…
更に酷い事に、見出しマップが…

アギギー!
なんだなんだ、このフォントの状態は… これは酷い状況です。タダの縮小と思ったら、これが最大サイズであり、これ以上の大きさにはないらい状況で、逆にこれを小さくすると物凄い小さいサイズになりました。2ドット位のフォントにw
この事から、
1.Word 2003形式のファイルにはオプションで設定が行えない
「見出しマップ情報」が埋め込まれている。
これに一度「感染」すると、その後は一環して、
見出しマップが表示された状態で保存して開くと、
「文書のオートフォーマット中」が発動する。
2.見出しマップの挙動は、レジストリに格納されている
(可能性がある)。ドキュメントファイル(.doc)を
操作せずにレジストリの操作により、見出しマップの挙動が
変化したため。
3.「1」「2」が連動している。
「1」がON/OFFフラグ、「2」が挙動に関する何か。(かな?)
という結果となりました。
ちなみに、この現象が発生するドキュメントファイルをWord 2010で開いたところ、現象が発生しませんでした。それどころか見出しマップのルック&フィールが非常に良くなっていて驚きました。
つまり、この「文書のオートフォーマット中」というのはWord 2003, 2007の不具合で、Word 2010にて解消されたという見解です。
Word 2007でリボンUIや今回のような不具合… 私はWordを「1.1」「1.2A」「5.0」「6.0」「95」「97」「98」「2000」「2003」「2007」「2010」…と、ずーっと使い続けていますが、年々使いづらくなって仕方がありません。私の中の「Best of Word」は「Word 2000」です。それ以降このワープロソフトは劣悪な道へ突き進んでいる気がします。(庶民は仕方なく何かにバンドルされたOfficeを使うしか道は無いのですが…)
個人的にはそろそろ原点回帰でTeXで物を書きたい気分です。(一応4年前から、20年振りにTeXで物を書いていますが、既存ドキュメントの修正ばかりだったりします…(´・ω・`))
何か趣味的なドキュメントをTeXで書く練習でもしようかな… 元相棒も現在社会人ドクターの論文をTeXで書いていると言っているし…
C/C++言語コーディング規約のあれこれ
なんか、久々にこのカテゴリで書いてみようと思いましたw
私は仕事上「Google C++スタイルガイド」を用いているのですが、協力会社の方々が書いたソースコードを見ていたところ、「そーいや、C言語のポインタ変数宣言のアスタリスク記述って、データ型の直後に書く人と変数名の直前に書く人、どっちが多いのだろう…」なんて思いました。
(これは以前から、たまぁ~に思ったりしていたのですが、久々にまた思いました)
例)
char *hoge; // 変数名の直前
char* hoge; // データ型の直後
私は仕事上「Google C++スタイルガイド」を用いているのですが、協力会社の方々が書いたソースコードを見ていたところ、「そーいや、C言語のポインタ変数宣言のアスタリスク記述って、データ型の直後に書く人と変数名の直前に書く人、どっちが多いのだろう…」なんて思いました。
(これは以前から、たまぁ~に思ったりしていたのですが、久々にまた思いました)
例)
char *hoge; // 変数名の直前
char* hoge; // データ型の直後
キーボードのあれこれ
今日(正確には昨日)、ブログ内の記事「ジュピターランダー」のコメントをいただいて、キーボードのお話が出ていたので、なんか書きたくなりました。
ちなみに、私が所有している「ぴゅう太」のキーボードは、消しゴムキーボード(本当は消しゴムではなくただのゴムです)なので、刻印はかなり薄くなっています。数字系はかなり薄れています…ゲームやベーシックで1などが一番入力されるからですね。
ちなみに、私が所有している「ぴゅう太」のキーボードは、消しゴムキーボード(本当は消しゴムではなくただのゴムです)なので、刻印はかなり薄くなっています。数字系はかなり薄れています…ゲームやベーシックで1などが一番入力されるからですね。
コンテナクラスへのデータ登録のあれこれ
仕事でC++のSTLを用いて、vector<データ>みたいな定義をやっているソースで、「こいつのpush_backって構造体(やクラス)の大きさによっては。オーバーヘッドって結構大きいよなぁ~」思いながら、「C#でゲームを作っている場合で構造体を定義した場合はどれ位マズイんだろ?」と、最近フト思いました。