Hatena::ブログ(Diary)

メモ帳的なアレ

2014-12-17

Windows7のPowerPointで書いた図をキレイにepsにする

タイトルの通り,どうしても必要になったので急遽環境構築を実施したのですが,Web上にかなり多くのやり方が書かれている上,Windows7対応が微妙でどうすればいいか迷ったのでメモ.

やりたいこと


Illustratorなどのベクタ編集が可能なソフトでお絵かきする人は良いのですが,どうしてもPowerPointのお世話になる機会が多い今日この頃です.そこで,TeXで書いていた論文中にPowerPointで書いた絵を挿入したくなりました.せっかくなのでスクリーンショットでなくキレイに,ベクタ画像のままepsにしたいと思いました.

やること


WMF2EPSをダウンロード

The WMF2EPS Homepage (DownLoad)

http://www.wolf-s.homepage.t-online.de/wmf2eps/download.htm

Win7パッチが公開されているのだけれど,私の環境ではうまく動かなかったので,WinXP用をダウンロードした.人によってはパッチの方が楽なのかも.

The WMF2EPS Homepage (Windows Vista)

http://www.wolf-s.homepage.t-online.de/wmf2eps/vista.htm

WinXP用をダウンロードしたので,以下は上記ページを参考にして作業をすすめる.32bit版は「Vista_x86.INF」,64bit版「Vista_x64.INF」の適切な方をダウンロードしておく.

PSプリンタを設定

まず,先ほどダウンロードしたVista_x86.INFまたはVista_x64.INFのいずれかと同じフォルダに,以下のファイルを設置する.

  • C:\WINDOWS\WMF2EPS\PSprint\Win2000\WMF2EPS2.PPD
  • C:\system32\spool\drivers\w32x86\3\PS5UI.DLLとPSCRIPT.HLPとPSCRIPT.NTFとPSCRIPT5.DLL

ホームページには他にもファイルが必要な旨が書かれているが,それはVista用なのでWin7では不要.

上記が完了したら,コントロールパネルからプリンタの設定画面で「プリンタの追加」を実施し,PSプリンタを設定する.

  • 種類: ローカルプリンタ
  • 出力先: FILE(epsを出すため)

プリンタソフトウェアインストール画面まで来たら,適当なプリンタを選択する.私は製造元:Generic,プリンタ:MS Publisher Color Printerを選択した.ここで注意点は,ドライバを指定すること.画面上の「ディスク使用」を選択して,先ほど設定ファイルをいろいろ保存したフォルダの中からVista_x86.INFまたはVista_x64.INFドライバとして指定する.これをやらないと後でWMF2EPSでeps変換したときに怒られてしまう.あとはプリンタ名を適当に指定して一旦終わり.

このままではこのプリンタがepsとして出力してくれないので,設定を変更する.いま作ったプリンタを右クリックし,プリンタのプロパティをクリック*1.全般タブの印刷設定から,詳細設定画面を出す.

設定する.最後は見知らぬフォントが来たときのオプションで,見知らぬフォントを勝手に別フォントに置換されたくないときにビットマップを選択する.

WMF2EPSで変換

WMF2EPSを起動.シェアウェアのため起動後数秒間はダイアログのOKが押せない.「EPS-Conversionオプション→Conversion Setup...」を選択.

  • 「Auto convert: Don't show this dialog before conversion」を有効に
  • 「WMF-Standard Path」がeps出力先フォルダになるので適切な設定に
  • PS-Printerを先ほど作ったPSプリンタに設定

して一度OKを押す.

ここまで来たら準備は完了なので,WMF2EPSにepsにしたい図をPowerPointからコピペする.ダイアログが出てくるので,「Paste EMF」を選択する*2ツールバーの右から3番目のボタンを押すと先ほど設定したフォルダにepsが出力される.なお,ここまでの設定を保存しておきたければ,FileオプションからSaveできる.

まとめ


  • なにげにPowerPointベクタ画像が簡単に作れるソフトとして使えるかもしれないなと思った.複雑なイラストは描きたくないけど.
  • この方法で作成したepsは日本語も正しく表示できているようだった.
  • 画像入りで解説しようと思ったけどWindowsの電源を落としたのでもういいやってなった.

*1プロパティでなくプリンタのプロパティ

*2:EMFが不可なら他のものでもいいらしいが,差分はよく分からなかった

2012-07-20

Gnuplotで数式やギリシャ文字など特殊な文字をEPSとして出力する


最近は「gnuplotは古い」とか言われているらしい.まあ別にこだわっているわけでは無いのだけれど,僕は惰性的にgnuplotを使っています*1
さて,gnuplotのラベルや凡例に数式やギリシャ文字を書きたいことがあります.細かい方法をよく忘れるのでメモしておく.

