6

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

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

Кто-нибудь пробовал это раньше или знает о каких-либо проектах, которые пытаются это сделать? В частности, я хочу использовать шрифты в VIM и iTerm2 на OS X.

5 ответов5

6

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

Вы не читаете код, как вы читаете текст. Один в основном вертикальный, другой в основном горизонтальный.

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

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

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

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

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

Чтобы закончить, вы можете на самом деле установить шрифт Vim на некоторый пропорциональный шрифт, вот как он выглядит с Helvetica Neue в 12 px:

Скриншот
    (Нажмите на изображение, чтобы увеличить)

и тот же файл с Inconsolata-dz в 12 px:

Я думаю, что эти скриншоты говорят сами за себя.

2

Я использую модифицированный SciTE (windows), который использует Scintilla (переносимый из исходного кода) и переключился на пропорциональный шрифт после многих лет в качестве монопространственного вентилятора. Текст более компактен (и приятен для глаз, особенно для длинного имени класса), поэтому редко нуждается в переносе строк. Вертикальная линейка поддерживается с помощью табуляции, которую я определил как количество пикселей. Добавив подпрограмму 'tabify' и используя небольшую ширину табуляции (около 3 пробелов), вы можете аккуратно выстроить любой блочный код: не только в начале строки, но в многостолбцовой структуре или в несколько строк #define Подвох в том, что ваш код выглядит плохо в другом редакторе, и вы должны переформатировать коды других людей.

0

Терминальные программы позволяют мне устанавливать любую гарнитуру, не только моноширинную. Я думаю, я мог бы привыкнуть к этому!

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

-1

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

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

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

-1

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

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

Но это на стороне Windows. Не знаю, как OSX отображает шрифты TrueType, но я готов поспорить, что это причина того, что не все шрифты доступны, кроме целого. Поддерживает ли он каждый символ?" вещь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .