Как стать автором
Обновить

Комментарии 151

Шрифт позволяет визуально различить кириллицу и латиницу?

Например а | a, c | с ?

А в каком случае это может пригодиться?

Например когда в код попадает какая-нибудь строковая копипаста (какие-нибудь списки языков\месяцев\пр.), и в ней кто-то случайно\специально заменил латинский символ на кириллический. А это потом где-нибудь 1в1 матчится. vsCode недавно выкатил функцию которая все такие символы стала показывать в красных квадратах. Пришлось сразу отключать, иначе писать по-русски было просто невыносимо :)

Тут скорей нужно предупреждать если в одном слове смешиваются латинские и другие символы.

Недавно реально была такая проблема, перепутали 'c'.
В Webstorm. Просто опечатка
Но, по правилам js - нормально использовать и unicode в названиях переменных и прочего.
Визуально только diff помог докопаться до проблемы.
Но, соглашусь, на моей памяти это был единственный случай в реальном коде.

А мой Webstorm подсвечивает такое, возможно вы отключили проверку ошибок в словах?

Студентка, допил опенсорс-проекта в качестве курсовой, перепутала "с" и "c". Долго помогал ей найти ошибку. Тоже JS.

Разве это задача шрифта? Чаще всего, всё, что не ASCII вне строковых литералов и комментариев --- consider harmful, это отлавливается средствами для работы с исходным кодом.

Ну и не нужно в кириллицу даже заходить, есть греческий знак вопроса.

Это к andreykp вопрос скорее. Я не считаю что это задача шрифта. Просто описал когда может возникнуть путаница.

Для этого есть анализатор опечаток

Когда у тебя в коде встречается русская буква, то IDE ещё может сообщить, что видит нелатынь, но если есть какая-то строковая константа, то кроме как посмотреть коды букв, найти ошибку невозможно. Особенно проблема в c/с, которые гениально расположены на одной клавише.

vscode все подобные латинице кириллические буквы подсвечивает рамкой с тултипом :)

В той же Idea можно отдельно включить предупреждения "Non-ASCII characters in identifiers" и "Differenc laguages in strings". Но последнее в моем случае довольно бесполезно, поскольку есть строки с русскими английскими словами одновременно.

Поэтому настроил вот такую кастомную инспекцию на регекс "латынь-НЕлатынь подряд": .*([^\p{ASCII}]\w|\w[^\p{ASCII}]).*

Теперь ловит вот такое:

Экран настройки Idea

У меня коллега вечно с и c в коде смешивает.

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

Спасибо за идею! Загуглил и включил в IDEA инспекцию settings|editor|inspections|Non-ASCII characters

У меня в консольном шрифте просто отсутствуют начертания для кириллицы) Работает на ура.

?????? ???????? habr ? vim)

Благодаря этому особые символы выделяются в тексте и выглядят ровно так, как должны.

Сомнительное достоинство.

Придётся привыкать, что в редакторе будет отображено вместо привычного уже !=

Отключается галочкой в настройках. Более того, шторме они по умолчанию отключены.

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

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


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

Хм, тут возможно помогла бы настройка, с помощью которой можно было бы отключать лигатуры по крайней мере в строковых литералах. Насчет комментов не уверен.

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

Придётся привыкать, что в редакторе будет отображено ≠ вместо привычного уже !=

Минуты три там привыкать. Я бы сказал тут обратный недостаток — всякий раз сталкиваясь с кодом без лигатур, немного неприятно на них смотреть.


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

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

Да, сразу же отключил это безобразие в IDEA - текст в редакторе должен отображаться "как есть".

НЛО прилетело и опубликовало эту надпись здесь

Более того, "это" его и ведет себя странно при выделении текста и удалении части символов из списка, который сделан лигатурой.

Мне подсознательно кажется что если я после "" (которого я визульно вижу как 1 символ) нажму backspace, то я удалю его целиком, а не заменю на "!".

Шрифты прикольные, но мне лично нравится версия без лигатур: Jetbrains Mono NL. Очень хорошо, что они подумали о таких как я и выпустили отдельную версию.

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

Так лигатуры и занимают 2-3 позиции в зависимости от количества символов.

PS. Ниже, оказывается, уже выяснили...

Лигатуры в коде - зло. Написано одно, видишь другое.

В остальном, да, использование Mono начертаний лучше, чем код, набранный times new roman.

