2010年6月27日日曜日

「第二回テクニカルDTP勉強会」フォロー、スクリプト・プログラマー宣言

2010年6月26日「テクニカルDTP勉強会」第二回」が開催され、前回に引き続き、自分も発表させていただきました。
発表スライドをslideshareに置いてみました。

今回、プレゼン用のスライドを初めて書きました。OpenOffice.orgのImplessを使ったのですが、慣れてないのでなかなか上手くいきませんね。Keynote使えたら良かったなぁ。


話の流れですが、Adobe系アプリを操作するためのJavaScript、いわゆるExtendScriptを書く人たちは、自分の技術を割と過小評価してるんじゃないのかな?(書く人も、雇う人も!)と思う所があり、「スクリプト書きだって、プログラマーだ!」と宣言することで、ただスクリプトを書く便利なDTPオペではなく、その先に進もう、そのためには何をしたら良いのか? といったところをまとめてみたつもりです。

実際、スクリプトを書きたい、書こうと思ってる人は多くいるのに、実際に書けるようになる人ってやっぱり少ない。それができる人は自分で調べて学ぶことのできる貴重な人材なのです。もっと自信持って良いと思うのですよ。

で、ExtendScriptに閉じこもるのではなく、もっとプログラマの使ういろいろなツールを使ってみようよ、と。
今回のプレゼンでは、
  • TextMate
  • JSDoc-toolkit
  • Git
この3つを紹介してみました。

それともうひとつ、ExtendScriptから入った人は、もうひとつ別の言語を覚えると良いよ、という提案をさせていただきました。今回例として取り上げたのは、コンソールから動かせるスクリプト言語が良いだろうと思ったんで
  • Perl
  • Ruby
  • Python
  • Groovy
の4つだったのですが、phpでも、あるいは今回の勉強会でも使われていたFlex(mxml+ActionScript)でも良いかと思います。別の言語をおぼえることで、利用範囲や考え方が大幅に広がります。おススメです。


最後に、勉強会で聞いてくださったみなさま、ありがとうございました。
また機会がありましたらよろしくお願いします。

2010年6月9日水曜日

ExtendScript TextMate Bundle を公開しました。

TextMateからショートカットでExtendScriptの.jsxを直接走らせるバンドルです。
元々は自分の上司の@tyama氏が作成し、それを自分が使いやすいように少しずつ直していたものです。このたび@tyama氏の許可が取れたので公開します。
興味のある方は、使ってみて感想下さい。

GitHubに置きました。
kanemu / extendscript.tmbundle - GitHub

使い方:
GitHubから落としてきたフォルダ名を[ExtendScript.tmbundle]として、 ~/Library/Application Support/TextMate/Bundles に入れて下さい。
$ cd ~/Library/Application\ Support/TextMate/Bundles/
$ git clone git://github.com/kanemu/extendscript-tmbundle.git ExtendScript.tmbundle

インストールしたバンドルは、TextMateの「Bundles」メニューの、「Bundle Editor -> Show Bundle Editor」から編集、カスタマイズすることができます。

.jsxファイルを判別するための、Scope Selector の「source.js」は JavaScript.tmbundle に依存しています。なので JavaScript.tmbundle が入ってなければ入れて下さい。
JavaScript.tmbundle の Language JavaScript の 3行目
fileTypes = ( 'js', 'htc' );

fileTypes = ( 'jsx', 'js', 'jsxinc', 'htc' );
に変更して下さい。

コードを拡張子.jsxで保存し、ショートカットキーを叩くと実行されます。
#target が設定してある場合、そのアプリが立ち上がって実行します。
なければデフォルトで、InDesign上で実行されます。

デフォルトのショートカットは、以下のように設定してあります。
  • Command + 4 -> CS4で実行
  • Command + 3 -> CS3で実行
  • Command + 2 -> CS2で実行
  • Command + option + 4 -> ExtendScript Toolkit CS4 で開く
  • Command + option + 3 -> ExtendScript Toolkit 2 で開く
このキーはぶっちゃけ結構間違えるので(CS4で走らせたい場合にCS3をキックしてしまい、よけいなアプリが立ち上がったり……)、自分で適当に直して下さい。

2010.06.16追記:
TextMateは、標準では和文の入力と、2バイトフォントの表示ができません。
※現時点で、Version 1.5.9 (1510)です。
日本語入力プラグインと見た目をまともにするためのフォントを入れる必要があります。
詳しくは下記ページにて。
TextMate で日本語をわりとまともに表示する - d.hetima

2010年6月5日土曜日

InDesignの字送りで囲み文字を作る。



モリサワMC-B2やCANONのEdianにはデフォルトで、「文字合成」(合成文字じゃない)の機能があります。
要は2つの文字を重ね合わせる機能。○囲みの文字なんかを作るのに便利。でもInDesignには文字合成はありません。

○囲みの作り方は、ディザInDesignのお~まちさんが、圏点を使うやり方を紹介されています。
ディザ InDesignブログ: 圏点を利用して囲み文字
囲み文字の作成をサポートする

ですが、この方法だとテキスト書き出しした時やスクリプトでcontentsを呼び出した時に、肝心の文字が「○」で出てしまいます。文字の意味としては、「合」の方にあるわけで……
素直に字送りで重ねる方法もあった方いいと思ったので、サンプルを書いてみました。InDesignCS3 v5.0.4、MacOSX 10.5.8にて動作確認。

「○合」を重ね合わせたいならば、「○合」と入力した場所を選択して、スクリプトを実行してください。
文字のサイズを変更したいならば、スクリプトの中を直接編集。

20100608追記:
いき♂さんのアドバイスを取り入れ、丸囲み文字の後ろに「結合なし」文字を挿入するようにしました。

2010年6月2日水曜日

たけうちとおるさんの「DTP Booster 13のお題」をやってみた

たけうちとおるさんが、今度のDTP Booster 13用の例題を発表されていた。
DTP Booster 13のお題 - たけうちとおるのスクリプトノート
  • 書き出されるPDFはドキュメントと同じファイル名で(拡張子が.pdfになる)同一階層に保存されるとします。
  • PDF書き出しプリセットは「PDFx/1-a」です。
  • PDFを書き出したドキュメントは保存せずに閉じます。
  • 20行以内で出来ると思います。
  • 多少のエラー処理はしなくて結構です。

そういうわけでやってみた。
Mac OS X 10.5.8、InDesign 5.0.4にて動作確認。


20100603追記:
当日のDTPBoosterのたけうちとおるさんのUSTREAMにて
「document.exportFile()の引数4つ目はPDFExportPresetオブジェクトを入れる」
と話していて、自分はStringで名前を入れていたので、心配になって正しく動作しているか確認してみました。
  • 今度はInDesign CS4 6.0.5にて確認
  • '[PDF/X-1a:2001 (日本)]'を指定、Acrobatにてプリフライト→OK
  • '[PDF/X-3:2002 (日本)]'を指定、Acrobatにてプリフライト→OK
  • 自前で作ったプロファイル'x1a-tombo'を指定→トンボ付きで生成される
というわけで、ちゃんと動いているようです。

20100604追記:
たけうちとおるさんに、解答編でとりあげていただきました。
ありがとうございます!
DTP Booster 13のお題(解答編) - たけうちとおるのスクリプトノート