忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
段落末で右揃えの(35歳、主婦)みたいな奴



こう↑いうふうに、段落のいちばん最後に右揃えの文字列を置きたい。本文と同じ行に全て入りきる場合は同じ行に収めて、入りきらない場合は丸ごと次の行に送りたいわけだが、それを文量に応じて勝手にやってほしい、という話。

こんな時に便利なのが『右インデントタブ』ですが、これだけでは「入りきらない場合に丸ごと次の行に送る」ができない。
そこで右インデントタブから末尾までに『分割禁止』を適用してやりましょう。



『左揃え』の段落であればこれでOKだけど、『均等配置(最終行左/上揃え)』だと次の行に送ったときに、前の行が均等配置になってしまう…


ってあたりまでは結構前に考えたのだけど、最近『フラッシュスペース』なるものを知ったのでもうちょい発展させてみた。

アドビによるフラッシュスペースの説明はこれ
なんか、『両端揃え』が適用された欧文の最後の行でしか効果を発揮しないような書き方ですがそんなことはないみたいです。

要は両端揃え(均等配置)によって発生する文字間(欧文なら単語間)のアキを、すべて俺が引き受けるぞーっていうスペース。
ただし、
・行頭禁則かつ行末禁則みたいな特殊な扱いになってる
・最小でも半角スペースと同じ幅は持つ
という性質があるらしい。

以上をふまえて、本文と『(30歳、主婦)』の間にフラッシュスペース+先頭文字スタイルの終了文字+右インデントタブを挿入し、右インデントタブから末尾までをに『分割禁止』を適用してやる。さらに、フラッシュスペースに半角スペースの幅程度のマイナスの字送りを設定してアキが出ないようにする。


なんかうまくいったっぽい。
面倒なのは半角スペースの幅がフォントによって違うこと。
小塚明朝Rでは278/1000emくらいだった。

『先頭文字スタイルの終了文字』を使う理由は、フラッシュスペースの後になんらかの透明な文字が必要だけど、スペース系だとフラッシュスペースが有効に機能しないし(特に段落コンポーザーで)、『結合なし』だと後述のバグが怖いから。


フラッシュスペース+先頭文字スタイルの終了文字+右インデントタブの挿入は、文を打つときに適当な記号を入れといて、流し込んでから置換すればいい(正規表現置換なら『~f~h~y』)。

字送りマイナスと分割禁止の適用は、正規表現スタイルを使うか、置換クエリに組み込んでやるか…
後者だと置換クエリを複数回実行しなきゃいけなくなるけど、むやみに正規表現スタイルを増やさないというのは良いことだと思う。


おまけ

上のを考えてるときに遭遇したバグ

①縦組みテキストフレームを作成
②『あいうえおか』と入力
③縦に4文字入るくらいのサイズにする
④単数行コンポーザーに設定
⑤『お』と『か』の間に『結合なし』と『右インデントタブ』を順に挿入

ぎゃあー


つまり『結合なし』の後に『右インデントタブ』を置くな、と。

おつかのん
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

無題

あーありますありますこういうの。

両端揃えにしてタブ+フラッシュスペースで処理したことありました。時々字間がアレ?ってことになってましたけど^^;

Re:無題

両端揃え使えば別解ありそうですね。最後の段落だけ別の段落スタイルってのが嫌と思って考えませんでしたが置換クエリで適用するなら同じことか。

フラッシュスペースを和文に使うことなんてアドビさんはほとんど考えてないんだろうから、気をつけないとなにかとおかしな事は起こりそうですね。

  • あるふぁ(仮)
  • 2015/04/16(Thu.)

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

5つの「く」

ハタハタのすばらしさをまとめました。