LINUX.ORG.RU

Сделать так, чтобы было легко отличать русскую «эс» (с) от латинской «ц» (c)

 , , , ,


0

1

Занялся решением вопроса неотличимости с от c. Вопрос решается двумя способами:

  • сделать кнопку, как в Яре, к-рая подчёркивает латиницу.
  • сделать шрифт

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

Соответственно, вопрос - куда добавлять глаза - в латиницу или в кириллицу?

Видеоролик с затравкой обсуждения

Первоисточник

И ещё вопрос - кто может это сделать? Мне нужно переделать все шрифты DejaVu, в общей сложности это до сотни глифов (не считал на самом деле). Или нужен доброволец, или нужен недорогой исполнитель, который за это возьмётся. Или… хотя бы дорогой исполнитель. На примере одной буквы я это сделал, т.е. в принципе, я могу это сделать и сам, но лучше пусть это сделает кто-нибудь другой.

Ряд ссылок на тему шрифтов, к-рые я накачал во время изучения:

Не, ссылок пока не будет, может потом… Куда-то делись.

Итог темы

Сделал режим подчёркивания латиницы, который можно отключить командой главного меню, http://вече.программирование-по-русски.рф/viewtopic.php?f=5&t=91&p=1571#p1571

Шрифт с отличающимся начертанием кириллицы можно попробовать сделтаь как-то так:

http://вече.программирование-по-русски.рф/viewtopic.php?f=2&t=268&sid=023381a8c0b0dacdc8c6735ac37aafe7&start=10#p1570

★★★★★

Ответ на: комментарий от den73

В общем, это в любом случае задача

При любом раскладе шрифты будут разными. И убого это не выглядит вообще никак. Даже если брать убогий моноширный шрифт. Как вариант – поиграть с жирностью и наклоном одного и того же шрифта, если у DejaVu там есть не всего четыре варианта.

Зайди на гугл-фонтс и поищи.

kostyarin_ ()

В FontForge можно с полпинка влепить хоть маленькую копию «я» в любой угол каждого требуемого символа по выбору.

frob ★★★★★ ()
Ответ на: комментарий от den73

Для латиницы кандидат по умолчанию - это DejaVu Sans. А для кириллицы?

Дело вкуса, конечно (а у тебя он, видимо, нестандартный), но как на счёт DejaVu Serif? Ещё хочу напомнить, что кроме болда и курсива можно поиграть с condensed и thin вариантами, а также – с разным размером (раз уж тебе так нравятся прыгающие буквы)

https://unix.stackexchange.com/questions/41062/forcing-font-size-based-on-language-in-fonts-conf

dsxl ()
Последнее исправление: dsxl (всего исправлений: 3)
Ответ на: комментарий от sudoapter

Да что-то мне сначала по дури показалось, что такой плагин сложнее написать, т.к. он должен, если он system-wide, перерендерить все буквы на экране. Не факт, что это легко и вообще возможно.

Но я уже сижу сегодня весь день за шрифтами и ещё могу целый месяц легко за ними просидеть.

Сейчас вот сделал гибридный шрифт из dejavu sans mono и sony plex mono light, думал, за счёт жирности будет отличаться. Но если поставить буквы рядом, то отличие едва видно. Нужно где-то найти шрифт со всей квадратной кириллицей.

den73 ★★★★★ ()
Ответ на: комментарий от dsxl

х едва можно увидеть отличие.

serif не моноширинный. Плюс к тому, шрифты с засечками хуже читаются с экрана (по преданию).

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

https://holmax.ru/blog/shriftovye-raboty-ivana-bilibina-ili-chto-natvoril-pyotr-i

den73 ★★★★★ ()
Ответ на: комментарий от system-root

Угу, это частное решение. А если в строковом литерале?

den73 ★★★★★ ()
Ответ на: комментарий от den73

Укажет на опечатку. Но это уже вызывает стандартные (всё ещё) проблемы со словарями. Шрифт никак не поможет, если менее заметные штуки пропускаются, то что уж говорить. Линтер - это решение. Линтер и другой подход к словарям.

system-root ★★★★ ()
Ответ на: комментарий от kostyarin_