Ну да, а если с комик-сансом сравнить, так вообще -- небо и земля. Кто-нибудь вообще пишет код не на моноширинных шрифтах?

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

Очень забавно, спасибо за ссылку. Вообще пишут, что у Lucida Grande есть моноширная версия. Может быть Роб просто не понял вопроса и на самом деле его код отображается с помощью Lucida Grande Monospaced?

Сурово :)

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

А вы часто забываете, что в вашем языке, например, сравнение всё-таки не символ '≠' а '!='?
Да и большинство лигатур лишь улучшают отображение, а не кардинально меняют его.

if token == '!=' or token == '≠':
    vis.commit('≠').or_fallback('!=').

Скажите, что с этим кодом станет после "лигатуризации"?

Для чего нужен этот кусок кода? Вы так парсите исходники?

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

Визуально они различаются, см. ниже, мы с @bromzh привели примеры. Если есть задача в большом количестве оперировать с похожими символами, то лигатуры простым образом отключаются в настройках. А если такой задачи нет, то и нет описанной вами проблемы.

Настройки в PyCharm (JetBrains)
Настройки в PyCharm (JetBrains)
Если есть задача в большом количестве оперировать с похожими символами, то лигатуры простым образом отключаются в настройках.

И теряется универсальность.

Извените, я вас не понял. Что вы в этом контексте подразумеваете под универсальностью?

PS Кстати, подумал, если в коде реально много работы идет с символами, то думаю лучше вынести подобные строки в отдельные константы/классы или вообще в отдельный файл с данными. Чтобы и рефакторить было проще и чтобы по истории сравнения файлов можно было бы быстро увидеть изменения. И чтобы сообщение в комите объясняло, почему произошло изменения символа или их комбинации.

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

Как в статье рекомендуется Jetbrains Mono?

Шрифты для разработчиков создаются с учетом потребностей разработчиков. За разными шрифтами стоят разные подходы и философии дизайна, но рассчитаны они все на то, чтобы сделать программирование более приятным опытом. Позвольте мне подробнее раскрыть эту мысль на примере шрифта, которым на текущий момент пользуюсь лично я – Jetbrains Mono

Если это шрифт для разработчиков, его область применимости — вывод (произвольного) кода. Без оглядки на то, с какими задачами встречается автор кода.

В рамках своей области применимости не должно быть никаких corner case, никаких допнастроек в зависимости от задач и т.п., иначе возникает usability leak.

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

Несогласен с вами. Шрифт и лигатуры это часть инструментария. Инструментарий создается для решения определенного набора задач. К примеру, ниже человек написал, что в VHDL лигатуры для <= не подходят. Задача работы с специальными символами, похожими на начертания лигутар - тоже очень особая. Так ли часто такая задача встречается в реальной жизни?

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

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

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

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

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

Примеры этого в UI встречаются сплошь и рядом. Допустим, вы даёте возможность установить фон для отображения списка. (Это много где встречается, самый известный, наверное, пример — обои рабочего стола). Что будет, если обои попадутся очень тёмные? Можно сказать: по статистике настолько тёмные обои, чтобы было не разобрать текст, встречаются очень редко, а если кто-то и поставит, то есть же настройки, пусть человек цвет подписей сменит на белый. Видите аналогию? Вот так делать нельзя, это usability leak. Почему нельзя? Это всегда что-нибудь ломает. Ну, например, многие ОС дают возможность менять по таймеру обои, устанавливая картинки из заданной папки. Такая возможность не сочетается с предложением настраивать что-то руками. Хуже всего, идея смены обоев, которую любят многие юзеры, вам может просто в голову не придти в рамках принятого решения.

Что делать можно: можно организовать элементы в гармоничную совокупность («тему»), можно отображать подписи с обводкой или тенью, можно придумать что-то ещё.

Разумеется, любая аналогия справедлива до какой-то степени. В частности, трудно с ходу придумать, что бы послужило «обводкой» для лигатур. Я использовал её просто чтобы показать, в чём суть этого leak'а на другом примере.

Про лигатуры и юзабилити я, на самом деле, многое мог бы написать, но тут же не форум )

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

Вот с этим я всегда согласен на все сто!

Ничего неожиданного — лигатура всё ещё отличима от символа, потому что лигатура — это не просто символ.
image


Ну и опять же вопрос: часто ли вам надо работать с символом '≠'?

