Define a new name format firstinits-last
(derived from first-last
with \iffirstinits
true), and point the labelname
format (which is used in citations) to firstinits-last
. (This also works if you don't set the firstinits=true
package option; with this option enabled, you may simply add \DeclareNameAlias{labelname}{default}
to your preamble.)
\documentclass{article}
\usepackage[style=verbose-trad2]{biblatex}
\DeclareNameFormat{firstinits-last}{%
\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
\usebibmacro{name:andothers}}
\DeclareNameAlias{labelname}{firstinits-last}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, Anton},
year = {2001},
title = {Alpha},
}
@misc{B02,
author = {Buthor, Berta},
year = {2002},
title = {Bravo},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\textheight 160pt% just for the example
\begin{document}
Some text.\autocite{A01}
Some text.\autocite{B02}
Some text.\autocite{A01}
\printbibliography
\end{document}
The verbose
style and its variants follow an authortitle
-style bibliography, which is closely based on the standard style defined in standard.bbx
.
From this file you can see that the punctuation preceding publication dates are set by a few different bibliography macros, depending on the entry type: issue+date
for @article
, publisher+location+date
for most books, institution+location+date
for reports and theses, organization+location+date
for @misc
, and location+date
for @booklet
and @unpublished
.
In issue+date
publication dates are already set in parentheses. To remove punctuation before the page reference you can redefine the \bibpagespunct
command from biblatex.def
in your preamble:
\renewcommand*{\bibpagespunct}{%
\ifentrytype{article}{\addspace}{\addcomma\space}}
To remove page prefixes (e.g. "p." and "pp.") add:
\DeclareFieldFormat{page}{#1}
\DeclareFieldFormat{pages}{#1}
The comma preceding the publication date in other entry types can originate from a few different places. For example in publisher+location+date
:
\newbibmacro*{publisher+location+date}{%
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}% <- HERE
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}% <- OR HERE
\usebibmacro{date}%
\newunit}
Same goes for the other *location+date
macros. To remove the commas change all relevant instances of \addcomma\space
to \addspace
in your redefinitions. Otherwise you can use the following dirty trick (at your own risk):
\renewbibmacro*{date}{\setunit{\addspace}\printdate}
In all these publications dates, if you are just wanting to print the publication year add the following to your preamble.
\AtEveryBibitem{%
\clearfield{month}%
\clearfield{day}}
\AtEveryCitekey{%
\clearfield{month}%
\clearfield{day}}
Your last request about use of shortauthor
and shorttitle
in citations would be better addressed as a new question. It needs to be clarified anyway.
Best Answer
You will also have to set
default
, as the cite commands inverbose-trad2
* temporarily set\DeclareNameAlias{sortname}{default}
(and by ... defaultdefault
is\DeclareNameAlias{default}{given-family}
).So just issue
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
gives
* The code can be found in
verbose-trad2.cbx
, the sixth line below is the offending one.This shows us that a different solution would be
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.