InDesign 合成フォントの名前を変更
InDesignで、ドキュメントに含まれる合成フォントの名前を変更します。
InDesignの通常の操作では合成フォントの名前を変更する機能は用意されていません。そのため名前を変更したい場合は次の手順を踏むことになると思います。
- 名前を変更したい合成フォントをコピーして新しい名前の合成フォントを作成する
- 「検索と置換」機能などを使い、ドキュメントで使用されている以前の名前の合成フォントを新しいものに置き換える
- 以前の名前の合成フォントを削除する
名前を変更したい合成フォントの数が1つであれば大した手間ではないですが、数が多くなると非常に手間です。特に作業の管理が大変で、まだ未処理の合成フォントを削除してしまうと、ドキュメントを復帰して最初からやり直すということになりかねません。
名前を変更できないことには理由があります。それは、「一旦フォントファイルを作成する」という合成フォントの特殊な仕様が関係していて、簡単に名前を変えられると困るのです。合成フォントの仕様と挙動について詳しくはブログ記事を参照してください。
ところが、スクリプトからは合成フォントの名前を変更できます。これはInDesignには割とあることで、実は内部では機能制限せず、操作画面で機能制限をかけているからです。しかし、簡単に名前を変えられるといっても、操作画面で制限されているわけですから、やりようによってはInDesignが動作不能になる可能性もあります。以下の注意事項をよく守って使用してください。
スクリプトの挙動説明
合成フォントを含むドキュメントを開くと、以下の場所にフォントファイルと思われるファイルが作成されます。
Windowsの場合
C:\Users\[UserName]\AppData\Roaming\Adobe\InDesign\[Version]\ja_JP\CompositeFont
Macの場合
/Users/[UserName]/Library/Preferences/Adobe InDesign/[Version]/ja_JP/CompositeFont
また、この1つ上の階層にある「InDesign Defaults」ファイルと「AdobeFntComposite.lst」が書き換えられます(詳細はブログ記事)。
ここでスクリプトで合成フォント名を変更します。
すると、フォルダの中には、新しい名前の合成フォントファイルが作成されます。
ドキュメントを保存して閉じると、フォルダからは使用していた(つまり新しい名前)フォントが削除されます。
古い合成フォントは残ったままになりますが、InDesignを終了すると、この残ったフォントは削除されます。
このように、合成フォントは一旦ファイルを作成しますので、後述するように使えないファイル名があったり、重複する名前を使えないという制限があります。また、InDesignが異常終了すると古い合成フォントファイルが削除されずに残ってしまい、不具合を起こす可能性があります。
なお、この挙動はInDesign 2019以降で確認したものです。古いバージョンのInDesignでは挙動が異なる場合があります(少なくともCSやCS2では異なります)。CS6前後のバージョンでは確認できていません。
スクリプトの動作環境と仕様・注意事項
このスクリプトは、ドキュメントに含まれる合成フォントの名前を変更します。アプリケーションレベル(ドキュメントを開いていない状態)で作成された合成フォントは対象外です。
このスクリプトは以下の環境で動作が確認できています。
- Windows版InDesign 2019
- Windows版InDesign 2023
- Mac版InDesign 2020
- Mac版InDesign 2022
CS2以前のバージョンでは動作しないことがわかっていますが、どのバージョンから使えるかは分かっていません。
合成フォント名には次の制限事項があります。
- 以下の文字は使用できません
" % & ( ) * . / : < > ? [ \ ] _ { | }
これはInDesignにより制限されています。理由はブログ記事参照
- 以下の名前は使用できません(名称の一部に含まれる場合は大丈夫です)
AUX COM0 ~ COM9 CON LPT0 ~ LPT9 NUL PRN
これはWindowsのファイル名で予約されている単語です。Macでは問題ありませんが、データ受け渡しを考慮して禁止しています - 合成フォントの名前は28文字以内です。ユニコード2面以降の文字は2文字と数えますので、28文字以内であっても制限対象になる場合があります
- 合成フォントの名称は新旧含めて同じものがあってはいけません。つまり、「合成フォントA」と「合成フォントB」の名前を入れ替えるということはできません
スクリプト実行後は念のためInDesignを再起動することをお勧めします。上で書いたように正常に終了すれば使われなくなった合成フォントは削除されるはずですが、残ったまま作業を続けると予期しないことが発生する可能性があります。最悪、環境設定の再作成を行わなければならないかもしれません。
インストール方法
- 最下部のリンクから「renamecompfont000.zip」ファイル(000の部分はバージョン番号が入ります。以下同)をダウンロードします。
- zipファイルを解凍すると「合成フォント名変更000.jsx」というファイルが作成されます。
- 「合成フォント名変更000.jsx」を「Scripts Panel」フォルダ内に移動します。「Scripts Panel」フォルダは次のようにして開きます。
- InDesignを起動しスクリプトパネルを開きます。
- 「ユーザー」をクリックして選択します。
- パネルメニュー(右クリックメニュー、コンテキストメニュー)から「Finderで表示」(Macの場合)または「エクスプローラーで表示」をクリックします。
実行方法
合成フォントの名前を変更したいドキュメントを開き、スクリプトパネルから「合成フォント名変更000.jsx」をダブルクリックします。次の画面で変更したい合成フォントの隣の入力欄に新しい合成フォント名を入力します。変更しない合成フォント名の入力欄は空欄です。
次のメッセージが表示されたら完了です。