formato de entrada de título en biblatex

formato de entrada de título en biblatex

Estoy intentando componer una lista de publicaciones que utilizan biblatexy 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 titlecasepara 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}

ingrese la descripción de la imagen aquí

Actualizar: Quizás sea útil aquí una explicación de por qué debería usarse titlecaseen lugar de . titleSi nos fijamos en la definición de la macro titleen biblatex.defencontraremos 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 + subtitleinstrucciones 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 titley subtitle. Una consecuencia de esto es que si intenta aplicar \MakeSentenceCasela titledirectiva de formato, le estará suministrando una secuencia de \printfieldinstrucciones 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á titlecaseahí tal como está exactamente para permitir que uno trate con titley subtitlepor separado, y ese sería el alcance apropiado para aplicar cualquier directiva de redacción de sentencias.

información relacionada