![biblatex imprime "family=, familyi=" etc. na bibliografia](https://rvso.com/image/400379/biblatex%20imprime%20%22family%3D%2C%20familyi%3D%22%20etc.%20na%20bibliografia.png)
Meu objetivo é usar o BiBLaTeX com o estilo numeric-comp e o modo família/dada família de classificar os nomes dos autores, com todos os nomes em negrito. Aqui está meu MWE:
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\addbibresource{test.bib}
\DeclareNameAlias{sortname}{family-given/given-family-bold}
\DeclareNameFormat{family-given/given-family-bold}{\mkbibbold{%
\ifnumequal{\value{listcount}}{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}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}}
\DeclareNameAlias{sortname}{given-family-bold}
\DeclareNameAlias{author}{given-family-bold}
\DeclareNameAlias{editor}{given-family-bold}
\DeclareNameAlias{translator}{given-family-bold}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@book{Doe86,
author = {Doe, John},
year = {1986},
title = {some book},
}
\end{filecontents}
\begin{document}
I'm citing \cite{Doe86}
\printbibliography
\end{document}
Estranhamente, ele produz a seguinte saída, não importa quantas vezes eu compile (tanto látex quanto biber). O que estou fazendo de errado?
Responder1
Com uma versão atual, biblatex
eu usaria wrappers de nomes para aplicar negrito aos nomes. Se desejar a family-given/given-family
ordem mista, você ainda precisará redefinir o formato do nome (porque o padrão para estilos numéricos é given-family
ordem).
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\DeclareNameAlias{sortname}{family-given/given-family}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
\DeclareNameWrapperAlias{author}{sortname}
\DeclareNameWrapperAlias{editor}{sortname}
\DeclareNameWrapperAlias{translator}{sortname}
\addbibresource{biblatex-examples.bib}
\begin{document}
I'm citing \cite{sigfridsson,nussbaum}
\printbibliography
\end{document}
O problema com o código da pergunta era que ele definia um formato de nome ( family-given/given-family-bold
), mas depoisusadoum formato diferente e inexistente ( given-family-bold
). Formatos inexistentes resultam na saída estranha que você obteve. Isso poderia ser retrabalhado da seguinte maneira (mas ainda prefiro a solução acima).
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\DeclareNameFormat{family-given/given-family-bold}{%
\mkbibbold{%
\ifnumequal{\value{listcount}}{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}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}}
\DeclareNameAlias{sortname}{family-given/given-family-bold}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\addbibresource{biblatex-examples.bib}
\begin{document}
I'm citing \cite{sigfridsson,nussbaum}
\printbibliography
\end{document}
A saída é a mesma.