Skip to main content
cp9
Known Participant
May 18, 2025
Question

氏名(例:「山田 太郎」)を7字分のスペースに均等配置したい。

  • May 18, 2025
  • 4 replies
  • 1048 views

【前提条件】
氏名は「苗字」「全角スペース」「名前」という形式で入力されている(例:「山田 太郎」「長谷川 太郎」)。
苗字と名前の間の全角スペースはすでに手動で入力済み。
苗字と名前は可変長(例:「山田」「佐藤」「長谷川」など)。

【やりたいこと】
1.段落スタイルを設定し、氏名全体に適用。
2.正規表現スタイルを使って、以下の処理を行う:
・苗字の各文字の後ろに「全角アキ(1字分)」を入れる。3文字の場合は入れない。
・名前の各文字の後ろにも「全角アキ」を入れる。3文字の場合は入れない。
・苗字・名前それぞれが合計3字分の幅になるよう調整し、苗字+名前で合計7字分に。

写真さんのようにしたいです。この説明でわかりますでしょうか?

    4 replies

    cp9
    cp9Author
    Known Participant
    May 20, 2025

    皆さま

    このたびは、私の質問にご丁寧にご返信いただき、本当にありがとうございました。
    おかげさまで無事に問題を解決することができ、大変助かりました。
    それぞれのご意見やアドバイスがとても参考になり、勉強にもなりました。

    今後も何かありましたら、また相談させていただくかもしれませんが、その際はどうぞよろしくお願いいたします。
    改めて、心より御礼申し上げます。

    bizarre_n
    Community Expert
    Community Expert
    May 19, 2025

    自分だったら、全角スペースをずべて削除して、字取り機能を使います。

    テキストフレームでも、一度フレームグリッドに変換して文字サイズを変更してからテキストフレームに戻せば、希望の文字サイズが設定できたはずだったと思います。

    cp9
    cp9Author
    Known Participant
    May 19, 2025

    アドバイスありがとうございます!

    なるほど、全角スペースを削除して字取り機能で調整する方法も、確かに理にかなっていて綺麗ですね。
    さらに、フレームグリッドを使って文字サイズを一括で調整し、その後テキストフレームに戻すという流れもとても参考になります。

    ただ、この方法ですと、同じフレーム内で文字サイズが10Qだったり12Qだったりとバラつきが出てしまうため、全体の統一感を保つのが難しくなってしまいます。
    その点から、今回はこの方法の採用は見送ろうと思っています。

    とはいえ、とても有益なご提案をいただき感謝しております!ありがとうございました。

    Omachi
    Legend
    May 18, 2025

    氏名7字取りですね。次のパターンで、□の部分をあけるということでいいかしら。7文字の人やそれを超える人はいるのかしら。

    cp9
    cp9Author
    Known Participant
    May 19, 2025

    ご確認ありがとうございます!

    はい、ご認識の通りで、氏名を「7字取り」で配置し、
    苗字と名前の間にあらかじめ入力されている全角スペース(□)を基準に、両側の文字間を調整して均等配置にしたいという意図です。

    対象の氏名は基本的に「姓+全角スペース+名」で、全体で7文字以内を想定しています。
    (例:「山田 太郎」「佐藤 花子」など)

    7文字を超えるような長い氏名は今回の対象外なので、そうしたケースは別途対応予定です。

    文字数に応じて後アキなどで見た目を整える方法を模索しているところです。
    引き続き、アドバイスいただけますと助かります!

    Omachi
    Legend
    May 20, 2025

    2文字のケースは上に書いたので1文字のケースです。

    姓が1文字の場合は「^.(?=~()」(行頭に1文字あり、次が全角空白)になります。この文字に対してトラッキング2000を設定します(後アキは全角までなので)。

    名が1文字の場合は、その文字に「前アキ2文字分」を設定したいところですが、InDesignの機能ではそれはできません。したがって、その前の全角空白に対してトラッキング2000を設定しなければなりません。正規表現は「~((?=.$)」となります。

     

    以上の結果、次のようになります。

    姓が4文字というのは意外とあるので、手動で構わないならここまでです。

    ajabon grinsmith
    Community Expert
    Community Expert
    May 18, 2025

    正規表現スタイルで実現するのがいいです。

    ^.(?=.~()

    (?<=~().(?=.~$) (註:すみませんスマホから手打ちでしくじりました…正しくは (?=.~($) です)

    に、それぞれ後アキ全角の文字スタイルを設定。

    1つで書くのもできますが2つに分けて全然いいと思います。

    cp9
    cp9Author
    Known Participant
    May 19, 2025

    ご返信ありがとうございます!

    正規表現スタイルを2つに分けて設定する方法、非常に参考になりました。
    少し確認なのですが、「~()」は全角スペースの指定、「.」は1文字を意味していて、前半が苗字の最後の1文字、後半が名前の1文字目にマッチするという理解で合っていますでしょうか?

    なお、試してみたところ
    後半の正規表現 (?<=~().(?=.~$) がうまく動作しませんでした。
    設定上の問題か、対象の文字列に対して正しくマッチしていないのかもしれません。

    もう少し詳しくご教示いただけると嬉しいです。
    よろしくお願いいたします!

    Omachi
    Legend
    May 20, 2025

    全角スペースは「~()」ではなくて「~(」です。その後の閉じ括弧は先頭の括弧に対応するものです(肯定後読み)。

    後半の方は「~」が余計ですね。「(?<=~().(?=.$) 」です。