Шрифт с отличимостью кириллицы от латиницы
Шрифт с отличимостью кириллицы от латиницы
Репозиторий проекта:
https://tvoygit.ru/budden/dr_cyr
В продолжение темы "кириллица с глазами".
Требования:
* критерием успеха является надёжное обнаружение чужеродных букв в любом месте текста после краткого (порядка недели) привыкания
* шрифт должен быть удобочитаемым
* решение затрагивает шрифты для программирования и консоли (один - два популярных свободных шрифта скопированы и видоизменены)
* решение должно быть устойчиво к стилизации полужирным и курсивом (обнаружение чужеродных букв должно сохраняться при изменении стиля, даже
если другим стилем набрано слово из одной буквы).
* если внутри слова стиль изменён в одной букве, то здесь требований никаких нет
* цвет, жирность, курсив, подчёркивание использовать нельзя
План:
* чтобы распознавание было надёжным, должна быть "формула отличия", которая позволяет интуитивно отличать буквы кириллицы от латиницы
* предлагаемая формула отличия: стилизация под старину путём видоизменения округлостей, штрихов и добавления узелков
* конкретно: те буквы кириллицы, которые можно перепутать, слегка видоизменяются в сторону шрифта Ижица, но так, чтобы общий стиль исходного шрифта сохранился как есть. Округлости меняются по форме, чтобы быть похожими на букву "О" из Ижицы.
Программа максимум:
О ней помним, но не тратим на неё силы.
Сделать то же самое для нескольких других шрифтов. Хотя есть сомнения. В советских книжках зачастую текст на иностранном языке верстался другим шрифтом и было сразу видно, что это не русский, да и так вообще почти любое слово отличается. В художественных текстах такая точность не нужна. Т.е. скорее всего область применения решения ограничивается программированием и заполнением анкет (где тоже перепутать кириллицу с латиницей может иметь тяжёлые последствия)
https://tvoygit.ru/budden/dr_cyr
В продолжение темы "кириллица с глазами".
Требования:
* критерием успеха является надёжное обнаружение чужеродных букв в любом месте текста после краткого (порядка недели) привыкания
* шрифт должен быть удобочитаемым
* решение затрагивает шрифты для программирования и консоли (один - два популярных свободных шрифта скопированы и видоизменены)
* решение должно быть устойчиво к стилизации полужирным и курсивом (обнаружение чужеродных букв должно сохраняться при изменении стиля, даже
если другим стилем набрано слово из одной буквы).
* если внутри слова стиль изменён в одной букве, то здесь требований никаких нет
* цвет, жирность, курсив, подчёркивание использовать нельзя
План:
* чтобы распознавание было надёжным, должна быть "формула отличия", которая позволяет интуитивно отличать буквы кириллицы от латиницы
* предлагаемая формула отличия: стилизация под старину путём видоизменения округлостей, штрихов и добавления узелков
* конкретно: те буквы кириллицы, которые можно перепутать, слегка видоизменяются в сторону шрифта Ижица, но так, чтобы общий стиль исходного шрифта сохранился как есть. Округлости меняются по форме, чтобы быть похожими на букву "О" из Ижицы.
Программа максимум:
О ней помним, но не тратим на неё силы.
Сделать то же самое для нескольких других шрифтов. Хотя есть сомнения. В советских книжках зачастую текст на иностранном языке верстался другим шрифтом и было сразу видно, что это не русский, да и так вообще почти любое слово отличается. В художественных текстах такая точность не нужна. Т.е. скорее всего область применения решения ограничивается программированием и заполнением анкет (где тоже перепутать кириллицу с латиницей может иметь тяжёлые последствия)
Последний раз редактировалось БудДен 30.05.24 10:59, всего редактировалось 2 раза.
Re: Шрифт с отличимостью кириллицы от латиницы
Может, лучше зайти с другой стороны? Можно запретить смешение русских и латинских букв, как это сделано для домена ".рф". Правда, всё равно не ясно, какими буквами написаны слова "ОКО" и "ТЕМА". Можно так же проверять на наличие слова в словаре.
Re: Шрифт с отличимостью кириллицы от латиницы
Невозможно запретить смешение букв в текстовом редакторе, если есть две раскладки. И кроме того, такой запрет для всех применений не в моих силах. Более того, в практике программирования ЯОС встречаются случаи, когда нужно смешивать. Например: форматDbf, протоколHttp и т.д. А сделать шрифт - скорее всего, в моих силах (в смысле найти исполнителя, но пока есть доброволец - посмотрим, что у него выйдет).
Шпаргалка:
Как менять шрифт в п-п-р?
* default.vue - прописать @fontface
* chrome dev tools на уже открытом сайте - в стилях найти, где находится bootstrap*.css. Пересобрать его я не осилил, но прямо в дистрибутиве можно найти и поменять font-face, который используется.
Шпаргалка:
Код: Выделить всё
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, который используется.
Последний раз редактировалось БудДен 22.06.24 12:47, всего редактировалось 1 раз.
Re: Шрифт с отличимостью кириллицы от латиницы
Если текст читает человек, то ему не важен код символа, если начертание одинаковое. А вот для компилятора важен код, и для этого случая можно подумать о запрете смешения. А можно выдать предупреждения при компиляции: идентификаторы ххх и xxx имеют одинаковое начертания, но содержит символы с разными кодами.
Re: Шрифт с отличимостью кириллицы от латиницы
Здесь речь не только о программировании. Любой идентификатор (url, электронная почта, имя пользователя) подвержен ошибкам. Не знаю, у кого как, а у меня руки коротки это урегулировать, даже если бы меня сделали властелином мира. И тут либо у нас есть различимость букв, либо будет путаница, часто или редко, но будет. Даже в программировании мы не можем запретить смешивать латиницу с кириллицей в строчке вида:
Код: Выделить всё
ОткройВебСтраницу("httр://вече.программирование-по-русски.рф")
Re: Шрифт с отличимостью кириллицы от латиницы
Сделал три буквы.
Re: Шрифт с отличимостью кириллицы от латиницы
---
Последний раз редактировалось БудДен 30.05.24 11:15, всего редактировалось 2 раза.
Re: Шрифт с отличимостью кириллицы от латиницы
Сделан на базе Ubuntu Mono. Теперь надо сделать полужирный и курсив.
Re: Шрифт с отличимостью кириллицы от латиницы
Дополнительные ссылки по теме:
https://habr.com/ru/companies/kolibrios ... es/269495/ - о сглаживании
https://www.winwd.narod.ru/wd.html - редактор "слово и дело" с хорошими шрифтами.
https://habr.com/ru/companies/kolibrios ... es/269495/ - о сглаживании
https://www.winwd.narod.ru/wd.html - редактор "слово и дело" с хорошими шрифтами.
Re: Шрифт с отличимостью кириллицы от латиницы
В компиляторе PL/1 Д.Ю.Караваева одинаковые по начертанию буквы латиницы и кириллицы не различимы. То есть "а" русское и "a" латинское полностью взаимозаменяемы. Но это, конечно, прокатит только для текстов программ. Для остального этот фокус не пройдёт. Ну а шрифты здорово получились, разница очевидна. Хотя невнимательный человек может пропустить.
Re: Шрифт с отличимостью кириллицы от латиницы
Да, может, уже замеряли. Другое дело, что и в обычном тексте можно пропустить, я однажды купил зубную щётку blenb a meb и не заметил. Когда увидел, посмеялся. Взаимозаменяемость (а-ля КОИ-7) может пригодиться где-нибудь на этапе начальной загрузки, а также при вводе паролей. Для программ, работающих с файлами или интернетом она не сработает - нельзя будет выразить всё многообразие имён и адекватно их обработать без потери информации. Поэтому для строковых литералов всё равно важна различимость.
Re: Шрифт с отличимостью кириллицы от латиницы
Мой респект. Большое и важное дело делаете...
Re: Шрифт с отличимостью кириллицы от латиницы
Маленькое и неважное. Маленькое - потому что большие дела в одиночку не делаются. Шрифт сделан для себя. Неважное - потому что за примерно 10 лет, когда я вообще открыл это направление программирования на русском языке, почти никто и почти никак не нашёл возможности поучаствовать в этом деле. Не совсем 0, но уровень поддержки недостаточен для того, чтобы это дело оставалось хоть как-то на плаву.
Re: Шрифт с отличимостью кириллицы от латиницы
Интересные узелки, лучше прежних:
Re: Шрифт с отличимостью кириллицы от латиницы
Начал делать шрифт переменной ширины на базе шрифта "голос". Можно посмотреть текущий результат на сайте (не на форуме) программирование-по-русски.рф
Сделано только две буквы - „о“ и „c“. Общая идея в том, чтобы он был менее агрессивен в плане стилизации (более удобочитаем) и при этом всё же можно было, если внимательно смотреть, отличить буквы кириллицы от латиницы.
Наверное, надо бы и на форум этот шрифт поставить, но это уж как-нибудь потом.
Сделано только две буквы - „о“ и „c“. Общая идея в том, чтобы он был менее агрессивен в плане стилизации (более удобочитаем) и при этом всё же можно было, если внимательно смотреть, отличить буквы кириллицы от латиницы.
Наверное, надо бы и на форум этот шрифт поставить, но это уж как-нибудь потом.
Re: Шрифт с отличимостью кириллицы от латиницы
Что будет, когда нет ни той, ни другой - пока не попалось такой буквы. Буквы „х“ и „M“ уже по накатанной.
Re: Шрифт с отличимостью кириллицы от латиницы
Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
ВB уy рp ОO0 ЕE HН СC ХX З3 АA - новые буквы
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
Код: Выделить всё
Экс-граф! Плюш изъят, бьём чуждый цен хвощ.
ЭКС-ГРАФ! ПЛЮШ ИЗЪЯТ, БЬЁМ ЧУЖДЫЙ ЦЕН ХВОЩ.
Re: Шрифт с отличимостью кириллицы от латиницы
Доделал весь алфавит в шрифте Dr Cyr Golos Text и поставил на форум. Буква К мало отличима от K, но всё же отличима. Буква T латинская особенно поменялась. Смысл изменения в том, чтобы были похожи строчная и прописная T и t.
Последний раз редактировалось БудДен 26.06.24 19:10, всего редактировалось 1 раз.
Re: Шрифт с отличимостью кириллицы от латиницы
Вскрылась ещё одна засада: Ы vs ЬI (мягкий знак I) - актуальна именно для немоноширинных. Залепил как смог.
Re: Шрифт с отличимостью кириллицы от латиницы
А латинская строчная "b" насколько отличима от заглавного мягкого знака "Ь"? Не увидел примеров, чтобы сравнить. Это я к тому, чтобы в будущем не обнаружились другие внезапные засады.
Re: Шрифт с отличимостью кириллицы от латиницы
Шрифт Dr Cyr Golos Text установлен на данном форуме для сообщений, а код верстается шрифтом DrCyr Mono, поэтому Вы можете сделать любой нужный Вам пример прямо здесь. Все известные мне засады я вроде увидел. Кстати, думаю, раз тронул T, то можно тронуть и латинское K, сделав его более похожим на строчное k - укоротить правый штрих (или как там это у них называется), идущий вверх. Тогда идея искажения латинских прописных в направлении строчных будет более чётко выражена и больше нагружена содержанием. Третьим в этом пункте может быть искажение буквы y в строну Y. Как я и говорил, рожать шрифт - это дело достаточно долгое и требующее обратной связи. Одна девушка (тут где-то с ней валяется интервью) рожала шрифт аж 7 лет (могла бы троих людей за это время родить).
Re: Шрифт с отличимостью кириллицы от латиницы
Поменял буквы KyЫы
K латинское прописное теперь похоже на k строчное, теперь её сложно перепутать: KК.
y латинское прописное похоже на Y строчное, теперь сложно перепутать: yу
Ы и ы сделаны так, что контeры слеплены, чтобы дальше отойти от подобия с ЬI
Больше всего меня интересует, не будет ли проблем с наличием схожей буквы y где-то в других алфавитах. Если кто-то что-то знает - пишите.
K латинское прописное теперь похоже на k строчное, теперь её сложно перепутать: KК.
y латинское прописное похоже на Y строчное, теперь сложно перепутать: yу
Ы и ы сделаны так, что контeры слеплены, чтобы дальше отойти от подобия с ЬI
Больше всего меня интересует, не будет ли проблем с наличием схожей буквы y где-то в других алфавитах. Если кто-то что-то знает - пишите.
Re: Шрифт с отличимостью кириллицы от латиницы
Шрифт Ruslan Display (источник информации тут: https://www.linux.org.ru/forum/developm ... d=17706945)
Сам шрифт тут: https://fonts-online.ru/fonts/ruslan-display
В шрифте нет отличия между строчными и прописными.
Сам шрифт тут: https://fonts-online.ru/fonts/ruslan-display
В шрифте нет отличия между строчными и прописными.