In my thesis, I have to print the list of publications along with the corresponding impact factor of the journal. While using authoryear style of biblatex package, how can we customize it to print the impact factor as well?
Should we define a new field, or are there any feasible solutions for achieving it? I am sharing what I already have modified in the preamble of my file -
\usepackage[bibstyle=authoryear,
citestyle=phys,
backend=biber,
defernumbers=true,
natbib=true,
%biblabel=brackets,
isbn=false,
maxbibnames=10,
minbibnames=5,
giveninits=true,
hyperref=true,
%urldate=false,
sorting=none
]{biblatex}
\DeclareFieldFormat[article]{volume}{\textbf{#1}\addcomma\space} % Bolds volume of citation and adds comma after volume
\DeclareFieldFormat{pages}{#1} % No prefix for the "pages" field in the bibliography
\DeclareFieldFormat[article]{title}{#1} % Remove quotes from journal title
%Suppress 'number' preceeding the vol. in bibliography;
\AtEveryBibitem{%
\clearfield{number}}
%
%Suppress 'month' followed by year in bibliography;
\AtEveryBibitem{%
\clearfield{month}}
\DeclareNameAlias{sortname}{last-first} % Lists all authors with last name first
\renewcommand{\labelnamepunct}{\addcomma\addspace} % Removes period after year in bibliography
\renewcommand{\revsdnamepunct}{\addspace}% want a comma between last name and initials
\renewcommand{\multinamedelim}{\addcomma\addspace}% want a space but no comma between names
\renewcommand*{\finalnamedelim}{\addcomma\addspace\bibstring{and}\space}% want a space but no comma between penultimate name and 'and' followed by final name
\DeclareSourcemap{% Ignores urldates
\maps[datatype=bibtex]{
\map{
\step[fieldset=urldate, null]
}
}
}
\usepackage{xpatch}
\xpatchbibmacro{name:andothers}{% maked the ``et al'' italicized in the bibliography
\bibstring{andothers}%
}{%
\bibstring[\emph]{andothers}%
}{}{}
\renewbibmacro{in:}{% Removes "In" from bibliography entries
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}
\DeclareFieldFormat{labelnumberwidth}{#1.}% from karlkoeller's answer
\defbibenvironment{bibliography}
{\list
{\printfield[labelnumberwidth]{labelnumber}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{0pt}%
\setlength{\labelsep}{\biblabelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\itemindent}{\labelwidth}%
\addtolength{\itemindent}{\labelsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}
A possible solution was to write manually the impact factor of each journal in the my-ref.bib file and letting it to print at the end. But it interrupts the hyperref which is required in the bibliography, and the link is corrupted.
I tried to definine a new field in biblatex as follows -
\DeclareFieldFormat{impactfactor}{\mkbibparens{IF: #1}} % New format for impact factor
% Define a new bibmacro to print impact factor
\newbibmacro*{impactfactor}{%
\printfield{impactfactor}%
}
But that also didn't work.
\documentclass, ending withend{document}, discarding all lines not needed, AND still showing your problem. Including a screenshot of the result may also help. Perhaps you need to include commandline actions as well. // Is impact factor an established term or is it an idea? – MS-SPO Aug 17 '23 at 16:42biblatexfirst. They cannot be used just like that. You also need to make sure the field is actually printed by adding code to a used bibmacro or driver. It is not enough to define an eponymous bibmacro. See https://tex.stackexchange.com/q/163303/35864 for the several ways you can get hold of a new field. – moewe Aug 17 '23 at 18:32