
Estoy intentando componer una lista de publicaciones que utilizan biblatex
y me gustaría cambiar los títulos de las entradas a mayúsculas y minúsculas (o mayúsculas/minúsculas/títulos). Intenté usarlo \DeclareFieldFormat{title}{\MakeSentenceCase{#1}}
pero no parece funcionar.
MWE:
%\RequirePackage{filecontents}
\begin{filecontents}{pub.bib}
@article{article1,
author={Author One and Author Two},
title={Title of Article One},
date= {2018},
}
@article{article2,
author={Author One and Author Two},
title={Title of article two},
date= {2017},
}
\end{filecontents}
\documentclass{article}
\usepackage[
backend=biber,
sorting=ynt,
giveninits=true,
maxbibnames=99,
]{biblatex}
\DeclareFieldFormat*{title}{\MakeCapital{#1}} % Change titles to sentence case
\addbibresource{pub.bib}
\begin{document}
\nocite{*}
\printbibliography[type=article, title={Publications}]
\end{document}
Respuesta1
Deberías usarlo titlecase
para eso.
\DeclareFieldFormat*{titlecase}{\MakeSentenceCase{#1}}
Un MWE completo:
%\RequirePackage{filecontents}
\begin{filecontents}{pub.bib}
@article{article1,
author={Author One and Author Two},
title={Title of Article One},
date= {2018},
}
@article{article2,
author={Author One and Author Two},
title={Title of article two},
date= {2017},
}
\end{filecontents}
\documentclass{article}
\usepackage[
backend=biber,
sorting=ynt,
giveninits=true,
maxbibnames=99,
]{biblatex}
\DeclareFieldFormat*{titlecase}{\MakeSentenceCase{#1}} % Change titles to sentence case
\addbibresource{pub.bib}
\begin{document}
\nocite{*}
\printbibliography[type=article, title={Publications}]
\end{document}
Actualizar: Quizás sea útil aquí una explicación de por qué debería usarse titlecase
en lugar de . title
Si nos fijamos en la definición de la macro title
en biblatex.def
encontraremos lo siguiente:
\newbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
and
test {\iffieldundef{subtitle}}
}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\newunit}%
\printfield{titleaddon}}
Tenga en cuenta que la directiva de formato [title]
se aplica a las title + subtitle
instrucciones de impresión. Esto es necesario porque es un requisito común de los estilos de bibliografía que el título de algunos tipos de entrada comunes se establezca entre comillas, es decir, un solo par de comillas tanto para el "título" como para el "subtítulo". La directiva de formato [titlecase]
se aplica individualmente a title
y subtitle
. Una consecuencia de esto es que si intenta aplicar \MakeSentenceCase
la title
directiva de formato, le estará suministrando una secuencia de \printfield
instrucciones de puntuación y sy, con sus propias directivas de formato individuales [titlecase]
. Algo que no se porta bien, como habrás notado. Pero, incluso si se tratara de una cadena desinfectada, obtendría una primera letra minúscula no deseada del subtítulo (las estaría alimentando a ambas juntas \MakeSentenceCase
). Entonces, en resumen, está titlecase
ahí tal como está exactamente para permitir que uno trate con title
y subtitle
por separado, y ese sería el alcance apropiado para aplicar cualquier directiva de redacción de sentencias.