Да, кстати, насколько я помню, лигатурные символы, если они заменяют 2 символа, то и выглядят по ширине как 2 символа, если 3 - то как 3.

Да, даже >= лигатурный хоть и кажется, что по ширине в 1 символ, это на деле не так. Сколько символов используется, столько и будет ширина у лигатуры
image

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

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

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

"Положительное" сравнение - два символа: ==

"Отрицательное" сравнение - один символ: ≠

Удивительно несимметрично!

Вы, наверно, не обратили внимания, что в предлаемых шрифтах этот "один символ" по ширине как раз как два — у него горизонтальные чёрточки специально сделаны вдвое длиннее, чем у одинокого "=".

Да, спасибо! Действительно. Но, судя по негодованию прочих комментаторов, я не один такой невнимательный.

Да ну, с лигатурами классно, попробуйте. Я не испытываю проблем, даже не задумывался об этом до вашего комента. Использую уже несколько лет. Текущий шрифт - JetBrains Mono. До этого пользовался разными другими шрифтами.

Лично я везде где можно стараюсь использовать шрифт Hack.

Не знаю почему, мне он наиболее приятен на уровне ощущений.

https://sourcefoundry.org/hack/

Хороший выбор. Обычно я разрываюсь между Hack и Souce Code Pro. Последнее время, с появлением монитор с раздешение больне FullHD последний как-то больше выигрывает.

Так же остановился на этом, перепробовав много шрифтов. Пока FullHD монитор, то им и пользуюсь.

Спасибо, выглядит интересно. По сравнению с SF Mono четче на небольших размерах, буду пробовать.

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

Вытянутые символы, которые делают код проще для чтения.

Что-то я сходу не нашёл шрифта, где бы прописные буквы были аж в 2 раза ниже строчных. Опять какое-то стравнение с мифическим "обычным стиральным порошком".

Символы 1, I и l имеют четко различимые формы.

Это всё хорошо, только строчная эл не узнаётся как эл.

Символы направляют взгляд по вертикали.

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

Слова человек старше 5 лет воспринимает целиком как единый образ, а не посимвольно.

стрелочка влево <=

Ну да, все программисты ведь читают if (a <= 10) {} не иначе как "если а стрелочка влево десять".

Собственно для таких corner case-ов нужно или настраивать использование лигатур, или отказываться. Для большинства из нас такой проблемы нет. Остальным достаточно одного клика в настройках IDE

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

Ну тут уже нужно вникать в то как лигатуры устроены на уровне шрифта и\или IDE. Можно ли там вообще "выполнить работу над ошибками", или всё же авторам приходится прибегать к некоему распространённому варианту. Если второе, то ясное дело что всё что не mainstream в пролёте.

Устроены они очень просто: в шрифте лежит маппинг групп код-поинтов на глифы. Есть даже иконочные шрифты, построенные на этой технике: https://google.github.io/material-design-icons/

маппинг групп код-поинтов на глифы

ok, и как тогда по вашему это можно "исправить"? со стороны авторов шрифта

Очень просто: не менять отображение до неузнаваемости.

Да ну. Зачем тогда нужны лигатуры. Они должны быть говорящими. Для большинства из нас такое решение будет негативным. Это ведь ваша проблема (меньшинства), а не наша (большинства).


Я бы тут лучше смотрел в сторону кастомизации средствами IDE или её плагинов. Полагаю, что можно за-override-ить этот маппинг в свою пользу. Это звучит куда логичнее.

Давайте будем честными, большинство даже не помнит как записывается математический символ "меньше либо равно" и гораздо более привычно к записи "<=".

Как-то не совсем честно, есть какие-то исследования, или это выдача желаемого за действительное?

Не шокируете. Но возможно я вас шокирую, и скажу, что таких языков крайне мало, пользователей таких языков на порядок меньше. То что в вашем велике <= это стрелка - проблема больше языка, ведь стрелок разных целая куча, и зачем было выбирать именно ту, что совпадает с меньше-равно непонятно.

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

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

Если вы еще не выбрали любимый шрифт для кодинга, то есть вот такой инструмент - https://www.codingfont.com/. Я воспользовался один раз и в итоге выбрал именно тот шрифт, которым уже пользовался :)

Интересно, почему во всех этих инструментах нельзя задать свой текст для сравнения?

А где применяется вот эта волнистая стрелочка, которая приведена в примере?
~~>

