■エリア文字サクサクシリーズをどうぞ
\(^o^)/   

おつかれさまです。@gorolibです。

唐突ですがエリア文字につきまして。

内容や文字サイズ、行送りなどの変更は一切なしで「ただ1行だけ減らしたい」ということってありませんか?それもできるだけ最終行が埋まっている感じに…。
(クリックで動きます)
タイトルなし

これって意外と難儀します。CC2014からエリア文字オプションに自動サイズ調整
(ここ)
31
という機能がついてオーバーフロー(もしくは寸足らず)の調整こそなくなりましたが、エリア文字の幅を調整して1行だけ減らすには
 
(1)エリア文字の横辺パスをダイレクト選択し、カーソルキー(矢印きー)で1行減るまで調整
(2)エリア文字オプションにてプレビューをオンにしながら、幅を増やしていく

などの少々ご面倒様なオペレーションが必要でした。


■ちょっとずつ幅を増やして行が減ったらストップ(笑)


というわけでスクリプト制作に入ったのですが、仕様がなかなかむずかしい…。上記(1)および(2)のオペレーションを数値化すればいいのですが、ちょっとずつ幅を増やして行が減ったらストップって

プログラムだとどうすりゃいいの?(笑)

となりました。やりたいことは簡単なのですが、仕様としては過去最強クラスのファジーさです。

そこで、
・幅を1文字分づつ増やしていく
・1行減った瞬間にスクリプトをストップさせる
ということにしました。

ちなみに、いきなり幅を1文字分増やすとこうなります。
35

これはいい感じとは呼びません…。なるべく最終行は埋まっている感じにしたい…。

そこで幅を増やす際は、1文字分を各行で負担するようにしました。

例えば文字サイズが8ptで4行分ある場合は、8÷4=2ptづつ各行で負担するということにしました。つまり2ptづつ幅を増やし、1行減ったらストップ!となります。

というわけでなんとも過去最強クラスのファジーなスクリプトです(笑)


■文字属性は均一にしちゃいます


このスクリプトの一番の注意点ですが、ひとつのエリア文字内に異なる文字属性がある場合は、

1行目の1文字目の属性にて

強制的に均一にされてしまいます。

(こんな感じ)
22
31
このスクリプト、ひとつのエリア文字内に異なる文字属性がある場合には不向きですので、強制的に置き換えちゃいます(そうじゃないといろいろと成立しないので…)

恐れ入りますが、ご承知おきくださいませ。


■今回のスクリプト情報


(クリックで動きます)
タイトルなし


<スクリプトファイル名>
G248_AreaTextLinesSUB.jsx…エリア文字を1行づつ減らす
G249_AreaTextLinesADD.jsx…エリア文字を1行づつ増やす


<使い方>
(1)1行づつ減らしたい(増やしたい)エリア文字を選択します
(2)このスクリプトを起動します


<仕様>
(1)複数選択可能ですが、エリア文字以外は反応しません。
(2)減らすほうの起動条件は「2行以上あること」、終了条件は「1行になったとき」です(それ以上進みません)。
 09
(3)増やすほうの起動条件は「1行以上あること」、終了条件は「1行が2文字になったとき」です(それ以上進みません)。
24


お役に立てれば幸いです!ではでは出羽の海。


■ダウンロードはこちらから


こちらはワンコインスクリプト(有料)です。noteからご購入ください(要ログイン)。
単品は100円、マガジンは500円です。マガジンを購入いただくとGOROLIB DESIGNのワンコインスクリプト(有料)がすべてダウンロードできます。

つまりマガジンが超おトクなのです!

(ダウンロードはこちらから)



─────
最近ちょっとひどすぎる。スマホでご覧の方は一度おためしください
スマホ版ブログのエグすぎる広告をごっそり消す方法