我需要对manual
BibLaTex 的条目类型进行一个小的修改。修改是添加一个字段并打印该字段而不是字段(version
如果已在条目中设置)。我的问题是我应该扩展现有manual
类型还是创建一个新的条目类型(如)extmanual
。我希望两种变体都能正常工作,但我想知道社区认为什么是最佳实践。
另外:使用\DeclareBibliographyDriver{manual}
in而不是 eg ,所以我想我无论如何都无法彻底更改现有的驱动程序,并且我必须为两种变体重新(声明)完整的驱动程序---对吗?(如果可能的话,根据我的需要进行更改感觉是错误的。)standard.bbx
\printfield{version}
\usebibmacro{version}
manual
\DeclareFieldFormat{version}{...}
答案1
对于基本数据类型不变的细微修改,我只会修改驱动程序(或相关的 bibmacros,如果可能的话,因为这通常涉及的代码较少),而不会定义新的条目类型。但如果作品的类型与通常所@manual
代表的类型有本质上的不同,并且您打算引用更多这种类型的作品,那么新的驱动程序可能仍然有意义。
根据问题描述和建议的新名称,@extmanual
我猜我们正在讨论第一种情况,在这种情况下我只需修改驱动程序。
您可以使用xpatch
的\xpatchbibdriver
不必完全复制其定义(例如biblatex:\fullcite 产生的结果与参考书目条目不同)。 也可以看看Biblatex 的 bibmacros、参考书目驱动程序、格式 - 修补或重新定义?。
以下补丁将在for条目edition
后添加字段version
@misc
\xpatchbibdriver{misc}
{\printfield{version}}
{\printfield{version}%
\newunit\newblock
\printfield{edition}}
{}{}
编辑:最初我@manual
在这里修补了驱动程序以更接近问题,但我刚刚意识到即使没有修补也@manual
已经可以打印edition
,所以这将是毫无意义的练习。