添え字

¥mathrm{e}^{¥mathrm{j} ¥omega_{¥mathrm{c}} t }のような添え字はTeXと同様に,e^{jw_ct} の様に書くことが出来る.複数文字もTeXのように{}でくくることができる.ただし,上付き文字と下付き文字の位置の関係には注意が必要.

(tex-1) $a_c^2$
(tex-2) ${a_c}^2$

texでは(tex-1)と(tex-2)の出力は異なり,数学的な意味も異なる.

  • (output-1)  a_c^2
  • (output-2)  {a_c}^2

(tex-1)は, aという文字に cという下付き添え字と2という上付き添え字がついている*2が,(tex-2)はa_cの2乗を表す.しかし,上記(tex-1)(tex-2)の記法は,gnuplot(というかpostscript)では区別されず,(output-2)の出力例のように表示されてしまう.gnuplotで同様の表現をしたいときは,

(postscript-1) x@^2_c
(postscript-2) x_c^2

のように表記する.

ギリシャ文字

ギリシャ文字は,例えば ¥Omega, ¥omegaなら,

{/Symbol w},
{/Symbol W}

のように書くことで表現できる.ここで,/Symbolは単なるフォント指定であって,TeXのように,{}でくくってやる必要あり.また,下の様に特殊文字を使って表現することもできるけど,こっちの方が楽だろう.

特殊文字

{や}を書きたいときは,\でエスケープする必要.&でスペースが挿入可能であるが,普通に半角スペースを入れてもほぼ同じ幅のスペースが反映されるので使ったこと無い(たぶんなにか用途があるのだろう).そのほかのよく使う特殊文字のコードは以下にメモしておく*3.ついでにTeXも書いておく.

postscripttex出力備考
/Symbol \042\forall
/Symbol \044\exists
/Symbol \245\infty
/Symbol \261\pm±
\262\dag or \textdagger注1
/Symbol \264\times×
/Symbol \270\div÷
/Symbol \271\neq
/Symbol \305\bigoplus
/Symbol \326\sqrt注2
/Symbol \345\sumΣ
/Symbol \362\int
  • 注1: ダガーはZapfDingbatsフォントにシンプルな物があるが,ZapfDingbatsフォントインストールされていないと面倒なのでこちらを使っている.
  • 注2: TeXにおける \sqrt{ほげほげ} みたいな記述方法ができれば良いんだけれどさすがにそれは無理そう・・・

文字をイタリックで書きたい

結論から言うと,手間の割に微妙な仕上がりなので使わないことにしている.どうしても文字をイタリックにしたい場合は,epsで出力した後にIllustrator*4等のepsが編集できるソフトウェアで編集したほうが楽と思っている(僕は,他にも理由があって,gnuplotから生成したepsファイルを人に見せるときは必ずIllustratorで微調整を行うようにしています).一応,イタリックフォントインストールした後,\Itaric や \it 等を用いて直接postscriptに入れることもできるらしい.

epsファイル出力

以上の記法postscript作法であるので,X11MacOS XのAquaTermなどでは正確に表示されない(はず).そのため,postscript epsとして出力しなくてはいけない.

set terminal postscript eps enhanced
set output "hoge.eps"

enhancedは拡張のオプションなので,つけておかないと一部出力がおかしくなるのかな.

不明点

  • 半角スペースよりも狭いスペース(たとえば,TeXなら \, のようなスペース)を入れる方法は無いのか.現状,めんどくさいので半角スペースを空けている.
  • 分数を綺麗に表示する方法は無いのか.現状,1/2のように表記しているが,TeXでいう \frac{1}{2} のような表記がしたい.

*1:まあ,さすがに論文にいかにもexcelで作りましたというグラフを載せるのもどうかと思うが・・・

*2:これを「2乗だ!!」と主張する人もいるだろうが

*3はてなダイアリーの表は汚いのでいつか真面目にCSS書かないと・・・

*4:実はillustratorは文字を斜体にすることができないので,「文字を任意の角度で傾ける」という加工により斜体のように見せるしかない.割とめんどくさい.

2012-07-19

GPSロガーM-241購入

ついかっとなってGPSロガーM-241を購入してしまった.

HOLUX GPSロガー M-241 ワイヤレス Bluetooth対応 国内1年保証

HOLUX GPSロガー M-241 ワイヤレス Bluetooth対応 国内1年保証

実売価格1万円〜1万5千円程度だと聞いていたのだけど,Amazonで7000円程度で売っていることを知ってしまったのでつい買ってしまった.

この機種にした理由は,

