Bibliografía a la que le falta el nombre del autor de Babel turco

Bibliografía a la que le falta el nombre del autor de Babel turco

Estoy tratando de preparar mi bibliografía, pero cuando intento agregar algunas referencias aparece sin autores de referencias.

Aquí está mi main.text:

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}

\geometry{top=30mm,right=30mm,left=30mm,bottom=30mm}

\usepackage{setspace}
\usepackage{anyfontsize}
\usepackage{multicol}
\usepackage{ragged2e}
\usepackage{amsmath}
\usepackage{mathptmx}
\usepackage[english,turkish]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblio.bib}

\begin{document}
\shorthandoff{=!}
%\input{Chapters/Titlepage}
%\input{Chapters/Titlepage2}
%\input{Chapters/Abstract}
\input{Chapters/Micromechanics of Lamina}
\input{Chapters/MacroMechanics of Lamina}
\input{Chapters/Macromechanical Analysis of Laminates}

\printbibliography

\end{document}

Esta es mi bibliografía, es sólo para una demostración en este momento.

@article{knuth:1984,
title={Literate Programming},
author={Donald, Knuth},
journal={The Computer Journal},
volume={27},
number={2},
pages={97--111},
year={1984},
publisher={Oxford University Press}
}

Y este es el resultado que obtengo:

ingrese la descripción de la imagen aquí

Respuesta1

El problema aquí son babel-turkishlas configuraciones abreviadas. babel-turkishse =activa, lo que frena muchos paquetes de valores clave. Dado que biblatexutiliza sintaxis clave-valor para los nombres, esos errores y no se mostrarán.

En el ejemplo, las taquigrafías problemáticas para !=se desactivan después de \begin{document}, pero ya es demasiado tarde para biblatex, ya que lee el .bblarchivo (que contiene todos los datos bibliográficos, entre ellos los nombres) en \begin{document}.

Con el nuevo sistema de gestión de ganchos podemos ajustar la ubicación del \shorthandoffinterior \begin{document}.

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english,turkish]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}

\AtBeginDocument[biblatex/shorthands]{%
  \shorthandoff{=!}%
}

\DeclareHookRule{begindocument}{biblatex/shorthands}{before}{biblatex}

\begin{document}
Lorem \autocite{sigfridsson}

\printbibliography
\end{document}

Lorem (Sigfridsson y Ryde 1998)

Otra forma de solucionar este problema sería utilizar la shorthandsopción de habilitar explícitamente aquellas taquigrafías que queramos. Conjuntos turcos :y =. !Si lo desactivamos !=nos queda :, por eso decimos shorthands=:. Si ni siquiera quieres dos puntos activos, elige shorthands=off.

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english, turkish, shorthands=:]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}

\printbibliography
\end{document}

información relacionada