С одной тильдой ~> точно есть в SKILL (диалект Лиспа, скриптовый язык в продуктах Cadence Design Systems).

Монолиза беспорно топ шрифт, получил много наград заслужено , но он платный - так что ищем альтернативу )

есть FiraCode бесплатный.

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

Неплохо, Вы, однако, ужинаете...

Ну я вот сейчас вижу цену за персональную лицензию в CA$62.85. Заказы в UberEats/DoorDash — 40-50 долларов. Ужин в ресторане CA$100 пробьет легко и не задумываясь.

Во-первых, не сравнивайте палку с пальцем CAD и USD.

Во-вторых, в "UberEats/DoorDash" входит не только "поужинать", а ещё и стоимость доставки, то есть минимум 20 баксов сверху (вместе с чаевыми). Если б предыдущий оратор сказал "шикарный ужин от пуза на двоих в ресторане плюс такси до дому", то я бы не протестовал. Но он сказал то, что сказал. А у меня в ресторане обычно на четвертак вполне себе неплохо получалось (в доковидные времена).

Во-первых, не сравнивайте палку с пальцем CAD и USD.

Я все цены в изначальном комментарии привел в CAD.


Во-вторых, в "UberEats/DoorDash" входит не только "поужинать", а ещё и стоимость доставки, то есть минимум 20 баксов сверху (вместе с чаевыми).

Я прямо пошел и проверил: доставка в одном случае была 1 CAD, в другом — бесплатная. Чаевые — да, но чаевые будут и в ресторане (и выше).


А у меня в ресторане обычно на четвертак вполне себе неплохо получалось (в доковидные времена).

Я вот как сейчас помню вполне рутинный ужин на 80 американских долларов в доковидные времена в Нэшвилле, Тенесси. На одного.


Так что не очень понимаю, что тут протестовать.

Иллинойщина, 2019-20-11. Еда $14.99, tax $1.72, tip $5.29, total $22. Это ужин на одного, в ресторане. У меня все ходы записаны. С тех пор, извините, не ходил — это были последние доковидные дни.

доставка в одном случае была 1 CAD, в другом — бесплатная

У нас доставка 10% от заказа, чаевые (автоматом) — ещё 10% от заказа (но и там и там есть минимумы).

НЛО прилетело и опубликовало эту надпись здесь

Поддерживаю! Много лет им пользуюсь.

Проще замечать баги

Быстро находятся переменные и функции

Легко опознаются специфичные для программирования символы

Снижается нагрузка на глаза

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

НЛО прилетело и опубликовало эту надпись здесь

У вас есть возможность проверить на себе.
Если с вами доводы работают - зачем исследования?

Если с вами доводы не работают - зачем исследования?

Просто берете и используете то, что дает результат.

Тыкал всякие шрифты, каждый раз возвращаюсь к старому доброму DejaVu Sans Mono.

Попробуйте любой комик. Напрмер комик санс. Много лет его использую, так как зрение плохое. Читается по контурам очень легко.

Лигатуры — вещь хорошая, и приятно читать. Но... в одном языке (VHDL) это бесполезно. Лигатура там не понимает разницу между <= и <=. Первый — это параллельное присваивание, а второй — это оператор сравнения.

Вот это кстати как мне кажется, единственный хороший пример, когда лигатуры работают неверно. Но тут мне кажется какой-нибудь Synopsis мог бы подтянуться и выпустить свой вариант доступного шрифта, где лигатуры сделаны привально под эту область.

Надо было разработчикам языка VHDL использовать =< для параллельного присваивания (шучу).

Мне зашел IBM Plex Sans Text.

В нем разница между нулем и О, а также строчной L и заглавной И в eng видна и ощутима и удобна, и вообще с экрана воспринимается замечательно.

У шрифтов TrueType есть глобальная проблема - нестабильность очертаний при разрешениях, недостаточно высоких по сравнению с размером символа. Много лет ищу шрифты, символы которых высотой в 17-18 точек отображались бы без заметных искажений в разрешениях порядка 130 PPI, без сглаживания методами вроде ClearType. Пересмотрел сотни вариантов, включая упомянутые здесь; крупные символы смотрятся отлично, начинаешь уменьшать - превращаются в ужас. Чертовски завидую тем, кто не видит цветных артефактов по краям символов, нарисованных через ClearType, поэтому этот режим у меня всегда отключен.

