リンクをクリップボードにコピー
コピー完了
【前提条件】
氏名は「苗字」「全角スペース」「名前」という形式で入力されている(例:「山田 太郎」「長谷川 太郎」)。
苗字と名前の間の全角スペースはすでに手動で入力済み。
苗字と名前は可変長(例:「山田」「佐藤」「長谷川」など)。
【やりたいこと】
1.段落スタイルを設定し、氏名全体に適用。
2.正規表現スタイルを使って、以下の処理を行う:
・苗字の各文字の後ろに「全角アキ(1字分)」を入れる。3文字の場合は入れない。
・名前の各文字の後ろにも「全角アキ」を入れる。3文字の場合は入れない。
・苗字・名前それぞれが合計3字分の幅になるよう調整し、苗字+名前で合計7字分に。
写真さんのようにしたいです。この説明でわかりますでしょうか?
リンクをクリップボードにコピー
コピー完了
正規表現スタイルで実現するのがいいです。
^.(?=.~()
(?<=~().(?=.~$) (註:すみませんスマホから手打ちでしくじりました…正しくは (?=.~($) です)
に、それぞれ後アキ全角の文字スタイルを設定。
1つで書くのもできますが2つに分けて全然いいと思います。
リンクをクリップボードにコピー
コピー完了
ご返信ありがとうございます!
正規表現スタイルを2つに分けて設定する方法、非常に参考になりました。
少し確認なのですが、「~()」は全角スペースの指定、「.」は1文字を意味していて、前半が苗字の最後の1文字、後半が名前の1文字目にマッチするという理解で合っていますでしょうか?
なお、試してみたところ
後半の正規表現 (?<=~().(?=.~$) がうまく動作しませんでした。
設定上の問題か、対象の文字列に対して正しくマッチしていないのかもしれません。
もう少し詳しくご教示いただけると嬉しいです。
よろしくお願いいたします!
リンクをクリップボードにコピー
コピー完了
全角スペースは「~()」ではなくて「~(」です。その後の閉じ括弧は先頭の括弧に対応するものです(肯定後読み)。
後半の方は「~」が余計ですね。「(?<=~().(?=.$) 」です。
リンクをクリップボードにコピー
コピー完了
お〜まちさん,書き損じのフォローありがとうございます_(:3 」∠)_
ご指摘のとおり、置換は
(?<=~().(?=.~($)
が本来お伝えしたかった正規表現です。
皆さんからある通り、姓名の字数の組み合わせは全部拾うとけっこうな感じになるんですが
原稿に入っちゃってる全角スペースを生かすか、削除して勝手にいい感じにやるか、は自分は状況ごとにアプローチを変えています。今回は前者と判断して、いったん聞かれたまま答えてみました(式まちがってましたが…)。
個人的には当初の要望通りにとりあえず2+2だけに的を絞り、
名前がきちんと整ったら、もっと欲張ってみよう、がいいと思います。
時間が許すなら、なのですが。ステップを踏まないと身に付かないかもですし。
リンクをクリップボードにコピー
コピー完了
氏名7字取りですね。次のパターンで、□の部分をあけるということでいいかしら。7文字の人やそれを超える人はいるのかしら。
リンクをクリップボードにコピー
コピー完了
ご確認ありがとうございます!
はい、ご認識の通りで、氏名を「7字取り」で配置し、
苗字と名前の間にあらかじめ入力されている全角スペース(□)を基準に、両側の文字間を調整して均等配置にしたいという意図です。
対象の氏名は基本的に「姓+全角スペース+名」で、全体で7文字以内を想定しています。
(例:「山田 太郎」「佐藤 花子」など)
7文字を超えるような長い氏名は今回の対象外なので、そうしたケースは別途対応予定です。
文字数に応じて後アキなどで見た目を整える方法を模索しているところです。
引き続き、アドバイスいただけますと助かります!
リンクをクリップボードにコピー
コピー完了
2文字のケースは上に書いたので1文字のケースです。
姓が1文字の場合は「^.(?=~()」(行頭に1文字あり、次が全角空白)になります。この文字に対してトラッキング2000を設定します(後アキは全角までなので)。
名が1文字の場合は、その文字に「前アキ2文字分」を設定したいところですが、InDesignの機能ではそれはできません。したがって、その前の全角空白に対してトラッキング2000を設定しなければなりません。正規表現は「~((?=.$)」となります。
以上の結果、次のようになります。
姓が4文字というのは意外とあるので、手動で構わないならここまでです。
リンクをクリップボードにコピー
コピー完了
姓と名の組合せは全15パターンですよね。
これらは全角スペースを加えることで7字取りにできます。
テキストエディタで全角スペースを加えるだけで良いような気がします。
リンクをクリップボードにコピー
コピー完了
自分だったら、全角スペースをずべて削除して、字取り機能を使います。
テキストフレームでも、一度フレームグリッドに変換して文字サイズを変更してからテキストフレームに戻せば、希望の文字サイズが設定できたはずだったと思います。
リンクをクリップボードにコピー
コピー完了
アドバイスありがとうございます!
なるほど、全角スペースを削除して字取り機能で調整する方法も、確かに理にかなっていて綺麗ですね。
さらに、フレームグリッドを使って文字サイズを一括で調整し、その後テキストフレームに戻すという流れもとても参考になります。
ただ、この方法ですと、同じフレーム内で文字サイズが10Qだったり12Qだったりとバラつきが出てしまうため、全体の統一感を保つのが難しくなってしまいます。
その点から、今回はこの方法の採用は見送ろうと思っています。
とはいえ、とても有益なご提案をいただき感謝しております!ありがとうございました。
リンクをクリップボードにコピー
コピー完了
皆さま
このたびは、私の質問にご丁寧にご返信いただき、本当にありがとうございました。
おかげさまで無事に問題を解決することができ、大変助かりました。
それぞれのご意見やアドバイスがとても参考になり、勉強にもなりました。
今後も何かありましたら、また相談させていただくかもしれませんが、その際はどうぞよろしくお願いいたします。
改めて、心より御礼申し上げます。
新しいアドビコミュニティで、さらに多くのインスピレーション、イベント、リソースを見つけましょう
今すぐ検索