使用 biblatex 和 natbib 兼容模式的引用

使用 biblatex 和 natbib 兼容模式的引用

我最近从 BibTeX 改成了现在的版本,biblatex并且努力在我的文本中按照我想要的方式添加引文,并且在我的参考书目中也添加相同的引文。

我希望有两位这样的作者:

姓氏,名字的首字母 和 姓氏,名字的首字母,....

对于 3 位这样的作者:

姓氏,名字的首字母;姓氏,名字的首字母和姓氏,名字的首字母,....

并且超过 3 个是这样的:

姓氏、名字的首字母等。

除此之外,我想我可能需要改变一些引用命令 ( \cite) 所做的事,它们仍然与之前使用 BibTeX 和 所做的一样natbib。当我在年份附近编译时,没有括号,而以前有。意思是用\cite代替作者(年份) 我现在明白了作者,年份

这是我的代码:

\documentclass[12pt,twoside,a4paper,titlepage]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[usenames]{color}
\usepackage{fancyhdr}
\usepackage{acronym}
\usepackage{parskip}
\usepackage{eurosym}
\usepackage{array}
\usepackage{csquotes}

\usepackage[style=authoryear, 
natbib=true, 
backend=biber, 
giveninits=true, 
uniquename=init,
isbn=false,
doi=false,
eprint=false,
maxbibnames=3, 
maxcitenames=2
]{biblatex}

\AtEveryBibitem{
  \clearfield{pagetotal}
}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareNameAlias{sortname}{family-given}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space}