Нда, зря я ругал FontForge, там правда можно много чего делать быстро. С наклоном играть видимо, один из вариантов, правда мне кажется, что наклонные линии будут убого на современных мониторах выглядеть в любом случае.

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

Маленькие буквы нужно делать различающимися по написанию. То, что вот на этой картинке, мне кажется более-менее похожим на правду, в части букв у, о, х, а (хотя а надо перерисовать, это не более чем прототип).

Остаются е, p, с.

С можно взять у Билибина вот отсюда,

https://ic.pics.livejournal.com/j_e_n_z_a/12244009/4208354/4208354_original.jpg

Или просто чуть поднять до вертикальных габаритов «ц». «р» может обойтись засечкой, её видно. Что делать с е?

den73 ★★★★★ ()
Ответ на: комментарий от system-root

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

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

А букву е просто уменьшить из заглавной, главное, чтобы она не была похожа на украинскую, чтобы можно было потом этот шрифт масштабировать.

den73 ★★★★★ ()

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

AKonia ()

Сделать плагины в свой редактор кода. В плагине повесить на хоткей подчёркивание/подсветку всех символов ненужного или нужного алфавита.

ЗЫ

Проблема надумана. Ты лучше скажи, что с юникодом делать... Есть 2 й, а именно й и й.

peregrine ★★★★★ ()
Ответ на: комментарий от AKonia

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

В общем-то видимо я уже созрел для того, чтобы прицениться к тому, чтобы качественно сделать по мотивам вот этой картинки:

http://вече.программирование-по-русски.рф/download/file.php?id=26

Только с заменой о и с на «более древнерусские» варианты, резко отличающиеся по форме от латиницы. Там посмотрим, как это будет читаться.

Правда, ещё остаётся вопрос с заглавными буквами…

den73 ★★★★★ ()
Ответ на: комментарий от peregrine

Ты лучше скажи, что с юникодом делать… Есть 2 й, а именно й и й.

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

den73 ★★★★★ ()
Ответ на: комментарий от den73

Нет. Думается, что надо нормализацию юникода делать на этапе компиляции...

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Сделать плагины в свой редактор кода.

Я вообще-то пилю ОС и возможно там можно это сделать на этапе отрисовки шрифтов, но не уверен, что это прямо вот так просто и безглючно будет работать. Но это частное решение, а мне теперь хочется решить именно задачу про шрифты, даже чисто из спортивного интереса.

Думается, мне назовут цену профессионалы и на этом проект закончится :)

den73 ★★★★★ ()
Ответ на: комментарий от peregrine

Ну это тебе думается, а я считаю, что это баг или закладка в юникоде, чтобы нам в России похуже жилось.

Приспосабливаться к ней - это значит играть по чужим правилам. Это методически неверно.

den73 ★★★★★ ()
Ответ на: комментарий от den73

Мне это тоже не нравится. Но закладка от Царя батюшки, потому как и краткое одна буква, а й другая... Ну и юникод не буквами оперирует, внезапно.

peregrine ★★★★★ ()
Ответ на: комментарий от den73

чтобы нам в России похуже жилось

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

В текстах - вообще наплевать: и так и эдак читается. Кому плохо, так это всякому машинному обучению, но ты этой задачей всё равно не занимаешься.

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

dsxl ()

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

t184256 ★★★★★ ()
Ответ на: комментарий от den73

Ахаха, я серьёзно про психолога, надо че-то делать с твоими воинственно националистичными теориям и заговора.

t184256 ★★★★★ ()

Пиши кириллические буквы полууставом, а английские – готическим шрифтом: 𝕬 𝕭 𝕮 𝕯 𝕰 𝕱 𝕲 𝕳 𝕴 𝕵 𝕶 𝕷 𝕸 𝕹 𝕺 𝕻 𝕼 𝕽 𝕾 𝕿 𝖀 𝖁 𝖂 𝖃 𝖄 𝖅.

XVIII_vek ()
Ответ на: комментарий от lx1

Не так давно оформлял в латехе набранный (не мной) plaintext. Отлавливать пропадающие в math mode русские буквы было ни капли не весело.

Siborgium ()
Ответ на: комментарий от den73

