![编辑:](https://linux22.com/image/365112/%E7%BC%96%E8%BE%91%EF%BC%9A.png)
很久以前,我在这里得到了一些帮助,以使我的书目适应我的需要。
它仍然运行良好并且非常好。:-)
现在我还必须使用该命令\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}
更改last
为family
和first
为given
:
\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
给定的数字),所以我们需要用和括住代码。全引文的结束点现在由 设定。3
biblatex
\makeatletter
makeatother
\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}
得到结果:
答案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}