bst ファイルの変更 - 区切り文字の変更

bst ファイルの変更 - 区切り文字の変更

現在、bst ファイルを変更しています。現在直面している問題は、スタイルのセパレーターを変更する方法です。

現時点では、次の出力が得られます。

バディ、ディナ(2010)「集団思考、イラク、そして対テロ戦争:イラクに対する米国の政策転換を説明する」外交政策分析6(4):277-296。

ただし、次の出力が必要です。

バディ、ディナ(2010)「集団思考、イラク、そして対テロ戦争:イラクに対する米国の政策転換の説明」、外交政策分析6(4):277-296。

年号の後にカンマは入れませんが、タイトルの後(および編集された書籍の章では編集者の後)にはカンマを入れます。

bst ファイルのコードは次のとおりです。

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        %{ add.period$ write$
        { " " * write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title quote "title" output.check
  new.block
  crossref missing$
    {
      journal
      "journal" bibinfo.check

      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  format.note output
  fin.entry
}

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

答え1

私は自分で問題を解決しようとしました。そこで、@article関数を変更して

format.title quote "title" output.check

format.title ", " * quote "title" output.check

完全な関数は次のとおりです

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title ", " * quote "title" output.check
  new.block
  crossref missing$
    {
      journal
      "journal" bibinfo.check
      emphasize
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  format.note output
  fin.entry
}

結果は次のようになります。

バーク、ジョン・P.(2005a)「NSC顧問としてのコンドリーザ・ライス:誠実な仲介人としての役割の事例」大統領研究季刊35(3):554-575。

ただし、次のように、カンマを引用符の外側に置きます。

バーク、ジョン・P.(2005a)「NSC顧問としてのコンドリーザ・ライス:誠実な仲介人としての役割の事例」大統領研究季刊35(3):554-575。

どうすればその問題を解決できますか? 引用機能を変更すれば解決できるでしょうか?

FUNCTION {quote}
{ duplicate$ empty$
    { pop$ "" }
    { "`" swap$ * "'" * }
  if$
}

関連情報