2013年05月12日

ルビをJavaScriptで処理する

DTP作業者にとっての難易度 ★☆☆☆☆(1)

【2019.6.15】『Word文書の体裁(ルビ・文字飾り・脚注など)をInDesignに反映する』http://mottainaidtp.seesaa.net/article/467138279.html)にて文字飾りや文字色、蛍光ペン、脚注などの処理も含む一連の作業手順を整理しました。併せてご覧ください。


JavaScriptを使うとInDesignのさまざまな作業を自動化することができます。
普段からプログラミングに従事していないDTP作業者(私もその一人です)にとって目的どおりのスクリプトを書くことは簡単ではありませんが、完成したスクリプトを使用するのはとても簡単です。
ここでは、私が書いてみたルビ処理のJavaScriptをご紹介します。必要があれば、ページ下部よりサンプルデータをダウンロードしてDTP作業者の方に使ってもらってください。

編集者の作業


文字原稿の段階では、このように親文字(ルビをつけられる側の文字)の直前にゲタ(〓)を入力し、ルビ文字を《 》内に書いておきます。
0509_021.png

モノルビにしたい場合は《ぎょ らん ざか》のようにルビ文字を全角スペースで区切ります。《たかまつのみやてい》のように全角スペースで区切らないとグループルビになります。

DTP作業者の作業


0511-203.pngJavaScriptのファイル『kakko_ruby.jsx』を『Scripts Panel』フォルダに入れると、InDesignのスクリプトパネルに『kakko_ruby』と表示されます。テキストを配置した後、この『kakko_ruby』という表示をダブルクリックするだけで自動的に処理が実行されます。





このスクリプトを書くにあたっては、さまざまな方のサイトを拝見して参考にしました。ありがとうございました。
サンプルデータ(2019.06.01版)はこちら《kakko_ruby_2019_0601a.zip》です。

(追記)

参考にしたサイトです
【11)ルビ処理支援WORDコピペ版 - たけうちとおるのスクリプトノート】

きちんと記録しておかず、リンクを張れないサイトもあり申し訳ありません。判明したら追加いたします。
posted by 照山裕爾 at 00:24| Comment(7) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
照山裕爾様

初めまして、デザイナーをしております。舘山と申します。
このスクリプトに大変興味を持ちご連絡させていただきます。

編集からもらったテキストが原稿が、まさにこのページにあるものと同じでしたので試してみたのですが、下記のエラーメッセージが出てしまいます。

++++

Javascriptエラーです!
エラー番号:1
エラー文字列:
変換方法:main

++++

こちらの作業環境は、MacOS10 InDesignCS6です。

最近、InDesignを使い始めたばかりの初心者なのですが、よろしければ対処方法などありましたら、ご伝授いただけないでしょうか?

突然のご連絡すみません。
よろしくお願いいたします。

舘山拝
Posted by 舘山 at 2015年03月09日 16:20
舘山さま
コメントありがとうございます。
実は私自身もJavaScriptはヨチヨチの勉強中でして、
お書きいただいたエラーの内容を判断できずにおります。
詳しい知人たちにも相談したいと思います。
少々お時間をいただけますでしょうか。
Posted by 照山裕爾 at 2015年03月10日 18:03
舘山さま
何名かの知人よりOSX(10.9)のCS6で問題なく動いているとの報告をもらいました。
舘山さまの環境でもサンプルファイルで問題なく置換されるかどうか、まずはご確認いただけますか。

なお、ルビでエラーの原因として考えられることとして、知人から以下のアドバイスをもらいました。
1)〈〉が閉じてないなどのマーキングミス。
2)同じマーク(〓とか〈〉を)をどこかで使っていないかどうか。
3)それの箇所が手動でもルビがふれるかどうか。
これらについてもご確認ください。
Posted by 照山裕爾 at 2015年03月10日 18:30
照山裕爾様

質問へのご回答、ありがとうございました。
テキスト原稿をサンプルのものに変えたところ、
無事解決致しました。
便利なスクリプト、とても助かりました。
重ねてお礼申し上げます。

舘山拝
Posted by 舘山 at 2015年03月12日 00:30
照山さん、こんにちは。
照山さんのこのスクリプト、先日初めて実務で使ってみました。
とても便利なのですが、下記3点、気になりました。
1.間違えてスクリプトを叩いてしまったときにキャンセルできない
2.最後に表示されるルビ置換の結果の数が正しくない
3.空白文字など、標準機能では設定できない文字にもルビが振れる=修正できなくなる
環境はOS 10.10、InDesign CS6です。

1.について、僕自身で1行目を下記に置き換えて使いました。
if (!confirm("前面ドキュメントに対して実行します\rルビの目印以外の〓と《》がある場合は注意してください\r実行しますか?")){
exit();
}
もしよければ参考にしてください。
2.について、本文2箇所しか置換してないのに、脚注内10個、表内94個、ほか54個などと、大量に置換したように表示されます。
3.について、特殊な文字など(ホワイトスペースやここまでインデント文字などの特殊文字、マーカー類)があればエスケープする処理があった方がよいと思われます。

以上です。
Posted by Uske_S at 2016年10月07日 11:57
Uske_Sさん、コメントありがとうございました。
もうしばらく手が一杯なので、時間ができてから試してみたいと思います。
Uske_SさんのほうがはるかにJavaScriptに詳しいので、いろいろ教えてください。
いつもありがとうございます。
Posted by 照山裕爾 at 2016年10月11日 04:14
いやいや、とんでもないです。
もしお時間できたらご連絡ください。
少しはお手伝いできると思いますので。
この書き込みにメアドつけました。
Posted by Uske_S at 2016年10月11日 19:05
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック