Soy nuevo aquí, así que tengan paciencia conmigo. me gustaria hacer elapellidodelprimer autor solamenteen la bibliografía en negrita, es decir, en el MWE quiero que "Fox" solo en la bibliografía (no en la cita) esté en negrita.
MWE:
\documentclass[a4paper,twoside,hidelinks]{article}
\usepackage[backend=biber,
natbib=true,
uniquename=false,
uniquelist=false,
firstinits=true,
style=authoryear,
sorting=nyt,
maxcitenames=2,
minbibnames=1,
maxbibnames=100,
block=none]{biblatex}
\bibliography{sample.bib}
\begin{document}
Here is some sample text \parencite{Fox2011}.
\printbibliography
\end{document}
\RequirePackage{filecontents}
\begin{filecontents}{sample.bib}
@ARTICLE{Fox2011,
author = {Peter Fox and Richard Rabbit and Franc Bird},
title = {Animals are the better humans},
journal = {Horse and Hound},
year = {2011},
volume = {10},
pages = {11--15}
}
\end{filecontents}
Respuesta1
Redefinimos uno bibmacro
. Los cambios son en realidad muy pequeños: la inserción de una pizca de \mkbibbold
.
\renewbibmacro*{name:last-first}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}{}{%
\ifcapital
{\mkbibbold{\mkbibnameprefix{\MakeCapital{#3}}\isdot}}
{\mkbibbold{\mkbibnameprefix{#3}\isdot}}%
\ifpunctmark{'}{}{\bibnamedelimc}}%
\mkbibbold{\mkbibnamelast{#1}\isdot}%
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{#2}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibbold{\mkbibnamelast{#1}\isdot}%
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2#3}{}{\revsdnamepunct}%
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
\ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
Respuesta2
Creo que esto se hace mejor con un formato de nombre dedicado.
La idea es redefinir la macro \mkbibnamefamily
que imprime el apellido solo para el nombre y luego restaurarlo.
Por defecto authoryear
usa family-given/given-family
, por eso lo definimos family-given/given-family-bf
.
\DeclareNameFormat{family-given/given-family}{%
\ifnumequal{\value{listcount}}{1}
{\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\ifboolexpe{%
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}}
{}
{\usebibmacro{name:revsdelim}}}
{\renewcommand*{\mkbibnamefamily}[1]{##1}%
\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}
Si prefieres todos los nombres enfamily-given
\DeclareNameFormat{family-given-fb}{%
\ifnumequal{\value{listcount}}{1}
{\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
{\renewcommand*{\mkbibnamefamily}[1]{##1}}%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
Ogiven-family
\DeclareNameFormat{given-family-fb}{%
\ifnumequal{\value{listcount}}{1}
{\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
{\renewcommand*{\mkbibnamefamily}[1]{##1}}%
\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
Luego use uno de los formatos anteriores a través de \DeclareNameAlias{sortname}{format}
, por ejemplo
\DeclareNameAlias{sortname}{family-given-fb}
MWE
\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}
\DeclareNameAlias{sortname}{family-given-fb}
\DeclareNameFormat{family-given-fb}{%
\ifnumequal{\value{listcount}}{1}
{\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
{\renewcommand*{\mkbibnamefamily}[1]{##1}}%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
\bibliography{biblatex-examples.bib}
\begin{document}
Here is some sample text \parencite{baez/article}.
\printbibliography
\end{document}
Editada para biblatex
>= 3.3, la versión anterior se puede encontrar en el historial de ediciones. Por cierto, no debería ser necesario restaurar la antigua definición de \mkbibnamefamily
en futuras versiones (es decir > 3.11) ya que los nombres deberían agruparsehttps://github.com/plk/biblatex/pull/731.