我正在写一篇关于法国法律的论文,经过许多小时的艰苦努力,我终于能够定制一些符合我需求的条目类型。这是我@BOOKLET
用于立法的示例:
\documentclass[11pt,a4paper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage[frenchb]{babel}
\usepackage[language=french,sorting=nyt,hyperref=true,urldate=long,
bibstyle=authortitle,citestyle=verbose-trad1,citepages=omit,dateabbrev=false,
labelyear=true,backend=bibtex]{biblatex}
\addbibresource{These.bib}
\DeclareBibliographyDriver{booklet}{%
\usebibmacro{author}
\setunit{\labelnamepunct}\newblock
\printfield{title}
\newunit\newblock
\printlist{publisher}%
\newunit
\printfield{number}%
\newunit
\printdate%
\newunit
\printfield{pages}%
{\space}
\usebibmacro{finentry}
}
\DeclareFieldFormat[booklet]{title}{{{#1}}}
\DeclareFieldFormat[booklet]{publisher}{{\mkbibemph{#1}}}
\DeclareFieldFormat[booklet]{number}{\bibstring{number}~#1}%
\renewcommand*{\newunitpunct}{\addcomma\space}
\begin{document}
\nocite{*}
\printbibliography[keyword=loi,heading=subbibliography,title=Textes législatifs]
\end{document}
这几乎就是我想要的,我只是想用斜体显示该字段publisher
,这正是命令的目的:
\DeclareFieldFormat[booklet]{publisher}{{\mkbibemph{#1}}}
但它并没有改变任何东西,我不知道为什么,特别是如果我publisher
用date
或替换title
,它就可以正常工作!
有什么建议吗?我真的需要你的专业知识 ;-)
PS:这是我的 .bib 的一个示例
@BOOKLET{AA2012,
TITLE = "The title of the legislation I need",
PUBLISHER = "Official journal",
NUMBER = "173",
DATE = "2012-11-25",
ADDRESS = "Paris",
PAGES = "582",
KEYWORDS = "loi"
}
答案1
正如 Marco Daniel 所评论的那样,“publisher
不是一个字段,而是一个[文字]列表”。实际上, 中有三种一般类型的“字段” biblatex
:名称列表(例如translator
)、文字列表(例如publisher
)和其他字段。文字列表的格式可以使用 定义\DeclareListFormat
,其他字段的格式可以使用 定义\DeclareFieldFormat
。(对应的\DeclareNameFormat
宏不直接应用于名称列表,而是应用于辅助格式,如last-first
。)可以在手册的 2.2.1 和 2.2.2 节中找到字段及其类别的完整列表biblatex
。