Серия «Энциклопедия символов «Юникодия»»

12

Энциклопедия символов «Юникодия»: версия 3.0!

Я всё ещё продолжаю писать открытую энциклопедию Юникода и замену стандартной Таблице символов. Качать тут.

Скриншот

Скриншот

Вот отчёт за последние полгода.

Всплывающее окно: символ

Теперь, чтобы увидеть символ и скопировать тривиальную информацию по нему, можно просто ткнуть на ссылке.

Панель Подборок из синей стала зелёной: теперь это не переход.

Внизу ссылочка «◀◀◀ U+FE0F». Она во всех всплывающих окнах: если вдруг вы закрыли, или любопытство завело вас непонятно куда, вы легко можете вернуться туда, где были. История запоминается на целых 100 шагов.

Иероглифы разные

Эмодзи. Обратите внимание на балерину выше: подтянул свежую библиотеку Google Noto. Только косатку оставил свою: ну не получился у Гугла хищный зубатый кит.

Эмодзики Google Noto

Эмодзики Google Noto

Флаг Сирии заменил на бенладенский, вслед за Ябблом.

Бенладенский флаг Сирии

Бенладенский флаг Сирии

Египетские. Сейчас они обслуживаются тремя шрифтами.

  1. Google Noto: проверен египтологами. Низкие кегли совсем не держит. Покрывает базовый блок 2009 года.

  2. NewGardiner: нарисован египтологом, но единичные ошибки есть. Низкие кегли отлично держит. Коряв как чёрт. Покрывает подтверждённые иероглифы (600 расширенных намеренно опущены).

  3. Мой, основанный на JSesh (программе-редакторе египетских текстов). Низкие кегли неплохо держит. Покрытие рандомное. Пришлось проверять и перерисовывать, но такая красотища! Разногласия решались простым большинством из трёх источников: изображения Юникода, описания Юникода и NewGardiner.

Жанровые сцены (разные, но близкие) тремя шрифтами: Noto, GewGardiner, JSesh

Жанровые сцены (разные, но близкие) тремя шрифтами: Noto, GewGardiner, JSesh

Шрифт буду потихоньку расширять, пока буду жив, и последовательность такая.

Стадия 1. Три шрифта в сумме покрывают все египетские иероглифы. Выполнено в июле, нарисовано и перерисовано несколько десятков иероглифов.

Стадия 2. Все символы моего шрифта проверены на простейшую корректность. Выполнено только что, сделано более 600 иероглифов. Главный вопрос — борода: у египтян короткая, у фараонов длинная, у богов крючком.

Стадия 3. Шрифт растяну на 1100 символов основного блока. Будет ХЗ когда, предполагаемый срок — после Нового года. Рассчитываю на 200…300 иероглифов работы.

Стадия 4. Буду поддерживать все египетские иероглифы. Будет минимум через полтора года и 800 иероглифов.

Поставил на свой шрифт такие требования: 1) если человек держит что-то, оно всегда будет изображаться гипертрофированно; 2) если минимальная причёска и ничего не говорится про бороду — то бороды нет; 3) только очень близкие символы приводятся в единый стиль.

Тангутские. Просто нашёлся человек, нарисовавший всё, что было.

Новые тангутские иероглифы

Новые тангутские иероглифы

Арабский. Он же нарисовал временные изображения арабских лигатур.

И Сулейман ибн Дауд — мир с ними обоими! — приказал принести два сосуда: один медный, а — другой глиняный, и заточил меня в глиняном сосуде, а брата моего, Омара Хоттабовича, — в медном.

Лазарь Лагин. Старик Хоттабыч. — М: 1959

Вот такие стандартные фразы часто заменяются лигатурами (склейками), примерно такими.

Слева — профессиональная (Scheherezade New). Справа — затычка, сделанная тем китайцем

Слева — профессиональная (Scheherezade New). Справа — затычка, сделанная тем китайцем

Китайские. Китаевед Эндрю Уэст стал более публично работать над своим шрифтом, я с ним советовался, проверял его на ошибки… и вдруг он неожиданно помер! Что с ним дальше делать, просто не знаю: шрифт-то отличный, просто больше никем не поддерживается. Оставил небольшую «пасхалку» в его память, кто найдёт…

Нашёл более удачную библиотеку преобразования GlyphWiki→SVG, и теперь китайские подскочили в качестве.

Плохие новости для Windows 7 и необновлённой 10-ки: теперь самый-самый резервный китайский шрифт — новый стандартный SimSun-ExtG. Простите уж, и до этого были тофу — будет больше.

Турецкая локализация

Нашёлся турок, и мы с ним вместе сделали неплохой перевод.

Турецкий перевод

Турецкий перевод

А вот японский несколько застоялся: японец выхаживает серьёзно больную жену.

И тут получилась проблема: я не могу быстро изменить языки, которые не знаю. А ведь есть фразы типа «в базовой плоскости Юникода осталось 16 нераспределённых символов», или «изобретатель маджонг-пасьянса прикован к коляске, но жив» — пока истинны, но может измениться. Вот приходится писать что-то вроде «жив на 2025», и это 2025 — особый шаблон. Если узнаю, что умер,— напишу. А не известные мне языки продолжат гласить: жив на такой-то год.

Поиск

Обнаружилась ошибка: поиск неизвестного флага давал ошибочную строку. После разговоров с пользователем решил не убирать, только облагородил.

Поиск «XA»

Поиск «XA»

Докрутил поиск в египетских иероглифах. Иероглифы намеренно имеют пониженный приоритет.

Поиск «man»

Поиск «man»

Перебраны короткие словечки: где они играют роль, а где нет.

Поиск «by»

Поиск «by»

Почему сверху Белоруссия, понятно. Почему второй — именно этот слог письма и? А потому, что именно там BY — не предлог, а нечто значимое!

И… довольно странная просьба. Дело в том, что за обработку эмодзи отвечают сразу три подсистемы: вписанная в шрифт программа, типографский движок и высокоуровневая типографская библиотека где-то в прикладной проге. В результате такого разделения ответственности получается, что определённые нестандартные последовательности, тем не менее, корректно отображаются картинками-эмодзиками. Такие последовательности делятся на 1) минимально квалифицированные (скорее всего, отобразятся), 2) неквалифицированные (отобразятся, если будет угадан шрифт), и 3) странные (полагаются на особую реализацию эмодзи-шрифта).

Просили декодировать такие странные эмодзи.

Стандартный код для него — просто 1F46B

Стандартный код для него — просто 1F46B

Все такие нестандартные эмодзи у меня делятся на три категории: 1) поменяны местами мужчина/женщина, мальчик/девочка; 2) существует более короткая последовательность; 3) оба сразу.

Минимально квалифицированный: не хватает VS16 после сердечка

Минимально квалифицированный: не хватает VS16 после сердечка

Спасибо за внимание!

Показать полностью 13
16

Энциклопедия символов «Юникодия»: Юникод 17 альфа

Я всё ещё продолжаю писать программу под Windows — самую лучшую замену стандартной Таблице символов и одновременно небольшую энциклопедию. Качать тут.

И вот что пока вышло.

Инсталлятор

Даже не знаю, что поставить картинкой. Теперь простому юзеру будет сподручнее устанавливать и обновлять прогу. Единственный недостаток — программа всё ещё не подписана.

Программа, как и раньше, не требует инсталляции, и 7z-архив никуда не делся.

Альфа-версия Юникода 17

Выйдет осенью 2025, и будут:

  • эмодзи: косатка, огрызок, раздутый колобок, обвал, облако драки, снежный человек, танцор балета, тромбон, сундук с сокровищами, многорасовые девушки Плейбоя и борцы

  • 5 новых письменностей: три действующих, одна мёртвая, одна историческая

  • около 20 знаков астероидов из астрономии XIX века

  • фигуры «алфил» и «фарзин» из прото-шахмат, чтобы не путать с современными дальнобойными слоном и ферзём

В версии 2.11 закрыто всё, что я в принципе мог закрыть, на этом моя компетенция всё. Остались умляуты шарады, лигатуры арабского и ККЯ.

Эмодзи Юникода 17

Эмодзи Юникода 17

Для этого, кстати, мне пришлось придумать новый метод перекраски многорасовых эмодзи.

Символы разные дополнительные

Символы разные дополнительные

Сидетский (из турецкого города Сиде)

Сидетский (из турецкого города Сиде)

Египетские иероглифы Юникода 16

С ними всё одновременно просто и сложно: нашёл способ полуавтоматически собрать шрифт из программы JSesh. 2900 есть, 1100 не хватает, и потому могу с уверенностью сказать: у меня самый исчерпывающий на данный момент свободный египетский шрифт! (Один полукоммерческий уже есть, но для свободной программы это не выход.)

Египетские иероглифы из JSesh

Египетские иероглифы из JSesh

Иконки блоков

В Юникоде есть собственный шрифт под названием LastResort — шрифт последей надежды, который всеми правдами и неправдами формата TrueType каждому символу Юникода, существующему и будущему, даёт изображение.

Маленький кусочек LastResort

Маленький кусочек LastResort

Те же иконки блоков, только в профиль.

Бывали случаи, когда я удивлялся, как мы с LastResort, не кооперируясь, взяли один и тот же символ.

Неслучайная случайность

Неслучайная случайность

С другой стороны, иногда я признавал, что выбор LastResort лучше, и даже частично формализовал принципы выбора иконки.

  • Сказал носитель языка. Отменяется только серьёзными возражениями. Пример: хирагана .

  • Стандартный символ: А в греческом семействе, (алеф) в арамейском, К в брахмийском. Отменяется слишком простым, сложным или неопределяющим символом — крестикам, чёрточкам и безликой латыни на иконках не место.

  • Другой принцип греческого семейства: особый символ, которого нет больше нигде. Примеры: кириллица Я, карийский 𐋆.

  • Символ, показывающий особенности написания. Пример: Пагба-ламы .

  • Банальная возможность нарисовать на иконке 16×16.

Не заставляйте меня рисовать на иконке эту загогулину!

Не заставляйте меня рисовать на иконке эту загогулину!

  • В сестринских письменностях — один общий символ на весь набор.

  • Первая буква самоназвания. Пример: ваи .

  • Пасхальное яйцо. Пример: кáннада .

Кроме того, новые алгоритмы масштабирования иконок под HiDPI — итого переделано более 40 штук.

Есть и другие алгоритмы, но эти два основные

Есть и другие алгоритмы, но эти два основные

Нет, я не всегда шёл на поводу у LastResort, а наоборот, активно с ним спорил.

Эти иконки я не заменю!

Эти иконки я не заменю!

Латиница: есть отличная специфичная буква. Изображения управляющих: ради какого символа обычно идут в этот блок? Дальше продолжать?

Японский

Объявился японец и перевёл Юникодию на свои иероглифы. Я ему активно помогал, и даже дописывал принципы локализации, чтобы работал язык, далёкий от западного.

Юникодия по-японски

Юникодия по-японски

Готовил к китайскому, но уже в начале работы китаец исчез, зато объявился кто-то близкий — несчастный случай, работа сворачивается.

Локальные меню

Нажать ПКМ, Sh+F10, или одноимённую клавишу W95

Нажать ПКМ, Sh+F10, или одноимённую клавишу W95

Локальные меню — не лучший способ управлять прогой (раскрываемость ниже плинтуса), но если пользователь методом псевдонаучного тыка раскроет — и понятно, и закон Фиттса радуется. Пусть будет.

Cambria

Стандартный шрифт для латиницы и кириллицы я люблю и ненавижу: он достаточно лёгкий, для мелких символов типа дробей и индексов хорошо выставлены вес и положение, отличная математика, неплохо сочетается с Noto, но каждый символ надо проверять. Вот пример:

Дизайнер — лентяй!

Дизайнер — лентяй!

Так замену ему и не нашёл. Не хочу обычный Таймс (например, BabelStone Roman).

Что остаётся? Закрытый список символов, которые вообще могут отображаться Кембрией. Для латиницы правило таково: блок C или версия до 5.0, и не Алфавитные формы, и не вот такие глючки. Любой другой символ, который когда-нибудь войдёт в Cambria, будет отброшен.

Техническое

Тридцать мелких шрифтов объединил в один большой «франкеншрифт» — это должно снизить вероятность глючка, когда какой-то шрифт не подгружается. (Хотя такие глюки стали совсем редкими — народ сообщал, но я не видел на своих трёх компах ни разу.)

OpenSSL 1.1 брошен, но кто-то продолжает неофициально исправлять уязвимости. А я подбираю и компилирую.

Несколько упростилась сборка программы.

Показать полностью 13
19

Энциклопедия символов «Юникодия»: вышел Юникод 16

Я продолжаю писать программу под Windows — самую лучшую замену стандартной Таблице символов и одновременно небольшую энциклопедию. Качать тут.

Ещё один эмодзик Юникода 16

Ещё один эмодзик Юникода 16

В сентябре вышел новый Юникод, а значит, новый отчёт.

Главное изменение — это…

Шрифты!

  • Алфавит Тодри (алфавит для албанского, экспериментальный, до 1800) — нарисовал сам

  • Кхема (абугида для языка гурунг, Непал, действующая) — нарисовал сам

  • Ол-онал (алфавит для языка бхумидж, Индия, действующий) — нарисовал сам. Все три рабочие, то есть не коллекция глифов, а годный для печати шрифт!

  • Псевдографика со старых компьютеров — тот же Эндрю Уэст, что рисовал китайские иероглифы

Совершенно упоротое албанское письмо

Совершенно упоротое албанское письмо

Вполне годная абугида

Вполне годная абугида

Письменность, ставшая упоротой без вины автора

Письменность, ставшая упоротой без вины автора

А теперь загадка (чур, в справочники не смотреть!) В средние века латиница претерпела одно важное изменение. Ол-онал претерпел обратное — можете догадаться, какое?

Небольшой совет: готовишь шрифт для непечатной письменности — ориентируйся на рукописные образцы. А лучше на каллиграфические. Компьютерные шрифты и основанные на них вывески, как правило, полный ужас. Вот моя мотивация по дизайну ол-онала.

  • Обратный контраст (горизонтальные штрихи шире) и перо бэкслэшом \ довольно распространены в каллиграфии Юго-Восточной Азии, но непривычны для латиницы и кириллицы, пока не появились шахид-маршрутки 🚐😎 (на самом деле раньше, гуглите «брусковый шрифт»).

  • Двуязычный район пишет одну вывеску несколькими языками. Деванáгари ёмче ол-онала, отсюда буквы ýже, чем в большинстве печатных шрифтов.

  • Где можно, я использовал элементы эстетики Noto, примерно понимая, как пойдёт перо: полукруглую законцовку я чаще применял в начале штриха, чем в конце.

Главный (но не единственный) источник вдохновения

Главный (но не единственный) источник вдохновения

Остались 4100 символов в двух блоках: египетские иероглифы и старый тулу (религиозная абугида для языка тулу).

Нашёл примерно 2900 иероглифов, но с массовым импортом начались технические проблемы, а чтобы их решить, нужна хорошая математика. Может, лучше ждать рабочего шрифта, чем мучиться с неполной коллекцией? Старый тулу — действующий шрифт сделать сложно, а коллекцию глифов — а стоит?

Эмодзи

Ценное изменение Юникода 16: объединены категории «Морские животные» и «Морепродукты». Деление съедобное/несъедобное очень шатко и, скажем, рыба-ёж 🐡 может означать фугу, экстремальное японское кушанье. Жареная креветка 🍤 находится в «Восточной кухне» и никуда не убежала.

Теперь всё скопом

Теперь всё скопом

Очень спорное изменение Юникода 15.1: сделаны пять бесполых силуэтных семей, а остальные рекомендовано убрать с «клавиатур» и забить силуэтами, чтобы радикально избавиться от комбинаторного взрыва. Оказалось, весной за Гуглом последовал Эпл — изменение прижилось!

Одна из силуэтных семей

Одна из силуэтных семей

Ну и наконец — Гугл обновил эмодзи! Помните, я сетовал на низкий контраст новых широкоугольных рук? Гугл услышал!

Эмодзи Гугла: подняли контраст

Эмодзи Гугла: подняли контраст

Художник пользовался такой вот методикой расстановки теней: создал группу объектов и обрезал по контуру. Эта самая обрезка не поддерживается доступным SVG-движком, так что полдня потратил на ручную переделку эмодзиков. А межрасовые рукопожатия тупо автоматически перекрасил, забив на автотестирование, как оно будет работать и есть ли разница. (Однорасовые рукопожатия не перекрашиваются, а хранятся — автотестирование бьёт тревогу, а я не понимаю, где косяк.)

Ещё одно необычное изменение эмодзи, связанное с инклюзивностью: пластырь из телесного стал белым.

Теперь белый, из-за инклюзивности

Теперь белый, из-за инклюзивности

О балетных тапочках идут споры (они обычно бежевые), а пластырь хотя бы бывает белый.

Старые компьютеры

Ребекка Бетанкур, которая сейчас заведует Реестром искусственных письменностей, притащила много информации по старым компьютерам. Закинуть её в Юникодию автоматически — милое дело. До этого информация была перенесена вручную, с одной ошибкой, существовавшей в заявке 2021.

Кроме того, я написал несколько строк по каждому из старых компьютеров, например:

Описание ZX Spectrum

Описание ZX Spectrum

Да, добавил три компьютера, поддерживавшихся изначально (с 1.0): Spectrum, Мак и IBM.

Залез во внутреннюю структуру TTF-шрифта

Я и раньше в неё залезал, чтобы переименовать шрифт и имя не совпало ни с одним из системных (был такой глюк). Теперь залез глубже, с двумя целями:

  • определить, какие символы поддерживаются шрифтом (очень редко заглючивало и именно этот вопрос решало неверно);

  • расхинтовать символ «пунктирный кружок» (то есть лишить пиксельного выравнивания), чтобы не было вот такого.

Старая версия, 1.5×. Кружок в Noto выровнен, в моём шрифте нет

Старая версия, 1.5×. Кружок в Noto выровнен, в моём шрифте нет

Ковыряние в формате TTF, возможно, уберёт парочку шрифтов-исправлений (деванагари, монгольский) — но уже задача 1 с поиском поддерживаемых символов сильно снижает шрифтовые глюки. А стоит?

Перенёс часть информации о языках в EXE-файл

Это уменьшило локализацию всего на 1 килобайт. Но очень сильно упростит перевод и обновление данных, позволит комментировать, откуда взялись цифры.

Не допускаю военного жаргона, ни на каком языке!

Не допускаю военного жаргона, ни на каком языке!

А вот так оно выглядит в программе

А вот так оно выглядит в программе

Комментарий по украинскому в коде. Сам я чистый L2 (изучивший).

Комментарий по украинскому в коде. Сам я чистый L2 (изучивший).

Да, я начинаю с Википедии, но надо смотреть, что за источник и насколько надо огрублять его данные. Допустим, для монского (Мьянма) я указал: до 1 млн, это самая крупная оценка (UNSD 2012).

В 2022, с первой английской локализацией, я подобное сделал с информацией о датировке письменности.

Напоминаю загадку (чур, в справочники не смотреть!) В средние века латиница претерпела одно важное изменение. Письменность ол-онал претерпела обратное — можете догадаться, какое?

Спасибо за внимание!

Ответ на загадку: письменность ол-онал потеряла строчные буквы. Видите, что каждая буква обведена кружочком? Это нередко для заглавных, но строчные для простоты и разборчивости делают лаконичнее.

Показать полностью 14
19

Энциклопедия символов «Юникодия»: отчёт лета 2024

Напоминаю: я пишу программу под Windows — энциклопедию символов и самую лучшую замену стандартной Таблице символов. Качать тут. Выглядит примерно так.

Рандомный скриншот с новым эмодзиком

Рандомный скриншот с новым эмодзиком

Что за это время изменилось…

Добавлена бета-версия Юникода 16

Новых блоков много, и я лишь скажу, где закрыл тофу.

  • Гарай: экспериментальная для языков волофал и мандинка (Сенегал), 1961 — нашёл корявый шрифт, закодированный в латиницу, и перевёл в Юникод

  • Сунвар: новая для языка сунвар (Непал), 1941 — нашёл корявый юникодный шрифт

  • Кират: новая для языка бантава (Индия, Непал), 1920 — нашёл отличный юникодный шрифт

  • 8 новых эмодзи

  • Всякая мелочь вроде латиницы, кириллицы и стрелок

Гарай — необычный африканский алфавит

Гарай — необычный африканский алфавит

Заодно начал использовать не XML-базу Юникода, а текстовую: Консорциум рассматривал даже отказ от XML, но нашлось кому поддерживать, и всё равно вышла только в мае. Текстовая сложнее в разборе, зато быстрее, компактнее, больше информации, лучше совместима с системой управления версиями.

Семь новых эмодзиков, рисовал сам (восьмой — о. Сарк, новый код страны CQ)

Семь новых эмодзиков, рисовал сам (восьмой — о. Сарк, новый код страны CQ)

Раньше было: куда ни ткни, попадёшь в китайский иероглиф — потому ККЯ сворачиваются. После того, как добавили 4000 египетских иероглифов, появилось то же чувство.

Свёрнутые иероглифы

Свёрнутые иероглифы

Новая функциональность

Символ + эмодзи

И пешка-эмодзи, и пешка-символ

И пешка-эмодзи, и пешка-символ

Простите, что сделано очень непоследовательно, но чтобы выяснить, делать ли, я отвечал на три вопроса.

  1. Что по умолчанию: текст или эмодзи? В таком виде отображаются только VS16-эмодзи. Потому отпадают знаки зодиака, у которых первичен именно эмодзи.

  2. Насколько важна текстовая версия? Отпадает компьютерная периферия: почти не бывает в текстовом виде. А пешка — часто встречается в шахматной нотации.

  3. Насколько оно красиво на этой библиотеке эмодзи? Вы знаете, я много ругался на неконтрастную библиотеку Гугла, и именно из-за контраста отпадают череп и кости.

Ещё одно трудоёмкое и малозаметное, но важное изменение. Шрифты Гугла всеобъемлющие и потому у них габариты с запасом — а значит, раздвигали окошко «Образец». Теперь на очень многих письменностях не раздвигает.

Запросы

Рядом с некоторыми заголовками видна маленькая синяя лупа.

Маленькая синяя лупа…

Маленькая синяя лупа…

При нажатии на эту лупу выводятся… как вы понимаете, все управляющие символы.

…и что она делает

…и что она делает

Поскольку синтезированные иконки вроде L и ä после этого изменения отображаются часто, навёл небольшой порядок в них.

Ускорено передвижение по таблице в куче тофу

Рандомная куча тофу из ожидаемого Юникода 16

Рандомная куча тофу из ожидаемого Юникода 16

Юникод выходит в сентябре: повелось с КОВИДа и оказалось удачным. Примерно к Новому году что-то я сам затыкаю, что-то рисуют профессионалы, тормоза перестают быть проблемой, и я забываю о них — в мирное время до сентября-октября (выпуск Юникода + первый крупный шрифт), в военное до апреля-мая (бета-версия Юникода).

Я знал, кто источник замедления (поиск по всем доступным системным шрифтам), но как это правильно запрограммировать? Наконец придумал.

Улучшено отображение всплывающего окошка

То самое злосчастное окошко

То самое злосчастное окошко

Оказывается, если регулировать размер окна штатной автоматикой, предел по ширине и высоте ⅔ экрана. Но библиотека глючит и размер часто вылезает за этот предел — так что я просто спутал баг и фичу. Заглянул в документацию, увидел этот предел и начал писать, тестируя на барахольном ноуте FullHD 14″.

Решается, как и полагается Qt — залезаешь в исходники, копируешь кусок автоматики и переписываешь под свои нужды. Вот такая нехорошая архитектура.

Подтягиваются шрифты

Профессионалы нарисовали новый блок деванáгари.

Новый деванагари из U15

Новый деванагари из U15

В таблице и в заметках требования к шрифту чуть разные: шрифт из таблицы должен поддерживать максимум символов, заметке нужен базовый набор, какая-то функциональность и качественный хинтинг (подгонка под пиксели). Деванáгари — это же главная брахмийская письменность и используется в пяти заметках, но Noto Devanagari плохо отхинтован. Раньше я использовал для заметок какой попало системный шрифт, но неявно полагал, что «какой попало» — это Arial Unicode MS из Microsoft Office. Теперь явно прописана цепочка из трёх шрифтов, и какой-то точно найдётся в W7, 10 или 11. Не лучший вариант (рано или поздно выйдет W12), но пусть поживёт так.

Да, W7 всё ещё поддерживается и иногда ей помогаю, и старые гарантии — без тофу базовая плоскость и три важных письменности — всё ещё выполняются, но тестирование под неё эпизодическое и теперь обещаю только запуск.

Коптский перекочевал в UnicodiaFunky и приобрёл кучу новой функциональности. Для Юникодии не важно, для коптского языка — важно.

Рандомная коптская буква

Рандомная коптская буква

Начал писать про макасарский и выяснил, что вся функциональность шрифта написана на нестандартной системе Graphite и он в Юникодии совсем не работает. Сначала поступил как в коптском (перенёс глифы и написал функциональность), но потом и нарисовал более чистые глифы, оставив общий стиль тем же — стилем дневника тамошнего принца.

Дневник макасарского принца

Дневник макасарского принца

Слева — мой шрифт, справа — образцовый юникодный

Слева — мой шрифт, справа — образцовый юникодный

Функциональность моего шрифта

Функциональность моего шрифта

Что думаю сделать дальше?

  1. Поиск по эмодзи. Эта функция требует большого исследования, и не знаю, когда будет.

  2. Нарисовать какую-то из новых письменностей. Пока склоняюсь к албанскому Тодри.

Алфавит Тодри. Иногда его называют эльбасанским, но не путать с давно существующим в Юникоде!

Алфавит Тодри. Иногда его называют эльбасанским, но не путать с давно существующим в Юникоде!

Спасибо за внимание!

Показать полностью 15
15

Энциклопедия символов «Юникодия»: отчёт весны 2024

Напоминаю: я пишу программу под Windows — энциклопедию символов и самую лучшую замену стандартной Таблице символов. Качать тут. Выглядит примерно так.

Вот она, моя прога

Вот она, моя прога

И первое, что видно…

Любимые символы

Новая вкладка

Новая вкладка

Какой-то фанат накидал мне целую панамку функциональности, и один его пункт я сделал, ибо нет технических препятствий и сумел просчитать все интерфейсные обоснования. (Скажем, масштабирование я не сделал потому, что функцию попробуй обнаружь в интерфейсе, а если случайно изменил масштаб, непонятно, как вернуть.)

Можно создать список каких хочешь символов — например, часто используемых типографских. Или просто закладки на полноценные блоки: нажатие на синюю стрелочку около «U+1FAF6» переходит на вкладку «Блоки».

Подтягиваются шрифты

Руки Noto

Библиотека Noto к 15-му Юникоду привезла новые руки, вы уже их видели на заглавной странице — сделанные двумя цветами и как бы снятые широкоугольным объективом. Я их откладывал как из-за трудоёмкости, так и из-за сомнений: а достаточно контрастности? Оказалось, Юникодия приняла новые руки без вопросов, а BitBucket стал хуже — ну не смотрятся на размере пикселей в 15. А Slack вообще отказался принимать эти руки.

Все руки, кроме одной, автоматически перекрашиваются, и для тестирования этого механизма я сделал целую утилиту: а что в картинках изменилось? Обнаружил, кстати, много других глюков.

Разница между «было» и «стало», усиленная раз в 20

Разница между «было» и «стало», усиленная раз в 20

Видите, у вампирши яркие брови и тусклое лицо? Это значит, были какие-то ошибки в перекраске.

Изначально перекраска ставила целью экономить механическую работу, а не байты архива. Некоторые SVG-эмодзики глючили, я глюки исправлял — а чтобы исправить один раз, а не шесть, пять цветов кожи генерировались. Теперь, когда можно сравнивать «было/стало», можно и поэкономить, и десятка полтора человечков перекрашиваются — для пользователя не изменилось ни пикселя.

Египетские иероглифы

Был шимпанзе, стал гамадрил

Был шимпанзе, стал гамадрил

В 2009 году, когда кодировали иероглифы, их брали из трудов Алана Гардинера — историчные, но корявые. В 2016 их заменили на профессиональный шрифт, возможно, Hieroglyphica, слегка погрешив против истины. С 2021 истину стали восстанавливать.

Лишь две строчки из большого списка

Лишь две строчки из большого списка

Мы работали вдвоём с немецким египтологом — я рисовал, он проверял. Когда он без предупреждения пропал, я спрашивал: а что с ним? Оказалось, уехал «в поля». Так и не сказал мне, насколько опасно/безопасно было в Египте.

Примерно 60% изменений — это люди. А именно: у действующего фараона прямая борода, у бога и бывшего фараона — длинным крючком (за исключением Пта, у него фараонская), у египтянина — короткая, у сирийца — острая. Кроме того, коровы, обезьяны, лодки и многое другое — около 70 иероглифов.

Ланна

Северотайская письменность, сейчас в опасности, одна из красивейших письменностей мира.

Северотайская Библия. Тайское письмо и ланна

Северотайская Библия. Тайское письмо и ланна

В 1930-е ланна была заменена тайским письмом, и используется больше меньшинствами (тай-кхынами, лы), до которых националисты не дотянулись. Так что многие надписи на северотайском пишут и тайским письмом, и ланной.

Меня просто давила жаба: такая красота — и шрифтом без засечек? После долгих поисков нашёл шрифт, который корректно рисует хотя бы простейшие надписи из Википедии.

Ланна: было/стало

Ланна: было/стало

Символы каны для записи иностранных языков

Конкретно эти придуманы японцами незадолго до 2МВ

Конкретно эти придуманы японцами незадолго до 2МВ

Движок GlyphWiki не очень подходит для рисования таких символов, и я плевался, когда вычищал. Нашёлся человек, нарисовавший их вручную.

Прочая функциональность

Предупреждение о других формах эмодзи. У некоторых эмодзи бывают другие формы — устаревшие, некорректные и просто другие. Современный флаг Афганистана, белый с шахáдой (девизом ислама), никто не принимает и рисует старый 2021 года. Пиньята (начинённая конфетами игрушка) бывает в форме звезды и в форме животного. Автобусную остановку рисует каждый свою местную. Микроб — рисуют бактерии, амёбы и даже КОВИД.

Вот, например, флаг Мартиники

Вот, например, флаг Мартиники

Вычищаю ложь. Я, конечно, стараюсь проверять, что пишу, но иногда не получается. Например: есть аж два «эльбасанских письма» для албанского: одно было известно с самого начала, ибо его изобретатель, «учитель Тодри», всю жизнь его пропагандировал, пока не убили (будет этой осенью под именем «Todhri»). Второе — единственный образец изъяли в 1945 у расстрелянного коллаборациониста, коллекционера и филолога (есть с 2014 под именем «Elbasan»).

Эльбасанское Евангелие / Три молитвы шрифтом Тодри

Эльбасанское Евангелие / Три молитвы шрифтом Тодри

Или не очень верно написал, что такое ночная азбука Барбье: она использует матрицу 2×6, но код там не двоичный, а сколько точек в левой колонке и сколько в правой — таким образом получается 6·6=36 букв.

Шарль Барбье, зрячий военный. И Луи Брайль, слепой учитель.

Шарль Барбье, зрячий военный. И Луи Брайль, слепой учитель.

Последнее — про азбуку Брайля отлично рассказала Юлия Большакова, так что закончим её рассказом.

Спасибо за внимание!

Показать полностью 11 1
17

Энциклопедия символов «Юникодия» v2.1: что нового

Напоминаю: я пишу программу под Windows — энциклопедию символов и замену стандартной Таблице символов. Качать тут. Выглядит примерно так.

Новые подборки: Наука и техника, Латиница

Математика и астрология — две самых разбросанных по Юникоду подборки небуквенных символов. Пришлось как-то собирать воедино.

Также есть черчение и электричество, но это совсем маленькие подборочки.

(Может, когда-нибудь доберусь до комментариев к шахматным партиям, тоже интересный набор.)

Впоследствии придумал такой же рубрикатор для латиницы. Внешне это просто папочки в тех же Подборках, но за ними стоит небольшой движок, проверяющий: а ничего я не забыл? А точно заглавная буква стоит рядом со строчной?

Вообще есть три способа добраться до буквы расширенной латиницы — например, капительной I (ɪ), знакомой нам по английской транскрипции.

  1. Поискать среди вариаций буквы I.

  2. Поискать в символах английской транскрипции.

  3. Поискать в капительных буквах.

Отсюда три подборки для латиницы — по букве, по стране и по шрифту.

Пока ничего не придумал для нестандартных букв латиницы, чьи корни нелатинские: торн þ (от руны), бараньи рога ɤ (Википедия говорит, от греческого, но подозреваю, от старой кириллицы — это гласный, близкий к «у»), гортанная смы́чка ɂ (от надстрочных знаков), пятый тон Ƽ (от цифры) и прочая нечисть.

Юникод 15.1 бета

Добавлен полностью, без единого тóфу, на правах бета-версии, за двумя исключениями.

  1. Китай решил ответвиться от Юникода и добавить 614 иероглифов в пока не используемую плоскость 0A. Чтобы пресечь это вредительство, иероглифы быстренько проверили (получается, 603 из них новые и 11 повторных). На GlyphWiki творится такой беспредел, что не поймёшь, какие изображения верны, остаётся только ждать стабильного Юникода.

  2. Не перерисованны глифы в тангутском и алхимических символах.

Состав строки в Подборках

Как видите, в новом эмодзике целых восемь символов! Данное отображение — компромисс: минибраузер плохо выводит картинки в HD, а горизонтальная линейка красива, но не показывает названий.

Проверка обновлений

Пока самая простая, использующая функциональность GitHub. Качать и устанавливать всё равно придётся вручную.

Подтягиваются шрифты

Появился Noto Kawi, так что теперь не нужен выпрошенный у кого-то несвободный шрифт с балийско-яванской кодировкой. Новые символы в балийском, кáннаде, ходжки и других теперь полноценные, а не затычки.

Убрал жестокие тормоза с корейско-японскими символами на Windows 7 — не думал, что причиной будет один гугловский (!) OTF. Сильно урезал и переименовал, по своей новой традиции, из Noto в «Юто» (простите, по-английски не напишешь — автоцензура кидается).

Новый шрифт жестового письма Саттон: глифы гугловские, таблицы собственные.

Полностью перебраны изображения базовых умляутов (0300…036F): здесь «хорош» как Cambria, так и Noto, пришлось делать свои изображения-затычки.

Нарисовал символы затёртых египетских иероглифов так, чтобы походило на монохромные глифы. Сильно мешает дыра в функциональности Inkscape: не может превращать узорную заливку в контуры, и всё тебе, пришлось собирать штриховку вручную.

Также нашёл шрифт с древней глаголицей, и это внесло в Юникодию…

Переключаемый стиль

Существуют два стиля глаголицы, болгарский и хорватский. Оба унифицированы, главным считается болгарский — понятнее, если нарисовать современной типографикой. А почему бы не показывать тот или другой, на выбор?

Впоследствии реализовал и другой стилевой канал: существует семейство письменностей, восходящих к согдийской, которое пишется сплошной вязью слева направо по столбцам! В Юникоде они пишутся кто слева направо, кто справа налево, и теперь есть выбор: показывать горизонтально или вертикально.

Язык оригинала — английский

Изначально был русский, но это мешает привлекать переводчиков. Переход на английский потребовал две функции от программы-переводчика:

  1. Преобразовать проекты в новую форму.

  2. На украинский проще переводить с русского, чем с английского. Думал, думал, и решил, что будет второй перевод — «справочный». Никакой формальной силы он не имеет: если в русском что-то изменится, украинец ничего не обязан. Допустимы «порочные круги», когда русский, в свою очередь, смотрит на украинский.

Прочие мелочи

Написал свой механизм работы с формами множественного числа: «71 символ».

