Com biblatex, não coloque prefixos em maiúscula para sobrenomes no índice

Com biblatex, não coloque prefixos em maiúscula para sobrenomes no índice

O envio de entradas bibliográficas para o índice biblatexcausa 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 .dxarquivo:

\indexentry{van Trijp, Remi@\MakeCapital {van} Trijp, Remi}{1}

E isso produz a entrada do índiceVan Trijp, Remi, emboravan Trijp, Remiseria preferido. Gostaria que \MakeCapitalfosse opcional sem confundir a classificação das entradas no índice.

O problema pode estar relacionado a \mkbibindexnamefrom biblatex.def, onde \MakeCapitalestá codificado.

Uma possível solução é, usando etoolbox, simplesmente excluir the \MakeCapitalda 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 \mkbibindexnamepareç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 \mkbibindexnameeu 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}

van Trijp, Remi, 1

Também deveria ser possível aplicar opcionalmente \MakeCapitala um nome se uma determinada opção estiver definida, mas então você teria que decidir como gostaria de contar biblatexsobre isso.

informação relacionada