标题在作者姓名之前?

标题在作者姓名之前?

我想在参考文献列表中将标题放在作者姓名之前。我该如何实现呢?我对 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发生在文内引用中。

sushilBiblatexSwapAuthorTitle

\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}

相关内容