LINUX.ORG.RU

Latex apsrev4-2.bst проблема с русскими буквами

 , ,


0

1

Использую apsrev4-2 стиль для ссылок. TeX файл

\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass[aps,prd,notitlepage,balancelastpage]{revtex4-1}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\inputencoding{utf8}
\usepackage{xcolor} \definecolor{darkgreen}{rgb}{0,.5,0} 
\usepackage[colorlinks,filecolor=blue,citecolor=darkgreen,unicode]{hyperref}

\begin{document}
	
	Text  \cite{ss}
\bibliographystyle{apsrev4-2}
\bibliography{2}
\end{document}
и bib файл 2.bib (для примера)
@book{ss,
title = {Решение уравнений fff},
author = {Хайрер Хайрер},
year = 1999,
DOI = {10.1007/978-3-642-65690-3},
}
При компилляции выдет ошибку
Invalid UTF-8 byte sequence (�.). {Хайрер}},\ }
Проверил, выдает ошибку при наличии русских букв и пробела в секции author. Без пробела ошибку не выдает. Проблему решил заменой
author = {Хайрер{,\ }Хайрер},
Так компилит без ошибки, но это костыль. Может быть как то можно решить глобально? Гугль не помог. При использовании стиля например plain, компилит без ошибок. Это явно заморочка стиля apsrev4-2.

★★★★

bibtex пытается выделить инициал и выдать Х. Хайрер. Проблема в том, что bibtex работает только с 8-битными файлами и не поддерживает UTF-8 (он отрезает первый байт имени Хайрер, полагая, что это первый символ).

Без перехода на biblatex починить можно, например, так:

Способ 1: bibtexu вместо bibtex

Способ 2: заменить имя Хайрер на {\CYRH}айрер и продолжать пользоваться bibtex.

Сортировка, возможно, будет неправильной, но может это никто и не заметит.

TeopeTuK ★★★★★
()

Если верно помню, то в bibtex Фамилия отделяется от имени запятой. Поэтому вариант с запятой и не вызывает ошибку. Ниже подскали, что это проблема bibtex и utf8.

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

Спасибо, не знал про bibtexu. Попробовал, работает. Можно пользоваться, а можно как я уже писал. Вопрос остался. Если два и больше авторов, то стандартный синтаксис такой Иванов, Д А and Петров, П И. Но тогда связкой остается and. А как сделать русское и вместо and?

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

А как сделать русское и вместо and?

Считай что это команда латеха, тебя же не смущают остальные команды латеха или ты про вывод в pdf. Тогда вопросы к авторам стиля, в gost такой проблемы нет.

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

В файле .bib использование and обязательно, это элемент синтаксиса, разделяющий нескольких авторов статьи/книги. Что при этом выводится на печать, определяется стилем (а в случае biblatex еще и текущим языком). Так что, полагаю, придется использовать стиль библиографии, отличный от apsrev4-2 (тот же gost). В нем, возможно, будут странно выглядеть ссылки на иностранные работы.

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

Стиль gost это то еще садо-мазо. Не знаю какой садист придумал этот стиль. Мой последний аспирант вынужден был делать ссылки в этом стиле. Стиль gost спас. Про and я знаю, не первый год пользуюсь, подумал может уже есть готовое решение. Первый раз за последние много лет понадобилось сделать ссылки на русском вот и проблема появилась. Мне кажется, что самый простой способ, что я нашел, использовать {\ } вместо пробела, проблема же только в author. Стиль apsrev имеет некоторые очень нужные особенности, которые отсутствуют в других. Можно группировать ссылки под одним номером (операция *) и ссылки интерактивные по doi. Последнее можно сделать и вручную исправив нужный стиль, но удобнее использовать готовое. Но спасибо за bibtexu, не знал о таком.

rustamych ★★★★
() автор топика