Biber+biblatex 自動標準略語

Biber+biblatex 自動標準略語

biblatex + biber何らかの方法で略語のリストを提供すれば、IEEE 標準略語を自動的に置き換える方法はありますか?

例えば:

「IEEE 国際コミュニケーション会議の会議記録」

なるべきです

「1995 IEEE国際会議勧告」

答え1

私は IEEE スタイルにはあま​​り興味がありませんが、一般的な設定は理解できたと思うので、試してみることにします。

biblatexieeeスタイルを使用していると仮定しますが、IEEEabrv.bibによって提供された読み込みですIEEEtran(ただし、「IEEE International Conference on Communication の会議記録」は見つからなかったので、ここでは からのエントリを使用しますIEEEexample.bib)。

で提供されている標準IEEE略語を上書きする方法は2つありますIEEEabrv.bib。1つ目は、略語文字列の2番目のファイルを作成し、それをロードすることです。 IEEEabrv.bib2 つ目は、biblatex'sを使用して\DeclareSourcemapエントリのデータを変更することです。

最初の例は次のようになります。

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{myIEEEabrv.bib}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

必要な短縮文字列の再定義が含まれる場所myIEEEabrv.bib。この場合、次のようになります。

@STRING{IEEE_J_EDL        = "{IEEE} Elec. Dev. Lett."}

( で定義されている文字列はIEEEabrv.bibです{IEEE} Electron Device Lett.)。 の後にロードする必要があることに注意してくださいIEEEabrv.bib

もし私があなたの質問を読み間違えていて、あなたが実際に望んでいるのはあなた自身の短縮されたジャーナルタイトルを提供することであるならば、この方法もまた賢明なアプローチを提供します。ファイルを作成しabbrev.bib、そこに必要な文字列を定義し、 でそれを追加します\addbibresource。そして、あなたの参考文献.bibファイルで文字列を使用します。名前(つまり、上記の例のように括弧なし) をjournaltitle/journalフィールドに入力します。次のようになります。

@string{IEEEIntConfCom = "Conf. Rec. 1995 {IEEE} Int. Conf. Commun."}

そして、bibfile で次のように使用します:

journaltitle = IEEEIntConfCom,

通常、このアプローチでは、完全な文字列が定義されている 2 番目のファイルも必要になりますfull.bib。そのファイルの内容は次のようになります。

@string{IEEEIntConfCom = "Conference Record {IEEE} International Conference on Communication"}

これを使用すると、省略されたジャーナルから完全なジャーナル タイトルに変更するには、メイン ファイルで\addbibresource{abbrev.bib}を置き換えるだけです。\addbibresource{full.bib}.tex

2 番目のアプローチは、前述のように、以下を使用することです\DeclareSourcemap

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
    \maps[datatype=bibtex]{
        \map{
            \step[fieldsource=journal,
                      match={{IEEE} Electron Device Lett.},
                      replace={{IEEE} Elec. Dev. Lett.}]
        }
    }
}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

は、文字列の名前ではなく、matchで定義されている標準の省略形を表すことに注意してください。IEEEabrv.bib

注: のエンコードで問題がありましたIEEEabrv.bib。そのため、これを動作させるには、UTF-8 で保存して実行する必要がありました。しかし、すでにこれらの略語を使用しているようなので、何らかの方法で対処できたと思います。

関連情報