我想在参考文献列表中将标题放在作者姓名之前。我该如何实现呢?我对 biblatex 使用以下设置:
\usepackage[backend=biber,sorting=ydnt,
bibstyle=authoryear-comp,labelyear=false,defernumbers=true,maxnames=20,firstinits=true,
uniquename=init,dashed=false]{biblatex}
提前致谢,sushil
答案1
您可以自己声明不同类型的驱动程序,从中获取原始文件standard.bbx
并通过复制/粘贴来交换 bibmacros。为了保持跟踪,您应该将所有这些放在一个新bbx
文件中并为其指定一个唯一的名称。完成此操作后,您的序言将不会那么混乱。
我不明白的是,为什么你authoryear-comp
只选择了 bibstyle? 背后重要的事情authoryear-comp
发生在文内引用中。
\documentclass{article}
\usepackage[backend=biber,sorting=ydnt,
bibstyle=authoryear-comp,labelyear=false,defernumbers=true,maxnames=20,firstinits=true,
uniquename=init,dashed=false]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{maintitle+title}%swap
\setunit{\labelnamepunct}\newblock
\usebibmacro{author/editor+others/translator+others}%swap
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\begin{document}
\cite{westfahl:space}
\cite{companion}
\printbibliography
\end{document}