我使用两个字段(type 和 entrysubtype)来格式化特定的条目类型 [下面有解释,以防它引发任何想法]。在大多数情况下,它们是相同的;偶尔会有理由将它们设置为不同。如果它们相同,则要求用户输入这两个字段会浪费大量时间。
为了简化 biblatex 中的处理,我突然想到,如果用户没有输入 entrysubtype 字段,我可以使用 biber 从 type 字段设置 entrysubtype 字段。为此,我使用以下内容(在 biber 0.9.9 中)
<map map_overwrite="0">
<per_type>LEGISLATION</per_type>
<map_step map_field_source="type"
map_final="1"/>
<map_step map_field_set="entrysubtype"
map_origfieldval="1"/>
</map>
这按预期工作。第一步中的“final”完全没有必要,它确保它不会在没有类型字段的情况下大惊小怪。第二步只有在没有设置任何内容时才会正确添加entrysubtype。但在这些情况下,尽管它的行为完全正确,但它会生成警告,这些警告也会传播到LaTeX运行,表明它已经不是覆盖了 entrysubtype 字段。
如果其他条件相同,我宁愿不是当程序执行其应执行的操作时向用户发出警告。有没有办法停止此类警告?(我想我需要的是一个 map 步骤,它检查条目类型是否已设置,如果已设置,则终止处理;但我想不出如何构建这样的步骤,尽管这可能是因为我完全是 biber.conf 新手。)或者有什么我不知道的需要担心的事情?(我意识到我可以通过检查 biblatex 中未定义的字段来完成所有这些工作,但我认为我的替代解决方案将使代码更简洁。)
[Type 用于确定应打印什么(例如“决策”),entrytype 用于确定特定来源最终位于哪个索引中。在大多数情况下,一项自称为决策的立法是决定:偶尔是别的东西,应该进行相应的索引。
答案1
你说得对 - 我会默认仅在 biber 1.0 中调试时才显示这些消息。目前 biber 1.0 的当前开发版本已实现此操作。