ワテのブログ

The fundamental things apply As time goes by.

2013年7月26日金曜日

dvipdfmxでepsの画像がずれる件について

スポンサーリンク

こちらを御覧ください[続報]dvipdfmxでepsの画像がずれる件について

概要

ここしばらくTeXを利用してなかったのでいつこうなったのかわからないが、dviファイルをdvipdfmxでPDFを作成するとeps画像がずれることがある。

原因

すべてのeps画像がずれるわけではない。どうやらBounding Boxの左下座標が0, 0でないものがずれるようである。

解決策

epstopdfとpdftopsを使ってepsを一度pdfに変換しその後epsに変換しなおせばBounding Boxが0, 0になる。

#!/bin/bash
fname=$1
epstopdf $1
pdftops -eps ${fname%.eps}.pdf $1

epstopdfでエラーが発生した場合、下記が参考になるかもしれません

単純に考えてBounding Boxの左下座標を0, 0にしてやればよい。epsはテキスト形式のフォーマットで%%BoundingBox: 行を変更してしまえばよいわけだが、描画内容のほうは動かないので平行移動が必要となるがこれは面倒である。

ImageMagickでepsをいったん別のフォーマットに変換してepsにもどしてあげるとBoundingBoxの左下座標は0,0となる。しかし、せっかくのベクター画像がラスター画像になってしまうという悲しさ。

そこで、epstopdfの登場なのです。epstopdfをつかうとepsのBoundingBoxにしたがって余白のないpdfを作成してくれる。しかもベクター画像をたもったままに。変換されたpdfをepsに変換してやれば余白がないわけだからBoundingBoxの左下座標が0,0のepsが作成されるという寸法。

しかし、ここに障壁が。TeXはTeX Installerでインストール。しかし、Windows 7 64bit版でepstopdfを起動すると"Script interpreter is not found in PATH"という残念なエラーが発生する。

ところがすばらしいことにTeX Installer 0.84r6よりWin64版のバイナリも提供されるようになりWin64版のepstopdfを利用すると起動するようになった。いきやうやうとepsをepstopdfに食わせてみたところ、なんということでしょう、!!! Error: Writing to gs failed, signal 127というエラーでとまってしまうじゃありませんか。

このエラーメッセージでググるとこのサイトが出てきた。すばらしいことに修正したスクリプトを公開してらっしゃるのでダウンロードしてためしてみるとこれが見事に動作した。これでOKですよ。epstopdfでepsをpdfに変換後、pdfをepsに変換すればよい。これはpdftopsを使えばよい。

長いみちのりでありました。

スポンサーリンク

2013年7月16日火曜日

IFTTTを使ってみた

スポンサーリンク

IFTTTのiPhoneアプリがリリースされたので使用してみた。

IFTTTとは

  • IFTTT(https://ifttt.com/)とは複数のWebサービス(チャンネル)を連携させるメタサービスである。
  • IFTTTはIf This Then Thatの略である
  • 日本語にすると、「もしこれがあれしたらそれをせよ」となる。

トリガーとアクション

  • トリガー(This)とアクション(That)を登録する。
  • トリガーが発生するとアクションが実行される。
  • トリガーには普通のトリガーとクイックトリガーがある。
  • クイックトリガーはトリガー発生してすぐアクションが実行される。普通のトリガーは15分間隔で確認される。

具体例

  • iOSのリマインダに登録したタスクが完了したときにメールを送信する
  • iPhoneのカメラで写真を撮った写真をDropboxに保存する
  • etc...

使ってみた

  • IFTTTアプリでリマインダが完了されたら自分にメール(If reminder completed, then send me an email at...)をするレシピを作成する
  • IFTTTアプリをバックグラウンドで実行するように設定
  • iOSのリマインダに位置情報リマインダを登録する
  • 指定位置にてリマインダの通知が発生
  • 通知だけではトリガーとならず
  • 手動でリマインダを完了
  • 5分後ぐらいにIFTTTからActionのメールが到着
  • 個人的にはリマインダの通知の時点でアクションが発生して欲しい(調べた限り通知の時点のトリガーは無いようである)

感想

  • 色々なサービスを組み合わせられるのは面白いがトリガーがちと少ない気がする
  • トリガーやアクションを時前で定義できるようになるともっと楽しくなりそう
スポンサーリンク