Комментарии 29
Всё хорошо, но не хватает какого-нибудь примера на любом языке программирования как определить характеристики того или иного символа шрифта и строки.
Читаемость и простота выравнивания. Это особенно важно в языках, где для уровней вложенности используются отступы, типа Python.
Для уровней вложенности используют пробелы которые стоят вначале строки, а у них ширина одинаковая. А вот если форматировать однотипные команды колонками то всё разъезжается. Да и выделять мышью узкие символы типа 111111111111 lower(L)=llllllllllllllllllllllllllllllllllllllllllllllllllllllll upper(i)=IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII становиться не очень удобно. Да и текст в зависимости от шрифта разъезжается вправо по разному.
Но у всех моноширинных шрифтов есть один недостаток. Это юникод. В результате они не очень то и моноширинные получаются.
0123456789
??????????
??????????
??????????
??????????
??????????
0123456789
Еще примеры
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
???????ℎ??????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
????????????????????????????????
??????????????????????????
????????????????????????????????
??????????????????????????
????????????????????????????????
??????????????????????????
????????????????????????????????
??????????????????????????
????????????????????????????????
?ℬ??ℰℱ?ℌℑ??ℒℳ????ℜ????????
????ℯ?ℊ???????ℴ???????????
??ℭ????ℋℐ????????ℛ???????ℨ
??????????????????????????
??????????????????????????
??????????????????????????
??ℂ????ℍ?????ℕ?ℙℚℝ???????ℤ
??????????????????????????
⏻⏎⌨⌀
⬜⬛???
□█⣿
У вас разные шрифты – браузер их замещает, если какого-то символа нет в заданном шрифте. Поэтому и логично, они разные.
Большие и маленькие буквы тоже из разных шрифтов?
ABCDE |
abcde |
????? |
????? |
????? |
????? |
?ℬ??ℰ |
????ℯ |
АБВГД |
абвгд |
ΑΒΓΔΕ |
αβγδε |
あいうえお |
アイウエオ |
????? |
????? |
▚█▓▒░ |
▨▩▤▥▧ |
◧◨◩◪◫ |
▼◀▲▶◉ |
❶❷❸❹❺ |
➀➁➂➃➄ |
В разных редакторах и терминалах оно разъезжается по разному.
Hidden text





Большие и маленькие буквы из пропорциональных шрифтов, поэтому и разной ширины. Ваш пример у меня рендируется вот какими шрифтами. Сами можете проверить какие из них пропорциональные и какие моноширинные:
DejaVuMathTeXGyre-Regular
DejaVu Sans
DejaVu Sans Mono
Liberation Mono
NimbusMonoPS-Regular
Noto Sans Mono Regular
Source Han Sans CN
Twemoji Mozilla

Пиши код! ?
Если честно, с годами просто ставлю Consolas везде. Меньше выбора – больше энергии.
написали 4 абзаца про похожие буквы но не упомянули про l, 1, I
и O и 0
Большинство шрифтов по умолчанию уживаются с латиницей, но мы часто пишем комментарии на русском языке
Как человек разбиравшийся и в коде откомментированом по-немецки и в коде откомментированом по-японски, слёзно ваш прошу, пишите все комментарии только по-английски и только ascii-символами. Те кому достанется код после вас, скажут вам спасибо.
Лигатуры. В некоторых шрифтах соседние символы автоматически объединяются в один.
Может, в редакторах, а не в шрифтах?
Может, в редакторах, а не в шрифтах?
нет, все-таки в шрифтах. если в шрифте нет лигатур, редактор сам их не добавит.
(правда, если редактор не поддерживает подобные фишки, лигатур тоже не будет)
Не представляю, как код, который я пишу на работе, попадёт к человеку, который не читает по-русски.
Если я буду писать по-английски, то за мной начнут охотиться. Читать-то я более-менее могу, но вот писать…
Давайте попробую: "If I will write in English, it will cause to hount me. I can read somehow, but not write".
Вам при программирвоании хочется, чтобы побольше строчек кода влезало на экран.
Поэтому предпочтительнее более "низкий" шрифт (разумеется при одинаковых параметрах "разборчивости" и вообще "удобства").
С шириной таких проблем обычно нет.
Ровно обратные ощущения - хочется шрифт с пропорциями повыше и поуже, чтобы по ширине в поле зрения больше символов захватывать. Высота, конечно, тоже существенна, но она подстраивается выбором комфортного кегля, а ширина будет какая получится. Поэтому популярны специальные зауженные шрифты типа Iosevka и PragmataPro (последний, кстати, весьма недешевый).
Высота, конечно, тоже существенна, но она подстраивается выбором комфортного кегля,
Точно так же как и ширина - КМК это лишнее, не относящееся к теме обсуждения.
По существу важно только, что выбрать для примерно одинаково различимых шрифтов:
1. поуже \ повыше
2. пошире \ пониже
Я всегда выбираю второе, т.к. на практике очень раздражает (утомляет и замедляет работу), когда какая-то часть нужного кода не влезла на экран и приходится скролить.
По горизонтали (а это особенность современных 16:9 мониторов) весь код влезает, по вертикали часто нет.
Courier —наше всё.
Он на винде современной супертонко выглядит. Раньше (2000-е), когда разрешения были малыми, только его и использовали. А теперь Consolas лучше справляется с регулярной читаемостью.
Зачем чего-то выбирать, если есть Consolas?
Критерий на самом деле один, всё остальное вода.
Главное чтобы шрифт нравился, остальное суета.
Как выбрать шрифт для кодинга