クリエイター手抜きプロジェクト[332]Illustrator CS5/CS6編 ルビと割注処理/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


Illustratorにはルビを振る機能がありません。「割り注」を使うか、以下のルビを自動的に振ってくれるスクリプトを入れることになります。

●AI_RubyAssistPro 「ルビ振りマイスター 仲村友彦(兄)」
< http://www.pictrix.jp/?page_id=4566 >

上記のスクリプトでは、選択したテキストフレームとルビは分離しますが、後からルビを削除等できるので大きな問題はないでしょう。

ところで、割り注でもある程度ルビを振ることができるにも関わらず、それを実現するスクリプトは見かけません。ということで、実際に作ってみたのが以下のスクリプト。

ルビを振るテキストフレームを選択してから実行します。ルビを振る1文字と、ルビとなる文字を入力すると、自動的にルビを割り注として処理します。





var selObj = app.activeDocument.selection;
var baselineValue = -15;
var srcStr = prompt("ルビをふる文字を入れてください", "道");
var rubyStr = prompt("ルビをいれてください", "みち");
var startPos = 0;
var rubyList = [];
while(true){
var str = selObj[0].contents;
var pointer = str.indexOf(srcStr, startPos);
if (pointer < 0){ break; }
var leftStr = str.substring(0, pointer); // 左側の文字を抜き出し
var rightStr = str.substring(pointer+1, 99999); // 右側の文字を抜き出し
selObj[0].contents = leftStr+rubyStr+srcStr+rightStr;
rubyList.push(pointer);
var rubySize = (rubyStr+srcStr).length; // 割り注文字数
startPos = pointer + rubySize;
}
for(var i=0; i<rubyList.length; i++){
pointer = rubyList[i]; // 割り注文字の開始位置
var rubySize = (rubyStr+srcStr).length; // 割り注文字数
for( var j=0; j<rubySize; j++){
selObj[0].characters[pointer+j].characterAttributes.wariChuEnabled = true;
}
// サイズを設定
var fontSize = selObj[0].characters[pointer+rubySize-1].characterAttributes.size;
fontSize = fontSize * 2; // 2倍にする
selObj[0].characters[pointer+rubySize-1].characterAttributes.size = fontSize;
// ベースラインシフト
for( var j=0; j<rubySize; j++){
selObj[0].characters[pointer+j].characterAttributes.baselineShift = baselineValue;
}
}

と、ここまでは問題なさそうに思えますが、実際には一回しか使えません。というのも、二回目に実行すると以前の割り注が解除されてしまうからです。どういう仕様になっているのかが分かりませんが、なぜか解除されてしまいます。

ということで、このスクリプトは一回だけしか使えないのですが、これを参考にしてルビを振る機能を作ってみたいという人がいれば、適当に改造するなりしてチャレンジしてみてください。

というか、どうしてこうなるのかAdobeに聞いてみたいところです......。まあ、ルビの機能を付けてもらえば解決するのですけど。


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

さすが楽天やることが違う。いっそのこと、日本国民全員にKoboを配布すればよいかと。

・突然「楽天kobo」が家に届く 「買った覚えがない」いったい何のため?
< http://www.j-cast.com/2012/10/25151470.html >

・すべての人に知っておいてほしい jQuery & jQuery Mobileの基本原則
【10月25日に発売!!】
< http://www.amazon.co.jp/dp/4844362984 >

・HTML5ガイドブック 増補改訂版
 お得なHTML5ガイドブック増補改訂版+その他のExpert本のセットもあります。
< http://www.amazon.co.jp/dp/4844332937 >
< http://direct.ips.co.jp/book/Template/Goods/go_contentimp.cfm?GM_ID=EL120067&SPM_ID=1&CM_ID=0071000&PM_No=51&PM_Class=N&HN_NO=00400 >

・JavaScript逆引きハンドブック
< http://www.amazon.co.jp/dp/4863541082 >

・10日で覚えるHTML5入門教室
< http://www.amazon.co.jp/dp/4798124184 >

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >
吉田印刷所の「印刷の泉」でも購入できるようになりました。