Обновить

Представлен открытый нео-гротескный шрифт Nordwand-Mono, разработанный для программирования

Время на прочтение2 мин
Охват и читатели97K
Всего голосов 57: ↑55 и ↓2+64
Комментарии77

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

Спасибо...

Судя по его очертаниям, вполне можно ещё и этому спасибо сказать: Ioskeley Mono — «перепевка» коммерчески доступного Berkeley Mono, а тот, в свою очередь, как по мне, заметно зиждется (вот я слово вспомнил — кто-нибудь в словари полезет?) на Terminus.

Ключевое слово "коммерчески доступного "... Подобные шрифты безблагодатны! Там не за что готовить "Спасибо". Плати деньги и пользуйся...

Но Ioskeley Mono — бесплатный. 🤷‍♂️

За Berkeley Mono я благодарить (как и покупать, вообще-то) не призывал.

Впрочем, непонятно и почему дизайнеру ✌️безблагодатно✌️ зарабатывать на своём творчестве.

В конце концов фраза "Shut up and take my money" уже давно здесь.

В отличие от коммунизма.

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

Я правильно понимаю, что речь про Мицгола? Вроде он здесь есть.

Давно не слышно...

Сколько не ставил себе на IDE модные моно шрифты, через день-два все равно возвращался на Consolas, а так, да, интересно

Воистину, самый чёткий и приятный глазу шрифт. При этом он компактный – на стандартном 10-м размере кода помещается больше чем на модных-молодёжных, можно конечно для них уменьшать размер шрифта, но как мне кажется они менее чёткие становятся. Я ещё обогатил его лигатурами (https://github.com/ofolis/consolig), стало шикарно

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

Историю коммитов хоть бы открыл

Я тоже несколько лет так игрался... Пока не поставил Fira Code (Retina). Вот теперь Consolas кажется уродливым и неудобным.

Из-за лигатур? Если сделать себе нормальную типографскую раскладку со всякими →, не видно, где глиф юникодного символа, а где лигатура.

За что вы любите лигатуры, не очень понимаю? есть какое-то объяснение? А то, я может быть шрифты не так использую как-то, что мне вообще неясно, зачем они нужны, можно и без них. (особенно в моноширинных)

Вы, наверно, не поняли. В моём комментарии → это глиф символа U+2192. Поэтому мне лигатуры в коде и не нужны, с ними труднее будет визуально отличить → от ->. В других ситуациях я их не то, что люблю, но иногда использую.

Символ → и много остальной типографики я набираю из кастомной раскладки, а не через Alt + код или Win + V. Для меня это так же просто, как напечатать ->. По этой причине и по причине сниженного порога отвращения ко всему уродскому, я как-то долго пытался слепить из → альтернативный синтаксис для лямбд в C++ без return. Узнал, что в Юникоде есть буквоподобие, которое используется авторами стандарта. Вот так:

const int π = 3;

сделать можно, а вот так:

#define →(expr) -> decltype(expr) { return expr; }
auto square = [](auto x) →(x * x);

нельзя. Символ → не буква.

Символ → и много остальной типографики я набираю из кастомной раскладки, а не через Alt + код или Win + V. 

Подождите, пожалуйста. Чуть помедленнее.

Как. вообще, можно набирать символы? Про Alt + код  я слышал ещё с детства. Сейчас приходится использовать Alt + 0151 , чтобы получить m-тире ("—"). Знать бы ещё, как получить таким же образом угловые кавычки. Что такое Win + V? И что такое лигатура (в данном контексте)? Можно подумать, что это такое сочетание соседних символов, которое автоматически преобразуется в нечто иное.

Как. вообще, можно набирать символы?

Стандартный путь: скачать Microsoft Keyboard Layout Creator (MSKLC) Version 1.4 и сделать свою раскладку. Можете назначить символы на сочетания клавиш с Ctrl, Shift, AltGr (правым Alt) и их сочетаниями. Для каждого языка (английский, русский) нужна отдельная раскладка, где обычные символы соответствуют этому языку, а расширенные… Допустим, символы с ударениями и кавычки (“”, «») я делаю разными для разных языков (чтобы они соответствовали своему языку), а остальную типографику (стрелки, иконки и пр.) — одинаковой для всех. И точку на нампаде можно сделать тоже всегда точкой, в т.ч. для русского.

Совет: используйте для часто используемых символов комбинацию с AltGr. После этого для выделения текста квадратиком и т.п. надо будет пользоваться строго левым Alt. Это потому, что сочетания с Ctrl многие программы предпочитают обрабатывать сами, и не имеют настройки хоткеев. Конечно, это повод не пользоваться такими программами, но всё-таки.

Сделали раскладку на основе импорта из стандартной, дали ей в настройках имя, включающее версию (MyLayout01), сохранили как проект для будущих исправлений, собрали, получили .exe’шник инсталлятора, запустили и установили, в настройках виндов выбрали для данного языка свою новую раскладку, стандартную убрали. Если нашли ошибку в раскладке и хотите переделать, то сначала те же действия в обратном порядке (это ВАЖНО): добавили для языка ранее убранную стандартную раскладку, назначили её по умолчанию для языка, свою раскладку удалили, зашли в настройки винды Programs, нашли и деинсталлировали раскладку.

Стандартный путь ограничен набором символов из Basic Multilingual Plane (BMP). Символ за пределами этого диапазона повесить на сочетание клавиш невозможно, что, на самом деле, неприятно, потому что, например, эмодзи цветных квадратиков, удобных для рабочей документации (быстрые пометки для себя, а не для рендеринга .md → .html), так не ввести. Это архитектурное ограничение виндов. Хотите его обойти — ставьте, например, движок https://keyman.com.

Что такое Win + V?

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

И что такое лигатура (в данном контексте)?

Это в любом контексте одно и то же. Посмотрите на картинки тут:

https://github.com/tonsky/firacode

Шрифт это программа, и она поддерживает условия, например, «если символы - и > являются соседними, отобразить их как →». Для моноширинной гарнитуры, коей является Fira Code, такая стрелка будет шириной в два символа.

Визуально приятнее. В отличии от символов юникода, лигатуры по размеру не сильно отличаются от их содержимого. Т.е. в юникоде ⇔ по ширине как 1 символ, в лигатурах же он по ширине почти как 3 символа.

Сверху юникод, снизу <=> с лигатурой
Сверху юникод, снизу <=> с лигатурой

А как получить такие стрелочки?

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

Потому что с ними код выглядит гораздо лучше, аккуратнее, академичнее.

Пока не поставил Fira Code

спасибо за наводочку! поставил. прикольно.

Спасибо. Похож на Cascadia Code, которым пользовался, но более пропорциональный и четкий.

Cascadia моя любовь. Но Consolas тоже неплох. И Ubuntu в крайнем случае. Мне важно чтоб текст глаза радовал, не просто читать, а еще и любоваться.

+

с первого взгляда

Пробовал Consolas и ещё всякое разное, остался на Lucida Console.

Consolas на windows существенно лучше выглядит, сколько я не старался его тюнить на Linux

Буквально вчера вернулся на Consolas))