\DeclareFieldFormat*{title}{\mkbibemph{#1\isdot}}% Kursiv für alle Titel
\DeclareFieldFormat{journaltitle}{#1}% aufrechte/normale Schrift für         Zeitschriftennamen


\addbibresource{Literatur - Kopie.bib}
\usepackage[flushmargin, hang]{footmisc}
\usepackage[a4paper,
left=2.5cm, right=2.5cm,
top=3cm, bottom=3cm]{geometry}

Dieses Skalenniveau ist insofern sinnvoll, da \glqq Aussagen über Differenzen möglich sind\grqq \ \citep[S.29]{Langer1977} und diese auch genau angegeben werden können  \citep[vgl.][]{Hartung1999}.
...
Die interessierenden Objekte werden in dieser Arbeit wie bei Johann \cite{Bacher2010} \glqq Klassifikationsobjekte\grqq \ (S.15) genannt oder wie bei den meisten Autoren einfach als zu klassifizierende Objekte, zu untersuchende Objekte, Objekte oder Klassifikationsdaten bezeichnet \citep{Eckes1980, Hartung1999, Hoberg2003, Handl2017}. 

\newpage
\addcontentsline{toc}{section}{Literaturverzeichnis}
\printbibliography

答案1

您可以通过相应地重新定义来获得带有分号(ugh)的所需格式multinamedelim,似乎您不想重新定义finalnamedelim。通过重新定义参考书目字符串可以获得“et al.”而不是“ua”。可以使用正确的命令来获得andothers中的括号\cite,请参见下文。

还请注意我如何使用csquotes'\enquote\textcquote代替\glqq\grqq\enquote可用于在一段文本周围放置引号,\textcquote可用于将一段文字括在引号中并在一个命令中添加引用。

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[
  style=authoryear, 
  natbib=true, 
  backend=biber, 
  giveninits=true, 
  uniquename=init,
  isbn=false,
  doi=false,
  eprint=false,
  maxbibnames=3, 
  maxcitenames=2,
  autocite=inline,
]{biblatex}

\AtEveryBibitem{
  \clearfield{pagetotal}
}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{multinamedelim}{\addsemicolon\space}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space}

\DeclareFieldFormat*{title}{\mkbibemph{#1\isdot}}% Kursiv für alle Titel
\DeclareFieldFormat{journaltitle}{#1}% aufrechte/normale Schrift für Zeitschriftennamen

\DefineBibliographyStrings{german}{%
  andothers = {et\addnbthinspace al\adddot},% oder \addnbthinspace statt \addabbrsvpace
}

\SetCiteCommand{\autocite}

\addbibresource{biblatex-examples.bib}

\begin{document}
\autocite{sigfridsson}

\parencite{sigfridsson} -- \citep{sigfridsson}

\textcite{sigfridsson} -- \citet{sigfridsson}

\cite{sigfridsson}

Dieses Skalenniveau ist insofern sinnvoll, da \textcquote[29]{worman}{Aussagen über Differenzen möglich sind} und diese auch genau angegeben werden können \parencite[vgl.][]{sigfridsson}.
...

Ein weiteres \enquote{Zitat} aber diesmal ohne direkte Quellenangabe  \autocite[vgl.][]{pines}.

Die interessierenden Objekte werden in dieser Arbeit wie bei \citeauthor{worman} \textcquote[15]{worman}{Klassifikationsobjekte} genannt.


\cite{sigfridsson,worman,geer,companion,pines,aksin,cotton}
\printbibliography
\end{document}

MWE 中各种引文和参考书目的截图。内容太多,无法以有用的方式全部列出,抱歉...

答案2

当人们让你意识到最小工作示例可能不完整时,不要灰心。他们只是想更有效地解决问题。:)

我根本不是专家,因此我可能更能理解你的麻烦。所以我尝试稍微压缩一下你的代码。总的来说,你的代码最终已经完成了你想要的大部分工作。在这里,我示例使用了你在golatex.de

\documentclass[12pt,a4paper]{scrartcl}    
\begin{filecontents}{literatur.bib}    
@InCollection{Wilks2011, 
    author    = {Daniel S. Wilks}, 
    title     = {{C}luster {A}nalysis}, 
    booktitle = {Statistical Methods in the Atmospheric Sciences}, 
    publisher = {Academic Press}, 
    year      = {2011}, 
    volume    = {100}, 
    series    = {International Geophysics}, 
    chapter   = {15}, 
    pages     = {603--616}, 
    edition   = {3.}, 
    isbn      = {9780123850232}, 
    doi       = {https://doi.org/10.1016/B978-0-12-385022-5.00015-4}, 
    issn      = {0074-6142}, 
    keywords  = {hierarchical clustering, dendrogram, Ward's method, K-means}, 
    url       = {http://www.sciencedirect.com/science/article/pii/B9780123850225000154}, } 

@Book{Handl2017, 
    title     = {{M}ultivariate {A}nalysemethoden: {T}heorie und {P}raxis mit {R}}, 
    publisher = {Springer Spektrum}, 
    year      = {2017}, 
    author    = {Andreas Handl and Torben Kuhlenkasper}, 
    volume    = {3., wesentlich überarbeitete Auflage}, 
    address   = {Berlin \& Heidelberg}, 
    isbn      = {978-3-662-54754-0}, 
    date      = {2017-08-03}, 
    ean       = {9783662547540},  } 

@Misc{EuropeanCommision2016, 
    author       = {{European Commision}}, 
    title        = {From 6 to 28 members}, 
    howpublished = {Webseite der Europäischen Kommision}, 
    month        = jun, 
    year         = {2016},
    url          = {https://ec.europa.eu/neighbourhood-enlargement/policy/from-6-to-28-members_en}, } 

\end{filecontents}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[ngerman]{babel}    
\usepackage[backend=biber,style=authoryear,sortlocale=de_DE,
natbib = true, giveninits=true]{biblatex}
\addbibresource{literatur.bib}
\setlength\bibitemsep{1.5\itemsep} \begin{document}

First citation \citet{Wilks2011}.\\
Second citation \citet{Handl2017}.\\ 
Third citation \citet{EuropeanCommision2016}.
\printbibliography
\end{document}

其结果是:

在此处输入图片描述

请注意,要使括号正确显示,您可以使用 natbib 等效命令\citet\citep等等。然后,这看起来已经非常像您想要的样子了。:) 之后,看看 @moewe 的回答,他为您提供了必要的“Latex-Hacking”以获取详细信息,例如分号作为作者分隔符,或者例如代码

\DefineBibliographyStrings{german}{%
   andothers = {et\addnbthinspace al\adddot},% oder \addnbthinspace statt \addabbrsvpace
}

将“ua”改为“et al.”

祝你的论文好运!:)

相关内容