В частности, по этой причине много лет не могу перейти с VS 2008 на более новые версии VS, поскольку они перестали поддерживать растровые шрифты. На экранах 17" ноутбуков с разрешением 1920x1080, чтобы получить аккуратный текст без "межточечного" сглаживания, приходится чрезмерно (до 25-30 точек) увеличивать высоту символа, а это без нужды съедает информационную емкость экрана. Одна надежда, что следующий ноутбук получится подобрать с экраном типа retina.

НЛО прилетело и опубликовало эту надпись здесь

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

Пытался найти шрифты, заточенные под четкое и однообразное отображение на определенных кеглях - 10, 11, 12, 14. Не нашел. Поэтому и сижу пока на растровых, и на VS 2008, чтоб ее разработчикам неладно было.

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

Вы случайно не пробовали настроить ClearType? Заметные цветные края могут говорить о том, что у вас может быть некорректно выставлена последовательность субпикселей RGB.

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

Эта проблема решается покупкой 4K монитора и использованием масштабирования. Уже 150% масштаба достаточно, чтобы вообще забыть о ClearType.

Мне удобно работать на 17" ноутбуке, а переключаться между монитором дома и ноутбуком в поездке - неудобно. На экране 17" FullHD все выглядит прекрасно, пока разработчики VS, которым вздумалось запретить растровые шрифты, не заставляют меня использовать TrueType.

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

С ним такая же беда (по крайней мере, под виндой). Вот, в кегле 12 (мне нужен примерно такой размер):

Я с ClearType использую, выглядит лучше остальных испробованныхю. В редакторе еще есть различия между otf и сконвертированным в ttf (ttf лучше выглядит).

Возможно, вам стоит попробовать Fixedsys Excelsior. Это старый добрый Fixedsys, только TrueType и с лигатурами. Никакого сглаживания, однако идеально отображается только в 12-м кегле (вроде бы вам именно это и нужно).

Спасибо, вроде действительно в кегле 12 не корежится. Но эти шрифты мне не очень нравятся по виду. Оставлю на крайний случай. :)

Найти бы что-нибудь вроде того, что используется в виндовых консольных окнах при установке "Raster Fonts 10x18" - тот гораздо симпатичнее.

Если «что-нибудь вроде того, что используется в виндовых консольных окнах» вообще, то берите "Classic Console", в 16-м размере он неотличим от классического растрового консольного шрифта Windows. Если же нужно вот именно такой, как при установке, тогда "Command Prompt 10x18" — но в нём нет кириллицы и лигатур.

16-й мне шибко велик, а вот Command Prompt четко и единообразно выглядит в 12-м кегле, смогу использовать его в новых VS. Спасибо!

Только и у него проблемы. :( Кириллицы нет, но это не критично - в VS пишу почти исключительно на английском. И символы на точку выше, чем в моем растровом - строк в окне меньше, и лежат плотнее, но жить можно.

А вообще, насколько сложно с нуля, не имея опыта, нарисовать TTF-шрифт по образцу растрового, если интересует отображение только в одном кегле?

Я в своё время долго искал автоконвертер, чтобы перегнать [Old] Courier в ttf по описанным вами причинам. Не нашёл.

16-й кегль Classic Console не сильно отличается от 12-го Fixedsys на самом деле:
image


Но если нравится именно Command Prompt, то у него вроде есть и кириллическая версия — Comrade Prompt.


А вообще, насколько сложно с нуля, не имея опыта, нарисовать TTF-шрифт по образцу растрового, если интересует отображение только в одном кегле?

Сложно. Но вы ведь хотите фактически вычертить себе «растровый» .ttf-файл, что можно сделать через правку текстовых файлов .ttx, описывающих шрифт. Для этого, правда, нужен питон с набором утилит типа fonttols/ttfont для компиляции/конвертирования .ttx в .ttf.

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

Без сглаживания нормально отображаются старые стандартные шрифты Windows.
Вот Courier New высотой ровно 18 точек, полужирный.

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

В браузере раньше работал плагин, который позволял включить SR AA (subpixel rendering based antialiasing) начиная с порогового кегля.

То есть, мелкий текст (для чтения) принудительно переключался на Arial без SR AA (ClearType), а крупный (заголовки, декоративная вёрстка) выводился родной гарнитурой со сглаживанием.

Вот это было счастье!

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

Попробуйте IDE Jetbrains. В них можно переключfnm antialiasing no/subpixel/greyscale отдельно для UI, отдельно для области редактирования просто в настройках, не трогая всю систему

Менять IDE исключительно ради шрифтов - это, конечно, сильно. :) Она не хуже VS 2008 в плане возможностей редактирования, отладки, показа типов/параметров и прочего?

