Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード Twitter

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2009-07-02

[][][]文字数によって自動的に長体をかける

たとえば、7字取りの名簿のようなものがあったとします。

f:id:seuzo:20090701004802p:image

ご承知のとおり、7字までは「字取り機能」でいい具合になりますよね。しかし、7字以上の人名が入ってきたらどうでしょう? このように具合が悪いです(作家名の傾向がバラけているのは単に作例だから^^)。

f:id:seuzo:20090701005040p:image

InDesign CS2くらいだと「ヨシここは一丁、スクリプトでもんだるか」みたいな柔道一直線ワールドになりがちですが、InDesign CS4の「正規表現スタイル」を使えば、近藤正臣のように軽々と仕事をこなせます*1

f:id:seuzo:20090701005409p:image

拡大していただければ分かるんですが、「^.{11}$」は行頭から行末まで11文字きっかり*2の場合は文字スタイル「65」(長体65%の文字スタイル)が掛かっています。同様に10文字には「70」、9文字には「80」、8文字には「90」になっています。これが自動でかかるんですね。

f:id:seuzo:20090701005732p:image

めでたし、めでたし。

この他にも表組み内や、見出しなどにも応用できる技です。たとえば見出しで20文字以上は一律に長体90%適用したいなら、「^.{20,}」とすればいいでしょう。

f:id:seuzo:20090702111337p:image

f:id:seuzo:20090702111325p:image

*1:ヤングには例えが古いって...

*2:注意:行頭行末指定がなければ、きっかりにはなりません

RRRRRR 2009/07/02 14:35 いっつ わんだほー。
特に見出し関係は、修正で文字数が増減したとき処理が人によってまちまちになったり、忘れたりしがちなんですよね。
またまた素晴しい提案をありがとうございました。

seuzoseuzo 2009/07/02 14:51 これ、1行ごとしか処理できないわけじゃないです。
たとえば、最初の人名7字どりの直後にタブがあって住所が続くような場合でも
^[^\t]{7,}
とすればうまくいくはず。
たとえば、括弧内の文字が10文字を超えたら長体をかけたいなら
(?<=()[^)]{10,}(?=))
でいけるんじゃないかな。

しんちゃんしんちゃん 2018/04/17 11:08 文字数が「15以上20未満なら90%との長体」「20以上25未満なら80%との長体」とかできますか?

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証