Вставка вектора не в том месте / Font Lab и Illustrator

Я построил несколько фигур, чтобы проверить идею иконки шрифта.

Я нарисовал их в иллюстраторе. Я установил артборд на pt на 1000x1000.

Я заполнил объекты и переместил линейку так, чтобы 0 был базовой линией.

В студии Font Lab я перешел к файлу > font-setup > Metrics and Dimentions: я изменил Ascender, высоту x и высоту заглавных букв на 1000, а нижний на 0. Я просто создаю формы, поэтому я решил, что не Не нужно иметь дело с теми. >Применить -

Затем я копирую и вставляю из Illustrator в Font Lab.

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

Чтобы устранить неполадки, я снова поиграл со всеми числами в ключевых размерах Font Lab и переместил базовую линию в Illustrator повсюду, чтобы посмотреть, смогу ли я добиться изменений. Я не мог. Вот картинка. Любая помощь будет здорово!

В иллюстраторе: основание на нуле.

введите описание изображения здесь

В Fontlab: база на уровне -1000 в основном.

введите описание изображения здесь

Ответы (3)

Для будущих искателей Google: настройка, которая все исправит, — это «Просмотр/Линейки/Изменить глобальные линейки». Затем вы перемещаете источник в нижний левый угол вашего письма.

Я проверю это. Я не использовал FontLab после этого опыта, но я как раз собирался снова его открыть.
Будет ли это в Illustrator или FontLab?
@kontur в иллюстраторе. Это исправило!!! Благодарность!!!

Я не могу сказать из вашего описания, следовали ли вы полной процедуре настройки FontLab для Illustrator . Похоже, вы пропустили пару шагов.

В иллюстраторе:

  • «Правка» > «Установки» > «Единицы и отмена» или «Единицы и производительность дисплея»: измените все единицы измерения на точки (1 точка равна 1 единице в TypeTool).
  • «Настройки» > «Файлы и буфер обмена»: отключите PDF, включите AICB и выберите «Сохранить пути».
  • Настройки > Направляющие и сетка: линия сетки каждые 10 pt и подразделения 10.
  • Задайте ширину документа в пунктах, равную удвоенному размеру UPM вашего шрифта (например, 2000 pt для шрифта 1000 UPM).
  • Установите высоту документа такой же, как размер UPM — Descender (например, 1000 — (-263) = 1263 pt).
  • Выберите «Окно» > «Информация», «Просмотр» > «Показать линейки», «Просмотр» > «Привязать к сетке».
  • Отключите «Вид» > «Направляющие» > «Блокировать направляющие».
  • При необходимости выберите «Просмотр» > «Показать сетку».
  • Расположите направляющую на высоте, которая имеет то же (положительное) значение, что и (отрицательное) значение выносного элемента вашего шрифта (например, 263 в нашем примере).
  • Разместите направляющую и поместите ее на 0.
  • Расположите исходную точку там, где пересекаются две направляющие.
  • Перетащите направляющие в положение зажима, высоты x и высоты заглавных букв.
Ну... я проверил их все. Все было на месте. Единственное, чего не было, так это того, что документ не был вдвое шире. Но это не исправило ситуацию (сразу). Я прошел и не проверил и перепроверил. Что-то в этом списке исправлено. Хотел бы я знать, какой. Спасибо за ваше направление.

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

#target Illustrator

//  script.name = switchRulerOriginToCS4nCS5.jsx;
//  script.description = switches ruler origin to bottom/left (like CS4), and back to top/left (like CS5);
//  script.required = runs on CS5 only;
//  script.parent = carlos canto // 8/12/11;
//  script.elegant = false;

var appver = Number(String(app.version).split(".")[0]);
if (appver >= 15)
    {
        //var idoc = app.activeDocument;
        var win = new Window("dialog","Set Coordinate System");

        var grpCoordinates = win.add("group");
        var grpCS4 = grpCoordinates.add("group");
        var lblCS4dummy = grpCS4.add("statictext",undefined,"CS4");
        var panely1 = grpCS4.add("panel");
        var lblCS4 = grpCS4.add("statictext",undefined,"CS4");

        var panelx = grpCoordinates.add("panel");

        var grpCS5 = grpCoordinates.add("group");
        var lblCS5dummy = grpCS5.add("statictext",undefined,"CS5");
        var panely2 = grpCS5.add("panel");
        var lblCS5 = grpCS5.add("statictext",undefined,"CS5");

        grpCoordinates.orientation = "column";

        lblCS4dummy.visible = lblCS5dummy.visible = false;

        var panelradio = win.add("panel", undefined, "Ruler Origin as in...");

        panely1.bounds = {x:0, y:0, width:0, height:60};
        panelx.bounds = {x:0, y:0, width:120, height:0};
        panely2.bounds = {x:0, y:0, width:0, height:60};

        grpCoordinates.spacing = 0;

        win.helpTip = grpCoordinates.helpTip = "Double-Click where the rulers meet to update \rCurrent Doc's Ruler Origin...";
        grpCoordinates.helpTip = "Coded by CarlosCanto";
        grpCS4.helpTip = "CS4: Positive Y moving up";
        grpCS5.helpTip = "CS5: Positive Y moving down";
        lblCS4.helpTip = lblCS5.helpTip = "Don't click me...";

        //add Radio buttons
        var grpRadio = panelradio.add("group");
        var radCS4 = grpRadio.add("radiobutton",undefined,"CS4");
        var radCS5 = grpRadio.add("radiobutton",undefined,"CS5");
        var btnOk = grpRadio.add("button", undefined, "Ok");
        btnOk.size = [40,25];
        btnOk.enabled = false;
        //radCenter.value = true;

        win.defaultElement = lblCS4dummy; // make this element default to prevent hitting "enter" to trigger ok button

        radCS4.onClick = function(){
            // alert(idoc.name);
            lblCS4.visible = true;
            lblCS5.visible = false;
            btnOk.enabled = true;
        }

        radCS5.onClick = function(){
            //alert(idoc.name);
            lblCS4.visible = false;
            lblCS5.visible = true;
            btnOk.enabled = true;
        }

        btnOk.onClick = function(){
            //alert(radCS5.value);
            app.preferences.setBooleanPreference ("isRulerOriginTopLeft",radCS5.value);
            app.preferences.setBooleanPreference ("isRulerIn4thQuad",radCS5.value);            
            win.close();
        }

        lblCS4.onClick = lblCS5.onClick = function(){
        alert("...we're so damn curious, aren't we?");

        }

        win.center();
        win.show();    
    }
else
    {
        alert("CS4 and earlier don't need this trick...good bye.")
    }

Источник: http://forums.adobe.com/message/3859266#3859266

Куча кода без пояснений не очень поможет читателям, ищущим ответ.
Я определенно предпочитаю простой ответ, предоставленный Кристианом: P