如何修改脚注中姓名的外观(样式为verbose-trad2)?

如何修改脚注中姓名的外观(样式为verbose-trad2)?

我正在使用 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-encenc参考书目和引用样式并不完全独立,尤其是在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}

Sigfridsson Emma 和 Ryde Ulf//Worman Nancy

这也会相应​​地改变参考书目中的输出,这对于一致性来说可能是一件好事。

相关内容