TTF и другие «современные» системы шрифтов, а также различия в размерах шрифтов.

У меня нет формального (и немного неформального) образования в области графического дизайна.

Довольно известный специалист по компьютерным наукам доктор Дональд Кнут давно разработал систему описания шрифтов под названием Metafont . Само по себе это не очень интересно, но особенность Metafont заключалась в том, что шрифты можно было описать так, что создание «фактических» шрифтов (глифов в векторной форме) могло давать разные формы букв при разных размерах точек. Например, размеры с засечками могут меняться, или соотношение тонких и толстых шрифтов в римском шрифте может быть более драматичным при больших размерах точек и т. д. Таким образом, вы должны создать описание шрифта, а затем создать отдельные файлы шрифтов с различными размерами точек, которые будут использоваться для рендеринга. фактические документы.

Я здесь, чтобы подтвердить, что векторные форматы, такие как TrueType, OpenType или Type1 (на самом деле меня сейчас интересует только ttf), не имеют никакого способа сделать это. Чтобы быть более конкретным, я хотел бы подтвердить, что нет никакой практической разницы между выполнением одного или другого из этих двух действий, когда я добавляю некоторый текст к штриховому рисунку (в частности, SVG через Inkscape, но это будет в основном то же самое вопрос для иллюстратора и т.д.):

  1. исходя из контекста, выберите размер шрифта и создайте текстовый элемент так, чтобы он «родился» в нужном размере;
  2. создайте текстовый элемент произвольного размера, а затем измените его размер как общий объект, чтобы настроить его по размеру

Это, наверное, кажется безумным вопросом, но я только что понял, что это надоедливый «фактоид», застрявший в моей голове лет на 25, и я сразу же перестану беспокоиться.

редактировать — когда я говорю «изменить размер», я, конечно же, имею в виду изменение размера с сохранением исходных пропорций.

Ответы (3)

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

Концепция Metafont ненадолго и безуспешно всплыла в «мейнстримном» типографическом мире как шрифты Multiple Master (Adobe) и Quickdraw (Apple), но довольно быстро вымерла. Две технологии шрифтов, используемые в настоящее время, Type 1 и TrueType, не имеют способностей к изменению формы, о которых вы спрашиваете.

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

Однако меташрифты живы и здоровы в сообществе LaTex/TeX . Если у вас есть желание покопаться, вы можете задать вопрос на tex.SE или перейти по ссылкам на домашней странице проекта LaTeX. Некоторые из текущих пакетов TeX могут создавать шрифты Type 1 и/или TrueType из меташрифтов заданных размеров, которые затем можно использовать в Inkscape.

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

Подсказка тонко изменяет способ превращения контуров отдельных глифов в линии точек, так что конечный результат выглядит почти одинаково на экране, на лазерном принтере или на планшете с разрешением 2400 dpi. В старой статье Томаса Финни и в этом анекдоте из « Изнутри издательской революции » есть отличная историческая информация по этому вопросу . Книга, кстати, сама по себе отличная книга.

Как отмечает Скотт, хинтинг значительно улучшает отображение шрифтов на устройствах с низким разрешением (экраны, офисные лазеры и т. п.), где все точки имеют одинаковый размер и лежат в фиксированной сетке. Это был намек и некоторые другие блестящие инженерные приемы, встроенные в Postscript Type 1 (в частности, в то время, так что первые шрифты Linotype, лицензированные Adobe и встроенные в оригинальный Apple Laserwriter, выглядели бы правильно), которые, возможно, создали революцию в настольных издательских системах. Это позволило хорошей типографике стать чем-то, что можно было делать с недорогими компьютерами на устройствах, отличных от высококлассных фотонаборных устройств.

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

+1 за Розовый палтус. Новый солист нашей группы, Crushed Peony Boogers.
Это фантастический ответ. Спасибо! Я могу задать еще один вопрос по поводу обведенных (обведенных) форм и полузабытого (но только наполовину) трюка Illustrator для избавления от части штрихов, выходящих за пределы формы. Я пытаюсь вспомнить это, но это может свести меня с ума :-)

В 90-х годах мы немного повозились со шрифтами Multiple Master. Это были динамически генерируемые шрифты, которые масштабировали засечки, счетчики и другие данные типа в зависимости от размера шрифта. Multiple Masters был популярен в течение нескольких лет, но затем умер из-за проблем с другим программным обеспечением. Сегодня несколько мастеров не очень распространены и могут создавать проблемы для современных операционных систем. Несколько множественных мастеров используются в дикой природе. Если они и используются, то, как правило, в закрытых помещениях или только для внутреннего использования.

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

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

Для большинства применений нет заметной разницы между вашими №1 и №2 при условии, что шрифт был хорошо сконструирован и при выводе доступен хинтинг. Живой тип в большинстве приложений основан на векторах. Это означает, что математические уравнения, необходимые для вывода, пересчитываются на основе текущего размера экрана и разрешения устройства вывода, как только тип отправляется для рендеринга на устройстве вывода.

