
Я пытаюсь подготовить свою библиографию, но когда я пытаюсь добавить некоторые ссылки, они не содержат авторов ссылок.
Вот мой 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}
Это моя библиография, на данный момент она представлена только в демонстрационных целях.
@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}
}
И вот что я получаю в результате:
решение1
Проблема здесь в babel-turkish
настройках сокращенной записи. babel-turkish
делает =
активным, что тормозит многие пакеты ключ-значение. Поскольку biblatex
использует синтаксис ключ-значение для имен, эти ошибки и не будут отображаться.
В этом примере проблемные сокращения для !=
отключены после \begin{document}
, но это немного поздно для biblatex
, так как он считывает .bbl
файл (содержащий все библиографические данные, в том числе имена) в \begin{document}
.
Благодаря новой системе управления крючками мы можем точно настроить размещение \shorthandoff
внутри \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}
Другой способ решения этой проблемы — использовать shorthands
опцию явного включения тех сокращений, которые нам нужны. Турецкие наборы :
, =
и !
. Если мы отключим, !=
то останемся с :
, поэтому мы говорим shorthands=:
. Если вам даже не нужно активное двоеточие, используйте 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}