2023年5月13日

註番号をずらす

新たな註が挿入されたり既存の註が削除されたりすると、註番号をずらさなければならない。このスクリプトは合印をルビとして配置している場合にその作業をするものである。なお、合印が付けた親文字には「註合印」という文字スタイルをあてている。開始箇所、終了箇所と増減値は必要に応じて書き換える。

//このスクリプトは新たな註を挿入したり、既存の註を削除したりする前に実行すること

//註番号の範囲
var fromNum = 210; //ここから 
var endNum = 399; //ここまで
var gap = 1; //増減値
var refNum ; //註番号
var cSty = app.activeDocument.characterStyles.item("註合印");

//処理範囲
//var range = app.activeDocument; //置換範囲はドキュメント全体
var range = app.selection[0].parentStory; //置換範囲は文字キャレットのある親ストーリー
//var range = app.selection[0]; //置換範囲は選択範囲のみ

//正規表現検索・置換の初期化
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//註合印のついた箇所を検索
app.findGrepPreferences.appliedCharacterStyle = cSty;
var foundStr = range.findGrep();
for (i = fromNum; i <= endNum; i++ ) {
	//全角パーレンを取って註番号を得る
	refNum = foundStr[i].rubyString.replace(/[()]/g, "");
	//増減値を加える
	refNum = String(parseInt(refNum) + parseInt(gap));
	//全角パーレンで囲んで合印にする
	foundStr[i].rubyString = "(" + refNum + ")";
}

//正規表現検索・置換の初期化
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

alert("完了");