LINUX.ORG.RU

biblatex - проблема с кириллической буквой О в цитировании

 , ,


0

2

Товарищи, я в полном шоке. Может я туплю под вечер, но вот такая вот ошибка. Никак не могу понять, в чем причина.

Минимальный пример:

\documentclass[draft]{book}

\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\usepackage	[
			style		= gost-numeric,
			backend		= biber,
			language	= auto
			]{biblatex}
\addbibresource{ref.bib}

\begin{document}
\cite[{АБВГДЕЁЖЗИЙКЛМНПРСТУФХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.
\printbibliography
\end{document}

ref.bib:

@ARTICLE{A,
	author		= {author},
	title		= {title},
	journal		= {journal},
	year		= {2000},
	volume		= {1},
	pages		= {1--100}
} 

Вывод:

Errors:

.../minimal.tex:18: Missing ) inserted for expression. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing = inserted for \ifnum. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing number, treated as zero. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing ) inserted for expression. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing number, treated as zero. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing ) inserted for expression. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing = inserted for \ifnum. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing number, treated as zero. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing ) inserted for expression. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing = inserted for \ifnum. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]
.../minimal.tex:18: Missing number, treated as zero. [...ХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.]

Убираем проклятую букву 'О' и No errors!

Проблема возникла в связи с попыткой перехода на biber после bibtex.

★★★★★

Похоже на баг, похоже в biblatex. Но где он именно, не могу найти, увы.

Кстати, в LuaLaTeX работает:

\documentclass[draft]{book}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{luainputenc}
\usepackage[russian]{babel}
\usepackage	[
			style		= gost-numeric,
			backend		= biber,
			language	= auto
			]{biblatex}
\addbibresource{ref.bib}
\begin{document}
\cite[{АБВГДЕЁЖЗИЙКЛМНПРСТУФХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.
\printbibliography
\end{document}

или с fontspec:

\documentclass[draft]{book}
\usepackage{fontspec}
\setmainfont{CMU Serif}[Ligatures=TeX]
\usepackage[russian]{babel}
\usepackage	[
			style		= gost-numeric,
			backend		= biber,
			language	= auto
			]{biblatex}
\addbibresource{ref.bib}
\begin{document}
\cite[{АБВГДЕЁЖЗИЙКЛМНПРСТУФХЦЧШЩЪЫЬЭЮЯ О}~1234567890]{A}.
\printbibliography
\end{document}

Я бы спросил на TeX Stackexchange. Там быстро баги находят.

TeopeTuK ★★★★
()
Последнее исправление: TeopeTuK (всего исправлений: 1)
Ответ на: комментарий от TeopeTuK

Да я так и подумал, что если на ЛОРе решение не подскажут, то придется на stackexchange регистрироваться.

А почему с fontspec проблема уходит?

aquadon ★★★★★
() автор топика
Ответ на: комментарий от aquadon

Дело не в fontspec. Дело в LuaLaTeX, который воспринимает многобайтные символы в кодировке UTF-8 как отдельные сущности (в то время как pdfLaTeX собирает их побайтно). Видимо, где-то накладка произошла со вторым байтом кода буквы «О».

TeopeTuK ★★★★
()
Ответ на: комментарий от TeopeTuK

Понял, спасибо. Завтра сделаю пост на stackexchange и вставлю сюда ссылку.

aquadon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.