我一直在尝试使用biblatex-chicago
来替代旧的.bst
(现在已经过时的),但我仍然不清楚如何biblatex
处理缩写和缩写。例如,当我引用期刊中的一篇文章时旧约,我希望脚注使用缩写室性心动过速,但参考书目使用完整形式。在我的旧.bst
文件中,我使用了 .bib 字段shortjournal
,但这似乎行不通biblatex
。同样,我希望能够缩写常用的参考文献,例如古代近东文献作为安特卫普网络在我的脚注中,并在参考书目中使用它的完整形式。
我猜测这个功能是内置的biblatex
,我只是不知道如何使用它。
答案1
您可以使用几个不同的字段:
shorthand
:替换整个引文标签。在详细/“注释”样式中,此缩写在第一个引文后使用。shorttitle
:title
如果出现在引文标签中,则替换。在详细/“注释”样式中,此缩写在第一次引文后使用。shortjournal
:在默认数据模型中定义,但在标准样式或中未使用biblatex-chicago
。
为了纳入shortjournal
标准样式,您可以修改序言中journal
的参考书目宏:biblatex.def
\renewbibmacro*{journal}{%
\ifboolexpr{ test {\ifcitation} and not test {\iffieldundef{shortjournal}} }
{\printfield[journaltitle]{shortjournal}}
{\iffieldundef{journaltitle}
{}
{\printtext[journaltitle]{%
\printfield[titlecase]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}}}}}
这些biblatex-chicago
样式已根据 CMS 的要求进行了定制。它们比标准样式复杂得多,因此很难修改。对于大多数情况,journal+sub
对包的任何一个文件中的宏进行以下编辑都应该有效:cbx
\renewbibmacro*{journal+sub}{%
\ifboolexpr{ test {\ifcitation} and not test {\iffieldundef{shortjournal}} }
{\printfield[journaltitle]{shortjournal}}
{\iffieldundef{journaltitle}
{}
{\printtext[journaltitle]{%
\printfield[noformat]{journaltitle}%
\setunit{\addcolon\addspace}%
\printfield[noformat]{journalsubtitle}}}}}
答案2
如果你有shortjournal
字段并使用biber
后端,你可以这样做
\DeclareSourcemap{%
\maps[datatype=bibtex]{
% Journal abbreviations
\map[overwrite]{
\step[fieldsource=shortjournal]
\step[fieldset=journaltitle,origfieldval]
}
}
}
我从许多网站下载引文(导入Zotero
)时都提供Journal Abbr
(shortjournal
导出Better BibLaTeX
),但有些网站没有。然后我需要添加,例如
\DeclareSourcemap{%
\maps[datatype=bibtex]{
% Journal abbreviations
\map{
\step[fieldsource=journaltitle, match={Physics Letters A},
replace={Phys. Lett. A}]%
}
}
}
或者将其放入 Zotero 数据库。