の2点である.他にも,i-gotU GT-800を検討したが,頑張ってもMacでログ取得ができなさそうだったのでやめた.また,M-241には緑のM-241Cや白でIO-DATAの出す旅レコなどの類似品があるが,M-241CはBluetoothが無いだけの廉価版(なのに高い)で,旅レコはそれを日本語化しただけであるようだ.特に理由が無ければM-241でいいと思う.あと,関係ないけど,GPS受信機は黄色い方が雰囲気が出て良いね.

だが,M-241は単三電池を1本使用する.普段モバイルブースターは持ち歩いているが,エネループは持ち歩いていないので,個人的には電池式よりも内蔵充電池式の方がありがたかったが,そこは我慢した.旅行の時に持ち歩く物が増えたね!

できること

  • GPSロガーとして,1,5,10,30,60秒間隔 or 50,100,150,300,500,1000m 間隔で現在地を記録し,後でPC/Macにログを出力できる(100,000点強)
  • 現在の緯度・経度,時間*1(やったーGPS時計だ!),任意点からの距離,時速が表示できる
  • Bluetooth接続で,PC/Mac,脱獄したiOS機器に位置情報を提供できる(未検証)

使い方/使い勝手

電池のふたがもろそうなので怖いが,電池を入れて電源を入れる.実は,説明書には「エネループのような充電池は使えません」と書いてあるのだが,実際に使えていて困ったことはない.買ってすぐのGPSによる位置取得(同期)は時間がかかるので,アンテナを上を向けてしばらく窓際等に放置するのが良い.GPS受信アンテナ指向性が強いのだが,ストラップ穴を使って本製品をぶら下げておくと勝手に指向性方向が上を向くようになっている.すごい.

初回同期は本当に時間がかかった*2
それ以降は,しばらく電源を切ってから電源を入れ直した時も,空が開けた場所にいればすぐに同期されるように思える.とはいってもたまになかなか同期されないときがあるが,そのときは空が見えにくい場所でも5-10秒程度立ち止まればすぐに同期される.

データ保存

Macで本製品のログデータを取り出す方法は以下を参照した.

MacOS X Lion で GPS ロガー Holux M-241 を使う

http://shinn.boo.jp/blog/archives/2011/08/mac_lion_holux_m-241.html

必要なフリーソフトHoudahGPSはMacAppStoreからダウンロードできる.Google Earth等もインストールしておくと楽しい.

ファイル形式は,GPXやKMLなどが選べる.GPXはxmlに近いもので,自分でなにか加工するときに使いやすい.KMLGoogle Mapに対応している.また,Google Earthはどちらでも対応している.加えて,GPX <-> KML間の変換はフリーソフト等で簡単にできるので,保存する形式はどれでもいいと思う.

データ処理

ログを吸い出したら,とりあえずGoogle EarthGoogle Mapに表示させてみると良い.Google Earthでは,ログファイルをアプリケーションドラッグ&ドロップするだけで良いし,Google Mapでは,マイプレイスから「地図を作成」をおして,アップロードすれば良いだけである.

夜行バス東京へ行ったときに,GPSロガーで位置情報を記録してみた.車内であるので見通しが悪かったり,トンネルが多かったりしたため,途中でだいぶ飛んでいる部分がある.



ただ,GoogleのマイマップのUIがクソすぎて,イライラするので二度と使わないと思う.
※追記:2014年現在,Googlemapのリニューアルによりかなり改善されて使い勝手が良くなった.

*1:なお,初期設定ではUTC+0の時間が設定されるので,+9に設定してあげる必要がある

*2GPSでは,現在地座標の(x,y,z)と時刻tを決定するための4元連立方程式を解くために最低4つのGPS衛星のデータを正確に受信する必要がある.でも,それだけだとさすがに大変なので,いろいろな工夫によってGPS同期を高速化している.スマートフォン携帯電話で広く使われる,基地局情報を元に位置を推測するA-GPSは本機種では非対応のため,初回同期には非常に時間がかかった.しかし,おそらく過去のGPS位置情報を用いて現在地をある程度推測するくらいはやっているようで,2度目以降は時間がかからなかった.

2012-06-26

LaTeXで2段組の文章を書いているときに一部分だけ1段組にする(ぶち抜く)


忘れたのでメモ.

\begin{table*}
...
\end{table*}

tabularのほうには*つけない.

\begin{figure*}\end{figure*}

なお,ぶち抜きはデフォルトでは下側(b)に挿入できないらしく,プリアンブル部に

\usepackage{nidanfloat}

と書くと下側にも挿入できるようになるらしい.僕は位置はどこでもいい(いつも[tbp]と指定する)ので試してない.

2012-06-23

今更ながらTextMateを導入したので初期設定メモ


