[ID CC-CC2022] TOC не различает Е и Ё

Yar

Топикстартер
20 лет на форуме
Сообщения
583
Реакции
179
Генерирую автоматическое содержание. Если ставить галку Sort Entries in Alphabetical Order, TOC не различает Е и Ё.
Язык текста русский, все виды штатных словарей (Hunspell, Proximity, WinSoft) перебрал — не влияет. Попробовал поверх пройтись скриптом SortParagraphs.jsx — он вообще все слова на Ё в конец ставит:)

1732967680473.png
 

Вложения

  • Yo.zip
    Yo.zip
    30.4 КБ · Просм.: 27
  • Спасибо
Реакции: Yar
Так и в Word тоже не различает.
Значит что-то в глобальных параметрах.
 
Вот тут нашел замечательный скрипт, который предлагает несколько вариантов сортировок (UTF16, DUCET и EOR) и даже многоуровневую. Поддерживает кучу языков. Есть опция Ignore Diacritics.
Сортирует неправильно :)
 
А какие случаи неправильной сортировки? Только случаи с буквой ё Ё или еще что-то ?
 
А заменить "ё" в начале параграфа на "ея", отсортировать и вернуть в зад не проканает?
Проканает, если не найдётся более изящного решения. Рекомендуют, например, воспользоваться индексом, мол, он сортирует корректно.
 
Генерирую автоматическое содержание. Если ставить галку Sort Entries in Alphabetical Order, TOC не различает Е и Ё.
Язык текста русский, все виды штатных словарей (Hunspell, Proximity, WinSoft) перебрал — не влияет. Попробовал поверх пройтись скриптом SortParagraphs.jsx — он вообще все слова на Ё в конец ставит:)

Посмотреть вложение 169827
Ярослав, да, трудно к такому привыкнуть… Но это классика. Посмотрите, как это реализовано в качественных словарях. При сортировке буквы «е» и «ё» не различаются. В частности, слова, начинающиеся на «е» и «ё», сортируются по второй букве. То есть именно так, как у вас представлено в правой колонке. Соответственно, исправлять, искать скрипты и т. п. не надо. [Я при подготовке batov’s dictionary много бился над этим. В конце концов смог привести словарь к классическому виду )) ]
 
Всем привет,

Извините, я не говорю по-русски. Просто хотел сообщить вам, что новая версия сценария SmartSort для InDesign (упомянутая выше) пытается решить проблему, о которой сообщалось в этой теме, а именно различение кириллических букв Ёё в русском языке.

Искренне,
Marc — indiscripts.com
 
После того, как я сообщил Марку, что его скрипт сортировки не работает с русскими буквами ё и Ё, у нас была переписка в несколько дней. Он выложил новый скрипт, версия 1.21, прислал мне скриншот, что всё работает. А я загружаю с сайта новую версию, запускаю, а на экране как была неправильно работающая 1.18, так и осталась. Сделал видео ему, чтобы не на словах, а визуально показать имеющуюся проблему. Я был уверен, что он просто не обновил архив.

Оказалось всё гораздо сложнее.

Сделано как-то странно, это не понятно, но неисправимо, что javascript имеет какой-то свой внутренний кэш, из которого берет ссылки на запускаемые скрипты. И ему всё равно, что я загрузил новую версию. В кэше была ссылка на скрипт с таким же названием, это был прошлый вариант в соседней папке, он его всякий раз и запускал.

Возможно, такая особенность только со скриптами из папки startup scripts.

В итоге, что надо было сделать, чтобы загрузить последнюю версию. Это важно лишь для тех, у кого на машине использовалась предыдущая, и он не видит, чтобы новая работала. Если вы впервые грузите этот скрипт, то таких проблем в принципе нет. ( или ещё нет, пока не появилось обновления :)) )

1. Удалить этот скрипт из startup scripts
2. Удалить его из папок, маршрут к которым может быть в этом кэше.
3. Не запуская индизайна, распаковать архив в корне пользовательской ветки скриптов.
4. Запустить скрипт в отладчике. Он отработает, будет сообщение.
(Удивительно, но именно так. Он увидел в моём видео, что индизайн был уже загружен, и сказал, что это уже причина, что тот кэш включён.)
5. После этого запускайте индизайн.


Версия 1.21 с буквами ё и Ё работает безупречно.

Не нужно никакой странной классики — сортировки по второй букве, если первая — буква Ё.
Это наша буква и она не должна быть поражена в правах в плане сортировки.

Марк поделился ссылкой на github ресурс с техническими деталями выполнения многоязычной сортировки.

IdExtenso/CHANGELOG.md at master · indiscripts/IdExtenso

Для меня это тёмный лес, но может кому-то нужна эта информация.
 
Возможно, такая особенность только со скриптами из папки startup scripts.
Михаил, спасибо Вам и Марку за участие, проделанную работу и результат!
В моём случае было достаточно перезагрузить индизайн (я запускал установщик из папки User Scripts), а до этого он тоже не видел обновления и работал с предыдущей версией.
Как бы то ни было, теперь у нас есть выбор — учитывать или не учитывать Ё.