:note

ドキュメントの単位と増減値をととのえる

ちょこっとスクリプト。

InDesignのドキュメント環境設定で単位と増減値はちゃんと設定されていないと、作業効率が悪いのに、おざなりにされていることが多い気がするのは気のせいだろうか。ひとのデータいじらなくてはいけないとき、組版の単位が歯級なのに増減値が0.706H(0.5pt)だったりすると、cmd+shift+>で「あ¨ー」、ちょっと、やる気がうせます。そんな悲しいスキルのひとの尻拭いと協調作業をしなくてはならないときのために、

  • 座標がmm、組版が級歯、線幅がmm
  • 座標も組版もポイント、線幅がポイント
  • 座標がmm、組版がポイントが、線幅ポイント
  • 座標がパイカ、組版がポイント→ 追加

と単位を設定。これらに合わせて増減値もそれぞれ、mm、pt、pcでキリが良い数値に連動させます。

チェックボックスにて全てのドキュメントに適用するか、最前面のドキュメントに適用するかを決める。

環境設定のダイアログの同じ枠内でも、

スクリプトの世界では viewPeferences と textPreferences が混在しているわけですね。

ドキュメントの単位と増減値をととのえる /images/2010/09/665-doc_unit_dialog.jpg

媒体や作業体系によりけりで、それなり統一されていれば、mm, Q, Hでも、ptでもどちらでもいいですが、やっぱり「文字組アキ量設定」みたいにドキュメント毎に設定するという感覚がないのかな? ドキュメントデフォルトを使ったテンプレートつくるとかいろいろあると思うのに。とりあえずデフォルトで。とりあえずビールで。とりあえず、とりあえず、とりあえず。

/**
ドキュメントの単位と増減値をととのえる
"set unit and increment of documents"
使い方:
ドキュメントの「単位と増減値」の設定をドロップダウンリストから変更します。
とりあえず4種類
座標がmm、組版が級歯
座標も組版もポイント
座標がmm、組版が級歯
座標がパイカ、組版がポイント
これらに合わせて増減値もそれぞれ、mm、ptでキリが良い数値に変更。
"apply most front doc"チェックボックスにチェックされていると
最前面のドキュメントのみに適用します。外すと開いている全てのドキュメントに
適用します。
動作確認:OS10.4.11 InDesign CS3
milligramme
www.milligramme.cc
*/
if(app.documents.length == 0){
  exit();
}
//単位いろいろ
var uMM=MeasurementUnits.MILLIMETERS;
var uPt=MeasurementUnits.POINTS;
var uPC=MeasurementUnits.PICAS;//(1パイカ=12ポイント)
var uH=MeasurementUnits.HA;//歯
var uQ=MeasurementUnits.Q;
var doc=app.documents;
//ダイアログ
var dlg=new Window('dialog','unitswitch',[200,250,400,350]);
dlg.dropdownList=dlg.add('dropdownlist',[10,10,190,30],
  ['space: mm/text: QH',
  'space: pt/text: pt',
  'space: mm/text: pt',
  'space: pc/text: pt']
);
dlg.dropdownList.selection=0;
dlg.applyDocBtn=dlg.add('checkbox',[20,40,200,60],'apply most front doc.');
dlg.applyDocBtn.value=true;
dlg.okBtn=dlg.add('button',[60,70,140,90],'ok',{name:'ok'});
dlg.show();
var unitSet=dlg.dropdownList.selection.text;
var applyDoc=dlg.applyDocBtn.value;
var docLength;
if(applyDoc == true){
  docLength=1;
}
else{
  docLength=doc.length;
}
for(var i=0; i < docLength; i++){
  //座標がmm、組版が級歯
  if(unitSet == "space: mm/text: QH"){
    with(doc[i].viewPreferences){
      //単位と増減値
      //定規の単位(水平方向・垂直方向)
      horizontalMeasurementUnits=uMM;
      verticalMeasurementUnits=uMM;

      //他の単位(組版・テキストサイズ・線幅)
      typographicMeasurementUnits=uH;
      textSizeMeasurementUnits=uQ;
      lineMeasurementUnits=uMM;

      //ポイント/パイカの大きさ(ポイント/インチ)
      pointsPerInch=72;

      //キーボード増減値(カーソルキー)
      cursorKeyIncrement="0.1mm";
    }
    with(doc[i].textPreferences){
      //キーボード増減値(サイズ/行送り・ベースラインシフト・カーニング)
      leadingKeyIncrement="0.5H";
      baselineShiftKeyIncrement="0.5H";
      kerningKeyIncrement=20;
    }
  }//mm qh
  //座標も組版もポイント
  else if(unitSet == "space: pt/text: pt"){
    with(doc[i].viewPreferences){
      horizontalMeasurementUnits=uPt;
      verticalMeasurementUnits=uPt;
      typographicMeasurementUnits=uPt;
      textSizeMeasurementUnits=uPt;
      lineMeasurementUnits=uPt;
      pointsPerInch=72;
      cursorKeyIncrement="0.5pt";
    }
    with(doc[i].textPreferences){
      leadingKeyIncrement="0.5pt";
      baselineShiftKeyIncrement="0.5pt";
      kerningKeyIncrement=20;
    }
  }//pt pt

  //座標がmm、組版がポイント
  else if(unitSet == "space: mm/text: pt"){
    with(doc[i].viewPreferences){
      horizontalMeasurementUnits=uMM;
      verticalMeasurementUnits=uMM;
      typographicMeasurementUnits=uPt;
      textSizeMeasurementUnits=uPt;
      lineMeasurementUnits=uPt;
      pointsPerInch=72;
      cursorKeyIncrement="0.1mm";
    }
    with(doc[i].textPreferences){
      leadingKeyIncrement="0.5pt";
      baselineShiftKeyIncrement="0.5pt";
      kerningKeyIncrement=20;
    }
  }//mm pt

  //座標がパイカ、組版がポイント
  else if(unitSet == "space: pc/text: pt"){
    with(doc[i].viewPreferences){
      horizontalMeasurementUnits=uPC;
      verticalMeasurementUnits=uPC;
      typographicMeasurementUnits=uPt;
      textSizeMeasurementUnits=uPt;
      lineMeasurementUnits=uPt;
      pointsPerInch=72;
      cursorKeyIncrement="0.5pt";
    }
      with(doc[i].textPreferences){
      leadingKeyIncrement="0.5pt";
      baselineShiftKeyIncrement="0.5pt";
      kerningKeyIncrement=20;
    }
  }//pc pt
}//for i
 
comments powered by Disqus
back to top