I built out some shapes to test out a font icon idea.

I drew them in Illustrator. I set my art-board to pt at 1000 x 1000.

I filled the objects and moved the ruler so that 0 was the baseline.

From Font Lab studio, I went to file > font-setup > Metrics and Dimentions: I have changed the Ascender, x height, and caps height all to 1000 and the descender to 0. I'm just making shapes so I figured I didn't need to deal with those. >Apply -

So then I copy and paste from Illustrator to Font Lab.

The glyph seems to be placed properly - except that it is about 1000 pt below where it should be.

To trouble shoot, I fooled around with all of the numbers in the Font Lab key dimentions again and I moved the baseline in Illustrator all over the place to see if I could get a change to happen. I could not. Here is a picture. Any help would be great!

In illustrator: base at zero.

enter image description here

In Fontlab: base at -1000 basically.

enter image description here

3 Answers 3


For future google searchers: The setting that fixes it all is (in Illustrator) View/Rulers/Change to global rulers. Then you move the origin to the bottom left of your letter.

  • I'll check that out. I haven't used FontLab since this experience but I was just about to break it out again. Nov 5, 2013 at 6:56
  • Would that be in Illustrator or FontLab?
    – kontur
    Aug 7, 2015 at 18:13
  • 1
    @kontur in Illustrator. This fixed it!!! thanks!!!
    – CJT3
    Dec 4, 2015 at 0:18

I can't tell from your description if you followed the full FontLab set-up procedure for Illustrator. Looks like you missed a couple of steps.

In Illustrator:

  • Edit > Preferences > Units & Undo or Units & Display Performance: Change all units to points (1 point is equal to 1 unit in TypeTool).
  • Preferences > Files & Clipboard: Disable PDF, enable AICB and select Preserve Paths.
  • Preferences > Guides & Grid: Gridline every 10 pt and Subdivisions 10.
  • Set the width of the document in points to be the double of the UPM size of your font (e.g. 2000 pt for a 1000 UPM font).
  • Set the height of the document to be the same as UPM size — Descender (e.g. 1000 — (-263) = 1263 pt).
  • Select Window > Info, View > Show Rulers, View > Snap to Grid.
  • Disable View > Guides > Lock Guides.
  • Optionally select View > Show Grid.
  • Position a guide at the height that has the same (positive) value as the (negative) descender of your font (e.g. 263 in our example).
  • Position a guideline and position it at 0.
  • Position the origin point to where the two guidelines cross.
  • Drag guidelines to the positions of your ascender, x-height, and caps height.
  • Well... I checked them all out. Everything was in place. The only thing that wasn't was the document wasn't double the width. But that didn't fix it (right away). I went through and unchecked and rechecked. Something on that list fixed it. I wish I knew which. Thanks for your direction. Dec 14, 2012 at 20:33

This thread on the Adobe forums community has the following JSX script to help with this issue (it changes the global preferences of the ruler origin so that it uses the first quadrant again instead of the fourth)

#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(){
            lblCS4.visible = false;
            lblCS5.visible = true;
            btnOk.enabled = true;

        btnOk.onClick = function(){
            app.preferences.setBooleanPreference ("isRulerOriginTopLeft",radCS5.value);
            app.preferences.setBooleanPreference ("isRulerIn4thQuad",radCS5.value);            

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


        alert("CS4 and earlier don't need this trick...good bye.")

Source: http://forums.adobe.com/message/3859266#3859266

  • A bunch of code without explanation isn't very helpful to readers looking for an answer.
    – kontur
    Aug 7, 2015 at 18:13
  • I definitely prefer the simple answer provided by Christian :P
    – CJT3
    Dec 4, 2015 at 0:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.