На скриншоте выглядит отвратительно. В глазах рябит, читабельность резко падает.

Siborgium ()
Ответ на: комментарий от dsxl

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

den73 ★★★★★ ()
Ответ на: комментарий от Siborgium

На скриншоте выглядит отвратительно. В глазах рябит, читабельность резко падает.

Да, точки в о действительно рябят, в остальном - понятное дело, что я не художник и не шрифтовик.

Также нужно рядом поставить образец латиницы - может быть дело в том, что отрисовка в A2 сама по себе далека от совершенства.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от XVIII_vek

В ide я ставлю самый мелкий шрифт, чтобы больше текста поместилось. Любые изыски будут выглядеть кляксочками, нужны простые, тупые, возможно квадратные шрифты. Что такое полуустав я посмотрел в википедии, не понравилось.

В целом по теме я понял, что нужны оба варианта. Более того, там, где вводится чувствительная информация, такая, как имя пользователя, нужно подчёркивание особых символов, выходящих за рамки раскладки клавиатуры.

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

den73 ★★★★★ ()
Ответ на: комментарий от kostyarin_

Зайди на гугл-фонтс и поищи.

Спасибо за совет, жаль, я им только сегодня догадался воспользоваться, а сегодня особо некогда уже. Там дофига шрифтов. Хотя похоже, что не всё интересное там есть.

den73 ★★★★★ ()
Ответ на: комментарий от Siborgium

Согласен, я, видимо, просто не сталкивался с таким объемом работы, где нужно было прям вчитываться в текст.

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

lx1 ()

Очередная попытка, задействована плотность. Думаю, на этом придётся пока что остановиться. Попробую сделать режим подчёркивания ещё, но если не получится, то оставлю это. Может быть, возьму другую пару шрифтов вместо PT Mono. Сама идея сделать разные начертания продолжает мне казаться классной, хотя я не пойму, как это сделать для О и С, но ресурсов на её воплощение у меня нет. Тут надо где-то порядка нескольких месяцев времени или соответствующее количество денег.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)

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

blexey ★★★★★ ()
Ответ на: комментарий от blexey

По сути дела, я так и сделал, другое дело, что это можно пытаться настраивать на уровне системы. Но тут мы упираемся в разную геометрию шрифтов. Я не выяснял, насколько можно в режиме отображения моноширинных шрифтов поставить рядом два шрифта. Например, у всех ли шрифтов одинаковое отношение ширины к высоте. Если шрифты не моноширинные, то всё, наверное, проще.

Касаемо цветов - это уже обсуждали. В IDE часто уже задействованы и жирность, и цвет, и цвет фона, да и подчёркивание тоже. Поэтому, если нужно универсальное решение, то именно разные начертания помогут.

den73 ★★★★★ ()
Ответ на: комментарий от den73

Просто взять 2 опенсорсных шрифта и смиксовать их

next_time ★★★★★ ()

программирование-по-русски/viewtopic.php

?????

мож программирование-по-русски/зырь-в-тему.яр ?

buratino ★★★★★ ()

Автоматически приводи C к С и проблема решена. Типа юникодовой нормализации.

Dark_SavanT ★★★★★ ()

можно сразу перейти на латинницу просто, как это сделали старшие братья из Казахстана

xmikex ★★★ ()
Ответ на: комментарий от t184256

Ахаха, я серьёзно про психолога, надо че-то делать с твоими воинственно националистичными теориям и заговора.

Не-не, всё правильно он говорит. Ты бы ещё Столману психолога бы посоветовал.

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от blexey

А какой смысл в неотличимости разных букв? Думается, что дизайнеры шрифтов просто минимизируют объём своего труда, другого смысла нет. Потому что c и с несут разное содержание.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от buratino

программирование-по-русски/viewtopic.php программирование-по-русски/зырь-в-тему.яр ?

В идеале да, но вместо перевода phpbb я предпочитаю переводить A2.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от Anoxemian

Например, «ТО» означает разное, в зависимости от того, набрано оно латиницей или кириллицей.

Я тебе больше сткажу: эти две буквы обозначают разное даже в одном языке.

следуя твоей логике, в языке вообще достаточно одной буквы.

