biblatex 中的简称、期刊缩写等

biblatex 中的简称、期刊缩写等

我一直在尝试使用biblatex-chicago来替代旧的.bst(现在已经过时的),但我仍然不清楚如何biblatex处理缩写和缩写。例如,当我引用期刊中的一篇文章时旧约,我希望脚注使用缩写室性心动过速,但参考书目使用完整形式。在我的旧.bst文件中,我使用了 .bib 字段shortjournal,但这似乎行不通biblatex。同样,我希望能够缩写常用的参考文献,例如古代近东文献作为安特卫普网络在我的脚注中,并在参考书目中使用它的完整形式。

我猜测这个功能是内置的biblatex,我只是不知道如何使用它。

答案1

您可以使用几个不同的字段:

  • shorthand:替换整个引文标签。在详细/“注释”样式中,此缩写在第一个引文后使用。

  • shorttitletitle如果出现在引文标签中,则替换。在详细/“注释”样式中,此缩写在第一次引文后使用。

  • 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 Abbrshortjournal导出Better BibLaTeX),但有些网站没有。然后我需要添加,例如

\DeclareSourcemap{%
  \maps[datatype=bibtex]{
    % Journal abbreviations
    \map{
      \step[fieldsource=journaltitle, match={Physics Letters A},
      replace={Phys. Lett. A}]%
    }
  }
}

或者将其放入 Zotero 数据库。

相关内容