macOSのLaTeXでjeconスタイルの参考文献を作るまで

## 動作環境

macOS (High Sierra) 上で，upLaTeX + upBibTeX + dvipdfmxによりpdf出力することで動作確認しています．

## まえがき

LaTeXの引用文献はBibTeXで管理されることが多いです．日本語論文が含まれる場合，[`jecon.bst`](http://shirotakeda.org/ja/tex-ja/jecon-ja.html)というスタイルシートの使用がデファクトスタンダードであるようです．以下の2ステップでjeconスタイルの引用文献が作成できます．

1. `jecon.bst`をダウンロードし，適切なディレクトリに配置する
    * 検索パスに含まれていないディレクトリに置いた場合，当然`jecon.bst`は認識されない
2. TeXファイル内で`\bibliographystyle{jecon}`としてスタイルを設定する
3. BibTeX使用時の基本的な方法に従ってコンパイルする

たったこれだけなのですが，意外と手間だったりします．自分は以下の2箇所でハマりました

* TeXの検索パスが分からないので，jecon.bstをどこに置くべきか分からない
* BibTeX使用時のコンパイルの方法が分からない

とくに前者の問題に困っている人は他にもいる気がします．というのも，

* TeXの検索パスを探す方法に癖がある
* ネットに転がっている情報が少し古いかもしれない (同じ手順を踏んでもうまくいかない場合があった)

からです．そこで参考文献作成までの手順をメモしておくことにしました．

## 1. jecon.bstの置き場所を探す

`jecon.bst`を置く場所の候補は2種類あります．1つは.texファイルと同じ階層です．それで良けれればこの節は読み飛ばしてもらってかまいません．この方法は手っ取り早い一方，他の階層で文書を作成するときに`jecon.bst`をコピペする必要があります．

もう1つは，ユーザーごとに用意された設定ファイル置き場 (以下TEXMFHOMEとする) です．ここに適切なディレクトリ構成でファイルを置けば`jecon.bst`をデフォルトのスタイルと同じように使えるようになります．したがって，EXMFHOMEを確認し，ディレクトリ構成を確認し，TEXMFHOME下に適切なディレクトリを作成する，計3ステップが必要です．

第一に，TEXMFHOMEの場所を確認します．TEXMFHOMEは環境変数`$TEXMFHOME`によって指定されています．しかしこの環境変数は`$HOME`のような一般の環境変数とは異なります．`$TEXMFHOME`はkpathseaなるパッケージで管理される環境変数であるからです．したがって，たとえば`echo $TEXMFHOME`しても何も返ってきません．`echo $TEXMFHOME`に対応するコマンドは

```bash
kpsewhich -var-value TEXMFHOME
```

です．自分の場合`$TEXMFHOME`は`~/Library/texmf`です．このディレクトリが実際に存在しない場合は新たに作成します．

第二に，TeXの標準パッケージ置き場 (以下TEXMFDISTとする) のディレクトリ構成を確認します．TEXMFDISTはTEXMFHOMEと同じく，

```bash
kpsewhich -var-value TEXMFDIST
```

によって確認できます．自分の場合`$TEXMFDIST`は`/usr/local/texlive/2017/texmf-dist`です．

第三に，TEXMFHOME内にbstを置くディレクトリを作成します．ディレクトリ構成はTEXMFDISTと一致させます．`$TEXMFDIST`内のどこにbstファイルが置かれているかを確認することは簡単です．まず，

```bash
mdfind jplain.bst
```

で表示されるリストのうち，`$TEXMFDIST`内にあるものを確認します．自分の場合`/usr/local/texlive/2017/texmf-dist/pbibtex/bst/jplain.bst`でした．次に，`$TEXMFHOME`下に対応するディレクトリを作成します．自分の場合`pbibtex/bst`ディレクトリを作成します．作成したらこのディレクトリに`jecon.bst`を配置します．結局，自分の場合は`jecon.bst`を`~/Library/texmf/pbibtex/bst/jecon.bst`として配置したことになります．

### beta\_jecon2nonote.bstの場合

心理学系論文の「[執筆・投稿の手びき](https://psych.or.jp/publication/inst/)」の投稿規定に対応した引用文献を書きたい場合，[奥村先生のホームページ](http://blue.zero.jp/yokumura/texpsychology.html)から`beta_jecon2nonote.bst`もダウンロードします[^1]．こちらは本家`jecon.bst`と異なり，ファイルをnkfでunix改行形式 (LF) に変換する必要があります．2017年12月現在，たとえば以下の3行によってbstファイルをダウンロードし文字コードを変換できます (要`brew install nkf`)．

```bash
wget http://blue.zero.jp/yokumura/tex/jpa_nonote/beta_jecon2nonote.bst
nkf -Lu beta_jecon2nonote.bst > beta_jecon2nonote.bst.new
mv beta_jecon2nonote.bst.new beta_jecon2nonote.bst
```

ダウンロードしたら，`jecon.bst`と同じディレクトリに配置します．僕の場合`~/Library/texmf/pbibtex/bst/beta_jecon2nonote.bst`としました．

## 2. タイプセットの設定

BibTeXを使う場合はlatexコマンドとbibtexコマンドをlatex -> bibtex -> latex -> latexと交互にコンパイルし，最後にdvipdfmxでpdf化する必要があります．例えば`texfile.tex` (中で`bibdata.bib`を呼び出している) からpdfを作成する場合，

```bash
uplatex texfile.tex
upbibtex texfile
uplatex texfile.tex
uplatex texfile.tex
dvipdfmx texfile
```

とします．面倒であれば引数にファイル名 (`texfile`) を取るようなシェルスクリプトを書けばよいと思います．

### タイプセットの設定 (Texpadの場合)

macOSでTexpadを使用している場合は上述したビルドを自動化出来ます．
「タイプセット」 → 「グローバルなビルドスクリプトを管理」で開かれる`BuildScripts`ディレクトリに，以下のスクリプトを`uplatex-upbibtex.tpbuild`として保存します．

```bash
#!/bin/bash

uplatex "$TEXPAD_ROOTFILE"
upbibtex "$TEXPAD_ROOTFILE_NO_EXT"
uplatex "$TEXPAD_ROOTFILE"
uplatex "$TEXPAD_ROOTFILE"
dvipdfmx "$TEXPAD_ROOTFILE_NO_EXT"
```

[^1]: beta_jecon2nonote.bstを使って心理学論文を書く場合，文章中では`Asan and Bsan (1999)`とし，()内では`Asan & Bsan, 1999`とする必要があります．自分は以下のように`\citet`を定義しなおし，そちらを使っています．

  ```tex
  \newcommand{\citeandt}[1]{{\renewcommand{\&}{and}\citet*{#1}}}  % 「&」を「and」に変
  ```