TexShopでうまく文献が引用 & リスト作成されない (最終目標: Dropboxでの .bib,.bst,.styファイル管理)
問題①: .bib ファイルを `texmf-local' においたのに認識されなかった
TEXMFHOME' (
/Users/ユーザー名/Library/texmf' )直下におくと認識される
原因: 参照したときに,`TEXMFHOME' にあった同じ名前の .bib ファイルが参照されたと思われる
- `TEXMFHOME' にあった .bib ファイルにはない文献キーを本文で指定していたのでエラー
対処: `TEXMFHOME' にあった .bib ファイルを全て削除
- `texmf-local' 直下に .bib ファイルを移動
- `sudo mktexlsr' を実行
一覧表の更新 (mktexlsr) について
LaTeX がファイルを読み込むときは TeX のディレクトリの中から目当てのファイルを探しますが,ファイルを探すのはそれなりの時間がかかります。 そこで考え出されたのが「あらかじめファイルの一覧表を作っておき,ファイルを探すときにはそれを参照する」という仕組みで,この一覧表 (ls-R) を作るコマンドが mktexlsr です。 手元のシステムでこの一覧表を利用しているかどうかは,ls-R というファイルが存在するかどうかを調べるとわかります。
TeX Live では,この ls-R という一覧表でファイルを管理しています。このため,新しいパッケージなどをインストールするたびに一覧表を更新してやらないと,せっかくインストールしたつもりのパッケージも LaTeX から見つけてもらえずに使用できません。TeX Live でパッケージを追加した場合は
mktexlsr
を実行して一覧表を更新しましょう。
Dropboxでの管理環境作成
- `Bibliography' フォルダを作成し, .bib,.bst,.sty ファイル置き場を作成
- `/usr/local/texlive/2020/texmf-dist/web2c/texmf.cnf' を以下のように編集
- 参考: ここ
% pBibTeX bibliographies and style files. %BIBINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bib// BIBINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bib//;~/Dropbox/TexShared// %BSTINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bst// BSTINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bst//;~/Dropbox/TexShared// % upBibTeX bibliographies and style files. %BIBINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bib// BIBINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bib//;~/Dropbox/TexShared// %BSTINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bst// BSTINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bst//;~/Dropbox/TexShared// ︙ % BibTeX bibliographies and style files. bibtex8 also uses these. %BIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib// BIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib//;~/Dropbox/TexShared// %BSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{bst,csf}// BSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{bst,csf}//;~/Dropbox/TexShared//
- 編集権限がなかったら管理者に登録
- 上位のフォルダ権限も変更が必要
問題②: texでの文献リストの形式を決める .sty ファイルが認識されない
対処: `texmf.cnf' を,さらに以下のように書き換えてみた
- 最後の行は元のまま
% (e)up(La)TeX, and for upmpost %TEXINPUTS.uplatex = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}// TEXINPUTS.uplatex = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}//;~/Dropbox/TexShared// %TEXINPUTS.uplatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,uplatex,platex,latex,generic,}// TEXINPUTS.uplatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,uplatex,platex,latex,generic,}//;~/Dropbox/TexShared// %TEXINPUTS.uptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}// TEXINPUTS.uptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}//;~/Dropbox/TexShared// %TEXINPUTS.euptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}// TEXINPUTS.euptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}//;~/Dropbox/TexShared// TEX.upmpost = euptex
- うまく通った!