sk.kuee のすべての投稿

Bibtex database

Bibファイルのパスを通す

従来から論文を書くのに使用していたWinedtとの相性からMiKTEXを導入したところ,bibファイルの移植も必要になりました.

日本語用に従来のTEXシステムを残しているので,両方で文献データベースを使いたい,ということで見つけた方法が

環境変数に

BIBINPUT=bibファイルのパス

を加える,というもの.

これで複数TEXで文献データベースを共有できるようである.

WinEdtのローカル変数としても設定できる
Options/Execution modes/Variables
を参照

PDFのコレクションからbibファイルを作る方法

Mendeleyをダウンロードして,ローカルに保存されたpdfファイルのリストを作成する.

最近のpdfファイルの場合,論文題目,雑誌名,巻号,ページなと基本的な情報は自動的に認識される.

Physical Review 系の雑誌ではarticle numberがページとして認識されないようで、多くの場合page変数が1になるのでMendeleyで修正が必要。

テキスト化されていないpdfファイルでは,テキスト埋め込みを行って再度Mendeleyに登録する.

これらの情報をbibtexの書式で指定のファイル名で保存することができる.

Path, ファイル名の設定はMendeleyのOptions/BibTeXを参照

bibtexデータベースの主キー(texファイルへの引数)は citation key で設定する.

citatoin key は自動的に生成される場合もあり.

Mendeley上でデータを更新しても同一のエントリーがある場合、出力結果に反映されないので、bibファイル上で削除する

Winedt+MikTEX+Bibtex

論文を書くときにはすばらしいツール.(それでも遅筆は直らない)

bibファイルを同時に開いておくと,citation keyの候補が現れる.

pdfコンパイルも一発.

Relaxation time in Drude model

電気伝導を説明する古典的なモデルにDrudeモデルというのがある.

これは,電子が(何かに)散乱されることにより運動エネルギーを失い,ジュール熱になる,というモデルである.
このモデルは正しくないとわかっているのだが,電気伝導を初歩的な概念で説明できるため,量子力学を習う前の電気伝導の説明には良く用いられる.

この電子散乱に関して有名な議論がある.私は勝手に「緩和時間2倍問題」と呼んでいる.

電子の緩和時間を\tauで表すと,散乱されずに残っている電子の割合は\exp(-1/\tau)となる.
最後の散乱から\tau時間経過した電子が散乱されない割合はやはり\exp(-1/\tau)である.
そうすると,電子の寿命は2\tauになる.

これは詭弁なのだが,何がおかしいか?

問題は重みを無視していることにある.

ちなみに,Shockleyの有名な教科書「半導体物理学」8.5節で言及されているが日本語訳ではわかりにくい表現である.

 

それにしてもこの本の内容はすばらしい.絶版となっているのが惜しい.

14章冒頭の記述(川村肇訳 吉岡書店刊)

量子力学は直接の物理的意味を持たない抽象的な数学を用いるので,理論物理学の中でも可成りむつかしい分野の一つと思われている.
(中略)
そのように直接的の意味づけをもたないことは教育的な見地からは明らかに不利である.
しかしこのことは理論を適用したときに正しさに欠けるところがあると云うことには決してならない.
経験科学の数学的理論が満足しなければならない至上要請はそれが実験に合わなければならないということである.

いやはや,実学である物理の真髄です.

bibtex style

数年前からBibtexを使用しているのですが、最近になってWeb of ScienceやScitationから書誌をbibtex形式で出力するのが特に簡単になり、ほぼ週ごとにデータベースが増大しています。これを論文や報告書を書くときに使用しています。

bibtexで準備しているスタイルunsrt.bstを使うと、論文の場合我々が普段見慣れたものとは異なって、

著者1の名 著者1の姓, 著者2の名 著者2の姓,…., and 著者Nの名 著者Nの姓. 題目. 雑誌名, 巻(号):頁, 月 年.

の出力を得ます。bibファイルにすべての情報が保存されていると(Web of Scieneceからの出力は大抵そうなっている)、すべての項目が省略形でなく(例えば、Physical Review Letters)出力され、業績リストだとしても大変長ったらしくなり、論文や報告書、申請書に用いるには不適切です。Physical Revewが提供するスタイルファイルREVTEXでは題目は出力されませんが、すべての著者と雑誌名が省略無しで出力されます。

