Fix Mojibake for Glyphs

>> FixMojibake_102.tbz2 (4.3MB) [2016.5.15]

Glyphsは.glyphsファイルに「著作権」「注釈」「カスタムパラメーター」などへ入力されたテキストを保存しているわけですが、v2.3でこのテキストの保存形式が変更されました。そのため、v2.3以降の新しいファイルをv2.2までの旧Glyphs.appで開くと、「©」「É」や日本語などの非ASCII文字が化けます。

mojibake
mozibake
mojibake
そこで、文字化けを修復する専用アプリ「Fix Mojibake」を作りました。使い方は、文字化けしたまま保存された.glyphsファイルをアプリアイコンにドラッグ&ドロップするだけです。アプリが文字化けを直すと、ファイル保存パネルが表示されるので、修復された.glyphsファイルを保存してください。

  • このアプリを初めて使うときは、下記の要領で1度だけ起動してください。
    1. アプリアイコンを選択して右クリックメニューを表示する
    2. 「開く」メニューを選択し、「開く」ボタンを押す。
  • このアプリが直せるのは「旧バージョンで文字化けしたまま保存したファイル」です。v2.3以降の新しいファイルを旧バージョンで文字化けなく開くには、とにかく旧バージョンで開いて、文字化けしたまま保存しちゃってください。そのファイルをこのアプリで修復すると旧バージョンで文字化けしなくなります。
  • このアプリは、そのテキストが文字化けしているかどうかの判定はできません。それはとても難しいのです。文字化けしていることを前提に処理をするので、「文字化けしていない非ASCII文字」はかえって化ける可能性があります。

Glyphs saves a text of “Copyright”, “Annotation”, “Custom Parameter” and other in .glyphs file. After v2.3, the saving format of these texts was changed. Therefore non-ASCII characters (e.g., © É あ) are garbled when the new file after v2.3 is opened by an old version Glyphs.app.

I made App “Fix Mojibake” which fixed the .glyphs file that a garbled text was saved. How to use: You only do drag & drop the .glyphs file to App icon. After having fixed, App displays a save panel. You must save the fixed .glyphs file.

  • When you use this App for the first time, please launch by the following method only once.
    1. Select App icon. And display a right-click menu.
    2. Select “Open” menu. And push the “Open” button.
  • This App can fix the file that a garbled text was saved. When you open the file by an old version and save a garbled text by an old version and are fixed by this App, the fixed file is not garbled in an old version.
  • This App cannot judge whether the text is garbled. It is very difficult. Therefore, a non-ASCII characters which is not garbled may be garbled.

約物Webフォント

このブログでは本文に自作の「約物Webフォント」を試しに使っています。
要は、「←こんな感じに」(←約物が連続しても)、←自動的にアキすぎない体裁になるわけです。
約物合字Webフォント
特定の約物グリフが並んだらligaで合字グリフに置換しているだけ。
CSSで「約物Webフォントをフォント指定の先頭にする」「ligaが効くようにする」と、ちゃんと良い感じになってくれました。
カンタンなのでやってみると楽しいですよ!

モリサワのPr6/Pr6Nはバージョン違いで文字化けする

モリサワのPr6とPr6Nはバージョン違いで文字化けします。当時はかなり騒がれたのですけど、すっかり忘れかけていたところに実際の文字化け印刷事例に遭遇しました(他社制作の案件)。

そこで改めて注意喚起をしておきましょう。まず状況を整理します。

  • 2013年8月20日にモリサワから「IVS対応アップデータ」がアナウンスされ、無償配布される。
  • この時点から「非IVS対応版」「IVS対応版」のバージョン違いが混在することになる。
  • 両者はフォント名が同一なので見分けるのは困難。
  • 現在、MORISAWA PASSPORTで入手できるのは「IVS対応版」のみ。

問題になるのは、上記の新旧バージョンの組み合わせで文字化けが発生することです。とくにDTPデータの制作環境と出力環境で新旧バージョンの齟齬があった場合が一番危険です。どの組み合わせで文字化けするのか見てみましょう。
文字化けする組み合わせ
文字化けする組み合わせはたった1つ。新バージョンで制作したDTPデータを出力側が旧バージョンで開いてしまったときです。

つまり、文字化けを根本的に防ぐには、出力側で常に新バージョンで開けば良いわけですね。簡単に解決できます。

ところがいまだに「旧バージョンで開いてしまう出力環境」が存在します。その理由はたぶん、

  • モリサワの注意喚起がかなり遅れてしまった上に、周知を徹底しなかった。
  • モリサワの注意喚起そのものが分かりにくく、だからどうすればいいのか判断できない人が多かった。
  • 出力側は「これまで大丈夫だったのだから、新しいバージョンにしたら事故になるかも」と事故回避のためにあえて旧バージョンのままにした。
  • この問題そのものを知らない。

