DTP駆け込み寺

No.19258へ返信

記事投稿フォーム
補助
送信

[ 返信 ]

Re^3: テキストフレームの行間をならす方法

これはスクリプトしかねんじゃね、と思ったものの、
要件があまりにも特殊なのでタダで書くのはちょっとなあ、
と思ったんですが、試しがてら書いてみました(かっこいい)

バージョンの記載がないため当方での動作確認はCS6のみでご容赦ください。
基準にしたいテキストフレームを選択して実行してください。
--------------------
var doc = app.activeDocument;
var vp = doc.viewPreferences;
var pt = MeasurementUnits.POINTS;
//元の単位系を記録
var muh = vp.horizontalMeasurementUnits;
var muv = vp.verticalMeasurementUnits;
var mut = vp.typographicMeasurementUnits;
//ぜんぶポイントに
doc.viewPreferences.horizontalMeasurementUnits = pt;
doc.viewPreferences.verticalMeasurementUnits = pt;
doc.viewPreferences.typographicMeasurementUnits = pt;
//ベースラインを引き算して行送り値に設定
var sel = app.selection[0].parentStory;
var baseline0 = sel.lines[0].baseline;
var baseline1 = sel.lines[1].baseline;
sel.leading = (baseline1 - baseline0);
//単位系をもどす
vp.horizontalMeasurementUnits = muh;
vp.verticalMeasurementUnits = muv;
vp.typographicMeasurementUnits = mut;
exit();
--------------------
テキストフレーム内の文字サイズが均一であることが暗黙の条件となりますが、1行目と2行目のベースラインの差を行送りに設定してスクリプト終了となります。
その行送り値を他のテキストフレームの行送りにペーストすればラク、かなあ、と。

※まれに宣伝を兼ねて気まぐれでスクリプト無償提供しておりますが、皆様お仕事お待ちしております

[19258] (z-) (2017/06/13 Tue 12:59)