選択されたテキストフレーム内にある特定の文字にルビを振りたい場合があります。運悪く(?)付属のInDesign CS2 リファレンスには日本語に関する部分が一部掲載されていません。ルビも同様でドキュメントには掲載されておらず、内部のプロパティを見て推測することになります。
以下のスクリプトは選択された複数のテキストフレーム内にある金という文字にルビを振るものです。
実行すると自動的にルビが振られます。
srcStr = "金";
rubyStr = "かね";
sel = app.activeDocument.selection;
for (i=0; i<sel.length; i++)
{
text = sel[i].characters;
for (j=0; j<text.length; j++)
{
chr = text[j];
if (chr.contents == srcStr)
{
chr.rubyFlag = true;
chr.rubyString = rubyStr;
}
}
}
ルビを振る場合にはルビを振る文字のrubyFlagプロパティにtrueを入れてからrubyStringにルビ文字を指定します。
ルビのサイズを指定する場合にはrubyFontSizeにルビのサイズをポイント単位で指定します。他にも書体や位置揃えなども指定できます。これらのプロパティに関してはInDesign CS2自動化作戦を参照してみてください。
以下のサンプルはルビをふってルビのサイズを4ポイントにするものです。
srcStr = "金";
rubyStr = "かね";
sel = app.activeDocument.selection;
for (i=0; i<sel.length; i++)
{
text = sel[i].characters;
for (j=0; j<text.length; j++)
{
chr = text[j];
if (chr.contents == srcStr)
{
chr.rubyFlag = true;
chr.rubyString = rubyStr;
chr.rubyFontSize = 4;
}
}
}