
У меня возникла проблема с biblatex, который не хочет использовать сербский язык и неправильно компилирует.
%Compile with XeLaTeX
\documentclass[12pt,serbian]{article}
%\usepackage[utf8]{inputenc}
\usepackage[T1,LGR,]{fontenc}
\usepackage{lmodern}
\usepackage{textalpha}
\usepackage{fontspec}
\setmainfont{FreeSerif}
\setsansfont{FreeSans}
\setmonofont{FreeMono}
\usepackage{polyglossia}
\setdefaultlanguage[script=latin]{serbian}
\setotherlanguages{english,russian,greek}
\usepackage{blindtext}
\usepackage[bibencoding=auto,backend=biber,autolang=other,style=authoryear]{biblatex}
\usepackage{csquotes}
\bibliography{ref}
\DefineBibliographyStrings{serbian}{
bytranslator = {prev.}
}
\title{Dnevnik čitanja}
\author{Perović Nikola}
\date{}
\begin{document}
\maketitle
\newpage
\section*{Voltaire (Volter)}
\subsection*{Kandid}
„Sve je neizbežno vezano jedno s drugim i najbolje udešeno.“\smartcite[str.13]{Vol02}
„Sve je u svetu najbolje što može biti.“\smartcite[str.14]{Vol02}
„I nesreće pojedinca čine opšte dobro; otuda, što je više pojedinih nesreća utoliko je sve bolje.“\smartcite{Vol02}
„Ako je sve najbolje što može biti onda nema pravog greha ni prave kazne.“\smartcite[str.13]{Vol02}
\newpage
\printbibliography
\end{document}
файл ref.bib
@BOOK{Vol02,
AUTHOR="Volter",
TITLE="Kandid",
TRANSLATOR="Milan Predić",
PUBLISHER="Alfa",
LOCATION="Beograd",
YEAR="2002",
HYPHENATION="serbian"
}
Как я могу изменитьbytranslatorвместо этого сказать prev.?
решение1
Как обсуждалось в комментариях, вы используете biblatex
v3.14. Сербская локализация serbian.lbx
была serbianc.lbx
добавлена только в biblatex
v3.15, которая была выпущена несколько недель назад. Смотритеhttps://github.com/plk/biblatex/pull/940. Таким образом, вы по сути используете biblatex
версию, не имеющую никакой поддержки сербского языка.
Лучшим решением было быобновите свой дистрибутив TeX, чтобы получитьbiblatex
версию 3.15 (и Biber 2.15 и т. д.).
Если вы установили дистрибутив TeX через менеджер пакетов дистрибутива Linux, то, возможно, у вас не будет возможности получить обновление до последней версии системы TeX.
В этом случае у вас есть три варианта.
Установите текущую версию TeX Live с TUG.org (см., например,Как установить «ванильный» TeXLive на Debian или Ubuntu?). Вы будете иметь полный контроль над этой системой и сможете обновлять пакеты через
tlmgr
(Как обновить мой дистрибутив TeX?). Но учтите, что TeX Live выпускается в годовых версиях. Вам придется обновляться каждый год, если вы хотите оставаться в курсе событий.Попробуйте обновить только
biblatex
и Biber вручную. Есть некоторые инструкции (для старыхbiblatex
версий /Biber) наКак правильно обновить «biblatex»?. Но это обычно категорически не рекомендуется: это может привести к несовместимости версий, а ручная установка Biber — это главный источник головной боли во всемbiblatex
мире.Только получить
serbian.lbx
отbiblatex
v3.15 и поместить его в папку с документами. Вы можете скачать его сhttp://mirrors.ctan.org/macros/latex/contrib/biblatex/latex/lbx/serbian.lbx. Вы можете получить ряд странных ошибок при попытке запустить документ с этими.lbx
файлами. Если вам повезет, вы сможете легко их устранить. (Если вы получаете ошибки о неопределенной строке<string>
, добавьте\NewBibliographyString{<string>}
в преамбулу, например\NewBibliographyString{langserbian}
).
Я бы рекомендовал только вариант 1. Остальные варианты довольно рискованны (вариант 2) или обязательно потребуют ручного вмешательства (вариант 3).
Думаю, мне удалось реализовать третий вариант, но, возможно, есть некоторые проблемы, которые я не вижу из-за помех в моей системе.
Независимо от ваших biblatex
проблем, polyglossia
есть небольшая непоследовательность в babelname
интерфейсе для сербского языка, которая в настоящее время biblatex
немного сбивает с толку:https://github.com/reutenauer/polyglossia/issues/442.