Автор Гілка: bibTeX - сортована за алфавітом бібліографія  (Прочитано 7146 раз)

Відсутній basilio

  • Новачок
  • *
  • дописів: 32
  • Карма: +0/-0
Виникла потреба відсортувати за алфавітом список джерел. Спіткали наступні проблеми:

1) стиль gost2008s - джерела на "Є" та "І" викидає в кінець списку
АБО
2) стиль ugost2008s - джерела на "Є" та "І" вставляє на початок списку

І pdftex, і xetex в цьому питанні поводять себе однаково.
Хто має успішний досвід, поділіться будь-ласка.

Відсутній Олександр Барановський

  • Модератор дошки
  • Графоман
  • *****
  • дописів: 359
  • Карма: +0/-0
Я не бачу проблеми. Спробував з gost2008s, обидва файли (і .tex, і .bib) у кодуванні cp1251 — сортує правильно.

1. Ви використовуєте bibtex8 (а не класичний bibtex)?

2. Підключаєте csfile для відповідного кодування?

Тобто виклик BibTeX має бути якогось такого вигляду:
Код: Bash
  1. $ bibtex8 --csfile cp1251 <filename>

3. Узгоджуються кодування всіх файлів (.tex і .bib) з ключем --csfile?
У своїх заявках дехто з науковців описував, якими корисними будуть їхні заплановані дослідження для національних інтересів, тоді як насправді ними рухала щира наукова допитливість і бажання написати пару статей.
Станіслав М. Улям, «Пригоди математика»

Відсутній basilio

  • Новачок
  • *
  • дописів: 32
  • Карма: +0/-0
Дякую за оперативність. В мене юнікод і лінукс. Для бібліографії за звичкою користуюсь pybtex (бо раніше лише він нормально працював з юнікод). Класичний bibtex зараз також працює, а от bibtex8 - чомусь - ні. Так що підсунути йому кодування "під двері" ніяк не виходить. В порядку згадування - жодних проблем. Хотів швиденько на bibLaTex перелізти з тим файлом - так там українська ще не підтримується у тій версії, яку мій дистрибутив вважає стабільною. А нестабільну ставити - залежностей купу тягне за собою. Отака халепа. Добре, будемо щось думати...

Руками у bbl файлі підправити ті позиції простіше за все вийшло. Рішення, може, і не зовсім кошерне, але як для одноразової затички - підійшло. В перспективі, мабуть треба готуватись на XeLaTeX переїздити, почекати лише доки підтримка української до стабільної версії доїде.
« Змінено: 2018-01-22 20:43:02 від basilio »

Відсутній Олександр Барановський

  • Модератор дошки
  • Графоман
  • *****
  • дописів: 359
  • Карма: +0/-0
Справді. Спробував файли в кодуванні utf8, стиль ugost2008s — сортує неправильно. Тільки в мене bibtex джерело з буквою Є кинув у початок списку, bibtex8 — у кінець, а pybtex — теж у початок списку. Останній, може, й справився б і з сортуванням (якщо він такий хороший з унікодом, як рекламують), але він сумісний з bibtex, а не з bibtex8, тому не розуміє .csf-файлів від bibtex8.

Знайшов у сусідній гілці, здається, це аналогічна проблема:
Цитата
З документації до стилів ugost2008 вичитав, що 1) i 2) «так має бути»: для юнікодових документів сортування вони чомусь спеціяльно відімкнули, як і перетворення імен авторів у потрібний формат.

Справді, в розділі 1.1, п. 6 (на с. 4) написано:
Цитата
Neither bibtex.exe nor bibtex8.exe provides correct sorting order of unicode text. It means that using ugost2008s or ugost2008ns may produce unexpected result for documents in utf8 encoding.

Отже, pdfLaTeX чи XeLaTeX — для цієї проблеми не має значення. Бо генерується .bbl-файл уже з неправильним сортуванням. Але це коректний файл у кодуванні UTF-8, тому TeX його нормально сприймає, байдуже, який TeX-рушій використовується.

Причому, схоже, що більшість кириличних букв сортує правильно. Проблеми тільки з цими специфічними буквами: Ґ, Є, І, Ї.

Мабуть, якась така проблема, як і з makeindex. Але там сортує неправильно навіть, якщо файл у класичному 8-бітовому кодуванні, не в унікоді. І це неможливо побороти (так запрограмовний makeindex). Колись, як робив авторський покажчик у книжці, то вручну переставити — це був найефективніший спосіб.
У своїх заявках дехто з науковців описував, якими корисними будуть їхні заплановані дослідження для національних інтересів, тоді як насправді ними рухала щира наукова допитливість і бажання написати пару статей.
Станіслав М. Улям, «Пригоди математика»

Відсутній basilio

  • Новачок
  • *
  • дописів: 32
  • Карма: +0/-0
Тільки в мене bibtex джерело з буквою Є кинув у початок списку, bibtex8 — у кінець, а pybtex — теж у початок списку.
То я міг наплутати, бо і стилі міняв, і програми (pybtex/bibtex/bibtex8), а писав вже по пам'яті.

Цитата
Останній, може, й справився б і з сортуванням (якщо він такий хороший з унікодом, як рекламують), але він сумісний з bibtex, а не з bibtex8, тому не розуміє .csf-файлів від bibtex8.
Поки не виникла потреба в сортуванні - все прекрасно працювало вже багато років. Навіть і не знав, що вже й класичний bibtex запрацював.

Цитата
Знайшов у сусідній гілці, здається, це аналогічна проблема:
Та ото ж. Сумно.

Цитата
Отже, pdfLaTeX чи XeLaTeX — для цієї проблеми не має значення. Бо генерується .bbl-файл уже з неправильним сортуванням. Але це коректний файл у кодуванні UTF-8, тому TeX його нормально сприймає, байдуже, який TeX-рушій використовується.
Воно то так, але експериментом перевірити теорію не завадить. Підставою для експерименту було те, що звичайний LaTeX українську "і" в мене відтворює латинською "i", думав, може через це. Але виявилось, що ні. І в продовження питання про XeLaTeX: у зв'язці із bibLaTeX+biber - сортує правільно. Але підтримка української починається у нестабільній для мого дистрибутива гілці. Якщо в кого інший дистрибутив або віндовс, то може там вже все в порядку з українською. Щоправда, підтримки такого широкого спектру бібліографічних стилів, як у bibTeX, я там не побачив. Наприклад, із всіх ГОСТів - лише 2008.

Цитата
Причому, схоже, що більшість кириличних букв сортує правильно. Проблеми тільки з цими специфічними буквами: Ґ, Є, І, Ї.
Саме так!

Цитата
Колись, як робив авторський покажчик у книжці, то вручну переставити — це був найефективніший спосіб.
Ото ж бо й воно :)