编辑:

编辑:

很久以前,我在这里得到了一些帮助,以使我的书目适应我的需要。

它仍然运行良好并且非常好。:-)

现在我还必须使用该命令\fullcite{},但遗憾的是它无法像参考书目中所写的那样重现每个条目。

我已经发现可以使用以下命令来更改写出的作者数量:

\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}

对于其余部分,我找不到解决方案:应该用“;”而不是“,”将人分开,并且不应该用“&”添加最后一个作者。像以前一样,只用“;”就很完美了。此外,完整引文的末尾应该有一个点。

如果你能帮助我的话就太好了:-)

\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,includeheadfoot]{geometry} 
\usepackage[hidelinks]{hyperref}
\usepackage{filecontents}

\parindent0pt 


\usepackage[babel, german=quotes]{csquotes}
\usepackage[style=authoryear-ibid,natbib=true, maxbibnames=3,maxcitenames=2,uniquelist=false, uniquename=false, backend=biber]{biblatex}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }           

\renewcommand{\finalnamedelim}[0]{\addspace\&\addspace}  % replace "und" by & 
\AtBeginBibliography{\renewcommand{\multinamedelim}{\addsemicolon\space}\renewcommand{\finalnamedelim}{\multinamedelim}}

\DeclareNameAlias{sortname}{last-first} %Sort: Last name, first name
\DeclareNameAlias{default}{last-first}  %Sort: Last name, first name

\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished,report, norm, phdthesis, other, misc]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished,report, norm, phdthesis, other, misc]{title}{#1} %Remove quotation marks from title


%Fullcite change: Write out all authors up to 3
\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}



\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
    author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
    title     = {International economics: theory and policy},
    year      = {2015},
    edition   = {10. edition, global edition},
    publisher = {Pearson},
    location  = {Boston },
    isbn      = {978-1-292-01955-7},
    pubstate  = {Massachusetts},
}

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


\begin{document}


    I am a quote \parencite{Krugmann2015}.\\

    Fullcite:\\
    \fullcite{Krugmann2015}\\\\


    \begingroup
    \phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
    \printbibliography[title={Literaturverzeichnis}]
    \endgroup 
\end{document}

答案1

要获取;作者姓名,您只需要

\renewcommand{\multinamedelim}{\addsemicolon\space}

要获得;而不是, &你只需要:

\renewcommand{\finalnamedelim}{\multinamedelim}

更改lastfamilyfirstgiven

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

并添加以下代码以获取的结束点\fullcite

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot} % <===================================

一定要

\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}

的重新定义\fullcite

拥有完整的 MWE

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
    author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
    title     = {International economics: theory and policy},
    year      = {2015},
    edition   = {10. edition, global edition},
    publisher = {Pearson},
    location  = {Boston },
    isbn      = {978-1-292-01955-7},
    pubstate  = {Massachusetts},
}
\end{filecontents}


\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[%
  left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,
  includeheadfoot
]{geometry} 

\usepackage[babel, german=quotes]{csquotes}
\usepackage[%
  style=authoryear-ibid,
  natbib=true, 
  maxbibnames=3,
  maxcitenames=2,
  uniquelist=false, 
  uniquename=false, 
  backend=biber
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage[hidelinks]{hyperref}


\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }

\renewcommand{\multinamedelim}{\addsemicolon\space} % <=================
\renewcommand{\finalnamedelim}{\multinamedelim} % <=====================

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name

\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{title}{#1} %Remove quotation marks from title

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot} % <===================================

%Fullcite change: Write out all authors up to 3
\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}


\begin{document}
I am a quote \parencite{Krugmann2015}.\\

Fullcite:\\
\fullcite{Krugmann2015}\\\\

\begingroup
\phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
\printbibliography[title={Literaturverzeichnis}]
\endgroup
\end{document}

你会得到结果:

在此处输入图片描述

编辑:

根据@moewe的评论,我将完整引用的代码更改为:

\makeatletter
\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\defcounter{maxnames}{\blx@maxbibnames}% Write out all authors up to 3
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\addperiod} % <===================================
\makeatother

请注意,\preto\fullcite{\AtNextCite{\defcounter{maxnames}{3}}}不再需要该命令。因为现在使用了(包含选项中\blx@maxbibnames给定的数字),所以我们需要用和括住代码。全引文的结束点现在由 设定。3biblatex\makeatlettermakeatother\addperiod

使用以下 MWE(我\\也删除了)

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Krugmann2015,
  author    = {Krugmann, Paul and Obstfeld, Maurice and Melitz, Mark J.},
  title     = {International economics: theory and policy},
  year      = {2015},
  edition   = {10. edition, global edition},
  publisher = {Pearson},
  location  = {Boston },
  isbn      = {978-1-292-01955-7},
  pubstate  = {Massachusetts},
}
\end{filecontents}


\documentclass[a4paper,11pt,DIV=calc, titlepage]{scrartcl} 

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[%
  left=4cm,right=2.5cm,top=2.0cm,bottom=2cm,
  includeheadfoot
]{geometry} 

\usepackage[babel, german=quotes]{csquotes}
\usepackage[%
  style=authoryear-ibid,
  natbib=true, 
  maxbibnames=3,
  maxcitenames=2,
  uniquelist=false, 
  uniquename=false, 
  backend=biber
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage[hidelinks]{hyperref}


\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}} %Zitat und Lit in Kapitätlchen

\DefineBibliographyStrings{ngerman}{ % et al instead of "und" with 3 or more authors
   andothers = {{et\,al\adddot}},  }

\renewcommand{\multinamedelim}{\addsemicolon\space} % <=================
\renewcommand{\finalnamedelim}{\multinamedelim} % <=====================

\DeclareNameAlias{sortname}{family-given} %Sort: Last name, first name
\DeclareNameAlias{default}{family-given}  %Sort: Last name, first name

\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{citetitle}{#1} %Remove quotation marks from title
\DeclareFieldFormat[%
  article,inbook,incollection,inproceedings,patent,thesis,unpublished,
  report, norm, phdthesis, other, misc
]{title}{#1} %Remove quotation marks from title

\makeatletter
\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\defcounter{maxnames}{\blx@maxbibnames}% Write out all authors up to 3
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\addperiod} % <===================================
\makeatother


\begin{document}
I am a quote \parencite{Krugmann2015}.

Fullcite: 
\fullcite{Krugmann2015}

\begingroup
\phantomsection\addcontentsline{toc}{section}{Literaturverzeichnis} 
\printbibliography[title={Literaturverzeichnis}]
\endgroup
\end{document}

得到结果:

生成的 pdf

答案2

希望这可以与 一起使用biblatex 3.8a + biber。在使用 biblatex 3.8a 进行测试时,仍然存在的唯一问题是(所需的\fullcitebibtex8版本:biber – 2.8, is not available as yet) is one has to add the final dot. So you should only add a re-definition of

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}\adddot}

在此处输入图片描述

相关内容