1/4 さみしいとたくさんたべます

論文提出直前のTexまつり.

 

図番号の形式を「図1:〇〇」じゃなくて「図-1 〇〇」にしたい

必要な作業は

・コロンをなくす

・図-という表記にする

の二つ.ちなみに以下のは図だけじゃなくて表にも使えると思います(figureをtableにすればよい).

okwave.jp

detail.chiebukuro.yahoo.co.jp

\makeatletter
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
\else\sbox\@tempboxa{#1\ #2}%
\fi
\ifdim \wd\@tempboxa >\hsize
\iftdir #1\hskip1zw#2\relax\par
\else #1\ #2\relax\par\fi
\else
\global \@minipagefalse
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
\makeatother

これをプリアンブル(\begin{document}の前)に入れる.jarticle.clsの対応する箇所から:を\ (半角空白)に置換するよう指示しているらしい.

 

これに加えて,\makeatletterと\makeatotherの間に

% 表示文字列を"図"から"図-"へ
\renewcommand{\figurename}{図-}

 これを入れる.

d.hatena.ne.jp

このページはいろいろ役に立ちそうなのが載っていておすすめ.

% 図番号を"<章番号>.<図番号>" へ
\renewcommand{\thefigure}{\thesection.\arabic{figure}}

% 章が進むごとに図番号をリセットする
\@addtoreset{figure}{section}

とか.

 

 

参考文献のスタイルを変えたい

デフォルトだと本文中も参考文献のまとめの中も[1]みたいな表記だけど,これを本文では上付き片かっこ,参考文献まとめは普通の片かっこにする.

文中の記号は「\cite」というコマンドを使って引用します.
そのため,変更するのは「\cite」です.

まず,プリアンブルの「\makeatletter」と「\makeatother」の間に,下のように入力します.
\renewcommand{\@cite}[1]{\textsuperscript{#1)}}
ここでは,「\renewcommand」というコマンドを使って,「\cite」を定義しなおしているのです.
一番最後の「\textsuperscript{#1)}」の部分が上付き文字(superscript)の片括弧「1)」を表しています.
なので,他の表示方法が良い場合はこの部分を書き直してください.
また,「#」を消してしまうと,全部の数字が「1」になってしまうので,注意してください.
と,
文章の最後につける参考文献の部分の表示の変更方法です.
これは「\biblabel」というコマンドを変更します.
1.と同じで,プリアンブルの「\makeatletter」と「\makeatother」の間に記入してください.
\renewcommand{\@biblabel}[1]{#1)}
上をそのまま記入すると,参考文献欄では「1)」というように表示されるようになります.
もし両カッコにしたいという場合は最後の「{#1)}」の部分を「{(#1)}」に変更すればOKです.
めちゃめちゃわかりやすい…!

www32.atwiki.jp

 

ページ数を表示しない

いろんな人から集めた論文を印刷する場合とかだとよくある?のかも?ページ数を入れないで送ってください,というやつ.

at-aka.blogspot.jp

 

Texの図や表の挿入位置がうまくいくおまじない

おまじないって書いたけどほんとうにおまじないなわけではない.笑

位置指定のtbphの前に感嘆符(!)を付ける.より強い希望を表すことができるので優先されやすくなる.

 

図や表の配置

必ずうまくいくわけではないのだけれど,ちょっとパワフルになれる(気がする)方法.ちょっとはっぴー!って大事(ちょっと違う)

 

1/3 お仕事するならおやすみのある職場がいいな

ArcGISの縮尺記号・方位記号・凡例を入れた地図をTexで使いたいの巻

Texで使う地図を作成したい.ということで,ArcGISで作った縮尺を入れた地図をepsファイルで出力する方法のまとめ.イラレを持っている前提です.

 

ArcGISで地図をつくったら,表示タブからレイアウトビューにすると,縮尺記号などが挿入タブから入れられるようになる.入れたものを右クリックするといろんな形式(見た目も,メートル/マイルなど単位も)が選べる.d.hatena.ne.jp

地図を横向きで作りたい/特定縦横比で作りたいときは

ArcGIS Desktop

ここに書いてある通り,ファイルタブ→ページ設定/印刷設定→「プリンタの用紙設定を使用」のチェックを外して縦横の値を指定したり用紙の向きを横にしたりすればいい.

つぎにマップを拡大縮小して調整する.たぶん最初は余白がだいぶ大きくとられて表示されていると思うので,自分が使いたい範囲を用紙の目いっぱいになるよう配置する(いらない部分が用紙からはみ出してもいい).ちなみに縮尺記号は地図を縮小拡大すれば勝手に合わせてくれる.うまくできているか,ファイル→印刷プレビューでチェックするのがおすすめ.

 

次はエクスポートするわけだが,何も知らないとさっぱりわからないポイントがある.レイアウトビュー,つまり縮尺記号などが入っているバージョンは,PDF ファイル、PostScript ファイル、または Illustrator ファイル以外の形式でエクスポートできない(わたしの場合は形式選択はできたけど破損したファイルしか出力されなかった).

desktop.arcgis.com

各形式についての詳しい説明はここ↓

desktop.arcgis.com

なので,まずはイラレファイル(.ai)で出力する.これをイラレで開いて,文字化けとかしていたら直して,別名保存でepsファイルに変換.これでTexに使いやすくなる.

 

1/2 毎日ずっとひだまりのなかでねてたい

Rのpasteで空白が入っちゃうのを防ぐ

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/17.html

このHPの例みたいに

 paste("May I", "help you ?")
[1] "May I help you ?

"May I"と"help you ?"との間に空白が入るのは,多分区切り文字のデフォルトが半角スペースになっているから.これがいやだっていうときは,

paste("May I", "help you ?", sep ="")

引数で区切り文字の指定を何にもなしにすればOK.

 

rbindのコラム名が違うとエラーになる話

names do not match previous names」というやつ.

これ,超微妙な違いでもダメなので,ほかのとこでdata.frameでくっつけたデータを使おうとしたりすると,そのデータ名が列名にくっついていてrbindで扱えなくなったりする.たとえば,

data <- data.frame(D1 = data1, D2 = data2)

datanew <- data.frame(D3 = data3, D4 = data4)

とかすると,多分列名にD1.緯度とかD2経度みたいにデータ名がついちゃったりすることがあり,コラム名が違うものになってしまう.

そこで,コラム名を変えてそろえてしまえばrbindが使えますという話.

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/26.html

これはたぶん万能.

names(datanew) <- names(data)

とかすればOK(コラム名が同じデータかどうかは確認すること).

 

もしくは,もっと単純なケースで,for文で同じものを繰り返しくっつけていくのにrbindを使いたくて…くっつけていく元のデータは存在しなくて…でも新しく定義するのはめんどくさくて…みたいなときは,初期値をNULLにしておけば解決.

matA <- matrix(1:6, ncol = 3, nrow = 2)
matSum
<- rbind(matSum, matA) #matSumが見つからないというエラーが出ます

 

#まとめ用のオブジェクトをNULLで定義しておく
matSum
<- NULL
matA
<- matrix(1:6, ncol = 3, nrow = 2)
matSum
<- rbind(matSum, matA) #エラーを出しません

webbeginner.hatenablog.com

 

rbindの「不正な因子基準」

「In `[<-.factor`(`*tmp*`, ri, value = c(○○): 不正な因子水準です。NAが発生しました」

rbindは便利なようで意外とよくわからないエラーが出る.笑 

hoge <- rbind(hoge1, sapply(hoge2, as.character))

数値型のデータに文字型をアペンドする事は可能だが,文字型のデータに数値型などのデータをアペンドすると「In `[<-.factor`(`*tmp*`, ri, value = c(○○): 不正な因子水準です。NAが発生しました」という(それを読むだけでは意味の良くわからない)警告が出て,数値が<NA>に書き換えられてしまう.それを避けるためにも型が混ざっているようなデータの場合は,「rbind」の二つ目引数に「sapply(引数, as.character)」をつけていた方がいいだろう.

・文字型データフレームに数値型データフレームをくっつけようとすると出るエラー

・これが出ると数値がNAに変えられてしまう

・これを防ぐためには,数値型データのほうにas.characterを適用して全部文字列型に変換すればエラーは出なくなる

d.hatena.ne.jp

 

Rの文字コードエラーの話

Error: invalid multibyte character in parser at line 1

というのが突如出始めることがある.Rstudioは基本的に実行しなければ勝手にコンソールにメッセージが出ることはないのだけど,これは(なにもしてないのに)一定時間ごとに何度も表示される.こわい.笑

その原因はなにかよくわからなかったのだけど,こちらを見て考えるに,

what-alnk.hatenablog.com

特定文字のあとに[をつけると出るらしい.文字コードの問題みたいだ.ちなみに私はギリシャ文字じゃなくて日本語(漢字)のあとに[だったのだけど…

Rプログラム (TAKENAKA's Web Page)

これみたいな感じで,データ名$列名 の表現を使おうとしていた.この表現をやめてデータ名[,列番号]にしたら直ったから,多分ここが原因だったのだと思う.

同じエラーに対してアップデートしてみてくださいという回答がついている質問サイトもあったから,

stackoverflow.com

どうしても上の表現を使わなきゃいけないときはアップデートしてみるのもいいかも.

 

 

BibTeXがわからなかった話

Mendeleyを導入しました.このあたり見れば簡単にbibファイル作ってその引用を使ってかけます.

BibTeX を使った文献目録の作成 - Okomeda Net

LaTeX(文献の参照BibTeXの書き方)

pioneerboy.hatenablog.com

www.ketsuago.com