0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaTeXで参考文献の表示をbstファイルを使って変える方法

Last updated at Posted at 2024-06-07

タイトル通りです。 タイトル変えました。

個人的な備忘録として、bstファイルを弄って参考文献の表示方法を変えるTipsを書き残しておきます。

問題1:タイトル大文字小文字 編

某学会が公式で出しているLaTeXソースファイルに含まれる.bstファイルを使うと、タイトルが先頭文字以外全て小文字になる

  • もちろん、文献情報を記載した場所(自分の場合は.bibファイルですが)では、適切に大文字が指定されています

問題の発現例

本当はこうなってほしい:
Hoge, F. (2024). The Impact of Hogehoge: Who Am I?. Journal of Internet Rojinkai, 1(1), 1-99.

でもなぜかこうなる:
Hoge, F. (2024). The impact of hogehoge: who am i?. Journal of Internet Rojinkai, 1(1), 1-99.

対策

自分が使用している.bstファイルには、次のような関数が設定されていました。

FUNCTION {format.title}
{ title
  duplicate$ empty$ 'skip$
    { "t" change.case$ }
  if$
  "title" bibinfo.check
}

あまり.bstファイルの書き方には詳しくないのですが、ちょうど中段の

    { "t" change.case$ }

で、change.case$ という関数(?)が、"t"という引数を取っています(引数が前に来るとか初めての感覚……)。
これが「先頭文字と、bibtex等で文字が{}で囲われていない文字以外全てを小文字にする」という処理なのだそう。

(↓参考にしました)

なので、上のコードを次のように修正しました:

FUNCTION {format.title}
{ title
  duplicate$ empty$ 'skip$
    { }    % 中身を消す
  if$
  "title" bibinfo.check
}

対症療法ですが、これで何とかなりました。

問題2:著者名とハイフン 編

著者名にハイフンが含まれているのに、ハイフンが表示されない(APA準拠だとハイフンが必要)。

問題の発現例

著者名がHoge-Fuga P Hogeraの場合……

本当はこうなってほしい:Hogera, H.-F. P.
でもなぜかこうなる:Hogera, H.F.P.

対策

FUNCTION {format.names}を変更します。

元ファイル.bst
{ s nameptr                     % nameptr はイテレータ
   "{vv~}{ll}{, jj}{, f{.}.}"   % フォーマット
   format.name$
   bibinfo bibinfo.check
   't :=                        % 名前をtに保存

(以下略)

マジで意味分からん関数してるタスケテ

2行目のフォーマットが次のような意味を持っているのだそう。

  • {vv~}:名前の接頭辞(例: "van", "de" など)
  • {ll}:フルファミリーネーム(姓)
  • {, jj}:接尾辞(例: "Jr.", "III" など)
  • {, f{.}.}:ファーストネーム(名)/ミドルネームのイニシャル

(perplexityに聞きました。日本では「パープレ」という略称で広めたいらしい

で、最後の{, f{.}.}{, f.}に変えるとうまくいきました。なんで??????

つまり、こう変える↓

変更後ファイル.bst
{ s nameptr                     % nameptr はイテレータ
   "{vv~}{ll}{, jj}{, f.}"   % フォーマット
   format.name$
   bibinfo bibinfo.check
   't :=                        % 名前をtに保存

(以下略)

参考にしました↓

雑記

あー、.clsファイルとか.bstファイルとかちゃんと書き方覚えたいなー(10年前からずっと言ってる)。
誰かいい感じの教本とかWebサイトとか教えてくれないかなー(他力本願寺)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?