Glyphsで作成した文字の一覧(文字+Unicode)を出力する方法

広告
広告

ないと地味に不便な『作成文字一覧の出力』

Glyphs、基本的には使うほどに「いや~こいつスゴイわ~」と感動が深まる良アプリケーションなのですが、唯一「別の某フォント作成ソフトには存在するアノ機能、Glyphsにはどうして無いの!?」と不便に感じてしまう部分がありまして……。

それが【作成文字一覧の出力】なのです。

この機能、搭載されている別の某フォント作成ソフトでは、作成した文字を一括でチェックしたり、ダウンロードサイトに「使用可能文字」として表記したりする際に利用したりと、とても重宝している機能なのですが……。

Glyphsにはなぜか(というか、欧米発祥のGlyphsだからこそ?なのかも)現状この機能が実装されておらず、どうも将来的にも実装されなさそうな感じ……。

ただ、この一覧出力、実現不可能な機能なのかというと全くそうではなく、どうやらGlyphsの持つマクロ機能(Pythonスクリプト)を使えば簡単にできちゃうようなのです。

ということで、Glyphsのマクロ機能を使って作成済み文字一覧を出力するPythonスクリプトを書きました(たった6行のスクリプトなので、書きました、ってほどでもないですが)。当方、スクリプト作成に関しては素人ですので(そんな私でも、Glyphsの公式スクリプトチュートリアルはとてもわかり易かったです)、動作保証はいたしかねますのでご了承ください。

スクリプトの改善点など、「こうすればもっと良いよ!」というアドバイスぜひぜひお待ちしております。

マクロパネルを利用した作成済み文字一覧の出力方法

  1. 出力したいフォントのマスターを選択し、カテゴリーで「すべて」をクリックし、グリフを全て選択状態にします。(←コレ大事です。選択状態にあるグリフのうち、パスの存在するデータを出力します。)
  2. メニューの「ウィンドウ」から「マクロパネル」を開きます。
  3. 上半分のエリアに、下記のスクリプトをコピー&ペーストして、実行ボタンをクリックします。
    print "---start---"
    for thisLayer in Glyphs.font.selectedLayers:
    	if len(thisLayer.paths) > 0:
    		print thisLayer.parent.string,	
    		print thisLayer.parent.name
    print "---end---"
  4. 下半分のエリアに、1.で選択したグリフのうち、パスが存在するグリフの一覧が出力されます。
    スクリプトの仕様上、「space」や「.notdef」のようなパスデータの存在しないグリフは出力されませんのでご注意ください。
  5. 出力結果をテキストファイルにコピーしてスペース区切りのCSVに変換するなど、自由に加工します。

おまけ

今回のスクリプトは、枠があるだけで未作成の状態にあるグリフは出力されないように、データ内にパスが1つ以上含まれるグリフのみ一覧出力するようにしてあります。

もし「空欄になっている未作成グリフも出力したい!」という場合は、スクリプト3行目の

if len(thisLayer.paths) > 0:

の末尾の0を、下記のように「-1」に書き換えることで、全てのグリフを出力することができるようになります。

if len(thisLayer.paths) > -1:

コメント

タイトルとURLをコピーしました