设置新的条目类型

设置新的条目类型

按照本网站的建议操作,并查阅了 手册biblatex.pdf,我还是搞不清楚DeclareDatamodeFields和之间的区别DeclareDatamodeEntryfields。我只得到了地址字段作为结果(本例中为巴黎)。pdflatexbiber

平均能量损失

\documentclass{article}
\usepackage[datamodel=manuscript,bibstyle=verbose,citestyle=verbose]{biblatex}
\begin{filecontents}{manuscript.dbx}
\DeclareDatamodelEntrytypes{manuscript}
\DeclareDatamodelFields[type=field, datatype=literal]{datation,title,library}
\DeclareDatamodelEntryfields[manuscript]{
title,
library,
datation}
\end{filecontents}
\begin{filecontents}{maniscript.bib}
@manuscript{P1470,
    library={BNF},
    address={Paris},
    datation={\textsc{viii}\textsuperscript{e} s.}
\end{filecontents}

\bibliography{manuscript.bib}
\begin{document}
\nocite{*}

\printbibliography
\end{document}

答案1

你实际上已经很接近了。如果你看看moewe 关于这个话题的经典回答您可以更好地掌握创建新条目类型的可能性和要求。

不过,要让您的新字段在参考书目中排版,您严重缺少适用于您的manuscript条目类型的驱动程序。我不确定您要查找的格式,但这可以作为示例:

\DeclareBibliographyDriver{manuscript}{%
  \usebibmacro{begentry}%
  \printfield{library}%
  \setunit{\addcomma\space}%
  \printlist{location}%
  \newunit\newblock
  \printfield{title}%
  \setunit{\addcomma\space}%
  \printfield{datation}%
  \usebibmacro{finentry}%
}

我还从您的文件中删除了 title 和 library .dbx,因为它们已默认定义。您仍应\DeclareDatamodelEntryfields[manuscript]{...像往常一样将它们添加到您的文件中。另外,请注意,将citestyle和设置bibstyleverbose等同于更直接的style=verbose

在全:

\documentclass{article}

\usepackage[datamodel=manuscript,style=verbose]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{manuscript.dbx}
  \DeclareDatamodelEntrytypes{manuscript}
  \DeclareDatamodelFields[type=field, datatype=literal]{datation}
  \DeclareDatamodelEntryfields[manuscript]{
    title,
    library,
    location,
    datation}
\end{filecontents}

\begin{filecontents}{manuscript.bib}
@manuscript{P1470,
  library = {BNF},
  title = {A title},
  location = {Paris},
  datation = {\textsc{viii}\textsuperscript{e} s.},
}
\end{filecontents}

\DeclareBibliographyDriver{manuscript}{%
  \usebibmacro{begentry}%
  \printfield{library}%
  \setunit{\addcomma\space}%
  \printlist{location}%
  \newunit\newblock
  \printfield{title}%
  \setunit{\addcomma\space}%
  \printfield{datation}%
  \usebibmacro{finentry}%
}

\DeclareFieldFormat[manuscript]{title}{\mkbibquote{#1\isdot}}

\addbibresource{manuscript.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

enter image description here

您可以(也应该)仔细研究 moewe 的链接答案,尤其是格式指令。此外,您可以根据自己的喜好重新定义 bibdriver 的字段顺序和标点符号。

相关内容