Она намного лучше VS 2008 по всем параметрам.

Насколько я понял, для C++ нужен CLion. Пишут, что он заточен прежде всего под GCC, а поддержка MSVC++ в непонятно каком состоянии. И отладка там, как я понял, только через GDB. С MSDN интегрируется? И лицензий подписочных тоже не люблю.

Причём тут это? Rider — это C#, а не C++.

Познакомьтесь с Rider for Unreal Engine.

Начиная с 2022.1 будет включён в состав Rider-а.

https://www.jetbrains.com/lp/rider-unreal/

Интересно. Я, конечно, слышал о том, что они хотели отказаться от зоопарка IDE под каждый язык. Но речь шла о Fleet.

Интеграция с MSDN? Да, помню такое, когда MSDN распространялся на дисках, был оффлайновым и доступен как справка из самой студии. Но зачем это нужно сейчас, кроме как в случаях, когда вы сидите в бункере и пишете под WindowsXP?


Насчёт остального: я пишу на C# и пользуюсь Rider, поэтому проблем не наблюдаю. С C++ же всё действительно сложно: Microsoft понаизобретала велосипедов, которых никто, кроме неё, не поддерживает.

Это ещё цветочки. Выше вон предлагают язык разработки поменять ради шрифтов. Моя вера разум комьюнити пробивает очередное дно.

Где такое было? Лично я намекал, что надо либо дизайнить свои велосипеды тщательнее, либо не жаловаться потом на надуманные проблемы.

НЛО прилетело и опубликовало эту надпись здесь

Я бы сказал с точностью наоборот. После них на VS работать просто пытка

Vs 2008 это же прям совсем древность, она и современным версиям уступает сильно.

Не в тему настройки 12pt шрифта, но я бы предложил укрупнить шрифт. Настолько мелкий шрифт может плохо влиять на зрение, а профит от упихивания большего количества текста в какой-то момент начинает с уменьшением размера шрифта расти незначительно. Большая часть того что вы видите 24/7 в IDE - это код, а его ширина не должна превышать по старым стандартам 80 символов (слышал что сейчас стандарт 100). С того момента как эти 80/100 символов, плюс-минус, влезают на экран - уменьшать дальше шрифт смысла особо нет. Все вспомогательные фреймы, которые есть в IDE помимо окна с кодом (дерево файлов, классов, окно дебага...) и которые можно иметь слева/справа от фрейма с кодом, имхо лучше держать скрытыми и вызывать по требованию, большая часть из них всё равно забирают фокус внимания на себя. Ещё лучше сделать монитор вертикальным и держать вспомогательные фреймы выше или ниже.

Я на 17" FullHD легко читаю даже шрифты с размером стройчной буквы 5x6 точек, а в IDE у меня свой шрифт с размером строчной буквы 7x7. Все, что крупнее, только занимает больше места, но не добавляет комфорта при работе.

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Тот факт, что никто не написал, что за Mono Lisa просят немало так вечнозелёных, по-моему, достаточно показателен :)

P.S. Windows 7 не позволяет поставить JetBrains в качестве шрифта для консоли. Расходимся, посоны.

Гугол вместо monolisa настойчиво предлагает monalisa font :D

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

Кстати да, почему никто не советуют Consolas? Единственное, что у него нет лигатур, какие у него минусы?

Мне не нравится прежде всего тем, что очень разрежен по вертикали, и в моем любимом 12-м кегле, на экране FullHD 17", он тонкий (в одну линию). Если выводить в кеглях 16 и больше, на экране с разрешением Retina - вполне годится.

P.S. А еще он растровый. VS, начиная с 2010, не умеют их для окна редактора. Ни одного внятного объяснения, почему, я не нашел.

Да, он действительно TTF. Но тонкий и сильно разреженный, мне неудобно.

Так много работаю в терминале, что пару лет назад переключил шрифт в Pycharm на Terminus и стало легче ориентироваться в коде. Такой вот UX :)

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

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

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

Может кто подсказать а такие "цветные" шрифты показывающие параметры и подгонку шрифта как на первой пикче можно где то найти?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий