我正在使用 verbose-trad2,但找不到如何修改脚注中名称的外观。现在它看起来像这样:
9 和 10 是完美的,但 11 不完美,它应该像数字 9,但带有前名,因此:
这是我当前的代码:
\usepackage[autostyle=true,debug=true,autopunct=true,csdisplay=false]{csquotes} % gère les différents styles de citations selon la langue
\makeatletter
\XeTeXinterchartoks \french@punctguillstart 4095 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
\XeTeXinterchartoks 4095 \french@punctguillend = {\xpg@unskip\nobreakspace}
\makeatother
\usepackage[sorting=nyt,bibstyle=enc,citestyle=verbose-trad2,ibidpage=true,idemtracker=false,backend=biber]{biblatex} % https://www.overleaf.com/learn/latex/Biblatex_bibliography_styles
\addbibresource{../bibliographie.bib}
%\DeclareFieldFormat[inreference]{title}{\enquote{#1}} % résout un problème avec les articles d'encyclopédie
\AtEveryCitekey{\clearfield{doi}} % enlève le doi dans les notes de bas de page
\AtEveryCitekey{\clearfield{isbn}}
\AtEveryCitekey{\clearfield{url}}
\DefineBibliographyStrings{french}{% Permet la traduction de termes
in = {in},
idem = {Id.},
idemsm = {Id.},
idemsf = {Ead.},
idemsn = {Id.},
idempm = {Eid.},
idempf = {Eaed.},
idempn = {Ead.},
idempp = {Eid.},
ibidem = {\textit{Ibid\adddot}},
andothers = {\textit{et\addabbrvspace al\adddot}},
january = {janv\adddot},
february = {f\'evr\adddot},
march = {mars},
byeditor = {(dir\adddot)},
bycriticaleditor = {éd\adddot},
volume = {t.},
}
\DeclareFieldFormat[incollection]{title}{\mkbibquote{#1}\isdot} % Ajout d'une virgule après le titre d'un ouvrage dans @incollection, donc avant le in
\DeclareNameAlias{sortname}{family-given} % D'abord le nom de famille dans les notes de bas de page
\DeclareNameAlias{default}{family-given}
\usepackage[bottom]{footmisc}
我真的很努力地去理解 bbx 和 cbx 文件,但这简直是一场噩梦,我找不到任何教程或文档。
先感谢您 !
附言:我通过从 biblatex github 复制代码继续调查,似乎 \printnames{author} 方法就是执行该作业的方法。见下文:
\newbibmacro*{authorstrg}{%
\iffieldundef{authortype}
{}
{
\printtext[authortype]{%
\ifbibxstring{\thefield{authortype}}
{\ifboolexpr{
test {\ifnumgreater{\value{author}}{1}}
or
test {\ifandothers{author}}
}
{\bibstring{\thefield{authortype}s}}
{\bibstring{\thefield{authortype}}}}
{\thefield{authortype}}}
}
}
\renewbibmacro*{author}{%
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
{
\printnames{author}% C'est ici qu'il faut modifier
\iffieldundef{authortype}
{}
{\setunit{\printdelim{authortypedelim}}%
\usebibmacro{authorstrg}}}
{}}
\renewbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\global\toggletrue{cbx:fullcite}%
\printtext[bibhypertarget]{%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}
\renewbibmacro*{cite:name}{%
\printnames{labelname}%
\setunit*{\printdelim{nametitledelim}}}
答案1
您不仅在使用verbose-trad2
。您还使用引用样式verbose-trad2
,而且对于参考书目,您还使用biblatex-enc
。enc
参考书目和引用样式并不完全独立,尤其是在verbose
引用样式中,参考书目样式起着重要作用。
在这种情况下,enc.bbx
修改参考书目的名称格式,这也会影响引用,通过重新定义bibmacroname:family-given
用于在名字和其他姓名部分周围添加括号。
我们可以通过从 复制原始定义来撤消该更改biblatex.def
。
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[autostyle=true,debug=true,autopunct=true,csdisplay=false]{csquotes}
\usepackage[backend=biber,
sorting=nyt, bibstyle=enc, citestyle=verbose-trad2,
ibidpage=true, idemtracker=false]{biblatex}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
\renewcommand*{\revsdnamepunct}{}
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifdefvoid{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{\revsdnamepunct}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
\DeclareFieldFormat[incollection]{title}{\mkbibquote{#1}\isdot}
\AtEveryCitekey{%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}}
\DefineBibliographyStrings{french}{
in = {in},
idem = {Id\adddot},
idemsm = {Id\adddot},
idemsf = {Ead\adddot},
idemsn = {Id\adddot},
idempm = {Eid\adddot},
idempf = {Eaed\adddot},
idempn = {Ead\adddot},
idempp = {Eid\adddot},
ibidem = {\textit{Ibid\adddot}},
andothers = {\textit{et\addabbrvspace al\adddot}},
january = {janv\adddot},
february = {f\'evr\adddot},
march = {mars},
byeditor = {(dir\adddot)},
bycriticaleditor = {éd\adddot},
volume = {t\adddot},
}
\usepackage[bottom]{footmisc}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem\autocite{sigfridsson}
ipsum\autocite{worman}
Lorem\autocite{sigfridsson}
ipsum\autocite{worman}
\end{document}
这也会相应地改变参考书目中的输出,这对于一致性来说可能是一件好事。