かなり今更ですが,Macの老舗エディタとして著名なTextMateを購入してみました.結論から言うと,TextMateは日本語(マルチバイト言語)に非対応で,いろいろやらないと日本語の入力すら出来ないのですが,それ以外はおおむね満足しています.今なら円高のおかげで4000円切ってました.初期設定に相当時間がかかったので,ちょっとメモしておきます.

ライセンス

初期設定ではないけど,ライセンスの話のメモ.

Personal use: A license can be used on all computers owned by the license owner or where the license owner is the primary user.

http://macromates.com/license_policy

自身が所有していなくても,私がprimary userなら全部のMacに入れてよいとのこと.1ライセンスで(私が主に使っている)研究室のMacにも導入できるようなので,これが購入の決め手に.Educationalライセンス(15%引)もあったんだけど,めんどくさそうだったのでやめておいた.

ついでに,噂されているTextMate2ですが,TextMateライセンスを持っていればそのライセンスがそのまま使える見込みの様です.

日本語入力設定


TextMate stuff - hetima.com

http://hetima.com/textmate/index.html

ここを参考に設定.主に,日本語入力時に行の下にウィンドウを出して日本語が入力できるようにするtmpluginと,日本語を半角分のスペースで表示する日本語フォントインストールの2つを行う.

なお,この方法で,日本語の全角文字をすべて半角のフォントで表示する様にするため,全角スペースと半角スペースの区別がつかなくなる.これは致命的な問題なので,以下の方法で全角スペースをハイライト表示するようにしてもよいと思う.まあ,そもそも私は全角スペースが入力できないようにIMEの設定をいじってあるのであんまり関係ないが.

TextMateで全角スペースと半角スペースの区別ができるようにする : アシアルブログ

http://blog.asial.co.jp/506

また,日本語入力の変換確定のEnterが誤動作する問題もあるそうなので,メニューのBundles→Bundle Editor→Show Bundles Editor(control+option+command+B)から,HTMLを選択し,Special: Return Inside Empty Open/Close TagのActivationの入力欄の右側にある×を押しておく.

キーバインド設定

メニューのBundles→Bundle Editor→Show Bundles Editor(control+option+command+B)から設定する.

  • cocoaアプリケーションで使えるcontrol+f,n,b,pやhなどのキーバインドとぶつかるものが設定されているとやっかいなので,まずはこれらをすべて削除しないといけない.
  • 基本的に,デフォルトのBundlesだけだと,control+hしかぶつかっていない様子.Commandsだけを表示して,control+hがリファレンスの表示に割り当てられているので全部削除する.とりあえずめんどくさいのでoption+control+hにした.これが本当に面倒(一気に設定する方法があったら知りたい).
  • たとえば,C言語モードにしているときに,たとえ別モードであろうと,どこかのbundleにcontrol+hがなんらかのショートカットに設定されてると衝突して文字を削除してくれない.最初に全bundleでcontrol+hを削除する.
  • CommandsのRunがcommand+rのもの,command+shift+rのもの,などいろいろあってうざかったので,全部command+rで実行できるようにした.
  • また,command+rをしたときに,Runの前に自動でファイルを保存するようにした.具体的にはSaveをCurrent Fileにした.
  • なお,cocoaアプリケーションのcontrol+f,n,b,pのようなキーバインドと,TextMateキーボードショートカットの衝突は,TextMate側が必ず優先されるが,TextMateの同じBundels内のキーボードショートカットが衝突している場合は,そのキーボードショートカットを実行すると,小さなウィンドウが出てきて,どれ(どちら)を実行するかを数字キーで選択するように促される(クリックでも選択可).

細かい設定

追加のBundles

とりあえず現状ではgnuplotprocessingのみをインストールしてる.そもそも,だいたいのBundlesは最初からデフォルトで入っているので,あんまり追加で入れる必要はない(なお,普段使わない言語はBundles Editorから非表示に出来る).

mattfoster/gnuplot-tmbundle · GitHub

https://github.com/mattfoster/gnuplot-tmbundle

ここを参考に.もちろん,gunplotがあらかじめインストールされている必要がある.なお,この状態で,command+rでグラフ表示しようとすると,いくつかのキーボードショートカットがあるので,前述のとおりすぐに実行されない.めんどくさいので,Bundle Editorから削除した.

あらかじめProcessingインストールしておく.あとは,

TextMateでprocessing | circumstance evidence

http://blog.n1n9.jp/how2/textmate-processing.php

ここを参考にした.control+fに変なcommandsが割り当てられてたので,これも削除しておく.command+rで実行(Run)できるように設定しておく.

まとめ

今のところ日本語以外の不満点はないです.すでにalphaバージョンが出ているというTextMate2に期待したいですね.