Bibliografia com Babel turco sem nome do autor

Bibliografia com Babel turco sem nome do autor

Estou tentando preparar minha bibliografia, mas quando tento adicionar algumas referências vem sem autores de referências.

Aqui está o meu 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 é a minha bibliografia, é apenas para uma demonstração no 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}
}

E este é o resultado que obtenho:

insira a descrição da imagem aqui

Responder1

O problema aqui são babel-turkishas configurações abreviadas. babel-turkishtorna =ativo, o que freia muitos pacotes de valores-chave. Como biblatexusa sintaxe de valor-chave para nomes, esses erros não serão exibidos.

No exemplo, as abreviações problemáticas para !=são desabilitadas após \begin{document}, mas isso é um pouco tarde para biblatex, pois ele lê o .bblarquivo (que contém todos os dados bibliográficos, entre eles nomes) em \begin{document}.

Com o novo sistema de gerenciamento de ganchos, podemos ajustar o posicionamento de \shorthandoffdentro \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 e Ryde 1998)

Outra forma de resolver esse problema seria usar a shorthandsopção de habilitar explicitamente as abreviações que desejamos. Conjuntos turcos :e =. !Se desabilitarmos, !=ficaremos com :, então dizemos shorthands=:. Se você nem quiser dois pontos ativos, escolha 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}

informação relacionada