私の予想は「問題はなんとなく知っているけれど、よくわからなかったので、あえて事故回避のため旧バージョンのままにしたのだが、そういう問題があることを忘れてしまった」…こんなところが多いのではと思っています。

しかし上記で見た通り、出力側が旧バージョンにしていることが最も危険なのであって、事故回避がむしろ事故を誘発する原因になっている。しかも今のMORISAWA PASSPORTがリリースしているのは新バージョンだけなので、あれから数年経過して「新バージョンで制作している環境」が増え続けているわけです。この現状でなおも出力側が旧バージョンを使い続けるのは、わざと文字化けさせようとしているのも同然の愚行ですし、数年前に騒がれた当時より今の方がはるかに危ない状況になっているといえるでしょう。

必読。
最近、モリサワのようすがちょっとおかしいんだが。- Mac OS Xの文字コード問題に関するメモ

追記:
この文字化けはIVSが原因ではありません。上記の直井さんのブログ記事でも書かれていますが、原因は「IVSを実装するためのCMap変更」です。実はIVS自体にもかなり危険な文字化け誘発要素があるのですけど、ここでの文字化けとはまったく別です。

Glyphsで日本語OpenTypeフォントを作る

Glyphsで日本語OpenTypeフォントを作るには、少しだけコツが必要です。

そのコツを『+DESIGNING VOLUME 40』で詳細に解説したので、まずはこちらを購入してください。大曲さん照山さんの超強力監修付きですから、安心してなめるように読んでください

そして、ここでひとつ残念なお知らせです。上記vol.40はGlyphs v2.1に基づいていたのですが、その後のv2.2以降で仕様が変わり、もう1カ所だけ設定が必要になってしまいました…。バグなのか仕様なのか判断できず、様子見をしていたのですが、なんとなく仕様っぽいので遅ればせながらここに書いておくことにします。

Glyphs v2.2以降で必要な設定「glyphOrder」

手順

  1. 「.notdef」のグリフがなかったら追加する。
  2. 「space」のグリフがなかったら追加する。
  3. 「.notdef」「space」を追加

  4. メニューバー「ファイル > フォント情報」の「フォント」タブでカスタムパラメーターを追加し、プロパティを「glyphOrder」にする。
  5. glyphOrderを追加

  6. 値の「新規プロパティ」をクリックして、「.notdef」「space」を上から順番に一行ずつ改行して入力する。
  7. 値に入力

結果はこうなります。
glyphOrder

説明

リスト表示にすると、「.notdef」「space」が先頭に並んでいるのが分かります。
リストビュー
「glyphOrder」はグリフの並び順を設定する機能です。これを追加した目的は、space(欧文スペース)のIDを上から2番目の「1」にするためです(.notdefだけは自動的に先頭に並ぶ特殊なグリフなので、Glyphsとフォントファイルのグリフの並び順を完全に一致させるには、.notdefのIDを0にする必要があります)。

以前のGlyphs(v2.1まで)はフォント書き出し時にこれを自動的にしてくれたのですが、v2.2以降はしてくれないので、こうしてユーザが並び順を自分で設定しておく必要があります。glyphOrderに他のグリフ名を入れる時も、先頭から順番に「.notdef」「space」が並ぶようにしてください。

IllustratorやInDesignは、「パスがない空のグリフ」がフォントファイルの中で2番目に並んでいるのを前提にして様々な処理をしています(これはとくにおかしな仕様ではありません)。なので、spaceが2番目にないと「Illustratorで文字をアウトライン化したら消えてしまった」「リガチャにしたら関係ない文字がダブって表示された」など、様々な想定外のトラブルが発生してしまうのです。

日本語フォントをGlyphs v2.2以降で作る時、「glyphOrderの設定」は必須です

Glee 1.8.3

Glee_icon
Glee 1.8.3 を公開しました!
ダウンロードは Glee Web サイトでどうぞ。

  • CC 2015.2(11.2.0.99)で保存した.inddのバージョン情報が「11.2.0.100」になってしまうInDesign側の不具合に対処した。

【Glee】InDesign CC 2015.2のバージョン検出について で「Gleeでは対処方法がありません」と書いたのですけど、対処しました。

.inddのバージョン情報が「11.2.0.100」のときだけは、11.2.0.99のInDesign.appで警告なくそのまま開くようにしました。自分で使っていてかなりストレスフルで悩んでいまして、この例外処理を仕込めばいいことにやっと気づいた次第です。気づくのが遅くて申しわけない…!