2008年02月04日

文献の参照番号を上付きに[LaTeX]

直せといわれて若干困ったので忘れないうちにメモ.

上付き数字&右括弧にし「こんなかんじ1)」,文献ページの数字も変える方法.

プリアンブルで

\makeatletter
 \DeclareRobustCommand\cite{\unskip
\@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
 \def\@cite#1#2{$^{\hbox{\scriptsize{#1\if@tempswa , #2\fi})}}$}
 \def\@biblabel#1{#1)}
\makeatother

(参考:奥村晴彦「LaTeX2e 美文書作成入門 改訂第4版」)

LaTeXは標準だと[1]というような形の参照番号が振られるので気をつけないといけない. 投稿規定で上付きを指定してくるところもあるので.

指定が無ければどっちでもいいと思うけどなあ. まあ直せと言われたものは大人しく従っておく.こんな些細なところで労力を使いたくない.

しかし一般的には上付きだって? でも何の苦も無く上付き文字が使えるようになったのなんてここ数十年の話じゃないのか. そもそもLaTeXのデフォルトが[1]という書き方なんだし,それなりに広く使われている形式だと思ってたけど, そうじゃないんだろうか.いや, 新しいものを積極的に取り入れようという姿勢は結構なことだけど.

それと,文献参照の形式として番号を振らずに(奥村 2006) などとする流儀があるが, これについては

この流儀の最大の利点は, 文献の加除があっても参照番号を振り直す必要がないことでしたが, 現在ではLaTeXなどのシステムが自動的に参照番号を振ってくれますので,この理由づけは意味がなくなりました. 番号だけより情報量が多く,文献が参照しやすいという利点もありますが,参照文献が多いと逆にうるさく感じます.
奥村晴彦「LaTeX2e 美文書作成入門 改訂第4版」

という意見がある.名前が書いてあると情報が増えて理解しやすくなるという話を聞いたけど,文献ページめくればすぐに分かるんだから紙面を「うるさく」 してまでこの流儀を採用すべきだろうか.雑誌に投稿するような場合はいいかもしれない. でも多少長くなるテキストなら機に応じて適当なものを選択していくほうが良いように思う. 名前を示すことで理解が深まるということが予想されるのなら「○○によれば…である[1].」という形式にすればいい. 僕の場合は数年以内の論文に混じって四半世紀前の他分野の論文や半世紀前の建築学の本なんかも引用しているので, 何でもかんでも名前を出せば理解が深まるということは期待できない(いずれもその分野では著名な先生ではあるのだけれど).

あーあ,投稿規定でもあればこんなこと悩まなくていいんだけど.

過去の例は少なくとも体裁においては全く参考にならないので前に習えするわけにはいかない.横に習えができるかと言えばそれも微妙.

といって遠くから例を持ってくるとこういう厄介なことになってしまう.

もっと世の中は単純な構造にすべきだと思うよ.

posted by Rion778 at 23:13 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2008年02月02日

AICを使って回帰モデル選択[R]

AIC(Akaike's Information Criterion, 赤池情報量基準)という値を計算すると, 回帰モデルの当てはめのよさを測ることができる.

Rではモデル選択のためにstepという関数がある. 例えばyという目的変数に対しa,b,c,d,eという5つの説明変数が合った場合, 次のようにすると一つずつ説明変数を減らしながらAICを最小にするモデルを選択してくれる(AICは小さいほど当てはめがよい).

result <- lm(y ~ a+b+c+d+e)  #重回帰分析の結果をresultへ代入
result2 <- step(result)      #AICを用いたモデル最適化,結果をresult2へ代入
summary(result2)             #結果の表示

AICは尤度と説明変数の数により決まり,尤度が高く,かつ説明変数の少ないものが選ばれる (ただし関数stepは全ての組み合わせを調べるわけではないので注意).なお,最初の重回帰分析を

result <- lm(y ~ (a+b+c+d+e)^2)

などとすれば二次の交互作用まで含めてモデルの最適化を行ってくれる.

ところで,減らすと大きくAICが上昇してしまうような説明変数は回帰分析を行っても有意となることが多い.でも, 回帰分析を行って有意だからといってその説明変数を減らすとAICが大きく上昇するとは限らない.これは一体どういうことなんだろう? データと説明変数の間に強い相関はあるけれど,その説明変数によって値が大きく変化しているわけではないということなんだろうか?

うーん.本を読んでもイマイチ分からない.

AICはそんなに増えないけど,回帰分析では有意なんだからこの説明変数は重要なんだ!という主張は可能なんだろうか.

面倒そうだからパスしてたけど尤度関数というものを一度しっかり確認しないとだめかな.

posted by Rion778 at 17:57 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2008年01月30日

ベクトルの水準に関する覚書[R]

問題は存外むつかしいようだから、出鱈目に試行して失敗を繰り返していては、なかなか解けそうにない。 敵は思いのほかに手剛いから、作戦計画を練って、取り掛からないと、辛い目を見るであろう。おっくうだけれども、 少し頭を働かせなくてはならない!

Rにおいて文字列のみを要素とするベクトル、例えば

x <- c("A0", "A0", "B1", "B1", "C2", "C2")

に対しては、関数factor()を用いることで要素をグループ化することができる。

x <- factor(x)

とやると

> x
[1] A0 A0 B1 B1 C2 C2
Levels: A0 B1 C2

このように、3つの水準が定義される。だが、ベクトルを作るときに間違えて

x <- c("A0", "A0", "B1", "B1", "C2", "C2")

とやってしまったとしよう(2つ目のA0の0が全角になっている。

その後

x <- factor(x)

とやると

> x
[1] A0  A0 B1  B1  C2  C2
Levels: A0 A0 B1 C2

もちろんこうなる。水準が一つ余計だ。というわけで、修正を加える。

x[2] <- "A0"

ベクトルxの2つ目に"A0"を入れた。これで水準は3つになるはず。が、

> x
[1] A0 A0 B1 B1 C2 C2
Levels: A0 A0 B1 C2

既に無い水準が定義されたままになってしまっている。

この些細なミスがときに深刻な影響をもたらすことがある。分散分析や多重比較など、 水準を用いる関数ではとくに注意が必要。

対策は簡単。ベクトルに修正を加えたら

x <- factor(x)

を再度実行すればいい。

昨夜はこの単純なミスに気付かないばかりにかなりの時間を費やしてしまった。 分散分析も多重比較もプロットも出来ないのだから相当あせった。

ところで、分散分析をしてから多重比較というのはダメなのだろうか。

いや、正しくないには確かに正しくない。分散分析はF統計量を使うのだし、 それが多重比較のステップに組み込まれていないのであれば多重性の問題が生じてしまうという主張(永田・ 吉田「統計的多重比較法の基礎」) はもっともだ。でも、多くの学術誌が段階を踏めと言っているし、郡分け変数の影響を知りたいにしろ、 郡間の差を知りたいにしろ、 どこかの郡にはっきりとした差があれば結果は変わらないのだから当面は段階を踏んでおけばいいんじゃないのか(中澤港 「Rによる統計解析の基礎」)と言われればなるほどなと思う。

大体、多重性の問題がどのように発生して、具体的に危険率が何%になってしまうのか検討が付かない。 t検定を繰り返したときの危険率もいまだに良く分からない。例えば3標本にt検定を繰り返す場合、 データが独立ではないので3回繰り返しても単純に1-0.95^3とはならないみたいだ。 実際は1-0.95^3よりも少し少ない程度に収まる。

分散分析と多重比較だってそれぞれの危険率はある水準以下に抑えられているんだから、 多重性の問題が発生したって大した問題にはならないんじゃないだろうか。まあ、大した問題でないから無視するというのもアバウトな話だが。

というか、自然科学に関するデータならば最終的には「見て」判断しなければいけない。それに、 棄却検定である以上データ数を増やせば処理間に差は必ず出る。この世の中に対象に微塵の影響も及ぼさない処理などあろうはずもない。 自然を相手にする以上もとからしてアバウトなのだ。考慮するなら分散分析と多重比較の間の多重性よりも、 サンプルサイズと検出力の関係だとか、そもそも棄却検定を適用することについての妥当性だとかそのへんが先じゃないだろうか。 こういうことをフィッシャー先生はどこまで考えていたんだろう。図書館に本あったし借りてくるか。

とか昨日人の話を聞いていて思った次第。

posted by Rion778 at 02:05 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2008年01月26日

単位の異なる複数の時系列データを一つの表にプロットする[R]

どのデータも同一の時系列に沿って採取しているのだが単位が違う. そういう時はグラフの右と左で違う目盛りを使ったりして対応するだろう.

しかし,データが3種類を超える場合はどうしようもないので別々に作ったグラフを縦に並べて比較を試みるだろう.例えばこんな風に.

3graph4

今日 はこのグラフをRで作ることを目標とする.

まずはダミーのデータを用意.

days <- 1:30
dry  <- sqrt((rnorm(10))^2)+sqrt(days)
fresh <- dry^2+10
ratio <- dry/fresh

まーダミーなので解釈は何でもいいんだけど,一応daysがある植物を移植した後の経過日数,dryが乾物重,freshが新鮮重, ratioが乾物率(乾物重/新鮮重)という設定で.1ヶ月も毎日サンプリングして新鮮重と乾物重なんか測定してたら気が狂いそうだな….

まーとにかくまずは普通に描画領域を3分割してプロットしてみよう.

par(mfrow=c(3,1))
plot(days, fresh, type="b",ylab="Fresh weight(g)",
 xlab="Day after transplant")
plot(days, dry, type="b", ylab="Dry weight(g)",
 xlab="Day after transplant")
plot(days, ratio, type="b", ylab="Dry weight ratio",
 xlab="Day after transplant")

最初のpar(mfrow=c(3,1))で描画領域を縦方向に3分割している. 例えばpar(mfrow=c(3,2))とやったら縦に3分割,横に2分割とかもできる.で, そのあとプロットを実行すると左上から埋まっていく.この場合は上から.何はともあれ実物を.

3graph1

まーこれで も縦にスペースを多くとれば見えないことは無い.時にはこの形式が適することもあるだろう.が, 紙面の節約のためにはグラフ同士をぴったりくっつけたいところ.

そのためには,par(mar=...)というグラフィックスパラメータによってグラフ周りのマージンを指定してやる. mar=の後には4つの数値からなるベクトルを代入する.c(下,左,上,右)という対応なので, 例えばpar(mar=c(1,3,1,3))と指定すれば左右のマージン3行,上下のマージン1行の状態で描画される. ただし左と下は4行以上のマージンが無いと文字がはみ出るので注意.

それで,これを組み合わせて,一番上のグラフは下マージンなし,真ん中は上下マージンなしとして指定してやると

par(mfrow=c(3,1))
par(mar=c(0,4,4,4)
plot(days, fresh, type="b",ylab="Fresh weight(g)")
par(mar=c(0,4,0,4))
plot(days, dry, type="b", ylab="Dry weight(g)")
par(mar=c(4,4,0,4))
plot(days, ratio, type="b", ylab="Dry weight ratio")

3graph2

くっついた.でもくっついただけ.真ん中のグラフだけ大きいし,x軸目盛りは全てのグラフに入っているしでどうにも不恰好.

まずはx軸の目盛りを消す.それには,プロットするときに引数としてaxes=Fを指定する.そうすると軸目盛りは全部消える. それどころか周りの枠線も消える.そのままでは困るので,その後すぐにaxis(2)と打ち込む.するとy軸の目盛りが書き込まれる. ついでにbox()と打ち込むと周りの枠も復活する.

グラフの個数が2つならばこれまでの方法で2つのグラフを1つにまとめても問題は無いだろう.

しかし,3つ以上つなげたときに高さが違ってしまうのは防げない.

ので,全てのグラフの上下マージンを消してしまう.つまりpar(mar=c(0,4,0,4))と最初に指定したら, 全てその余白設定でグラフをプロットする.

そうすると上下マージンがなくなってしまうが,外周マージンを指定してやれば問題は解決する. 外周マージンはpar(oma=...)と指定する....の部分は先のマージンの時と同じく,ベクトルとして4つの値を入れてやる. 上下に4行分のマージンが欲しければpar(oma=c(4,0,4,0))のように.

しかしこれだとx軸のラベル名やタイトルが領域外となってしまうので表示されなくなる.そこで,mtext関数を使う.例えばx軸に 「Day after transplant」というラベル名が欲しい場合,

mtext("Day after transplant", side=1, line=3, cex=0.8)

とやると,普通にラベル名を指定したのと同様の場所にテキストが表示されるはずだ.sideはテキストを表示する位置(1:下,2: 左,3:上,4:右)の指定,lineは領域から何行離すか(3行空けでラベルと同様)の指定, cexは文字サイズの指定(値は標準に対する倍率).なので,タイトルが欲しい場合は一つ目のグラフを描画した直後にside=3, cex=1くらいの指定でmtext関数を実行するとそれっぽくなると思う.

まとめよう.

1. 複数のグラフを同時に表示するには領域を分割し,その後プロットする.

par(mfrow=c(3,1))
plot(...)
plot(...)
plot(...)

2. 複数のグラフをぴったりくっつけるには上下のマージンを0にする.全体としてのマージンは外周マージンとして指定する.

par(mfrow=c(3,1))
par(mar=c(0,4,0,4))
par(oma=c(4,0,4,0))
plot(...)
plot(...)
plot(...)

3. x軸の目盛りを消すには,プロットの引数としてaxes=Fを指定したのち,axis(2)とbox()を実行.

par(mfrow=c(3,1))
par(mar=c(0,4,0,4))
par(oma=c(4,0,4,0))
plot(... , axes=F)
axis(2)
box()
plot(... , axes=F)
axis(2)
box()
plot(...)

4. x軸ラベルはmtext関数で入れる

par(mfrow=c(3,1))
par(mar=c(0,4,0,4))
par(oma=c(4,0,4,0))
plot(... , axes=F)
axis(2)
box()
plot(... , axes=F)
axis(2)
box()
plot(...)
mtext("...", side=1, line=3, cex=0.8)

以上のポイントを押さえれば冒頭に示したようなグラフが描けるはず.

ちなみに冒頭のグラフを書くのに使ったスクリプトはこちら.

par(mfrow=c(3,1))
par(mar=c(0,4,0,4))
par(oma=c(4,0,4,0))
plot(days, fresh, type="b",ylab="Fresh weight(g)", axes=F)
box()
axis(2)
plot(days, dry, type="b", ylab="Dry weight(g)", axes=F)
box()
axis(2)
plot(days, ratio, type="b", ylab="Dry weight ratio")
mtext("Day after transplant", side=1, line=3, cex=0.8)

でも時系列データを取り扱うパッケージで同じようなグラフを見たことあるような気がするので, もしかするともっと楽に書く方法があるのかもしれない.

…ってグラフィックデバイスの使い方をメモるのを忘れてた.

pngへ出力するには,最低限

png("ファイル名.png", width=... , height=... )

の指定があればいい.widthとheightはピクセルで指定.アウトプット先は現在のディレクトリ (ファイル→ディレクトリの変更で確認).描き終わったら

dev.off()

でデバイスを閉じるのを忘れないこと.

posted by Rion778 at 20:37 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2008年01月22日

LaTeX関係の覚書(図表の代わりの空白,数字なしの章見出し)

図や表の代わりにとりあえず空白を入れておく.以下は図の場合.表の場合は\figureを\tableへ. キャプションは上につけたほうがいい.

\begin{figure}
  \begin{center}
          \vspace{2in}
          \caption{かくかくしかじかの図}
          \label{hoge}
  \end{center}
\end{figure}

章見出しとかの番号は消して,目次には章タイトルを出力する.以下は章見出しの場合. 一行目は普通の章見出しにアステリスクを付けたもの.この命令だけだとページには数字なしで出力されるが目次に出力されない. 二行目で目次へ出力する.

\chapter*{ほげほげ}
\addcontentsline{toc}{chapter}{ほげほげ}

人に見せただけでテキストは壊れる.完璧へはただ漸近のみが許される.だから現在地と完璧の間にはいつだって点を取ることができる.

無限に修正を続けるのであれば完璧と等号で繋ぐことは許されるだろうか?

posted by Rion778 at 20:27 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2008年01月19日

tabular環境の中で行を縦に結合[LaTeX]

multirowパッケージを使う.プリアンブルにて

\usepackage{multirow}

を忘れずに.

使い方は,結合する一番上の欄に「\multirow{結合する行数}{幅(指定せずに*入れておけばいいかも)}{内容}」. 結合されるほかの欄は空欄にしておく.

以下ソースのサンプルを.

\documentclass{jsarticle}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
 \begin{tabular}{ccc}
  \toprule
          \multirow{2}{*}{縦結合}& 1 & 2 \\ \cline{2-3}
                                  & 3 & 4 \\
  \bottomrule
 \end{tabular}
\end{document}

booktabsパッケージは罫線で\toprule,\bottomruleを使ったので使用.好みの問題.\hline, \clineのみを用いるなら不要.

なお,罫線は結合している場所だろうがお構いナシに引かれる.なので, 結合した欄を除いた罫線が欲しいときは\cline{欄番号-欄番号}できちんと指定する.

出力結果はこんな感じ.

multirow

結合したい行数が偶数だったら役に立つけど,奇数行だったら要らないかな.真ん中に書いてあと空欄にすればいいだけだし.

posted by Rion778 at 20:47 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年12月10日

PDFをPSへ変換する

powerdotでPDFを取り込もうとしてもどうも上手くいかない。PS形式だったら簡単なのに。

とりあえずGSviewを使ってその場しのぎ。以下、GSview4.8、Ghostscript8.54使用。

  1. GSviewを開く
  2. File→Convertで開くファイルを聞いてくるので、目的のPDFを指定
  3. Deviceにpswriteを選択
  4. Resolutionに600を選択
  5. OK。保存先を聞いてくるので適当に指定。拡張子忘れずに。

これでとりあえずPSになる。

が、スゲーカクカクだ。ビットマップにしてから変換してんのか。

OOoでPS出力できれば…無理か。PDFで出力できるだけマシか。

そういやOOoバージョンアップ忘れてたな。

どうもここのところ珍しく忙しい…気がする。気がするだけだな。やることが沢山あるだけだ。やることが沢山あるのは悪いことじゃない。

posted by Rion778 at 00:37 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年11月28日

gnuplotで日本語epsを作るための俺用メモ

この2日間の1/3くらいの時間をgnuplotの勉強に費やしてしまったが、 簡単なデータプロットならExcelかRで描いたほうがいい気もしてきた。まあ、2日程度で何が分かるというものでもないが。

ともあれ、思ったより面倒だった日本語epsの出力の仕方をメモっておこう。以下、 使用しているgnuplotはMaximaについてきたvar 4.2。

1. ターミナルの設定

set terminal postscript eps enhanced color "GothicBBB-Medium-EUC-H"

カラー&ゴシックで出力。フォントサイズも大きくした方が良いかもしれない。

2. 保存先の設定

set output "hoge.eps"

分かる場所に分かる名前で。

3. プロット

plot "datafile"

もしくは

load "scriptfile"

loadするスクリプトファイルのエンコードをEUCにしておくのを忘れない。

参考

posted by Rion778 at 01:03 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年11月07日

中心極限定理

中心極限定理によれば、元の分布が何であれ、 そこからサンプリングされた標本の平均値は正規分布に従って分布する。

にわかには信じがたい話だ。例えば、こんな分布(ちなみに、自由度2のカイ二乗分布)

shisq

のデータからサンプリングを繰り返し、平均値をいくつも計算する。そうすると、計算された平均値たちはこんな分布

norm

にしたがってバラツクと主張しているのだから。

ともあれ、Rを使って実際に確かめてみよう。

まずは母集団を何にするか。Rを使えばカイ二乗分布などに従う乱数を簡単に発生させられるけど、 そんなのはみんなやってるからもっと変なものがいい。

というわけで、いま僕が思いついたランダムでもなんでもない適当な数字を寄せ集めを母集団とすることにしよう。

> x <- c(1,1,2,3,4,5,5,5,6,7,7,8,8,8,8,9,9,0,0,0,0,0,-1,-2,-4,-5)

こいつの分布を、hist関数でヒストグラムにしてみる

> hist(x)

すると、

myhist

こんな感じにバラついた分布が出来上がった。平均値と分散を計算しておこう。

> mean(x)
[1] 3.230769
> var(x)
[1] 17.30462

不偏分散だけど…まあいいか。それではこの適当な母集団からサンプリングと平均値の計算を繰り返し、 ヒストグラムを描いていくことにしよう。結局やることは前のブートストラップとほとんど同じ。ソースの雛形はこんな感じで。

z <- numeric(0)
for(i in 1:5000){
 y <- sample(x,「サンプリング数」,replace=T)
 z[i] <- mean(y)
 }
truehist(x)

「サンプリング数」のところにサンプリングするデータの個数を入れる。なお、重複を許すことにより、数が限られた母集団を「分布」 とみなしている。ちなみに、truehist関数はちょっといい感じのヒストグラムを書く関数。MASSパッケージに入っているので、 使う前にはパッケージの読み込みをお忘れなく。

まずはサンプリング数1。平均も何も無い。そのままのデータ。

sanp1

当然ながら、元の分布とほぼ同じ。

それじゃサンプリングを2つにしてみよう。

samp2

真ん中に偏った。これは、2つのデータを無作為に取った場合、 近いところにあるデータが選択される確率よりも互いに離れたところにあるデータが選択される確率が高いことによる。 離れた2つのデータの平均を取れば、当然その値は中心寄りになるという訳である。

では、少し飛ばしてサンプリング数を10に増やしてみる。すると、

samp10

もはやほとんど正規分布だ。試しに標準正規分布を重ねてみよう(単位は無視)

samp10plusnorm

ところで、最初の分布は-5〜10までの間でヒストグラムが描かれていたのに、 10個のサンプリングデータの平均値は0〜6くらいの間に散らばっている。

サンプリング数を一気に増やして1000にしてみよう。

samp1000

形は正規分布だが、幅が2.8〜3.6くらいとかなり狭まっている。 ここでこの分布の平均と分散を計算してみよう。

> mean(z)
[1] 3.228538
> var(z)
[1] 0.01700635

元の分布の平均と分散はこうだった

> mean(x)
[1] 3.230769
> var(x)
[1] 17.30462

平均がほぼ同じなのは見ての通りだし、納得もしやすい。

では、分散はどういう関係にあるのか。比を計算してみよう。

> var(x)/var(z)
[1] 1017.538

サンプリング平均の分散は、元の分散の約1000分の1になっている。 1000という数字はサンプリング数と等しい。つまり、 こういうこと。

平均μ、分散σ2である何らかの分布からサンプリングされたデータの平均値は、平均μ、 分散σ2/(サンプリング数)の正規分布に従う。

これが、中心極限定理。

サンプルが多ければ分散が小さくなり、平均値の良い推定が得られる(大数の法則)ということでもある。 サンプリング数をどんどん増やしていけば、分散は0に近づいていくので、平均値の分布はδ関数のような形へ収束していき、 真の平均値が明らかとなる。

とはいえ、ふつうそのためには莫大な(というか無限大の)サンプルが必要なので、 ある程度のサンプル数から平均値が少なくとも存在するであろう区間を推定する。区間推定に関しては専門書を参考にしてもらうとして、 この話はこれでおしまい。お疲れ様でした(自分へ)。

参考文献

posted by Rion778 at 23:55 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年10月13日

powerdotでフォントサイズを変える

powerdotは優れたプレゼンクラスであるが、そのままの状態ではややフォントが小さい。

いちいち{\large ほげほげ}とやって文字の相対サイズを指定してやってもいいのだけれど、面倒な上、 全てに指定していては相対指定の意味が無い。

そこで、デフォルトフォントサイズを指定する。powerdotでは8pt、9pt、10pt、11pt、12pt、14pt、 17pt、20ptと幅広い指定が可能。プリアンブルで、

\documentclass[size=14pt]{powerdot}

といった具合に好きなサイズを指定してやればいい。14ポイントがスライド1枚に箇条書き6〜7行になるのでオススメ。

しかし、10pt、11pt、12pt以外のサイズを使用するにはCTANよりextsizesパッケージをダウンロードしてきてインストールする必要がある。 インストールといっても適切な場所に設置するだけ。

必要なのはsize14.cloやsize20.cloといったファイルなので、使いたいサイズに該当するものをダウンロードし、 サーチパスの通ってる場所(/usr/local/share/texmf/tex/latex/の下とか)においてやればいい。

posted by Rion778 at 21:28 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする

KaTeX+powerdotでパパッとプレゼンPDFを作成する設定

TeXでプレゼン powerdotを使おうを参考に(というか丸写しだけど)、次のバッチファイルを作成し、適当な場所へ置く。

rem YaTeX用のお仕事
set src=%1
platex %src%.tex
pdfclose --file %src%.pdf
dvipsk -Pdl -D 600  -f -z  %src% | bkmk2uni > %src%.ps
call ps2pdf -r600 -dNOPAUSE %src%.ps  %src%.pdf 
pdfopen --file %src%.pdf

次に/katexの中のkatex.lの80行目あたり、次の記述

(defvar dviprint-command-format "dviprt %s %f%t"
"*Command line string to print out current file.
Format string ~A will be replaced by the filename.  Do not forget to
specify the `from usage' and `to usage' with their option by format string
%f and %t.
See also documentation of dviprint-from-format and dviprint-to-format.")

を全てコメントアウト(行頭にセミコロン";"を付ける)し、代わりに次の一行を追加。

(defvar dviprint-command-format "d:/xyzzy/hoge.bat %s")

"d:/xyzzy/hoge.bat" の部分は、先ほど作成したバッチファイルへのパス。適宜変更のこと。

これで、dviprintを実行(C-c C-t l)すると、PDF作成まで一気にやってくれる。

posted by Rion778 at 13:54 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年10月08日

暇なので

嘘。暇じゃない。ぜんぜん暇じゃないよ。

でもみんな楽しそうにやってるものだから、ついカッとなってやってしまった。反省はぜんぜんしていない。

posted by Rion778 at 15:35 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年09月25日

microSDをUSBフラッシュメモリとして使う

僕がカメラもアプリも無い,電池の持ちも悪い携帯に機種変更してどれくらいたっただろう。もうなんか面倒で機種変する気にならない。 そもそもほとんど使わないし。

ところで,ほんの去年か一昨年くらいまでは携帯の補助記憶装置といえばminiSDが主流だった。 結構な金額で128MBのやつを買った覚えがある。今から思うともったいない気も。いや,まあ今でもMP3プレーヤーに入ってるけど。

で,気がついたらmicroSDなんてのが出てる。爪くらいのサイズで2Gまでいけると。 しかももうすぐ新しい規格がでてもっと要領増えるとかなんとか。もうあと10年か15年といわれるムーアの法則も本当に馬鹿にならない。

ここまで小さいならきっと, microSDを装着しっぱなしでUSBフラッシュメモリのように使えるアダプタもたくさん出てるんだろう。

と,思ったけど意外と見つからない。

探すこと数時間…

こんなん見つけました(この画像だけは上海問屋のもの)。

で,注文。2GのmicroSDもあわせて注文しても5000円いかない。安くなったもんだ。

早速10円玉とサイズ比較してみよう。

microSD (2)

感動的な小ささではないか。ちなみに青いのはケースではない。アダプタ。

立ててみた。

microSD

裏面とか。

microSD (3)

いままでポケットビットの256MBを使っていたけど,それと比べてもとても小さく感じる。

さて,携帯に付けてみた。

microSD (1)

なんということでしょう!カメラもアプリも無くてそのうえ電池のもちが悪く,DoCoMoショップのお姉さんに 「本当にこれでいいんですか?何もついてませんよ?」とまで言われたpremini-Sに付けても小さく感じる!

あとはストラップをもうすこしコンパクトなものにできるといいなあ。

タグ:PC
posted by Rion778 at 19:21 | Comment(1) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年09月09日

表計算ソフトへのデータ入力

例えば,ある植物の生育を調べているとしよう。

水遣りの効果と肥料の効果を分析したいので,次のような9つの試験区を設定したとする。

肥料\水やり 週3 週3 毎日
なし A D G
少し B E H
たっぷり C F I

それぞれの区には3つずつ植物が植わっていて,調査項目は葉数と草丈ということにしておこう。

で,採取したデータを表計算ソフトへ入力するとき,ダメなのがこういう入力。

葉数
肥料\水やり 週1 週3 毎日
なし 1 1 2
3 3 5
4 5 4
少し 3 3 3
4 5 4
7 7 9
たっぷり 3 4 3
6 9 8
3 1 7
草丈
肥料\水やり 週1 週3 毎日
なし 11 11 12
13 31 15
14 15 14
少し 13 13 31
24 15 24
17 17 29
たっぷり 33 34 13
46 19 28
43 11 57

表計算をしたいならともかく,統計処理をしたいのだとしたら,決してこのようなセンスの無いデータ入力をしてはいけない。 他のソフトで上手く処理できないのはもちろん,Excelの機能だって満足に生かせない。

だというのにこういうデータ入力をする人がたまーにいる。Excelの分析ツール使いたいんだろうけど,そのあとどーすんのさ。まあ, 関数一つで出てくるような基本的な統計量を求めるなら隣に表を作ればいい。でも,有意水準調整して総当りのt検定がやりたくなったら, 3元以上の配置で分散分析がやりたくなったら,3次元散布図が描きたくなったら,そのときはどーすんの。

そもそもExcelやCalcを使って統計処理をすべきではない。あれは表計算ソフトなのであって,統計ソフトではないのだから。

とはいえ,表計算ソフトはデータを入力し保存しておくには便利な代物。それに,簡単な統計処理だけをしたい場合や, 少しだけデータを加工したい場合は表計算ソフトのほうが便利なこともある。汎用性の高いCSV形式で保存しておけば用途の幅も広がる。 そこで,データは次のように入力する。

水やり 肥料 葉数 草丈
1 0 1 11
1 0 3 13
1 0 4 14
1 0.1 3 13
1 0.1 4 24
1 0.1 7 17
1 0.2 3 33
1 0.2 6 46
1 0.2 3 43
3 0 1 11
3 0 3 31
3 0 5 15
3 0.1 3 13
3 0.1 5 15
3 0.1 7 17
3 0.2 4 34
3 0.2 9 19
3 0.2 1 11
7 0 2 12
7 0 5 15
7 0 4 14
7 0.1 3 31
7 0.1 4 24
7 0.1 9 29
7 0.2 3 13
7 0.2 8 28
7 0.2 7 57

データを縦に整理する。同じ列には,複数の情報が入ってはいけない。要はきちんとした表(テーブル)で記述しろということ。 3元以上のデータでもはじめのやり方のように表を分割しなくてすむ。また,入力にかかる時間も少ない。

また,水遣りの頻度と肥料の量という因子を数値で置き換えた。この2つは桁がかぶらないようにしているので, 必要とあらばこの2つの和を取って全ての試験区を分割することもできる。多重比較をしたい場合などに便利。ただ, 取り込むソフトによっては適宜因子型へデータを変換しなければならない。

また,このようにデータをまとめておくとオートフィルの機能をフルに活かせる。例えば区ごとの平均値がほしければ, 2つ飛ばしでAVERAGE関数を記入しておき,下までオートフィルで埋めればいい。また,5つおきにデータを抽出したいというときは, 新たな列にオートフィルで5つおきに連番を振っていき,その列をキーにして並び替えればいい。

つまり,表計算ソフト内で処理を完結させるにせよ,データは関係モデルに従って記述してあったほうが使いやすいということ。 AVERAGEやSUMがデータの下に置けないのは気になるかもしれないが,「合計,平均,最高,最低などはデータの下部に表示する」 などというルールは無い。別に表を作ってまとめればいい。

要点をまとめると,

  1. データは行と列を意識して表として正しく記述する
  2. 因子型データはなるべく数値で置き換えて記入しておき,必要に応じて変換する
  3. 因子型データが複数ある場合,演算結果の重複しないような値を付けておき, 必要に応じてより細かい区分けの因子型データを作成できるようにしておく

の3つ。

もちろん,これは当たり前といえば当たり前の話。

でも,当たり前の話もたまにはしたほうがいいと思うんです。確認のために。

タグ:EXCEL R
posted by Rion778 at 02:40 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年08月29日

まくしまー

指数関数を級数展開してRに突っ込んで遊んでたらとんでもない時間に!

でもその間にいろいろ調べ物してたらMaximaという数式処理システムがあると知った。

フリーながらMathematicaにも劣らない, Linux/UNIXのみならずWindowsでも使えるというので早速使ってみた。

とりあえず思いつく限りのことはほとんどやってくれた(大したことは思いついてないけど)。数式も結構綺麗なものが出てくる。 LaTeX形式でアウトプットしたり,あるいはLaTeXを使って直接綺麗な数式を表示させたりなんてこともできるらしい。

今持て余してて困ってた方程式を突っ込んでみたらこれも解が出てきた。まあ, 式変形させているうちに解き方を思いついただけなんだけど,それでも手計算よりは格段に楽だし早い。

本も出てるし少し勉強してみるかな。

便利だから数式扱う人は使ってみるといいよ。

タグ:数学
posted by Rion778 at 22:08 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年08月22日

Windows軽量化とデスクトップカスタマイズ

最近は大学用VAIOノートでWindowsを使う機会が多いので,少しでも快適に使えるよう軽量化を試みた。 ついでにデスクトップをいろいろいじった。割と快適な環境になったので,またやるときのためにメモ。

まずは窓使いの友でいろいろ設定を変える。 いつもは適当にやって逆に重くなったりしてたので,こことか参考にした。

次に,OrchisRocketDockをインストール。なんか機能がかぶってる気もするけど, RocketDockにはブラウザとかの頻繁に使うものとShutDownで作った電源オフ, 再起動のアイコンを登録し,OrchisにはRやMeadowみたいなほどほどに使うものを登録した。 これでショートカットとクイック起動は不要になった。

デスクトップのアイコンを全部消して,ゴミ箱も消した。消す方法は,「デスクトップから 「ごみ箱」を消してしまう:デジタルARENA」を参考にした。 デスクトップから消えてもRocketDockに登録しておけばデスクトップにあるのと同じように使えるので問題はない。

あと,TClock Lightを使ってタスクバーと時計のデザインを少し変え,スタートボタンを隠した。

やったのはこれだけ。タスクバーは勝手に閉じるようになっているので,普段デスクトップはとてもすっきりしている。 ドライブ容量とCPU,RAMくらいは確認したいのでRainmeterだけは動いてるけど, デスクトップが空っぽというのはかなり気分がいい。

posted by Rion778 at 23:07 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年08月05日

Rを使ってグラフを作成する(matplot関数とlegend関数の使い方)

英語のマニュアルをいちいち読むのは面倒なのですよ。ということで俺専用覚書。

とりあえず,こんなグラフを書いてみようと思う。

eg_graph

A,B,Cという「何か」の重量増加を日数との関係で表したものだと思ってもらえばいい。

何はともあれ,データが必要。このグラフは,経過日数と,A,B,Cの重量変化のデータから作成されている。 まずはこれらのデータをベクトルにし,変数に代入する。

> day <- c( 1:10 )
> a   <- c( 0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 )
> b   <- c( 0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5 )
> c   <- c( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 )

一応説明しておくと,日数は"day",Aは"a",Bは"b",Cは"c"に代入した。ここで,「1:10」 は1から10まで1ずつ増加するベクトルを作成している。不等間隔で増加していくベクトルでもかまわない。その場合,適宜幅が調節される。 なお,データに使用したような等差数列はseq関数などを用いて簡単に作成できるが,「採取したデータ」という建前なので直接記述した。

次に,測定値ベクトルをデータフレームにし,weightという変数に代入する。

> weight <- data.frame(A=a, B=b, C=c)

ここで,Aはベクトルaを代入する列の名前であり,B,Cについても同様。

これで準備は完了。plot関数を使ってもいいけど, 面倒なのでmatplot関数を使ってまとめてプロットする。

> matplot( day, weight)

ただし,これだと次のようなグラフになってしまい, プレゼンやレポートに使うには少々見栄えが悪い。

eg2_graph 

そこで,次のように記述する。

> matplot(day, weight,
+         type="b", ylab="Difference with initial weight(g)",
+         xlab="Number of days",main="Total weight increase", 
+         pch=c(3,2,1), col=c("darkorchid1","cyan3","aquamarine3")
+         )

引数の意味は以下のとおり。

「type」はプロットの仕方を定義し, "b"では点と線によるプロットになる。

「ylab」,「xlab」はそれぞれY軸とX軸のラベルを記述する。

「main」は表の上部に出力されるタイトルを指定する。

「pch」は点をプロットするときに使われる点の形を指定する。 文字を指定すればその文字になるが,整数で指定した場合,それに対応する図形が出力される(参照:R-Tips 53節 グラフィックスパラメータ(弐))。

「col」はプロットするときの色を指定する。色は様々な指定方法があるが, 上の例ではカラーチャートを参考に, 色名で指定している。

これで,出力は次のようになる。

eg3_graph

冒頭の図まであと一歩。次は凡例を描画する。

凡例は,低水準作図関数のlegend関数で描画できる。

> legend(1, max(weight), legend=colnames(weight), 
+ col=c("darkorchid1","cyan3","aquamarine3"), + lty=c(1:3), pch=c(3,2,1) + )

最初2つの引数,「1」と「max(weight)」 は凡例を描画する領域の左上角の座標を指定する。2つめを「max(weight)」とすると, データのうち最も大きい(=Y軸中最も上にある)ものに高さがあわせられる。

「legend」は凡例の名前を指定する。 「colnames(データテーブルを代入した変数名)」とすれば,データテーブル作成時に指定した列名が自動的に入力される。

「lty」は線の種類を指定する。pchと同様,整数によって指定できる。 matplot関数では自動的に1から順に指定されるので,それに合わせるなら1から一つずつ増えていくベクトルで指定すればよい。 なお,指定しなければ線が描画されない。

「pch」は先ほどのmatplot関数のものと同様。 matplot関数と同じように指定すれば,同じように出力される。

これで,冒頭に示したグラフが完成した。これまでのをまとめると, 次のようになる。これをRのコンソールにコピペしなたら,同じグラフが描画されると思う。

 day <- c( 1:10 )
 a   <- c( 0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 )
 b   <- c( 0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5 )
 c   <- c( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 )
 weight <- data.frame(A=a, B=b, C=c)
 matplot(day, weight,
     type="b", ylab="Difference with initial weight(g)",
     xlab="Number of days",main="Total weight increase", 
     pch=c(3,2,1), col=c("darkorchid1","cyan3","aquamarine3")
     )
 legend(1,max(weight),legend=colnames(weight),        
    col=c("darkorchid1","cyan3","aquamarine3"),
        lty=c(1:3),pch=c(3,2,1)
    )
posted by Rion778 at 19:35 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年07月14日

大学生のためのLinux 5.rdicで英辞郎(書籍版第三版)を使う

Linuxを使う上で英語を読むことは避けられない,わけでもないが,英語のリソースが活用できるとやれることの幅が広がる。 Rのヘルプを呼んだり,PDFの英語論文を読んだり,海外のニュースを仕入れたり,youtubeで外国人を叩いたり, 英語が使えることによる恩恵ははかりしれない。

何はともあれ辞書だ。PC上で使う場合,英辞郎がいいと思う。確かに正確性には難がある。だが,「英辞郎の長所は, 最新の専門用語にも(正しいかどうかはともかくとして)とりあえず訳が当てられているところだ」と誰かが言っていた。そのとおりだと思う。

英辞郎をWindows,あるいはMacで使う場合は付属の検索ソフトを使えばいいのだけれど,Linuxはそうしたサポートが無い。 そこで,自前で検索ソフトを用意する必要がある。

Vine Linuxの場合,rdicという検索ツールを簡単にインストールできる。 パッケージマネージャーを使ってもいいし,

# apt-get install rdic

でもいい。ここまでは特に問題ないと思う。

問題は,データの用意だ。

英辞郎(書籍版の第三版)のデータをそのままrdicで使うことはできない。少し加工する必要がある。

まず,データを1行テキスト形式に変換する。これはWindows上でPDIC(英辞郎に付属)を使うと楽。 手持ちのWindowsマシンを使うか,Windowsユーザーの友達に協力してもらうかしないといけない。

まずはPDICを立ち上げる。そして,ツールバーから「Tools → 辞書の変換」と選択すると, 辞書を変換する画面が現れる。

2007y07m14d_211510664

ここで,転送元辞書の選択ダイアログを「PDIC形式」にし,ファイルに英辞郎の.DICファイルを指定する (普通に英辞郎のCDからPDICをインストールした場合,「C:\Program Files\PDIC_for_EIJIRO_III」 の下あたりに「EIJIRO98.DIC」という名前であると思う)。そして,転送先のファイル形式に1行テキスト形式を選択し, 転送先ファイルは任意の名前で任意の場所に(たとえばデスクトップにeijiro.txtなどの名前で)保存しておく。そうしたら,右側の 「詳細(A)」ボタンをクリックし,1行テキストの区切りを「///」から「 : 」に変更する (半角コロンの前後に半角スペースが入っていることに注意!)。

2007y07m14d_211547306

準備ができたら,OKをクリックして変換開始。少々時間がかかる。なお,和英辞書や略語辞書も使いたかったら, 同じ要領で「WAEIJI98.DIC」なども変換しておく(もちろん別の名前で)。

終わったら,あとはLinux上での操作。変換の終わったテキストデータはLinux上へ移しておく。

まず,[rdic-0.1.8.tar.gz]をダウンロードし, 解凍する。中にcnv2rdic.rbというものが入っているので,先ほど変換した英辞郎のテキストデータと同じディレクトリに入れる。 そうしたら端末を立ち上げ,テキストデータとcnv2rdic.rbが入っているディレクトリに移動し,

$ ruby -Ke cnv2rdic.rb eijiro.txt | sort -k1,1 -t: -f > eijiro.euc

とすれば(このとき,eijiro.txtの部分は先ほどテキストに変換した英辞郎のデータ, eijiro.eucは任意の名前)rdicで使えるデータが出来上がる。これはすごく時間がかかる (たとえばEIJIRO98.DICから変換したテキストデータを.eucに変換するとき,私のVAIOでは8分かかった)ので気長に待つ。 反応が無くてもあせらない。

これで,ようやくrdicで使えるデータが完成した。実行方法などはrdicのwebページを参照されたい。

ちなみに,実はこの方法で作った.eucファイルは改行コードの関係できれいな表示にならない。 どなたか解決方法をご存知であればご教授を…。

参考にしたサイト

英辞郎第三版
英辞郎第三版

posted by Rion778 at 22:02 | Comment(1) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年06月26日

気分転換

                  ____
     (∩´・ω・)  .      | i \ \
□……(つ 旦0        | i  l =l
     と_)_) (;;゚;;)      | |__ノ  ノ
                 | ̄ ̄| ̄ ̄|



     (*´・ω・)
      (0□0) ←ビリーズブートキャンプ
      v v



    (*´・ω・)=つ≡つ ))    ____
    (っ   )    /  .      | i \ \  /
    /\  )  /           | i  l =l   ワンモアセッ!
    (_/⌒\_)/          | |__ノ  ノ  \
                    | ̄ ̄| ̄ ̄|

半年後・・・


        ( ´・ω・)
    _, ‐'´  \  / `ー、_
   / ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
   { 、  ノ、    |  _,,ム,_ ノl
  /\ ̄ ̄ ̄ (;;゚;;) ̄ ̄旦 ̄\
/◇◆\_________\
\\◇/◇◆◇◆◇◆◇◆◇◆\
  \(ニニニニニニニニニニニニニ)

久しぶりにブログのスタイルシートをいじってみた。

広告は左に置け! みたいな記事を読んだので。言われてみればそのとおり。別に右サイドバーにこだわりがあるわけでもないのでさっさと変更。

…するつもりが背景の関係でどうも見苦しくなってしまう。 それならいっそということではじめから左サイドバーのテンプレートに変更することに。

見易さを向上するため文字と背景のコントラストが高いテンプレートを採用し,ヘッダーなんかをちょこちょこいじった。 あとは前のCSSから設定の移植をしただけなんだけど,これがけっこう時間かかった。 このブログは用意されたテンプレートをそのまま使っているように見えて目立たないところをいろいろいじっているのです。 HTMLもいじっているのでそのままテンプレートを変更することもままならないのです。

タグ:ブログ CSS HTML
posted by Rion778 at 23:05 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年06月12日

大学生のためのLinux 4.1 powerdotで画像を使う

プレゼンには画像や図を取り込まなければならない場合がしばしばあるだろう。だが,powerdotというクラスを使用した場合, PowerPointのように気軽にJPGやBMPといったおなじみの形式の画像を取り込むことはできない。「プレゼン用クラスなのに!?」 と思ってしまうが,形式さえ間違えなければ画像を取り込むのはそれほど難しくはない。

必要となる画像,図の形式は,EPS(Encapsulated PostScript, 拡張子.eps)というもの。 普段Windowsを使っているとなかなかお目にかからない形式だが(私も数ヶ月前まで聞いたこともなかった), これはPostScriptという言語によって「この図はこれこれこういう形をしていて,ここにはこんな文字がありますよ」 なんてことを記述したものをほかのアプリで使えるようにカプセル化したものだ。なんだかイマイチわからないが, ようするに言語で記述されているテキストファイルなのだ(実際にテキストエディタで開いて編集もできる)。また, 通常の画像のようなビットマップのみならず,拡大縮小しても線がギザギザにならないベクトル形式も扱える優秀な形式。だから, EPSしか使えないからといって,EPSの入手以外に困ることはない。

ちなみになぜEPSが必要かといえば,powerdotを使用したPDFファイルを作成するには, dvi→ps→pdfという段階を踏まねばならず,dvi→psの段階で使用するdvipsが扱える画像形式がepsのみだからである。

前置きが長くなったが,EPS形式の図を入手する方法は2つある。

まず一つははじめから図をEPSでアウトプットするという方法。

Windowsの場合はIllustratorやPhotoshopなどでEPS出力ができるらしい。 高価なツールだけど持っている人は試してみるといいかもしれない。ほかにはUNIX系のツールおよびそれをWindowsに移植したもので, tgifやGimpといったツールを使う方法。こちらはフリー。これらの場合はじめからこのソフトで作図する,または画像を読み込んで, 出力するときにEPS形式を選択すればEPSで保存できると思う。

ただ,私はこれらの方法はあまり使わず次に示す方法を主に用いる。

そのもう一つの方法とはImageMagickを使うというもの。

ImageMagickはCUIベースで画像処理を行うUNIXのソフト。各種画像の相互変換が簡単にできる。 ちなみにWindows移植版もある。Vineを使っている場合すでに入っているかもしれない。入っていない場合, パッケージマネージャーのSynapticで追加する。あるいは端末を立ち上げ,

# apt-get install ImageMagick

でもよい。

ImageMagickを用いて画像を変換するには,端末から

$ convert hoge.jpg hoge.eps

というように打ち込めばよい。つまり "convert" に続いて変換元のファイルのパス, 変換後のファイルのパスと打ち込むのである。そして,変換後に出力されるファイルのパスに付ける拡張子を目的のものに書き換えるだけで, EPSやPDFなど各種の形式に変換できるのである。このやり方の場合, JPGだろうがBMPだろうがGIFだろうがEPSに簡単にすばやく変換できるので便利だ。ただ, PDFからEPSにしようとするとやたら時間がかかってファイルサイズも膨大になることがあるので, そのときはGimpなどを使った方がよい。

ImageMagickはほかにもいろいろなことができる。詳しくはここ東北大学大学院工学研究科土木工学専攻構造強度学研究室のHPの中。 基本的な使い方から画像加工の方法まで紹介されています。また, LaTeXなどの情報も豊富。)などを参考に。

で,肝心のEPSファイルの使い方。プリアンブル (\documentclass〜\begin{document}までの間)に

\usepackage{graphicx}

と書いておいたら,(2007.10.19追記:powerdotを使う場合、 graphicxパッケージはクラスファイル内で読み込まれるようになっているためこの記述は必要ありません。 )画像を入れたい箇所に

\includegraphics[width=3cm,clip]{hoge.eps}

などとして, あとは普通にpowerdotを使用したファイルからPDFを作成する要領で処理すれば画像の埋め込まれたPDFが作成される。

posted by Rion778 at 00:33 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。