
biblatex + biber
何らかの方法で略語のリストを提供すれば、IEEE 標準略語を自動的に置き換える方法はありますか?
例えば:
「IEEE 国際コミュニケーション会議の会議記録」
なるべきです
「1995 IEEE国際会議勧告」
答え1
私は IEEE スタイルにはあまり興味がありませんが、一般的な設定は理解できたと思うので、試してみることにします。
biblatex
のieee
スタイルを使用していると仮定しますが、IEEEabrv.bib
によって提供された読み込みですIEEEtran
(ただし、「IEEE International Conference on Communication の会議記録」は見つからなかったので、ここでは からのエントリを使用しますIEEEexample.bib
)。
で提供されている標準IEEE略語を上書きする方法は2つありますIEEEabrv.bib
。1つ目は、略語文字列の2番目のファイルを作成し、それをロードすることです。後 IEEEabrv.bib
2 つ目は、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 で保存して実行する必要がありました。しかし、すでにこれらの略語を使用しているようなので、何らかの方法で対処できたと思います。