den73 ★★★★★ ()
Ответ на: комментарий от Siborgium

Их в логе надо отлавливать. Глазами в результирующем PDF и правда неудобно.

TeopeTuK ★★★ ()
Ответ на: комментарий от den73

В том, что если различия нужны - это достигается использованием разных шрифтов, а не модифицированием одного.

blexey ★★★★★ ()
Ответ на: комментарий от den73

режим отображения моноширинных шрифтов

у всех ли шрифтов одинаковое отношение ширины к высоте

Нет, разное. Кстати, есть шрифты без поддержки иероглифов и когда они попадаются в тексте, то всё разъезжается (так как закорючки берутся из другого шрифта). И ничего, китайцы же как-то живут с этим. Уверен, если ты добавишь кириллицу из другого – даже не моноширинного – шрифта, всё равно будет терпимо.

dsxl ()
Последнее исправление: dsxl (всего исправлений: 2)
Ответ на: комментарий от Einstok_Fair

А я бы посоветовал. Столлман во многом прав, но психолог ему все-таки не помешал бы.

t184256 ★★★★★ ()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от blexey

Ну ты не на то ответил. Ответ на вопрос, который я задал, очевиден - нет никакого практического смысла в том, что начертания с и c одинаковы. Просто это на практике так наблюдается, потому что 99% шрифтов сделаны в США, а шерифа проблемы индейцев, как известно, не е… . Они сначала сделали с, потом для кириллицы её скопировали, успели сделать свои эн букв в день (у них ведь время-деньги, быстрей двигайся к результату).

1% шрифта, т.е. PT, сделан в России, но его авторы не осилили догадаться, что нужно сделать отличающееся начертание. Ну что ж, не все такие умные, как я, да и я догадался далеко не сразу. Да и то, в этой теме я уже открыл новые глубины этой бездны - что есть ещё куча юникода, и хрен напасёшся на всё разных начертаний.

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

И ты, пропустив этот вопрос в силу очевидности правильного ответа на него, перешёл к вопросу о том, как достичь различимости. И ты, как и ряд других товарищей, предложил использовать разные шрифты для кириллицы и латиницы. Проблема в том, что и разные шрифты одинаковы. Я вчера зашёл на гугл фонтс и стал смотреть сначала все моноширинные, а потом просто все шрифты подряд. Шрифты для текста очень однообразны. Сколько я их не посмотрел вчера моноширинных шрифтов - везде «А» выглядит одинаково - две палки и перекладина, примерно на одной и той же высоте. А ничто не обязывает её так выглядеть. Вот, например, как выглядит «А» в газете «Правда»: https://gazeta-pravda.ru/st/i/logo.png

Я нарисовал картинку, как могли бы выглядеть «А», «С» и «О». «А» сделано по мотивам Правды, а «С» и «О» - псевдодревнерусское. В современном стиле, когда мы признаём все этапы нашей истории и смешиваем между собой.

См. http://вече.программирование-по-русски.рф/viewtopic.php?f=2&t=268&p=1570#p1570

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

Поэтому задача создания нового моноширинного шрифта актуальна.

den73 ★★★★★ ()
Ответ на: комментарий от dsxl

Не, у меня кириллица основная, т.к. я делаю систему а-ля 1С, в к-рой всё будет на русском, вот пример кода:

модуль ПробаПера;
использует Проба, UCS2;

тип
	Эр = набор
		эс от_компоновщика "Проба.эс": SIZE кн;
		
проц Дуй*;
  перем эр, эр2: Эр;
тело
	эр2.эс := 7100;
	TRACE( эр.эс); кн Дуй;

кн ПробаПера.Дуй ~
den73 ★★★★★ ()
Ответ на: комментарий от dsxl

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

Во-первых, получается гадко, во-вторых, мы не слишком знаем, как живут китайцы. У них уже давно есть и своя ОС, и свой тик-ток.

В России большинство людей настроено равняться на америку. Если белый господин сделал что-то для нас неудобно - то мы потерпим. В отличие от этого китайцы всё делают так, как удобно им, а если и терпят, то только лишь временно. Они не собираются терпеть вечно, а наши люди - собираются.

den73 ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей