Страница 1 из 1

Шрифт с отличимостью кириллицы от латиницы

Добавлено: 25.05.24 11:40
БудДен
Репозиторий проекта:

https://tvoygit.ru/budden/dr_cyr

В продолжение темы "кириллица с глазами".

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

План:
* чтобы распознавание было надёжным, должна быть "формула отличия", которая позволяет интуитивно отличать буквы кириллицы от латиницы
* предлагаемая формула отличия: стилизация под старину путём видоизменения округлостей, штрихов и добавления узелков
* конкретно: те буквы кириллицы, которые можно перепутать, слегка видоизменяются в сторону шрифта Ижица, но так, чтобы общий стиль исходного шрифта сохранился как есть. Округлости меняются по форме, чтобы быть похожими на букву "О" из Ижицы.

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

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 25.05.24 13:01
Юрий
Может, лучше зайти с другой стороны? Можно запретить смешение русских и латинских букв, как это сделано для домена ".рф". Правда, всё равно не ясно, какими буквами написаны слова "ОКО" и "ТЕМА". Можно так же проверять на наличие слова в словаре.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 25.05.24 20:02
БудДен
Невозможно запретить смешение букв в текстовом редакторе, если есть две раскладки. И кроме того, такой запрет для всех применений не в моих силах. Более того, в практике программирования ЯОС встречаются случаи, когда нужно смешивать. Например: форматDbf, протоколHttp и т.д. А сделать шрифт - скорее всего, в моих силах (в смысле найти исполнителя, но пока есть доброволец - посмотрим, что у него выйдет).

Шпаргалка:

Код: Выделить всё

cp /y/dr_cyr/DrCyrGolos/dr-cyr-golos-text_regular.ttf ~/.fonts && fc-cache -f -v 
Как менять шрифт в п-п-р?
* default.vue - прописать @fontface
* chrome dev tools на уже открытом сайте - в стилях найти, где находится bootstrap*.css. Пересобрать его я не осилил, но прямо в дистрибутиве можно найти и поменять font-face, который используется.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 26.05.24 00:12
Юрий
Если текст читает человек, то ему не важен код символа, если начертание одинаковое. А вот для компилятора важен код, и для этого случая можно подумать о запрете смешения. А можно выдать предупреждения при компиляции: идентификаторы ххх и xxx имеют одинаковое начертания, но содержит символы с разными кодами.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 26.05.24 15:05
БудДен
Здесь речь не только о программировании. Любой идентификатор (url, электронная почта, имя пользователя) подвержен ошибкам. Не знаю, у кого как, а у меня руки коротки это урегулировать, даже если бы меня сделали властелином мира. И тут либо у нас есть различимость букв, либо будет путаница, часто или редко, но будет. Даже в программировании мы не можем запретить смешивать латиницу с кириллицей в строчке вида:

Код: Выделить всё

ОткройВебСтраницу("httр://вече.программирование-по-русски.рф")

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 26.05.24 17:50
БудДен
DrCyr1.png
DrCyr1.png (33.87 КБ) 20242 просмотра
Сделал три буквы.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 27.05.24 15:13
БудДен
---

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 29.05.24 18:50
БудДен
MC_с_шрифтом.png
MC_с_шрифтом.png (176.38 КБ) 20205 просмотров
Скачать:
DrCyrMono-Regular.ttf.7z
(91.82 КБ) 1281 скачивание
Сделан на базе Ubuntu Mono. Теперь надо сделать полужирный и курсив.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 29.05.24 19:16
БудДен
Дополнительные ссылки по теме:

https://habr.com/ru/companies/kolibrios ... es/269495/ - о сглаживании