Правильно - так что в тот момент, когда я визуализирую SVG в растровый формат, пока я сохраняю тип как «тип» и не преобразовываю его в просто объект, у Inkscape, по крайней мере, есть возможность «сделать это правильно». ." Спасибо.
Подсказка шрифта предназначена для экранных растровых изображений, так что это не совсем то же самое, но это идея, по крайней мере, для достижения эффекта на экране. Что касается нескольких мастеров, то они были предварительно визуализированы, поэтому не зависят от динамических размеров шрифта.
@pointy... Я не думаю, что это сработает. Подсказка в первую очередь предназначена для рендеринга шрифтов небольшого размера на экране. По сути, это растр с низким разрешением, настроенный для этого конкретного размера. Однако при рендеринге Inkscape, скорее всего, игнорирует подсказки и вместо этого основывает все на векторной информации, что обычно и требуется. Если вы хотите сохранить хинтинг (если он существует... обратите внимание, что не все шрифты имеют информацию о хинтинге), вам придется сделать снимок экрана.
Подсказка для растрового вывода - растр может быть RIP или экраном. Нет разницы. Подсказки нужны не только для рендеринга на экране. @пойнти, да. Сохранение типа в качестве живого помогает в рендеринге при выводе, независимо от того, является ли этот вывод цифровым файлом svg или RIP с прямой печатью.
В последнее время хинтинг часто используется, как если бы он имел отношение только к экранам и объявлению @font-face для создания веб-сайтов. Правда в том, что хинтование шрифтов всегда было критически важным для офсетной печати цифровыми средствами. Чем лучше шрифты отображаются в растр, тем лучше результат.
@scott Я никогда не видел никаких упоминаний о нем, прежде чем он использовался для чего-либо, кроме как на экране. Но я полагаю, вы правы, его можно использовать для любого растрового вывода. Тем не менее, я не знаю, использовалось ли это когда-либо таким образом. У вас есть примеры?
Каждый используемый RIP лучше отображается с хинтингом. На самом деле хинтинг изначально был создан для лучшего набора процессов для фотонаборщиков. Еще во времена Illustrator 88 или AI3 и Photoshop 2 рендеринг на экране был ужасным, но вывод в фотонаборные устройства был великолепным. Это произошло потому, что сами приложения не использовали подсказки для рисования экрана, а только вывод. Я не буду вдаваться в длинную историю, но я начал работать в отрасли до 1984 года и видел, как цифровые инструменты растут и совершенствуются. Я помню, как намеки становились все более и более распространенными в середине-конце 80-х. Это было основной причиной смерти горячего типа.
Но дело в том, когда и как хинтинг эффективен? Если у меня есть файл SVG с текстовым объектом, какие рендереры обратят на него внимание? И о чем именно этот "намекает"? Вопрос, который я задаю, касается отдельных форм букв.
@pointy ... в настоящее время .. почти все рендеры будут использовать хинтинг, если он присутствует. Точный тест может состоять в том, чтобы использовать Arial с размером 6 пунктов и какой-либо другой шрифт, например Verdana, того же размера. Выведите их обоих. У Arial ужасный хинтинг с большинством стандартных версий. У Verdana есть много намекающей информации. Если, конечно, Arial обновляется и немного улучшается, но отсутствие хинтинга все еще можно увидеть довольно часто.
Подсказки помогают каждому персонажу рисовать лучше. Он указывает, в каком направлении должна быть проведена линия. Какие пиксели следует использовать, если путь попадает между пикселями, в каком порядке следует рисовать пути в стеке и тому подобное. (Это может стать слишком большим обсуждением для формата вопросов и ответов.)
@ Скотт Мне нужно больше копать. Но мое понимание намека на то, что он предназначен для растрового вывода с низким разрешением (экран, старые лазерные принтеры и т. д.), и что растровый вывод с высоким разрешением, естественно, будет использовать сами векторные данные. Наличие подсказок для вывода в высоком разрешении кажется противоречащим цели шрифтов, использующих векторные данные.
Вау, я думал, что это такой простой вопрос :-) Всем спасибо!
Скотт, можете ли вы указать какие-либо ссылки на намеки на вывод в высоком разрешении? Я не уверен, может ли это иметь какое-либо заметное значение, кроме нескольких сотен точек на дюйм. Я почти уверен, что видел этот вопрос на техническом форуме типофилов без ответа, но я могу ошибаться.
Вот довольно приличная статья о хинтинге или подгонке сетки для более высоких разрешений: antigrain.com/research/font_rasterization (обратите внимание, что растеризация отражается во всех растровых выходных данных. Это просто экран, который чаще всего используется и наиболее «подключается» к пользователю.
Хотя абсолютно верно то, что хинтинг или его отсутствие чаще всего наблюдается при низких разрешениях, хинтинг по-прежнему используется при более высоких разрешениях. Сдвиг на 1-5 пикселей едва заметен при 2400ppi. Это не значит, что его нет.
Я собираюсь начать другой вопрос по этому поводу.

Я не верю, что это особенность каких-либо популярных форматов файлов шрифтов. Тем не менее, это интересная идея. Как правило, шрифты, имеющие версии для разных размеров, будут иметь «экранную» версию для широкого использования. Но это отдельный файл шрифта.