Добавлена история поиска.

Спасибо!

Показать полностью 11
31

Энциклопедия символов «Юникодия»: год спустя

Напоминаю: я пишу программу под Windows — энциклопедию символов и замену стандартной Таблице символов. Качать тут. Выглядит примерно так.

И первое, что вы здесь видите…

Графические эмодзи

Я втянул библиотеку эмодзи Google Noto, и теперь все эмодзики гипертекстовые векторные. Честно, мне Noto не очень нравится: недостаточно контрастные. Но что делать, это пока лучшая из бесплатных библиотек эмодзи: Twemoji вообще блёклая, OpenMoji совсем уж вычурная.

Имеющийся SVG-движок не работает с контурами обрезки, и я где-то месяц находил чёрные пятна и устранял их сам, программой Inkscape.

Для чего я это делал?.. А для новой функции.

Подборки

Подборок пока не очень много. Две из них — «Эмодзи» и «Необычные ККЯ-иероглифы» — нашлись в таблицах Юникода, остальное моё собственное.

Пришлось решать и такую задачу: вот я подредактировал внерасовую жёлтую руку под ограниченный SVG-движок. Что делать с пятью расовыми руками от белой до чёрной? Написал программную перекраску в нужную расу.

Английский и украинский

Перевёл программу на все языки, какие знаю. Для этого написал целую программу редактирования языковых ресурсов. Небольшую и неполную, но учитывающую весь мой опыт коммерческой локализации «живой» программы. И потихоньку дописываю в эту программу все задачи, какие нужны: например, декодировать текст Си++ u8"раз\nдва"sv в «раз//два». Или найти, где я при переводе забыл абзац-другой (таких рассказов нашлось штук девять в английском и пять в украинском).

Задачи, не связанные с «Юникодией»,— например, поддержка посторонних языковых ресурсов вроде CSV — так и висят почти год. Хочу довести состояние «Юникодии» до production/stable, а переводчик так и останется вечной альфой — ну, если не придётся переводить что-то другое.

Юникод 15

Четыре основных новых блока Юникода 15.

  • Эмодзи — быстро появились у Гугла.

  • Алфавит Нага для языка мундари — сам намалевал корявый, но действующий шрифт. Не кучу глифов, а именно шрифт!

  • Кави (старояванский) — выпросил разрешение у индонезийца: существует великое множество стилей кави и даже есть открытый шрифт в стиле поздних каменных монументов, но я хочу именно канонический, шрифт ранних надписей на меди.

  • Китайские иероглифы — что-то сделал старый знакомый Эндрю Уэст. А остальные были загружены с GlyphWiki самодельным пакетом программ.

Для чего собственный загрузчик? Чтобы иметь уверенность в 146%, что шрифт получился технически корректный. Загрузчик состоит из трёх программ: собственно загрузчика (скачать иероглифы с GlyphWiki), переработчика (превратить ломаные в кривые, разрулить стандартные некорректности вроде задваивания вершин) и Python-скрипта для FontForge (собрать шрифт).

Старый чужой GlyphWiki-шрифт остался, ведь задача корректности решена не полностью.

Для остальных мелких блоков нарисовал недействующие глифы-затычки.

HD

Установил «Юникодию» на чей-то ноутбук и удивился (если не сказать покрепче). Программную часть сделал за неделю, а триста иконок — мучил почти два месяца, с декабря до февраля. Так долго, потому что заодно с HD делал и украинский: переделанные иконки оказались хорошим маркером, что уже вычитано.

Большинство иконок — просто SVG-графика, иногда с отметками, чтобы выровнять по пикселям доминирующую линию. Штук пятнадцать рисуются программно, особым движком: игральные карты — не смог зашить в SVG закруглённую рамку, символы со старых компьютеров — хочу пиксели, даже если рука и нога слегка вылезут из виду…

Программные штуки

Порядок сортировки. Было понятно, что триста блоков в исторически сложившемся порядке — это ужас, так что сделал три варианта сортировки: по алфавиту, континенту+алфавиту и коду. По умолчанию — континент+алфавит, ведь часто вы знаете, письмо европейское или африканское, или вообще международная нотация.

Из-за этого вместо «Игральные карты» написал «Карты игральные», как в справочниках. А вот «Пехлеви псалтырское» и «Шоу Бернарда алфавит» писать побоялся.

Развыделение комбобокса. Чисто визуальная, плавающая, но противная ошибка: выбираешь какой-то блок, и вдруг на экране оказываются два фокуса ввода: на таблице (истинный) и на выпадающем списке (ложный). Писал самые разные разглючки, ошибка затаивалась, но появлялась с новой силой. Начал уже прикручивать к списку собственную «шкурку», якобы решило проблему… — и как только к шкурке приделал «микро-фокус» от повисшего курсора, проблема вернулась! Источник понятен, шкурку тут же убрал, а разглючка заняла одну строку.

Поиск по числовому значению. Работают форматы 12, 1/4, 0.25, 0,25, 0/3. Последний ищет только символ 0/3 из бейсбольных сводок (запрещён на Пикабу в монолитном виде, потому пишу так). Арабские цифры всегда предпочтительнее остальных.

Альтернативные имена символов. Вы это уже видели на картинке «1.7 vs 1.9». А вот что творится в египетских иероглифах (выпросил базу у одного голландского любителя Египта).

В таблицах Юникода есть и другая интересная информация о символах — например, восклицательный знак имеет альтернативные названия «factorial» и «bang». Из-за HD всё это приостановлено. Может, после пары недель простоя начну снова — если буду жив. Спасибо.

Показать полностью 8
699

Энциклопедия символов «Юникодия» v1.1: я это сделал!

Напоминаю: я пишу программу под Windows — энциклопедию символов и замену стандартной Таблице символов. Качать тут.


Я дошёл уже до версии 1.1, и вот что вышло. Пишу крупные изменения и 1.0, и 1.1.

Поддержка ВСЕГО Юникода 14


Вы правильно прочитали, не осталось ни одного тофу. Под Windows 10/11, разумеется — пользователям 7-ки больших обещаний не делаю. На картинке сверху — моя интерпретация кипро-минойской письменности, добавленной этой осенью. Да, сам рисовал шрифт, и вот откуда эта интерпретация взялась.


