トップ 最新 追記

KeN's GNU/Linux Diary


2017年11月17日

_ [indesign] APFS+InDesignのスクリプトウィンドウの組み合わせバグをなんとかする

DTP作業用のmacを新調。すでに周知されているとおりInDesign CS6が動かなくなっているので、InDesign CC 2017をひとまず次の安定版ターゲットとすべくいろいろと立ち回っている。

macはもともとSierraが入っていたところに移行失敗でやむなくHigh Sierraになってしまったのだが、例のAPFS化により、InDesignのスクリプトウィンドウが困ったことになった。

本来は次のように辞書順にスクリプトファイルが並ぶ。

photo

これが、High Sierra環境だと、次のようになる。

photo

従来はOSから返るディレクトリのファイルエントリが辞書順になっていたのが、APFSになって生のハッシュ順になってしまったということらしい。Linuxでスクリプトを書いていた身からすると「フツーsortしてから加工を始めるだろ」と思うのだが、Adobeの開発は辞書順で返ってくる前提しか考えていなかったようだ。

APFSでない環境あるいはファイルシステムであればこの現象は発生しない。

InDesign CC 2017、2018両方で確認したこの現象についてはAdobeのチャットサポート経由で伝えており、たぶん2018では直るのではないかと、薄い期待を込めて思う。2017にも入れてほしい、とはお願いした。

ともあれ、このままでは何かと困るので、同等のスクリプトウィンドウを2時間ほどで作ってみた。こんなかんじ。


photo

Hacking InDesign with JavaScriptdialogScriptWindow.jsxとして置いた。

app.scriptPreferences.scriptsFolderはユーザー環境のほうしか見てくれないのでどうしたものかと思っていたのだが、scriptsListならアプリケーション・ユーザー環境両方のスクリプトファイルのパス一覧を配列で返してくれるので、これを加工することにした。しかも、scriptsListを実行した瞬間にパスを読み直してくれるようなので、ファイル追加にも対応できる。

scriptsListはちょっと変わった配列になっていて、

 [ "アプリケーション:Scripts Panel:Samples:JavaScript:AddGuides.jsx",
   "/Application/Adobe%20InDesign%20CC%202017/Scripts/Scripts%20Panel/Samples/JavaScript/AddGuides.jsx" ]
 [ ..., ... ]
 ...

のように、1つめに表示用フレンドリーなパス、2つめに実際のFile URIを格納する配列の配列という形となっている。:なのはたぶんmacだからで、Windowsだと違いそうだが、いずれにせよAPFS以外なら普通にスクリプトウィンドウを使えばよいので構わないだろう。

APFSの影響でこのscriptsListはバラバラな順序になってしまっているので、1つめのパス名に従ってソートした上で、関係ないファイルは飛ばしてツリー化する。applescriptも私は使わないので、JavaScript系のファイルのみにした。

ツリー構成(TreeView)はあまり情報がなくて苦労したのだが、要は枝を持つものはnode、端となるものはitemとして追加すればいいItemListの延長線だった。

TreeViewのonDoubleClickイベントはオブジェクトモデルビューアに載っていない。最初迂闊にalertを呼び出してみたら、初期描画のときにもなぜかこのイベントが呼び出されるようで、ひどい目にあった。

実際のスクリプト呼び出しはdoScriptを使ってscriptsListのFile URIを実行するだけで変わったことは何もしていない。

あとはInDesign CC 2017のUI文字が大きすぎる(13pt)ので9ptになるようにTreeViewに指定してみているのだが、どうもこれは無視されるようだ。

ということで、早くこんなツールがなくて済むようにバグ修正が待たれる。


2017年11月27日

_ [travel] 台北MRT駅から桃園空港行きMRT駅への移動ルート開拓

ハノイと台北にしばらく行っていたのだが、帰国便は桃園空港。新たに機場線MRTができて便利になったものの、ほかのMRTからの乗り継ぎは大変らしい(往路は空港からバスで来た)。

ということで、帰国前日にソロ行動で下見をしてきた。

MRT板南線を出て標識どおりに歩いてみたところ、大回り&人多すぎのコースで、20分近く歩くはめになった。これはひどい。Googleマップもいまいち変なコースしか出てこない。

2時間近く駅の中をさまよう不審者となってコース取りを検討した結果、板南線限定・エスカレータは使える(車椅子やベビーカーではない)前提となるが、両改札間6〜7分・階段なし・人混み少なめのルートの開拓に成功した。淡水線の場合はあまり救いにならないので、機場線MRTよりも普通にバスを使ったほうがよいように思う(中和線の三重駅がわかりやすそうだけど、機場線の各駅しか止まらないのだな)。

公式サイトでは駅内情を把握できないのだが、台湾のネット有志による、日本の駅3Dマップのようなマップが公開されている。

http://weijidai.pixnet.net/album/photo/320220346 weijidai, 台北車站立體導覽圖, 201702

東京に負けないなかなかのダンジョンっぷりである……。

さて、2017年11月時点で、肝心の開拓したルートは次のとおりだ(クリックして拡大)。

photo


①まず、板南線は頂埔側先頭に乗り(たとえば忠孝復興からなら進行方向の先頭)、台北駅で下車。上下のエスカレータがあるので上がる。

②登ったら振り返ると改札(忠孝西路口)があるので出る。背後に機場線の案内があるが、これは罠であり、絶対に向かってはいけない。

③改札を出ると上下のエスカレータがあるので登る。

④K地下街というほうに入っていく。このとき上方向のエスカレータと階段しかなくて一瞬絶望するが、階段横にエレベータがあるので、これで下る。なお、下った横にトイレもある。

⑤K地下街は混んでいるので、いったん右方向の誠品地下街(スターバックスがある)に入ってから左に折れ、あとはひたすら誠品のオシャレショッピング通りを突き進む。このあたりまでくれば、機場線の案内があるので迷うことはないだろう。

⑥地下街の突き当たりに上下エスカレータがあるので登る。

⑦上がったら右に折れ、宣伝パネルが両側にずらずらあるだけの一本道を進む。

⑧改札に降りるエレベータと上下エスカレータがあるので好きなほうで降りる。

⑨機場線MRTの改札到着! そういえば降りた先にはトイレが見つからなかった気がする。車内にトイレはないし、乗っている時間も長いので、必要なら周辺のところに行っておいたほうがよさそうだ(マップからすると、改札エレベータを降りずに進むとありそう?)。

機場線MRTのEXPRESSはおおむね毎時0,15,30,45分の15分間隔で、ターミナル1は35分・NT$150、ターミナル2は37分・NT$160。車内は荷物置き場もあり、開発著しい市内を抜けると緑豊かな山々と高所の快走を楽しめる。

……が、やっぱ松山を知ってしまうと、桃園は遠すぎるねぇ。成田-桃園だと移動の時間ロスが料金以上に大きく感じてしまうし、大型機やLCCが多いのでセキュリティや入出国審査がオーバーフローしている印象(モスクワ並みの時間がかかった)。

photo photo photo photo photo photo