数字1桁と2桁を、漢字1字分に揃えたい

[3812]数字1桁と2桁を、漢字1字分に揃えたい | 投稿者:もーし、もーし | 投稿日:2009/11/10(Tue) 14:42:49
インデザインCSを使用しています。
数字の入力の詰めについての質問です。
フレームグレッド横組で、数字を入力する時に
1桁の数字と2桁の数字を、漢字1字分に揃えたいのですがどういう設定にすれば、いいのかわかりません。
今までは、1桁の数字は全角で打ち込んでまして、
2桁の数字はテンキーの半角数字で入力して調整していました。1字づつ・・。
例えば23と入力した場合は、漢字一文字分からはみ出るので、
2の前の字の字詰めの後ろを自動からベタに変えて、
3の後にある文字の前の字詰めを自動からベタに変えたりして、調整しています。
分かりにくい表現で申し訳在りませんが、分かる方、ご指導お願いいたします。
» 1
[3816]Re: 数字1桁と2桁を、漢字1字分に揃えたい | 投稿者:いき | 投稿日:2009/11/10(Tue) 19:15:30
> 今までは、1桁の数字は全角で打ち込んでまして、
これから操作しようとするInDesign上のテキストフレーム(またはフレームグリッド)の中身についても、1桁の数字は全角で入力されているのですよね?

あと、OpenTypeFontを使っていらっしゃいますか?
もしそうなら、スクリプトでglyphFormを変えてやれば簡単です。

以下、Windows版のCSで動作チェックしました。MAC版でもCSであれば動作すると思います。
※前提条件として文字組アキ量設定を編集し、数字と他の文字種とのアキをベタにしておいてください。
----------------------------------------


//CS用Javascript
(function(){
 var myFindArray = new Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
 app.changePreferences.glyphForm = 1247897453; //等幅半角字形
 for (var k=0; k<app.activeDocument.pages.length; k++){
  var pageObj = app.activeDocument.pages[k];
  for (var j=0; j<pageObj.textFrames.length; j++){
   if (pageObj.textFrames[j].parentStory.contents.length > 0) {
    for(i=0; i<myFindArray.length; i++){
    pageObj.textFrames[j].parentStory.search(myFindArray[i],false,true,false,false,myFindArray[i]);
    }
   }
  }
 }
})();
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)