1. Реальный памятник, найденный где-то на Турецком Кипре.

2. Его факсимиле.

3. Прорисовка Майкла Эверсона (2020).

Египетские и анатолийские иероглифы


Вообще-то в коллекции Noto для них есть отличные шрифты. Анатолийские выше всяких похвал, а у египетских один недостаток: как отрендерить в маленькую клеточку Юникодии? Ларчик просто открывался: OTF, который я кое за какие технические подробности недолюбливал. Но тут сильно другой рендерер конкретно для этого шрифта сработал на все 146%.

Впоследствии выяснилась запара: символы счётных палочек иногда «проваливаются между пикселей». Нарисованы девять палочек, а видны только три! Их я просто скопировал в свой резервный TTF и прохинтовал, но тут случилось забавное: под Windows 7 я никак не мог прописать в заголовках резервного шрифта, что иероглифы поддерживаются. Я на подобный глючок натыкался и раньше, и под Windows 10 тоже — решилось просто, в Qt есть стандартный обход QRawFont.


А анатолийские — просто за компашку получили OTF-шрифт. Попробовал также заменить OTF’ом пахау хмонг, чей рендеринг мне тоже не нравился — не получилось.


Китайский, корейский, японский

ККЯ-символов всего 115 тысяч, или 79% всего Юникода. Из них 94 тысячи иероглифов, остальное — корейский, тангутский, спецсимволы, японский, киданьский, нюй-шу, примерно в таком порядке. И где достать шрифты, которые поддержат такую громадину?


Оказалось, есть сайт GlyphWiki, оперативно реагирующий на изменения в Юникоде, но тамошние SVG — а значит, все шрифты, сделанные из них — технически страшны. И есть типограф Эндрю Уэст, который потихоньку клепает шрифт Babelstone Han. Собственно, задача — собрать из того и другого подходящую коллекцию. Шрифт с GlyphWiki я заменил другим, и целую ночь торчал в FontForge, исправляя хоть самые страшные глюки. Заодно ушло 10 мегабайт архива. Но это значит, что для пользователей Windows 7 ушли несколько древних письменностей, в частности готский — были за компашку в одном шрифте и исчезли в другом. Простите уж, я и не обещал пользователям 7-ки полную поддержку всего.


Декапитализация


К сожалению, в стандартах Юникода символы называются большими буквами: CANADIAN SYLLABICS WOODS-CREE FINAL TH. Но у меня с самого начала всё няшно и цивильно, и за это отвечает декапитализация — система из 700 правил и 250 исключений. Это немало, но строк-то в Юникоде 45 тысяч — даже такая недоавтоматика лучше ручной работы.

«Canadian» — название письменности, сделать с большой буквы и включить следующий механизм.

«syllabics» — ключевое слово. Оставить с маленькой, но после сделать большую букву.

«Woods-Cree» и «final» — прилагательные. Если есть большая буква, она проталкивается по прилагательным дальше до Th. Так что получилось бы «Woods-cree final Th», но лесные кри — индейское племя и в английском с больших букв.


Уже четыре правила.


Не буду всё перечислять, но новых правил декапитализации я добавил очень много. Самое чувствительное — отыскал и отметил альтернативные написания имени Аллах. А также вручную перебрал все названия с «ligature» — никакая автоматика не расставит правильно большие буквы в каком-нибудь «Hebrew ligature Yiddish Yod Yod Patah».


Поиск


Уже следующей осенью моя программа устареет — появится Юникод 15, в котором будут веер, афро-гребень и WiFi. К тому же некоторые программы (и моя Юникодия тоже!) вовсю пользуются личными символами. Так что поиск по несуществующим символам стал более подробным. Вот, например, что увидим, когда поищем «590».

При том, что ближайший символ к 590 — это U+0591, какой-то еврейский умляут, я не стал его выводить, а коряво воспроизвёл иконку.


Видим ещё одну фишку — поиск не только по шестнадцатеричному коду, но и по десятичному. Нашло не только U+0590, но и 590₁₀=24E. Поиск по названиям существовал и ранее, причём достаточно адекватный.


Собственные изображения спецсимволов


Некоторым символам — форматирующим или с особой функциональностью — в общем, забранным в пунктир — приходится делать своё изображение. Эти изображения хранятся в моём резервном шрифте в пользовательских позициях (E001 и далее), налажен механизм отрисовки. Вот несколько штук.

Описания


Постарался проверить всё. Например, индийские письменности слоговые — как в каждой из них работает запись сложных слогов? Условный «стол» даже в родственных письменностях может писаться совершенно по-разному.


• са то ла  (то, что я обозначил чертой, называется «вирама» или «халанта» и стирает букву «а» из слога) — исходная письменность брахми, а также некоторые малоразвитые письменности Юго-Восточной Азии

• сᵊ то лᵊ — гласная по умолчанию «а» стала немой или почти немой — пенджабский с письменностью гурмукхи

• сᵀо ла — во втором слоге знакомая нам вирама, а в первом «с» и «т» склеились в лигатуру — так работает хинди с письменностью деванагари

• с то л — лаосский в XX веке отказался от гласной по умолчанию


А правда ли, что юникодными знаками европейских нот можно записать «Кузнечика»? Оказалось, нет. Даже несмотря на то, что играется на одной гитарной струне.

В левосторонних письменностях кхароштхи и ханифи перед текстами-образцами для правильного рендеринга добавил знак RLM.

Теперь слог «дхик» закодирован именно так, как в описании, только перед ним RLM = right-to-left mark. Копируй, вставляй, разбирай на символы — всё честно, как и подобает энциклопедии Юникода. (Раньше было ка+вирама+дха+и — и неловкое объяснение: простите, по-другому не рендерит.)


Недоработал: когда писалась статья, уже нашёл пару незначительных ошибок в описаниях. Ничего критичного, исправлю в следующей версии. (А ещё в версии 1.1 допустил неудачный рендеринг десятка латинских умляутов — это уже критично, быстренько перевыпустил.)


Так что спасибо за внимание!

Показать полностью 9
Отличная работа, все прочитано!