フォントには同じ名前でバリエーションがいくつか存在するものがあります。例えば中ゴシックBBBは Pro/Pr5/Pr6/Pr6N/Upr/NewCID のバージョンに別れ,さらに学参,学参 常改などの種類も用意されています。ややこしいですね。
FontExplorer X ProやNexusFontなどのフォント管理アプリで使うものだけ有効にしておけば選び間違いは減りますが,それを使わないかたのデータを受け取ると統一されていないことがしばしば。
もし制作業務を引き継ぐ場合は安全のために気持ち悪さをこらえ,そのまま進めるでしょう。しかし,支給されたデータをこれから改造するときは1種類に揃えたいのではないでしょうか。
そこで今回は開いている書類のフォントを,ProやPr6など指定した文字セットの書体に置換するIllustrator用JavaScriptを紹介します。
動画で見てみたい
あらましを教えて
開いている書類のすべてのフォントを,ProやPr6など指定した種類の書体に置換するIllustrator用スクリプトです。sttk3-unifyCharcterSet 1.7.0と呼びます。
モリサワパスポート・Morisawa Fontsに含まれていて,変換先の種類が存在する書体が置換対象になります。
例えば書類にA-OTF 中ゴシックBBB Pro MediumとA-OTF UD新ゴ Pro Lがあり,文字セットにPr6Nを指定した場合,A P-OTF 中ゴシックBBB Pr6N RとA P-OTF UD新ゴ Pr6N Lに変更されます。
どのバージョンに対応してるの?
Illustrator CS6(16)〜2024(28) に対応しています。
- macOS 10.14(Intel),Illustrator CS6, CC2015.3〜2021
- macOS 12.6(Apple Silicon),Illustrator 2022〜2024
- Windows 10,Illustrator CS6, CC2019〜2024
どうやって種類を指定するの?
スクリプトのファイル名を characterSet=オプション文字.jsx のような特定の形式にすることで,変換先の種類を指定します。ファイル名の再編集により,それらの設定を変えられます。
どんな種類が指定できるの?
次のようになっています。
オプション文字 | 動作説明 |
---|---|
Pro | フォントの種類をProに統一する |
Pr5 | フォントの種類をPr5に統一する |
Pr6 | フォントの種類をPr6に統一する |
Pr6N | フォントの種類をPr6Nに統一する |
Std | フォントの種類をStdに統一する |
StdN | フォントの種類をStdNに統一する |
ProN | フォントの種類をProNに統一する |
Upr | フォントの種類をUprに統一する |
Max | Nのつかない文字セット(Pr6, Pr5, Pro, Std, Min2, Min)の中で最も収録文字数の多い種類に設定する |
MaxN | 文字セット(Pr6N, Pr6, Pr5N, Pr5, ProN, Pro, StdN, Std, Min2, Min)の中で最も収録文字数の多い種類に設定する |
argv | オプション文字をスクリプト実行時の引数で指定する |
使いかた
- 変換先のフォントをアクティブ(使用可能)にする
- 置換対象にしたいテキストのロックを解除し,非表示なら表示に切り替える
- 書類が保存されていなければ保存する(書類のメタデータから使用中の書体を取得するため,保存しないと正しい書体がとれない)
- スクリプトを実行する
すると書式メニューの[フォント検索…]相当の機能で,指定した種類の書体に置換されます。
注意点
- 字形が変わるので,繊細な校正が必要な状況では使わないでください。支給されたフォーマットデータを洗浄するような用途に最適です
- 合成フォント内の書体は変換できません
- ヒラギノ角ゴシックなどもモリサワパスポートに含まれるため,指定した種類が存在すれば置換対象になります
- G-OTFで始まる学参書体はA-OTFに統合します
- UD新ゴNTはNTでないUD新ゴに統合します
A P-OTFの扱い
基本的には,A-OTFとA P-OTFがあったらA P-OTFに統合します。
スクリプトバージョン1.7.0からは,A P-OTFを統合するかしないか指定できるようになりました。もしA P-OTFに統合しない(A-OTFとA P-OTFを別々の扱いにしたい)場合は,スクリプトのファイル名に-NoAPOTFを追加してください。
characterSet=オプション文字-NoAPOTF.jsx
Max・MaxNの動作
スクリプトバージョン1.6.0までは,この世に存在する同じシリーズのフォントの中で最も収録文字数が多い種類に自動統一を試みていました。
バージョン1.7.0からは,スクリプトを実行する環境の中で有効になっているフォントを優先して統一を試みます。有効なフォントがない場合は,バージョン1.6.0までと同様世界から対象を探して統一を試みます。
A1明朝のウェイト
A-OTF A1明朝 StdはウェイトB相当1つ分でしたが,A P-OTF A1明朝 StdNではR・M・Bのウェイトにわかれました。A-OTF A1明朝 Std BとA P-OTF A1明朝 StdN Rが同等の太さになります。このスクリプトではその関係性を保ち,A-OTF A1明朝 Std BとA P-OTF A1明朝 StdN Rが同一シリーズとみなします。
買いたい!
今回のスクリプトはnoteで販売しています。
これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!
このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。
スクリプトを実行したところ
「Unable to load the AdobeXMPScript Library」と出てしまうのですが、どのようにしたら実行できますでしょうか。
Illustrator 25.4はバグ(仕様?)により,スクリプトに必要なパーツが含まれていません。25.2.3などに戻して実行していただけますでしょうか。
また,よろしければ修正を早めるためにUserVoiceに投票をお願いいたします。
reading XMP data in scripts broken by 25.4 update.