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も書いておく.

postscript tex 出力 備考
/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は文字を斜体にすることができないので,「文字を任意の角度で傾ける」という加工により斜体のように見せるしかない.割とめんどくさい.

GPSロガーM-241購入

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

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

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

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

この機種にした理由は,

  • ディスプレイつきでこの価格帯はそうそうない
  • Web上の情報によると,Bluetoothを使うとMacでも使えるらしい

の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に設定してあげる必要がある

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

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

忘れたのでメモ.

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

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

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

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

\usepackage{nidanfloat}

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