You will also have to set default
, as the cite commands in verbose-trad2
* temporarily set \DeclareNameAlias{sortname}{default}
(and by ... default default
is \DeclareNameAlias{default}{given-family}
).
So just issue
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
in the preamble. Note that default
is used in a few other places as well, so this change also affects the bibliography. If you want a modification that affects only the citations, see below.
The MWE
\documentclass{article}
\usepackage[style=verbose-trad2, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
\begin{document}
A\footcite{wilde}
B\footcite{cicero}
\printbibliography
\end{document}
gives
* The code can be found in verbose-trad2.cbx
, the sixth line below is the offending one.
\newbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\global\toggletrue{cbx:fullcite}%
\printtext[bibhypertarget]{%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}
This shows us that a different solution would be
\DeclareNameAlias{sortname}{family-given}
\renewbibmacro*{cite:full}{%
\usebibmacro{cite:full:citepages}%
\global\toggletrue{cbx:fullcite}%
\printtext[bibhypertarget]{%
\usedriver
{}
{\thefield{entrytype}}}%
\usebibmacro{shorthandintro}}
But of course that's longer. The effect is slightly different as this will only affect the name format in long citations and not anywhere else.
edit See the edit history for the pre-3.3 code if you are using an outdated version of biblatex
. Cf. Biblatex 3.3 name formatting.
First thing to do is to add a field for the journal abbreviation to the article entrytype, journalabbr
in the MWE. Therefore you need to declare a datamodel (an extra file; in the MWE I've used filecontents to simulate that) and you have to tell biblatex/biber to use it in the package options.
Then you have to modify the cite command, so it fits your needs. \citep
from the authoryear-style (your citestyle) uses the \cite
command. There you just have to add a switch, which checks if the field journalabbr
is empty or not, and prints it out or not.
Last but not least you have to add the abbreviation fields to the entries.
MWE:
\begin{filecontents}{min.bib}
@article{boisson2003unexpected,
title={Unexpected protein families including cell defense components feature in the N-myristoylome of a higher eukaryote},
author={Boisson, B. and Giglione, Carmela and Meinnel, Thierry},
journal={Journal of Biological Chemistry},
journalabbr={JBC},
year={2003},
publisher={ASBMB}
}
\end{filecontents}
\begin{filecontents}{authorjabbryear.dbx}
\ProvidesFile{authorjabbryear.dbx}
\DeclareDatamodelFields[type=field,datatype=literal]{journalabbr}
\DeclareDatamodelEntryfields[article]{journalabbr}
\end{filecontents}
\documentclass[fontsize=11pt, paper=a4, ngerman, DIV=calc]{scrartcl}
\usepackage[scaled]{helvet}
\renewcommand*\familydefault{\sfdefault}
\usepackage{fixltx2e}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[german=quotes]{csquotes}
\usepackage[style=authoryear-comp,sortcites=true,sorting=nyt,isbn=false,natbib=true, citestyle=authoryear,bibstyle=authoryear,backend=biber,maxnames=1,maxcitenames=1,
,datamodel=authorjabbryear%added!
] {biblatex}
\DefineBibliographyStrings{ngerman}{ andothers = {{et\,al\adddot}} }
\renewbibmacro*{cite}{%from authoryear.cbx
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\addspace}}
{\printnames{labelname}%
\setunit{\nameyeardelim}}%
\iffieldundef{journalabbr}{}{%
\printfield{journalabbr}%
\setunit{\nameyeardelim}%
}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
\addbibresource{min.bib}
\begin{document}
\citep{boisson2003unexpected}
How it should look like:
(Boisson et al., JBC, 2003)
\printbibliography
\end{document}
Best Answer
Define a new name format
firstinits-last
(derived fromfirst-last
with\iffirstinits
true), and point thelabelname
format (which is used in citations) tofirstinits-last
. (This also works if you don't set thefirstinits=true
package option; with this option enabled, you may simply add\DeclareNameAlias{labelname}{default}
to your preamble.)