The following is adapted for biblatex
>= 3.3 from my answer to Excluding one certain author from [et al.].
In order to make this solution work you will need the hash of your name, see Highlight an author in bibliography using biblatex allowing bibliography style to format it for details on how to retrieve the hash for specific names from the .bbl
file.
If you wrap your name into braces, the hash for F. {Breitling}
/{Breitling}, F.
is 3f71afbcde39f096d711d45fa2c17bc7
.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, maxnames=999]{biblatex}
\begin{filecontents*}{\jobname.bib}
@INPROCEEDINGS{cheshkov,
author = {{Cheshkov}, S. and {Tajima}, T. and {Chiu}, C. and {Breitling}, F. },
title = "{Emittance control in Laser Wakefield Accelerator}",
booktitle = {American Institute of Physics Conference Series},
year = 2001,
volume = 569,
month = may,
pages = {163-176},
}
@ARTICLE{breitling,
author = {{Breitling}, F. and {Weigel}, R.~S. and {Downer}, M.~C. and
{Tajima}, T.},
title = "{Laser pointing stabilization and control in the
submicroradian regime with neural networks}",
journal = {Review of Scientific Instruments},
year = 2001,
month = feb,
volume = 72,
pages = {1339-1342},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\newcounter{namesnotimportant}
\newtoggle{ellipsis}
\makeatletter
\newbibmacro*{name:etal:delim}[1]{%
\ifnumgreater{\value{listcount}}{\value{liststart}}
{\ifboolexpr{
test {\ifnumless{\value{listcount}}{\value{liststop}}}
or
test \ifmorenames
or test {\ifnumcomp{\value{namesnotimportant}}{>}{0}}
}
{\printdelim{multinamedelim}}
{\lbx@finalnamedelim{#1}}}
{}}
\makeatother
\DeclareNameFormat{given-family-etal}{%
\letbibmacro{name:delim}{name:etal:delim}%
\ifnumcomp{\value{listcount}}{=}{1}
{\setcounter{namesnotimportant}{0}%
\global\toggletrue{ellipsis}}
{}%
\ifboolexpr{test {\ifnumcomp{\value{listcount}}{=}{1}}
or test {\ifnumcomp{\value{listtotal}}{=}{2}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
{\iffieldequalstr{hash}{3f71afbcde39f096d711d45fa2c17bc7}%% <----- put the correct hash here
{\global\toggletrue{ellipsis}%
\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
{\stepcounter{namesnotimportant}%
\iftoggle{ellipsis}
{\addcomma\space\textellipsis\global\togglefalse{ellipsis}\isdot}
{}}}%
\ifboolexpr{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
(test \ifmorenames
or test {\ifnumcomp{\value{namesnotimportant}}{>}{0}})
}
{\andothersdelim\bibstring{andothers}}
{}}
\DeclareNameAlias{sortname}{given-family-etal}
\DeclareNameAlias{author}{given-family-etal}
\DeclareNameAlias{editor}{given-family-etal}
\DeclareNameAlias{translator}{given-family-etal}
\begin{document}
\nocite{cheshkov,breitling,aksin,worman,nussbaum,geer,sigfridsson}
\printbibliography
\end{document}
you thus get
If you only want this special format for \fullcite
, move the four \DeclareNameAlias
lines into the pre-code hook of \usedriver
in \DeclareCiteCommand{\fullcite}
like so
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{given-family-etal}%
\DeclareNameAlias{author}{given-family-etal}%
\DeclareNameAlias{editor}{given-family-etal}%
\DeclareNameAlias{translator}{given-family-etal}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
If you want to define a special command for that so that you can use 'normal' \fullcite
and the new name format simultaneously, you could define a starred \fullcite*
via
\DeclareCiteCommand*{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{given-family-etal}%
\DeclareNameAlias{author}{given-family-etal}%
\DeclareNameAlias{editor}{given-family-etal}%
\DeclareNameAlias{translator}{given-family-etal}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
instead.
If you want to 'filter' several names (additionally also, say {Tajima}, T.
), you can combine the hash comparisons into one \ifboolexpr
. Just use
\ifboolexpr{test {\iffieldequalstr{hash}{f9c1127a739dfe7ad337f89c98aebf51}}
or
test {\iffieldequalstr{hash}{67bbebbc19c3d65d07202eac52047d5e}}}%% <----- put the correct hash here
instead of \iffieldequalstr{hash}{f9c1127a739dfe7ad337f89c98aebf51}
in \DeclareNameFormat{given-family-etal}
:
\DeclareNameFormat{given-family-etal}{%
\letbibmacro{name:delim}{name:etal:delim}%
\ifnumcomp{\value{listcount}}{=}{1}
{\setcounter{namesnotimportant}{0}%
\global\toggletrue{ellipsis}}
{}%
\ifboolexpr{test {\ifnumcomp{\value{listcount}}{=}{1}}
or test {\ifnumcomp{\value{listtotal}}{=}{2}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
{\ifboolexpr{test {\iffieldequalstr{hash}{f9c1127a739dfe7ad337f89c98aebf51}}
or
test {\iffieldequalstr{hash}{67bbebbc19c3d65d07202eac52047d5e}}}%% <----- put the correct hash here
{\global\toggletrue{ellipsis}%
\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
{\stepcounter{namesnotimportant}%
\iftoggle{ellipsis}
{\addcomma\space\textellipsis\global\togglefalse{ellipsis}\isdot}
{}}}%
\ifboolexpr{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
(test \ifmorenames
or test {\ifnumcomp{\value{namesnotimportant}}{>}{0}})
}
{\andothersdelim\bibstring{andothers}}
{}}