Consolas

У него лигатур нет. Нет, можно и самому добавить, что я когда-то и сделал, уже не очень помню, как. но таки ушел на Cascadia Code.

Maple использую давно, вроде присмотрелся.

Вещь богоугодная, но в целом на Маке дефолтный Monaco вполне хорош.

Я с него на Cousine когда-то перешёл, и прям прекрасно.

Красивое, навевает воспоминания о шрифтах 5x8 для восьмибитных домашних компов. Только зачеркните ноль по-человечески, кто вообще придумал этот "ноль с точкой"?

Впервые встретил это у MS... хотя, очевидно, знакогенераторы в видеокартах тогда были встроенные

На мейнфреймовских терминалах 3270 был ноль с точкой. Хотя на принтерах перечёркивался.

Закинуть .ttf в /usr/share/fonts (или в ~/.fonts для локального пользователя), и обновить кэш (fc-cache -f -v ). Ну, если это кажется слишком лёгким путём, то, видимо, качать исходники и запускать makefile)

Да дело в том, .ttf сперва нужно сгенерировать, его нет в репозитории, о чем и был вопрос. В примере сборка под Mac. В архиве куча питоновских скриптов и какой-то шрифт Kassiopea, возможно, образец или исходник.

.ttf сперва нужно сгенерировать, его нет в репозитории

Он в релизах.

В репозитории его и не должно быть.

установить менеджер шрифтов:

открыть, и выбрать там нужный ttf / otf файл.

Как его собрать под Линуксом?

Я его и под Виндой так и не смог собрать.

Нужен Питон! - Ладно, вот тебе Питон.

Нет такой-то библиотеки! - Ладно, вот тебе pip install библиотека (повторить 10 раз).

Нет booleanOperations! - Ладно, pip install booleanOperations.

Failed-wheel-build-for-install! - Тебя-кто-говорить-учил, убогий? ЧатГПТ, почему booleanOperation не ставится? Потому что она написана на C++? А готовый бинарник не ставится, потому что у меня Питон слишком новый? Да к черту этих программистов и лошадь, на которой они приехали. FontForge, открыть фонт, скопировать глиф "перечеркнутый ноль", вставить в позицию "точечный ноль", сгенерировать фонт, сохранить.

Месье знает толк)) Там в релизах готовые ttf, скачиваешь, открываешь, "установить шрифт"...

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

