Предположим , что у меня есть шрифт в скромно популярном формате ( .ttf
, .otf
и т.д.), и у меня есть законные права на изменение его. В его нынешнем виде это обычный шрифт с разными символами (глифами?), Различающимися по ширине и расстоянию. Как мне превратить указанный шрифт в моноширинный шрифт (например, все символы имеют одинаковые размеры и т. Д.)?
Если возможно, есть ли автоматизированные инструменты, которые могут сделать некоторые догадки для вас? (Результаты не обязательно должны быть идеальными .) Шрифт может быть большим (много символов), и редактирование может быть утомительным.
Любые предложения по проблеме очень ценятся! :)
Отказ от ответственности: извините, если это считается простым практическим заданием , но у Google очень мало информации по этому вопросу, и для программиста, который не имеет дело с графикой или шрифтами, это точно не просто . Кроме того, извините, если моя терминология выключена ...: P
Ответы:
Если у вас еще нет программного обеспечения для редактирования шрифтов, хорошая новость заключается в том, что Fontforge является бесплатным и открытым исходным кодом. Плохая новость заключается в том, что у него относительно высокая кривая обучения и несколько необычный пользовательский интерфейс.
По сути, чтобы шрифт считался моноширинным, каждый глиф должен иметь одинаковую ширину, вплоть до одинакового количества единиц. Это включает даже глифы, которые обычно должны быть нулевой или определенной ширины (например, пробелы em, тире em и т. Д.).
См. Раздел часто задаваемых вопросов "Как пометить шрифт как моноширинный?"
Чтобы на самом деле редактировать ширину всех глифов одновременно в пакете, вы можете просто зайти в меню «Метрики» -> «Установить ширину», но я не ожидаю, что это будет работать для всех символов. Вам, вероятно, придется вручную редактировать все широкие символы, такие как «W», «M», «@» и т. Д., Чтобы они не перекрывались. А при объединении диакритических знаков (акценты, которые должны быть «объединены» с буквами во время рендеринга), могут быть испорчены все их позиции (что трудно проверить, если вы американец / англичанин и почти не используете их).
Человек, который знает, как создавать и редактировать шрифты, сможет выполнить эту задачу, но все равно это будет непросто.
источник
Set Width
подMetrics
ниспадающего меню: установить все глифы одной средней ширины (изменить позже , если это необходимо) и , наконец, выбратьEqualise Sidebearings
также поMetrics
меню центрировать глифы в эм-квадрат. Конечно, изучите, как другие преодолели трудности, связанные с разработкой успешных шрифтов с фиксированной шириной.Томасруттер предлагает больше технического ответа; Я покажу вам некоторые принципы типографики, чтобы отговорить вас делать то, что вы хотите делать, если вам действительно не нужно.
Нажмите на «я» и «м» в Консолас или Курьер, а затем Корбель или Вердана. Обратите внимание, насколько разными должны быть буквы, чтобы моноспейс работал. Чтобы правильно преобразовать шрифт в моноширинный формат, требуется много знаний и работы. Общая идея растягивания шрифтов осуждается любым дизайнером, который стоит их соли, поэтому даже переход от обычного к сжатому варианту требует перерисовки всех глифов.
Итак, посмотрите на Consolas против Corbel здесь и посмотрите, как, когда он увеличен, вы можете посмотреть на 1) расстояние между буквами, 2) согласованность толщины обводки и 3) как каждая буква помещается в свой ящик. Посмотрите на одноразмерное лицо (первое) по сравнению с переменным разнесенным лицом (второе), затем посмотрите третье и четвертое, чтобы увидеть, что происходит, когда вы пытаетесь растянуть пространство и сделать его равным. В-четвертых, я сделал Ms squish до 75%, чтобы попасть в коробку, но теперь они намного худее, чем Is. это будет заметно при использовании.
Итак, вкратце: не связывайтесь с гарнитурами; они намного более грозные, чем вы ожидаете!
источник
Я столкнулся с этой самой проблемой, пытаясь редактировать исходный код, интенсивно используя символы Юникода. В этом контексте большая часть исходного кода отображается одним моноширинным шрифтом, а несколько символов, которые не покрыты этим шрифтом, в конечном итоге нарушают выравнивание.
Хотя верно, что «моноспазмывание» полного шрифта приведет к ужасным результатам (кернинг, ширина обводки и общий баланс будут полностью испорчены), импорт всего лишь нескольких символов из шрифта переменной ширины в моноширинный даст хорошие результаты. Анимация ниже показывает использование Consolas + Symbola в качестве запасного варианта по сравнению с использованием Consolas + моноспасифицированной версии Symbola:
Это бесполезно для продвинутой типографии, но это хороший компромисс, если вы хотите использовать символы в вашем исходном коде, не разрушая отступы. Есть несколько предостережений:
Я запустил проект GitHub для автоматической обработки таких преобразований шрифтов. Он включает в себя предварительно сгенерированные шрифты и код с использованием привязок Python fontforge.
Смотрите также этот вопрос emacs.se .
источник
В текстовом процессоре я: (1) создал таблицу; (2) разбить на столбцы - один столбец для каждой буквы; (3) центрировать буквы; и (4) сделал все границы, внутренние и внешние невидимыми.
источник