什么应该放入 file.def 中,什么应该放入 file.bbx 中?

什么应该放入 file.def 中,什么应该放入 file.bbx 中?

我的 biblatex 样式包由一个 standard.bbx 文件和一些 .bbx、.cbx、.dbx 和 .lbx 文件组成(该包提供了不同的引用样式;因此 standard.bbx 包含参考书目样式的通用代码)。

最佳实践涉及 .def 文件的存在,但分析biblatex包和其他 biblatex 样式时,我很难弄清楚将什么内容正确包含在 .def 文件中。

我知道,对于我的 biblatex 样式的正常运行来说,这个问题无关紧要,而且从理论上讲,我还不如将 standard.bbx 的全部内容写入 .def 文件中。但是,我希望代码尽可能保持整洁。

目前我的standard.bbx文件的内容如下:

  • 警告和错误消息的定义
  • 动态源映射(\DeclareStyleSourcemap)
  • 切换 (\newtoggle) 和选项 (\DeclareBibliographyOption) 的声明
  • 执行全局选项(\ExecuteBibliographyOptions)
  • 重新定义标点符号、字符串和字段格式
  • 布尔条件的定义(\def\if[foo])
  • 命令定义
  • 新 bibmacro 的定义(\newbibmacro)
  • 重新定义 bibmacro (\renewbibmacro)
  • 书目驱动程序声明(\DeclareBibliographyDriver)
  • bibcheck 的定义(\defbibcheck)
  • 排序模板的定义(\DeclareSortingTemplate)
  • 使用 \DeclareLanguageMappingSuffix
  • \NewBibliographyString 的使用
  • 新的 bibenvironment 的定义(\defbibenvironment)

上述哪些项目可以合理地放入 .def 文件中?

答案1

biblatex对样式施加的结构约束biblatex不包括.def文件。

  • 您需要一个.bbx用于参考书目样式的文件和一个.cbx用于引用样式的文件。(至少在理论上,这个想法是,您可以使用这两个文件整齐地分离参考书目和引用 bibmacros 等,并且用户可能有机会加载不同的参考书目和引用样式。实际上,并不总是清楚某个宏是否应该放入.bbx.cbx文件,并且某些样式非常复杂,以至于几乎不可能解开定义,因此只有同时加载和时它们才能工作.bbx.cbx
  • 如果需要修改默认数据模型,则需要一个.dbx文件。
  • 如果您的风格需要超出标准的本地化biblatex,或者您需要修改标准的本地化biblatex,您还需要包含.lbx文件。

所有这些文件都是通过biblatex、其选项和其他功能加载的。如果您希望样式包含不同类型的其他文件,则需要自己加载这些文件。(我的biblatex-ext包中的样式ext-biblatex-aux.def都有一行明确加载该文件。)

我认为最佳实践并不要求你必须有一个.def文件。一些更复杂的样式确实有文件,并且在某种程度上受益于文件。但也有很多可靠的样式没有。


因为biblatex-ext我使用了一个.def文件来定义辅助命令和向后兼容代码,我觉得这些代码无法整齐地放入.bbx.cbx文件中。

由于标准biblatex有一个.def文件 ( biblatex.def),其中定义了一些更通用的“构建块宏”,因此一些更复杂样式的作者可能倾向于遵循该做法,并在其中提供对参考书目和引用样式都有意义的定义。(但请注意,核心biblatex显然是一个特殊情况:biblatex.def始终自动加载。提供一些有用的 bibmacros 以确保它们始终被定义,即使没有加载核心样式,也是有意义的。.def其他样式的 s 需要由这些样式明确加载。)

相关内容