![Com biblatex, não coloque prefixos em maiúscula para sobrenomes no índice](https://rvso.com/image/400343/Com%20biblatex%2C%20n%C3%A3o%20coloque%20prefixos%20em%20mai%C3%BAscula%20para%20sobrenomes%20no%20%C3%ADndice.png)
O envio de entradas bibliográficas para o índice biblatex
causa capitalização de prefixos que às vezes é indesejada. Por exemplo, nomes holandeses com prefixofurgãoou nomes franceses com prefixodeàs vezes não são capitalizados em índices. Além disso, talvez um pouco mais incomum, mas ainda possivelmente relevante, descobri recentemente sobre um pesquisador que deseja ser citado apenas com seu nome em letras minúsculas (acredito que isso tenha acontecido em algum lugar da SocSci).
MWE:
\begin{filecontents}{test.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\addbibresource{test.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\end{document}
Isso produz a seguinte entrada no .dx
arquivo:
\indexentry{van Trijp, Remi@\MakeCapital {van} Trijp, Remi}{1}
E isso produz a entrada do índiceVan Trijp, Remi, emboravan Trijp, Remiseria preferido. Gostaria que \MakeCapital
fosse opcional sem confundir a classificação das entradas no índice.
O problema pode estar relacionado a \mkbibindexname
from biblatex.def
, onde \MakeCapital
está codificado.
Uma possível solução é, usando etoolbox
, simplesmente excluir the \MakeCapital
da definição:
\patchcmd{\mkbibindexname}{\ifdefvoid{#3}{}{\MakeCapital{#3} }}{\ifdefvoid{#3}{}{#3 }}{}{}
Mas não creio que mudar o código de um pacote desta forma seja uma solução sustentável. Você conhece uma maneira melhor de fazer isso?
Responder1
Embora a definição real de \mkbibindexname
pareça um pouco assustadora, o usuárioédeveriam alterar essa macro se não gostarem da saída que ela produz. Portanto, seria perfeitamente correto corrigir a macro como você sugere. Há uma questão geral sobre se é melhor corrigir ou redefinir uma macro (ver por exemploBibmacros, drivers de bibliografia, formatos da Biblatex - corrigir ou redefinir?) e para macros 'pequenas', como \mkbibindexname
eu normalmente preferiria redefinir a rota em vez de corrigir, mas isso depende da preferência pessoal.
Para esta aplicação podemos redefinir a macro em questão da seguinte forma
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\usepackage{makeidx}
\makeatletter
\renewcommand*{\mkbibindexname}[4]{%
\ifuseprefix
{\ifdefvoid{#3}{}{#3 }%
\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifdefvoid{#2}{}{, #2}}
{\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{,}%
\ifdefvoid{#2}{}{ #2}%
\ifdefvoid{#3}{}{ #3}}}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\printindex
\end{document}
Também deveria ser possível aplicar opcionalmente \MakeCapital
a um nome se uma determinada opção estiver definida, mas então você teria que decidir como gostaria de contar biblatex
sobre isso.