https://www.winwd.narod.ru/wd.html - редактор "слово и дело" с хорошими шрифтами.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 29.05.24 21:46
Юрий
В компиляторе PL/1 Д.Ю.Караваева одинаковые по начертанию буквы латиницы и кириллицы не различимы. То есть "а" русское и "a" латинское полностью взаимозаменяемы. Но это, конечно, прокатит только для текстов программ. Для остального этот фокус не пройдёт. Ну а шрифты здорово получились, разница очевидна. Хотя невнимательный человек может пропустить.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 30.05.24 10:04
БудДен
Да, может, уже замеряли. Другое дело, что и в обычном тексте можно пропустить, я однажды купил зубную щётку blenb a meb и не заметил. Когда увидел, посмеялся. Взаимозаменяемость (а-ля КОИ-7) может пригодиться где-нибудь на этапе начальной загрузки, а также при вводе паролей. Для программ, работающих с файлами или интернетом она не сработает - нельзя будет выразить всё многообразие имён и адекватно их обработать без потери информации. Поэтому для строковых литералов всё равно важна различимость.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 01.06.24 12:33
АлексеМиК
Мой респект. Большое и важное дело делаете...

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 18.06.24 14:30
БудДен
Маленькое и неважное. Маленькое - потому что большие дела в одиночку не делаются. Шрифт сделан для себя. Неважное - потому что за примерно 10 лет, когда я вообще открыл это направление программирования на русском языке, почти никто и почти никак не нашёл возможности поучаствовать в этом деле. Не совсем 0, но уровень поддержки недостаточен для того, чтобы это дело оставалось хоть как-то на плаву.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 19.06.24 14:07
БудДен
Интересные узелки, лучше прежних:
ИванГрозныйИнтересныеУзелки.jpg
ИванГрозныйИнтересныеУзелки.jpg (137.9 КБ) 20052 просмотра

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 22.06.24 13:30
БудДен
Начал делать шрифт переменной ширины на базе шрифта "голос". Можно посмотреть текущий результат на сайте (не на форуме) программирование-по-русски.рф

Сделано только две буквы - „о“ и „c“. Общая идея в том, чтобы он был менее агрессивен в плане стилизации (более удобочитаем) и при этом всё же можно было, если внимательно смотреть, отличить буквы кириллицы от латиницы.

Наверное, надо бы и на форум этот шрифт поставить, но это уж как-нибудь потом.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 23.06.24 19:16
БудДен
ДрКирГолос2024-06-23.png
ДрКирГолос2024-06-23.png (26.29 КБ) 20029 просмотров
Формула отличия поползла дрейфовать, как видно по рисунку: спрямляем правую верхнюю или левую нижнюю округлость.
Что будет, когда нет ни той, ни другой - пока не попалось такой буквы. Буквы „х“ и „M“ уже по накатанной.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 24.06.24 00:45
БудДен
Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.

Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.

Код: Выделить всё

Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
ВB уy рp ОO0 ЕE HН СC ХX З3 АA - новые буквы

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 26.06.24 19:07
БудДен
Доделал весь алфавит в шрифте Dr Cyr Golos Text и поставил на форум. Буква К мало отличима от K, но всё же отличима. Буква T латинская особенно поменялась. Смысл изменения в том, чтобы были похожи строчная и прописная T и t.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 26.06.24 19:09
БудДен
Вскрылась ещё одна засада: Ы vs ЬI (мягкий знак I) - актуальна именно для немоноширинных. Залепил как смог.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 27.06.24 01:59
Юрий
А латинская строчная "b" насколько отличима от заглавного мягкого знака "Ь"? Не увидел примеров, чтобы сравнить. Это я к тому, чтобы в будущем не обнаружились другие внезапные засады.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 27.06.24 10:54
БудДен
Шрифт Dr Cyr Golos Text установлен на данном форуме для сообщений, а код верстается шрифтом DrCyr Mono, поэтому Вы можете сделать любой нужный Вам пример прямо здесь. Все известные мне засады я вроде увидел. Кстати, думаю, раз тронул T, то можно тронуть и латинское K, сделав его более похожим на строчное k - укоротить правый штрих (или как там это у них называется), идущий вверх. Тогда идея искажения латинских прописных в направлении строчных будет более чётко выражена и больше нагружена содержанием. Третьим в этом пункте может быть искажение буквы y в строну Y. Как я и говорил, рожать шрифт - это дело достаточно долгое и требующее обратной связи. Одна девушка (тут где-то с ней валяется интервью) рожала шрифт аж 7 лет (могла бы троих людей за это время родить).

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 28.06.24 15:44
БудДен
Поменял буквы KyЫы

K латинское прописное теперь похоже на k строчное, теперь её сложно перепутать: KК.
y латинское прописное похоже на Y строчное, теперь сложно перепутать: yу
Ы и ы сделаны так, что контeры слеплены, чтобы дальше отойти от подобия с ЬI

Больше всего меня интересует, не будет ли проблем с наличием схожей буквы y где-то в других алфавитах. Если кто-то что-то знает - пишите.

Re: Шрифт с отличимостью кириллицы от латиницы

Добавлено: 17.08.24 14:03
БудДен
Шрифт Ruslan Display (источник информации тут: https://www.linux.org.ru/forum/developm ... d=17706945)
Сам шрифт тут: https://fonts-online.ru/fonts/ruslan-display
Ruslan Display Regular 400.png
Ruslan Display Regular 400.png (33.56 КБ) 14671 просмотр
В шрифте нет отличия между строчными и прописными.