El envío de entradas bibliográficas al índice con biblatex
mayúsculas en los prefijos a veces no es deseado. Por ejemplo, nombres holandeses con prefijocamionetao nombres franceses con prefijoDelawareA veces no se capitalizan en los índices. Además, tal vez un poco más inusual pero posiblemente relevante, recientemente me enteré de un investigador que desea ser citado con su nombre solo en minúsculas (creo que esto fue en algún lugar de 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}
Esto produce la siguiente entrada en el .dx
archivo:
\indexentry{van Trijp, Remi@\MakeCapital {van} Trijp, Remi}{1}
Y esto produce la entrada del índice.Van Trijp, Remi, a pesar devan Trijp, Remisería preferible. Me gustaría que \MakeCapital
fuera opcional sin confundir la clasificación de las entradas en el índice.
El problema podría estar relacionado con \mkbibindexname
from biblatex.def
, donde \MakeCapital
está codificado.
Una posible solución es, usando etoolbox
, simplemente eliminar \MakeCapital
de la definición:
\patchcmd{\mkbibindexname}{\ifdefvoid{#3}{}{\MakeCapital{#3} }}{\ifdefvoid{#3}{}{#3 }}{}{}
Pero no creo que cambiar el código de un paquete de esta manera sea una solución sostenible. ¿Conoces una mejor manera de hacer esto?
Respuesta1
Aunque la definición real de \mkbibindexname
parece un poco desalentadora, el usuarioesSe supone que deben cambiar esa macro si no les gusta el resultado que produce. Por lo tanto, estaría perfectamente bien parchear la macro como sugieres. Existe una pregunta general sobre si es mejor parchear o redefinir una macro (ver por ejemploBibmacros, controladores de bibliografía y formatos de Biblatex: ¿parchear o redefinir?) y para macros "pequeñas" como las que \mkbibindexname
normalmente preferiría redefinir la ruta en lugar de parchear, pero eso depende de mis preferencias personales.
Para esta aplicación podríamos redefinir la macro en cuestión de la siguiente manera
\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}
También debería ser posible aplicar opcionalmente \MakeCapital
a un nombre si se establece una determinada opción, pero luego tendría que decidir cómo le gustaría informar biblatex
sobre esto.