Какой размер шрифта переводится точно?

81

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

PearsonArtPhoto
источник
в шрифте у нас есть терминология высоты х, вы говорите об одном и том же ??
Джек,
5
Если вы печатаете документ, обычно используется размер шрифта 12. Что означает 12?
PearsonArtPhoto
12 = тип 12pt (обычно)
DA01
взгляните на w3.org/Style/Examples/007/units.en.html#font-size
Джек,

Ответы:

67

Это отличный вопрос, на который есть довольно неудовлетворительный ответ.

Размер шрифта, заданный в пикселях, точках (1/72 ") или миллиметрах, представляет собой высоту квадрата em, невидимого прямоугольника, который обычно немного больше расстояния от самого высокого восходящего элемента до самого нижнего.

Учитывая, что это несколько произвольная мера, которая

  • зависит от точного технического дизайна шрифта
  • невозможно точно измерить по распечатанному или растеризованному образцу

это не очень значимо или полезно, кроме как в качестве приближения.

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

e100
источник
49

Время ASCII! Представьте, что две коробки ниже - это кусочки свинца, начиная с 1900 года или около того. В то время гарнитуры были отлиты из свинца (или из дерева). Для того, чтобы тип был установлен в блокировку печати, они должны были быть соединены со сплошными блоками. Вот откуда берется измерение типа (в точках):

+--------------+  +-------------+  <----+
|              |  |             |       |
|      XX      |  |             |       |
|     X  X     |  |             |       |
|    XX  XX    |  |             |       |
|    XX  XX    |  |     X       |
|    XXXXXX    |  |    X X      |   Point size of the type
|   XX    XX   |  |    XXX      |
|   XX    XX   |  |   X   X     |       |
|  XX      XX  |  |   X   X     |       |
|  XX      XX  |  |             |       |
|              |  |             |       |
+--------------+  +-------------+  <----+

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

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

Измерение типа в пикселях не работает из-за этого, однако, вы можете «установить» тип в пикселях в CSS и т.п. Браузер делает перевод как можно лучше между объявленным размером px. Но это всегда нечеткая оценка.

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

DA01
источник
На вашем компьютере вы вычисляете количество очков в пикселях следующим образом: PX = очки * SystemDPI / 72. DPI в мире видео (монитор) - это произвольное значение, введенное Apple в 1984 году. Видеоустройства используют только пиксели; DPI не существует в мире видео / изображений. Современные шрифты основаны на этой концепции, где 1 точка, 1/72 определяется как 1/72 дюйма.
5
@AbdiasSoftware Да, 1 очко было усреднено до 1/72 дюйма, а у первого Mac был экран с разрешением 72 ppi. Но не уверен, что это имеет отношение к заданному вопросу или ответу, который я дал. Факт остается фактом, что шрифты, будь то цифровые или аналоговые, имеют ограничивающий прямоугольник, и этот ограничивающий прямоугольник соответствует размеру.
DA01
41

«Размер шрифта» шрифта относится к «высоте» шрифта, которая не обязательно совпадает с высотой отдельных символов в шрифте.

Обычно высота шрифта соответствует одной и той же основной идее - она ​​будет приблизительно установлена ​​на расстоянии от самого нижнего спуска (например, нижней части буквы g) до самого высокого спуска (например, верхней части буквы h):

Как видите, ни одна из отдельных букв не охватывает весь этот промежуток.

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

Теперь, многие современные шрифты также включают в себя ударения на заглавных буквах (например, Ć) - эти акценты выходят за пределы традиционного типографского алфавита, и, таким образом, эти (и, возможно, другие специальные символы) выходят за пределы «em». По историческим причинам мы не корректируем размер em, чтобы разрешить это, мы сохраняем размер em и просто расширяем его - любой типограф, использующий такие акценты, должен убедиться, что у них есть место для расширения, хотя обычно межстрочный интервал адекватен в основном тексте.

Разрыв строки в тексте есть пространство , оставленное между спусковой одной строкой текста и надстрочным линии под ним - то есть, «размером шрифта» не включает в себя это измерение линии разрыва. На это может влиять поле CSS line-height, где1.4означает, что разрыв строки в 0,4 раза больше высоты em, и, таким образом, вся строка основного текста будет в 1,4 раза больше высоты em, включая разрыв строки. В других приложениях разрыв строки может быть задан по-другому: текстовые процессоры часто задаются в терминах, кратных «одинарному» межстрочному интервалу, но в отличие от CSS, обычно «одинарный» интервал не означает отсутствие пробела, а некоторую строку «по умолчанию» промежуток, когда приложение пытается найти значение по умолчанию на основе метаданных в файле шрифта. Существует несколько стандартов для определения метрик в шрифте (например, в Truetype, существуют разные стандарты Mac и Windows / OS2), поэтому разрыв по умолчанию может различаться в зависимости от приложений и операционных систем.

Теперь, даже если дизайнер делает в соответствии с предсказуемой конвенцией по их высоте эм, это еще не говорит вам размер заглавных букв (капсюль-высота) или размеру говорить с o(х высотами или средней линии) , так как они могут варьироваться свободно между шрифтами по отношению к высоте восходящего элемента. Хотя в семействе шрифтов они обычно будут согласованными. Так, например, Times New Roman Bold и Times New Roman Regular будут иметь одинаковые размеры символов для одного и того же размера em, которые должны включать восходящие, спусковые, cap-height и x-height.

thomasrutter
источник
2
Да - существуют соглашения (например, em находится снизу от «g» до «h»), но все равно есть разница, и форматы шрифтов вообще не удерживают дизайнеров в этих соглашениях.
Томасруттер
7

Попробуйте ввести символ вертикальной черты ('|') и измерить это. Если я правильно продублировал вашу ситуацию, а сглаживание не слишком размыло, это должно быть 22px.

22px представляет высоту блока типа. Но каждый персонаж заполняет блок по-своему. «G» или «q» будут занимать нижнюю область этих 22px, тогда как заглавные и строчные буквы, такие как «b» или «d», будут занимать верхние части. '|' это одна из единственного (если не только) символа , который будет полностью заполнить 22px пространство.

Я не знаю, как сравнить с вашими настройками CSS, но это объясняет, как Photoshop интерпретирует высоту текста.

Brendan
источник
1
Кроме того, вы можете установить два шрифта одинакового размера, и вы часто будете видеть, что буквенные формы сами по себе не являются. Они просто имеют одинаковый размер блока.
DA01
3
Труба не всегда заполняет все отведенное пространство. Это просто предпочтение дизайнера шрифтов. Он часто совпадает с верхом по возрастанию и по низу по убыванию, но даже в этом случае пространство, отведенное для персонажей, может быть еще больше.
DA01
2
Символ вертикальной черты не всегда равен размеру em (например, «полная высота») шрифта, нет. На самом деле обычно это будет меньше.
Томасруттер
2
Вертикальные символы рисования прямоугольников должны теоретически покрывать всю высоту em (и, вероятно, перекрывать ее на небольшое количество). Но очень немногие шрифты включают эти символы. Обычная вертикальная черта ( |) обычно НЕ равна размеру em. Он даже не делает это в основных шрифтах Microsoft (Arial, Georgia и т. Д.).
Томасруттер
2
Символ вертикальной черты не заполняет всю высоту. Акценты для заглавных букв, например, «Á», расположены выше. Сравните себя: "А" "|"
Znq
0

Вы уверены, что ваш шрифт измеряется в пикселях? Большую часть времени шрифты измеряются в точках. Точка составляет 1/72 дюйма. Таким образом, шрифт 40 pt имеет высоту 40/72 "или 5/9". Кикером является то, что это измерение от вершины восходящих на высоких буквах до нижних от спусковых на буквах, которые висят ниже базовой линии. Вот почему иногда используется высота х, как упоминалось выше. Это высота строчных букв, которые не торчат вверх или вниз.

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

Бенни Андаец
источник
Но очки имеют отношение только к физическому типу (печатные, резные, гравированные и т. Д.).
e100
Не совсем правильно. Тип измеряется не от верха восходящих элементов до нижних, а скорее от ограничивающего прямоугольника, который может соответствовать или не соответствовать высоте восходящего / спускового устройства. Это восходит к временам типа свинца и дерева, где тип был помещен на блок. Именно высота этого блока определяла, какой размер был помечен как тип. Таким образом, два шрифта, каждый из которых установлен на 12pt, могут иметь очень разные размеры по сравнению друг с другом. (Я не буду
вдаваться