
「スマル」に関するエトセトラ
とある書籍の入稿直前で仕上げ処理をしていたなかで出てきた「スマル」問題についてまとめてみます。
「スマル」って何? そして、その解決方法
組版を行うとき、1文字と「。」のみの行が生じてしまうことがあります。
「す。」で終わることが多いため、これをスマルと呼びます。
スマルが生じないように組版を仕上げるのが美学。
解決方針は2つあります。
追い込み:前の行を調整して「す。」が生じないように調整します。
追い出し:「す。」の行に、前の行から文字を送ります。

解決方法
組版処理:追い込み、追い出しを組版で頑張ります。
リライト:著者または編集者によって文章を書き換えます。特に「追い出し」処理で2文字になったとしても、美しいとは言えませんので、理想はリライトです。
「スマル」が生じないようにInDesignの正規表現で調整する
[分割禁止]を設定した文字スタイルを作成
正規表現スタイルで次の条件に①の文字スタイルを指定

ロジック
次のように正規表現を記述することで「2文字+。」に分割禁止を適用することで泣き別れないようにします。
..[。」』?!…]?$
copy
..
→ 任意の2文字[。」』?!…]?
→ 。」』?!…のいずれか(またはなし)
こちらは(現在、見えなくなってしまっている)市川せうぞーさんの名もないテクノ手にて紹介されていたテクニックです。
#InDesign #正規表現スタイル #スマル
— DTP Transit (@DTP_Transit) May 5, 2017
正規表現スタイル Tips(1) - 名もないテクノ手 https://t.co/79Lw3ByDoZ pic.twitter.com/cK6AizptlR
とりあえず、スマルは避けられるものの、次の理由から望ましいとは言えません。
前の行がスカスカしてしまうことがある
「1文字+。」も「2文字+。」も、それほど違いがない
「スマル」を探そう!
「どうするかはスマルを探しながら考える」ことができたら…と探していたら、InDesignScriptForWindowsWeblogさんにて自作のスクリプトが紹介されていました。
すごい!これだ!!! と思ったのですが、なぜか自分の環境では動きません…

ツイートしたところ、お~まちさんからアドバイスいただきました(感謝)。
8行目の正規表現
— お~まち@InDesign JavaScript教室実施中 (@CS5_omachi) November 1, 2022
/^.[。」$]/
のところを
/^.[。」]\r$/
に変更すれば動きます。
ツイートを見かけた方から動作確認のツイートをいただきました(感謝)。
Windows10ではInDesign2018~2023でも動きましたよ。
— 月読 (@YAFGH5su1K9c4cM) November 1, 2022
私の環境でも8行目がエラーになりました。
— mars_teru (@mars517) November 1, 2022
BigSurでCC2019・2020・2021です。
mars_teruさんから、ここ変えてみて!と、さらにアドバイスを頂戴しました!
よく分からないのですが3行しかないドキュメントで「alert(a.length);」を実行すると「4」となりました(1行多く認識されているみたいです)。そこで元の6行目を「for (var i=a.length-2;i>-1;i--){」としてみると目的の行を捕まえることができました。
— mars_teru (@mars517) November 1, 2022
しかし、動かず…
気を取り直して別の環境で検証したところ、なんなく動きました。
別の環境だと、なんなく動きました…
— DTP Transit (@DTP_Transit) November 1, 2022
・macOS Ventura(13)
・Intel Mac
・InDesign 2023
困っていた環境:
・macOS Monterey(12)
・M1 Mac
・InDesign 2023/0222 pic.twitter.com/HAKDVfcQHC
スクリプトの実行に成功すると、次のようなメッセージが出てきます!

[スクリプト]パネルに入れず、Keyboard Maestroでマクロを設定しても動きます。

結局、理由はわからずじまいなのですが、状況をまとめてみました。
ご協力くださった方々にお礼を申し上げます!!!
私の場合、OSでもバージョンでもなさそう。どうやらマスターページのプライマリテキストフレームが1行とカウントされていたということみたいです。マスターページを空にしたら元のスクリプトで動きました。
— mars_teru (@mars517) November 1, 2022
解決
mars_teruさんが改変くださいまして、自分の困っていた環境でもバッチリ動くようになりました。
テキストフレームが複数ある時(マスターページを含む)にうまく動作しないように思ったので、少し改編してみました。お試しください。https://t.co/O4rsAAeN6f
— mars_teru (@mars517) November 2, 2022
(@ryusei3000さんにも許可をいただきました。
元リンクhttps://t.co/w1206UoGEp )
オリジナルの @ryusei3000 さんにも改めてお礼を申し上げます!
+活用いたします!!
ここから先は

DTP Transit 定期購読マガジン
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5