そこで、最も良くある著者が3名以上の論文の時、

著者1の名イニシャル. 著者1の姓, et al., 省略された雑誌名, (年) 頁.

つまり私の最近の論文だと、

I. Kakeya et al., Phys. Rev. B 79 (2009) 212503.

となるようにbstファイルをカスタマイズしました。

やることは以下の通り

  1. 著者が3名以上の時、著者1 et al., とする
  2. 表示させる項目の並び替え
  3. 雑誌名の対応

もとにしたbstファイルはエルゼビアが供給するelsart-num.bstです。このbstファイルはunsrt.bstをもとにしていると思われ、初心者にとっていじりやすいです。apsrev.bstは独自の関数を数多く含んでおり、手に負えません。

1. 著者が3名以上の時、”著者1の名イニシャル. 著者1の姓, et al.,” とするために、FUNCTION {format.names}の中身を書き換える

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  numnames #3 >
  {
  #2 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
          { namesleft #1 >
            { ", " * t * }
            { " {\it et~al}." * }
          if$
        }
        't  
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  }
  {
    { namesleft #0 > }
    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
      { namesleft #1 >
          { ", " * t * }
          { numnames #1 >
            { "" * }
            'skip$
          if$
          t "others" =
            { " et~al." * }
            { ", " * t * }
          if$
          }
        if$
        }
        't  
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  }
  if$
}

2. 表示させる項目を”著者, 省略された雑誌名, 巻 (年) 頁.”とするために、FUNCTION {format.vol.num.pages}を変更

FUNCTION {format.vol.num.pages}
{ 
%SP 2001/01/23
% Add the leading space only if there is a volume
  % volume field.or.null
  " "
  volume empty$
    { pop$ "" }
    { volume bold * }
  if$
  number empty$
    'skip$
    {
%      "~(" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
}

3. 雑誌名を省略形で表示させるために、string_abbrv.bibを作製し、他の文献データベースの入ったbibファイルと共に\bibliography{}の引数にする。文献データベースの雑誌名は最短の省略形で入力。

@string{PRL="Phys. Rev. Lett."}
@string{PRB="Phys. Rev. B"}
@string{APL="Appl. Phys. Lett."}
@string{JAP="J. Appl. Phys."}
@string{JPSJ="J. Phys. Soc. Jpn."}
@string{RSI="Rev. Sci. Instr."}
@string{SUST="Supercond. Sci. Technol."}
@string{PhysC="Physica C"}

雑誌の省略形については、bstファイルの末尾に含まれている場合もあり、その場合はstring_abbrv.bibは必要ない。

電磁単位系について

先日、ある学生と磁化(M-H)カーブの議論をしていたときに、emuで保存されている某社磁気測定装置のデータをどの様にして磁性イオンあたりのボーア磁子数(μB)に変換するのか、という疑問が出ました。

私は磁性畑出身なので、当たり前のように
M[emu]/w [g] * Formula weight [g/mol] / Avogadro Number [molecules/mol]
により求めた分子あたりの磁化[emu/molecule]に分子あたりの磁性イオン数を掛けてボーア磁子で割ると、μB/ion単位で求まる、と答えましたが、その学生はμBをemuで表していることに納得がいかない模様。

テキストを開いてみると、確かにμBはcgs単位系で9.27*10-21 erg/Gaussと書かれています。そこで、erg/Gaussとemuが等価である説明を試みましたが、うまくいきません。

結局、色々考えて以下の説明を導きました。

  • ここで言う1 emuとは1 cm離れた単位磁荷対からなる磁気モーメントの強さ。
  • 単位磁荷とは、μ0= 1として真空中でr = 1 cmの距離にある等しい磁極g間の力がf = 1 dynであるとき、この磁極gの強さのこと。

磁気的なクーロンの法則からf = μ0 g2/r2であるので、gの電磁単位は[cm √dyn]、これに距離を掛けると電磁単位は[cm2√dyn]となり、ボーア磁子の単位[erg/Gauss]=[dyn cm/(√dyn/cm)] と一致してめでたしめでたし。

以上の議論について誤りに気付かれた方はメール下さい。