Итак, мне нужно было создать текстовое поле.
С кем не бывает. Это было нужно и нужно, но сразу возник вопрос: под какие шрифты заточить? На самом деле в нашем (с моей точки зрения) компьютерном мире известны два варианта: моноширинные шрифты и пропорциональные шрифты.
Внезапно проблема выбора превратилась в головную боль.
По одной причине: моноширинные шрифты придают тексту дополнительное свойство, которое можно назвать геометрическим: поскольку все буквы имеют одинаковую ширину, то (это плоды определенного количества исследований и издевательств над пользователями, возможно, факты известны и очевидно, но мы ничего не смогли загуглить, поэтому раньше всё дошло самостоятельно) 1. в тексте появляется понятие столбца символов, и вообще текстбокс становится двухмерным, и в нем можно делать очень простое форматирование текста: всякие шестнадцатеричные дампы форматируются простыми табами.
И очень простая навигация, типа: нарисовать картинку по координатам (знакомство 0, 10).
2.0. облегчает выделение текста мышью.
Когда происходит щелчок по координатам внутри текстового поля, гораздо проще вычислить, в какой строке приземлился этот щелчок.
Там, конечно, будут проблемы с определением того, где в памяти начинается нажатие, потому что текст, естественно, в utf8, но в случае с пропорциональными шрифтами к этому добавляется ресурсоёмкая головная боль, связанная с тем, что также необходимо понять, на каком символе строки был нажат пользователь.
2.1. Гораздо проще перейти к моноширинному i, чем к пропорциональному.
3.0. легче читать.
Что бы ни говорили поклонники новых романов, когда двухбуквенное слово может выглядеть длиннее четырехбуквенного, это несколько замедляет скорость восприятия информации.
Кроме того, возникают трудности с распознаванием порядков номеров.
Когда 110 может быть короче 100, мозгу сложно это оценить.
Собственно, с психологами на этот счет было проведено несколько экспериментов.
3.1. анимация.
Часы, нарисованные как 05:40:47, при замене одного символа не будут дергаться и менять свою ширину, что является меньшей неожиданностью для мозга, чем дергание при смене 0 на 1 в какой-нибудь Тунге.
3.2. легче сравнивать тексты.
Например, две суммы md5. Нет, конечно, можно и автоматически, но иногда лень запускать программу, а потом смотришь на столбцы символов и готово.
шестнадцатеричные файлы легче читать.
Можно, конечно, упорядочить все по принципу Excel, записать в столбцы длинные байтовые комбинации нужных, добавить туда адреса и так далее.
Но увидеть необходимые закономерности в таких распечатках оказывается гораздо сложнее, чем в моноширинных распечатках, отформатированных табуляциями и пробелами.
Хотя, возможно, свою роль в этом эксперименте сыграло профессиональное заболевание — испытуемые были программистами.
3.3. при редактировании текста нет непредсказуемых скачков со строки на строку, все вполне ожидаемо: стер одну букву, длина слова уменьшилась на одну единицу, добавил одну - и длина увеличилась на единицу.
Не бывает так, чтобы букву z убрали, слово перескочило на строку вверх, добавились две ii, а слово не вернулось на строку вниз.
Большая предсказуемость также разгружает мозг.
4. Я бродил по разным алфавитам.
Конечно, я их не все видел, но все распространенные прекрасно вписываются в моноширинные ячейки.
Это, в общем-то, понятно; ставить смысл буквы в зависимость от ее размера негуманно (в том смысле, что люди все разные).
Более того, японские и китайские иероглифы, похоже, должны быть моноширинными, поскольку текст нужно писать как вертикально, так и горизонтально.
В целом, на мой взгляд, у моноширинных шрифтов много преимуществ, а единственный недостаток – нельзя написать маленькие буквы на экране так, чтобы это было читабельно и красиво.
Например, шрифт с высотой заглавной буквы о в 3 пикселя с кириллицей вряд ли получится, потому что букву s вы впихнете в 3х3. С другой стороны, кому это нужно? Более того, на современном полиграфическом оборудовании все векторное, и можно уменьшить его даже до тысячных долей дюйма; вы не можете сделать его слишком маленьким.
А на экране 3х3 никто не читает. Но с другой стороны, есть такой человек, как дизайнер.
По его мнению, шрифты — это такие полигоны (ну, они, конечно, не совсем полигоны, но в конце концов из сплайнов в них превращаются, ср.
freetype), которыми можно рисовать, описывая картинку последовательностью букв.
А полигоны вообще могут быть совершенно разные, хоть смайлики, хоть целые (о TeX-подобии речь не идет, потому что нечто похожее на него прекрасно работает с моноширинными шрифтами.
Потому что раньше математические статьи печатались на пишущих машинках, а формулы писались).
входил с рук - действительно было очень удобно форматировать, рисовать знаки и подписывать графики.
По отзывам ветеранов).
А поскольку буква может быть любой, то разработчики не имеют права делать текстбокс усиленным с учетом знаний о моноширинных шрифтах, хотя усиление и ускорение могут быть существенными.
ЭИКС.
Это такая грустная история.
Придётся повозиться с прокруткой, с пометками на длинных строках, с выделением мышкой и прочими прелестями.
Нам остается только утешить себя тем, что текстбокс сможет рисовать линии не только из букв, но и из любых векторных фигур, если они правильно описаны в каком-нибудь самодельном баге (кстати, долой патенты :) .
В итоге мы пришли к компромиссу: текстбокс не будет рассчитан на моноширинные шрифты, но первый шрифт, который эти чертовы дизайнеры для нас сделают, должен быть моноширинным.
В конце концов, нам нужно посмотреть шестнадцатеричные дампы.
Но если за вами не такая капризная публика, то можно задуматься о преимуществах моноширинных шрифтов.
Прежде всего, они обеспечивают двухмерность, ascii-арт, столбцы символов, предсказуемые изменения текста при его редактировании и прочие прелести.
Подумайте об этом и не записывайте такие шрифты как бесполезный пережиток прошлого.
P.S. А что означает загадочная фраза С.
Джобса: «Если бы я забросил курс каллиграфии, то, возможно, на Маках вообще не было бы моноширинных шрифтов»? Теги: #моноширинные шрифты #пропорциональные шрифты #Чулан
-
Simpoll: Опросы И Тесты Для Вашего Сайта
19 Oct, 24 -
Первое Заседание Клуба Инноваторов В Москве
19 Oct, 24