每次都将 (ed) 放在末尾 (verbose-trad) 并首先初始化其问题

每次都将 (ed) 放在末尾 (verbose-trad) 并首先初始化其问题

我正在使用biblatex选项verbose-trad2并尝试改变名称的打印方式。

我希望在编辑姓名末尾加上 (dir.) (= (ed))(用于论文集或合集)。除非您再次引用参考文献,否则它有效。

我明白了

A. Delapierre 和 F. Grivois,Ceci est... op.同上。

但我希望

A. Delapierre 和 F. Grivois(导演),Ceci est... op.同上。

就像第一次出现一样……

此外,我不确定我如何运用首次初始化的技巧......

%%%%%%%%%%% latex code %%%%%%%%%%%%%%%

\documentclass[twoside,12pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}
\usepackage{fix-cm}
\usepackage[frenchb]{babel}
\usepackage[babel]{csquotes}
\usepackage{hyperref}
\usepackage{filecontents}
\hypersetup{colorlinks=true, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black, bookmarks=true}


\usepackage[style=verbose-trad2, hyperref,backend=biber,
language=french, maxnames=10 %%%% nom max after and al.
]{biblatex}

\FrenchFootnotes

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BIBLATEX reparametrage
%%%%% first inits then name
%%%%%%%%%%%%%
\DeclareNameFormat{labelname}{%
  \ifcase\value{uniquename}%
      {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}
    \or
      \ifuseprefix
        {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}
        {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}%
  \or
    \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}%
  \fi
  \usebibmacro{name:andothers}}

%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%% in the bibliography Name, First Name  and Name, First Name...
\DeclareNameAlias{last-first/first-last}{last-first}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%% modified to put (dir.) at the end, see also byeditor+others %%%%%%%%%%%%
\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\addspace}%              
     \usebibmacro{editor+othersstrg}   
     \clearname{editor}}
    {}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% put (dir.) at the end (byeditor) 
%
\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {%%%\usebibmacro{byeditor+othersstrg}       %%%% suppress
     \setunit{\addcomma\addspace}%
     \printnames[byeditor]{editor}%
     \setunit{\addspace}%
    % \addspace                                  %%%% suppress
%     \usebibmacro{byeditor+othersstrg}          %%%% 
     \usebibmacro{editor+othersstrg}             %%%% 
     \clearname{editor}%            %%%%%%%%% 
     \newunit     }%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DefineBibliographyStrings{french}{
opcit = \iffieldequalstr{entrytype}{inproceedings}{art\adddotspace cit\adddot}{
        \iffieldequalstr{entrytype}{article}{art\adddotspace cit\adddot}{\emph{op\adddotspace cit}\adddot}},  %%%%%%%%%%%% french subtilities
idem = {\emph{idem}},
ibidem = {\emph{ibid\adddot}},
editor = {\mkbibparens{dir.}},          %%%%%%%%%%%% (dir.) instead of ed. by default
editors = {\mkbibparens{dir.}},         %%%%%%%%%%%% (dir.) instead of eds. by default
}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% new in
\newbibmacro*{in:}{%
  \printtext{%
    \bibstring{in}\nopunct\addspace}}   %%%%%%%%%%%%%% we suppress : 
%%%%%%%%%%%%%%%%% comma between reference
\renewcommand*{\newunitpunct}{\addcomma\addspace} % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{filecontents}{\jobname.bib}

@PROCEEDINGS{delap,
  editor = {Delapierre, André and Grivois, François},
  title = {Ceci est une aventure},
  shorttitle = {Ceci est...},
  publisher = {Bordas, Paris},
  year = {2011}
}

@BOOK{desmont,
  author = {Desmont, Laurence},
  title = {Chansons contemporaines},
  shorttitle = {Chansons...},
  publisher = {Belin},
  year = {2000}
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}

\section*{Test}

\cite{delap}

\cite{desmont}

\cite{delap}

\nocite{*}
\printbibliography


\end{document}

答案1

显然,对于除和 之外verbose-trad2.cbx的所有引用命令,后续/短引用标签中的名称均由参考书目宏打印:\textcite\textcitescite:name

\newbibmacro*{cite:name}{%
  \printnames{labelname}%
  \setunit*{\nametitledelim}}

您可以在文档序言中重新定义此功能以打印与参考书目相同的名称列表。

\renewbibmacro*{cite:name}{%
  \DeclareNameAlias{sortname}{default}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit*{\nametitledelim}}

相关内容