Ооо, там ведь есть Readme, Makefile и pyproject.toml:
```
winget install astral-sh.uv
winget install ezwinports.make # необязательно, можно напрямую использовать uv и python
make install / uv sync
make build / uv run python -m ... /
```
Если нужен прям wheel: `uv build`.
Если не хочется использовать uv, тогда по старинке:
venv; pip install -e .; python -m итд.

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

Hack / Jetbrains Mono / PT Mono - для кода и формального вывода с учётом знакомест
Merryweather / PT Astra Serif / PT Serif - с засечками
Arial / Go / Fira Go Book / Fira Sans - без зачечек
PT Root UI / Yandex / Go - для утилитарных надписей (не полезный контент)

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

Когда-то поставил https://github.com/tonsky/FiraCode/ так и стоит.

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

Всё крутится вокруг чертежных шрифтов:

Быстрая рыжая лиса прыгает через ленивую собаку.

Это как идиоматические выражение переводить. Оригинал фразы использует все буквы латинского алфавита, вариант на русском: “съешь ещё этих мягких французских булок, да выпей [же] чаю”

Эй, жлоб! Где туз? Прячь юных съёмщиц в шкаф.

Классика без повторов букв

Самый интересный моноширинный шрифт для меня это Epson Script, встроенный в 24-игольчатых матричных принтерах. Там есть даже некоторое подобие лигатур. Недавно встретил этот шрифт в 9-игольчатом принтере Citizen, в NLQ он выглядит вполне приемлемо. Но к сожалению, кириллического Script я ещё не видел, и по всей видимости, такого не существует.

Пожалуй, продолжу сидеть на Consolas

Лично мне не нравится слишком загогулистая латинская " l " (л).

И еще, выражение "The quick brown fox jumps over the lazy dog" призвано показать все буквы алфавита, переводить её дословно на русский для демонстрации кириллицы довольно глупо, есть же канонические "мягкие французские булки" )))

Зато не приходится объяснять, что " l " это (л), а " I " это (ай), и это ещё повезло, что " 1 " с "клювом", а то и её пришлось бы уточнять

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

Cascadia Code в Konsole уже давно стоит, очень нравится.

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

Она как раз там в нескольких ипостасях же. Всякие CaskaydiaCove и тп.

швидка руда лисиця...

а нафига вы зарубежную рыбу-то использовали? для кириллических шрифтов "съешь ещё этих мягких французских булочек <..>" же используют. Сколько там тех букв в этом вашем переводе не нарисовалось.

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

UPD автор шрифта видимо не в курсе нафига панграмы нужны и что они отличаются для разных языков - скриншоты взяты напрямую с репы. туда же и серая нечитаемая тема

Понимания дела - ноль, зато новостники растащили по миру.

Есть ещё Sometype Mono, но там нет поддержки кириллицы. На гитхабе есть запрос для добавления кириллицы, но автор не отвечает.

главное, чтобы агенту нравилось

IBM Plex
Там все семейство на мой глаз отличное!

Я перепробовал кажется уже всё, что можно. И вернулся к JetBrains Mono в разработке (пока что), FiraCode для терминалов. Очень неплох Droid Sans. Безумно нравится Lab Grotesque (обычный и моно), но штука платная...

Но! Для того, чтобы наслаждаться современными моно шрифтами на тёмном фоне - нужен монитор с высоким PPI (4К или Retina). Что я только не пробовал на "классическом" 1920*1080 27" - артефакты рендеринга портят примерно всё. Там Consolas / FiraCode вне конкуренции.

Шрифты, в которых не различить ОO0° ×хx гr l1I| –-— 1¹2² суть богомерзки.

Изобретателям в аду набирать пароли этими знаками.

На вкус и цвет все фломастеры разные, комменты собрали почти все, мне вот почему-то PT Mono нравится, какой-то он более "курьерный" и воздушный, что ли, вот если их сравнить:

Кстати, с точки зрения фонтостроения в Nordwand всё не то чтобы плохо, но простенько так. По идее в глифах не должно быть острых краёв, вот сравните N, в PT Mono там всё чуть хитрее устроено, острый угол сглажен и диагональная штрих, как и стойки, с небольшими перегибами:

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

UPD. Хотя посмотрел, удивился — там реально из Питона всё выгоняется, вот N.py:

        # Vertical stems
        draw_rect(pen, b.x1, b.y1, b.x1 + sx, b.y2)
        draw_rect(pen, b.x2 - sx, b.y1, b.x2, b.y2)

        # Diagonal
        theta, delta = draw_parallelogramm_vertical(
            pen,
            sx * self.middle_stroke_ratio,
            sy * self.middle_stroke_ratio,
            b.x2 - sx,
            b.y1,
            b.x1 + sx,
            b.y2,
            direction="top-left",
        )

Я такого не видел раньше, как-то всё больше по.старинке, в Фонтлабе.

Может, сам шрифт нейронкой деланый тогда?

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

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

Публикации