BibLatex -> 将同一作者的多个引文分组

BibLatex -> 将同一作者的多个引文分组

你们中的一些人知道,我的大学是非常他们的引用指南非常严格。所以我再次向你寻求一些自定义格式技巧。

对于那些能读荷兰语的人来说,你可以在下面的屏幕截图中找到指南。 指南 对于那些不太流利荷兰语的人,我翻译了下面 MWE 示例中的指南。此图像是该 MWE 的输出翻译指南

基本上,

  • 当引用多位作者时,应该将 ; 替换为 , (我想这应该很容易?)
  • 当在多篇出版物中引用同一位作者时,不应重复作者(我猜这几乎是不可能的?)

我故意混合了引用的时间顺序,因为 biblatex 允许我这样做......

平均能量损失

\documentclass{article}

\usepackage[dutch]{babel}
\usepackage[autostyle]{csquotes}

\usepackage[bibstyle=ext-authoryear,
innamebeforetitle=true,
citestyle=authoryear,
maxnames=3,
maxbibnames=99,
sortcites,
sorting=ynt,
uniquename=init,
giveninits=true,
doi=false,
isbn=false,
dashed=false,
backend=biber]{biblatex}

%\usepackage{filecontents} This package is obsolete?

\begin{filecontents*}{\jobname.bib}

@book{Taeldeman1979,
    langid = {dutch},
    location = {{Hilversum}},
    title = {Some book},
    date = {1979-01-01},
    publisher = {publisher},
    author = {Taeldeman, Johan}
}

@book{Taeldeman1988,
    langid = {dutch},
    location = {{Hilversum}},
    title = {Some other book},
    date = {1988-01-01},
    publisher = {publisher},
    author = {Taeldeman, Johan}
}

@book{RysTaeldeman2007,
    langid = {dutch},
    location = {{Hilversum}},
    title = {A book by Rys and Taeldeman},
    date = {2007-01-01},
    publisher = {publisher},
    author = {Rys, Bryan and Taeldeman, Johan}
}

@book{Villena-Ponsoda2009,
    langid = {dutch},
    location = {{Hilversum}},
    title = {A book by Villena-Ponsoda},
    date = {2009-01-01},
    publisher = {publisher},
    author = {Villena-Ponsoda, Rachel}
}

\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

When quoting multiple sources by different authors, mention all authors with corresponding dates, between round brackets.
Order the citations chronologically (oldest publication first), \textbf{and devide them by a ,}

\begin{itemize}
    \item cf. \parencites{Taeldeman1988,Villena-Ponsoda2009,RysTaeldeman2007}
    \item renders: (Taeldeman 1988; Rys en Taeldeman 2007; Villena-Ponsoda 2009)
    \item should be:  (Taeldeman 1988\textbf{,} Rys en Taeldeman 2007\textbf{,} Villena-Ponsoda 2009)
\end{itemize}

Publications by the same author, however, need to be grouped, even if they break the chronology
\begin{itemize}
    \item cf. \parencites{Taeldeman1988,Villena-Ponsoda2009,Taeldeman1979}
    \item renders: (Taeldeman 1979; Taeldeman 1988; Villena-Ponsoda 2009)
    \item should be: (Taeldeman \textbf{1979, 1988,} Villena-Ponsoda 2009)
\end{itemize}

\printbibliography 
\end{document}

感谢所有能帮助我的人!

答案1

两个引文之间的分隔符由 控制\multicitedelim,其默认值是分号后跟一个空格,但很容易被说服打印逗号后跟一个空格

\renewcommand*{\multicitedelim}{\addcomma\space}

authoryearauthortitle样式系列的样式-comp在引文中只打印一次相同的作者/编辑者姓名。对于您来说,最简单的方法是从 切换bibstyle=ext-authoryear, citestyle=authoryear,

style=ext-authoryear-comp,

但您也可以选择bibstyle=ext-authoryear, citestyle=authoryear-comp,。由于您biblatex-ext无论如何都在使用,style=ext-authoryear-comp,因此似乎要简单得多。

\documentclass{article}

\usepackage[dutch]{babel}
\usepackage[autostyle]{csquotes}

\usepackage[style=ext-authoryear-comp,
  sorting=ynt,
  innamebeforetitle=true,
  maxnames=3,
  maxbibnames=99,
  uniquename=init,
  giveninits=true,
  doi=false,
  isbn=false,
  dashed=false,
  backend=biber]{biblatex}

\renewcommand*{\multicitedelim}{\addcomma\space}

\begin{filecontents*}[force]{\jobname.bib}
@book{Taeldeman1979,
  langid    = {dutch},
  location  = {Hilversum},
  title     = {Some book},
  date      = {1979-01-01},
  publisher = {publisher},
  author    = {Taeldeman, Johan}
}
@book{Taeldeman1988,
  langid    = {dutch},
  location  = {Hilversum},
  title     = {Some other book},
  date      = {1988-01-01},
  publisher = {publisher},
  author    = {Taeldeman, Johan}
}
@book{RysTaeldeman2007,
  langid    = {dutch},
  location  = {Hilversum},
  title     = {A book by Rys and Taeldeman},
  date      = {2007-01-01},
  publisher = {publisher},
  author    = {Rys, Bryan and Taeldeman, Johan}
}
@book{Villena-Ponsoda2009,
  langid    = {dutch},
  location  = {Hilversum},
  title     = {A book by Villena-Ponsoda},
  date      = {2009-01-01},
  publisher = {publisher},
  author    = {Villena-Ponsoda, Rachel}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

When quoting multiple sources by different authors, mention all authors with corresponding dates, between round brackets.
Order the citations chronologically (oldest publication first), \textbf{and devide them by a ,}

\begin{itemize}
    \item cf.\ \parencites{Taeldeman1988,Villena-Ponsoda2009,RysTaeldeman2007}
    \item renders: (Taeldeman 1988; Rys en Taeldeman 2007; Villena-Ponsoda 2009)
    \item should be:  (Taeldeman 1988\textbf{,} Rys en Taeldeman 2007\textbf{,} Villena-Ponsoda 2009)
\end{itemize}

Publications by the same author, however, need to be grouped, even if they break the chronology
\begin{itemize}
    \item cf.\ \parencites{Taeldeman1988,Villena-Ponsoda2009,Taeldeman1979}
    \item renders: (Taeldeman 1979; Taeldeman 1988; Villena-Ponsoda 2009)
    \item should be: (Taeldeman \textbf{1979, 1988,} Villena-Ponsoda 2009)
\end{itemize}

\printbibliography 
\end{document}

(Taeldeman 1988、Rys en Taeldeman 2007、Villena-Ponsoda 2009)//参见(Taeldeman 1979、1988、Villena-Ponsoda 2009)

相关内容