{
  "articles": [
    {
      "slug": "introduction",
      "title": "Introduction",
      "summary": "About FontLab FontLab is an application for designing typefaces and producing fonts.",
      "chapterSlug": "setup-and-orientation",
      "chapterTitle": "Setup and Orientation",
      "headings": [
        "Introduction",
        "About FontLab",
        "Main Features and Recent Changes",
        "Recent changes",
        "Organization of This Manual",
        "Manual Conventions"
      ],
      "contentSnippet": "Introduction\n\nFontLab brings drawing, spacing, testing, and font production into one working environment. This manual explains the concepts behind that work and the procedures for carrying it out, from a first drawing to the files you deliver.\n\nAbout FontLab\n\nFontLab is a professional application for type design and font engineering. Type design concerns the shapes and relationships that give letters their visual character. Font engineering turns those decisions into files that applications can"
    },
    {
      "slug": "installation-and-setup",
      "title": "Installation and setup",
      "summary": "Installation and Setup Installing FontLab places the application on your computer. Activation enables the use covered by your license.",
      "chapterSlug": "setup-and-orientation",
      "chapterTitle": "Setup and Orientation",
      "headings": [
        "Installation and Setup",
        "System Requirements",
        "Installation",
        "macOS",
        "Windows",
        "Trial, Licensing, and Activation",
        "Trial and demo mode",
        "License scope",
        "Activation",
        "Updates and Upgrades",
        "Update checks",
        "Stable and beta releases",
        "Major-version upgrades",
        "Running Multiple Versions"
      ],
      "contentSnippet": "Installation and Setup\n\nInstalling FontLab places the application on your computer. Activation enables the use covered by your license. If you are evaluating FontLab, the trial lets you work with the application before purchasing a license. The same setup also gives you access to update checks and help resources.\n\nSystem Requirements\n\nFontLab is available for macOS and Windows. Before downloading, check the requirements for the release you intend to install and choose the installer for your"
    },
    {
      "slug": "help-and-support",
      "title": "Help and support",
      "summary": "Help and Support FontLab provides help at several levels. Quick Help explains the control under your pointer.",
      "chapterSlug": "setup-and-orientation",
      "chapterTitle": "Setup and Orientation",
      "headings": [
        "Help and Support",
        "In-App Help",
        "Quick Help",
        "Help panel",
        "Documentation and Resources",
        "Reporting Problems",
        "Report contents",
        "Files and recordings",
        "Follow-up",
        "Feature requests"
      ],
      "contentSnippet": "Help and Support\n\nFontLab provides help at several levels. Quick Help explains the control under your pointer. The Help panel provides a longer account of the current context. The manual develops the task and its background, while the support portal gives you a place to report a problem and exchange the files needed to investigate it.\n\nChoose the resource that matches the question. A control label may need only a brief explanation. A task involving several tools benefits from a manual chapter."
    },
    {
      "slug": "fonts-and-encodings",
      "title": "Fonts and Encodings",
      "summary": "Fonts and Encodings Type a word in a document, then change its font. The word remains the same, although its appearance may change considerably.",
      "chapterSlug": "about-fonts",
      "chapterTitle": "About Fonts",
      "headings": [
        "Fonts and Encodings",
        "The Role of Fonts",
        "Characters and Glyphs",
        "Several forms of one character",
        "One glyph for several characters",
        "Glyphs without a character assignment",
        "Identifying Glyphs",
        "Glyph names",
        "Unicode codepoints",
        "Glyph indices",
        "Text, Encoding Standards, and Encodings",
        "A shared character standard",
        "Characters and stored bytes"
      ],
      "contentSnippet": "Fonts and Encodings\n\nType a word in a document, then change its font. The word remains the same, although its appearance may change considerably. The letters may become wider, darker, or more elaborate, yet the application still has the same text to search, copy, and edit.\n\nThat everyday operation depends on a separation between the identity of text and its visible form. Understanding the separation makes it easier to see what a font supplies and what you create when you design one.\n\nThe Role"
    },
    {
      "slug": "font-structures",
      "title": "Font Structures",
      "summary": "Font Structures A font has to provide more than recognizable letterforms. Software needs to know how much space each form occupies, how it relates to its...",
      "chapterSlug": "about-fonts",
      "chapterTitle": "About Fonts",
      "headings": [
        "Font Structures",
        "Glyph Representations",
        "Metrics",
        "The shared vertical framework",
        "Advance width and sidebearings",
        "Kerning",
        "Substitution and Positioning Rules",
        "Substitution",
        "Positioning",
        "OpenType features",
        "Hinting"
      ],
      "contentSnippet": "Font Structures\n\nA font has to provide more than recognizable letterforms. Software needs to know how much space each form occupies, how it relates to its neighbors, and whether a different form or position is needed in a particular context. At small display sizes, it may also need guidance about which details of the drawing to preserve.\n\nFour kinds of data address these needs: glyph representations, metrics, substitution and positioning rules, and hinting. They contribute to different stages"
    },
    {
      "slug": "fonts-and-font-families",
      "title": "Fonts and Font Families",
      "summary": "Fonts and Font Families A font menu presents a design as something you can choose by name.",
      "chapterSlug": "about-fonts",
      "chapterTitle": "About Fonts",
      "headings": [
        "Fonts and Font Families",
        "Font Families and Typefaces",
        "Font Identification and Style Linking",
        "Internal names",
        "Style linking",
        "Variable Fonts"
      ],
      "contentSnippet": "Fonts and Font Families\n\nA font menu presents a design as something you can choose by name. Within that choice, an application may offer Regular, Bold, Italic, and other styles. Behind those familiar names are two relationships: the visual relationship among the designs and the identifying information that tells software how to organize them.\n\nFont Families and Typefaces\n\nA font family is a group of related fonts that share a design identity. Its members may differ in weight, width, slope, or"
    },
    {
      "slug": "understanding-font-formats",
      "title": "Understanding Font Formats",
      "summary": "Understanding Font Formats A font file can serve different purposes. It may hold an editable design, carry work between font editors, or provide the...",
      "chapterSlug": "working-with-fonts",
      "chapterTitle": "Working with Fonts",
      "headings": [
        "Understanding Font Formats",
        "Opening, Saving, and Exporting",
        "Font Format Types",
        "Native working formats",
        "Interchange and compatibility formats",
        "Production formats"
      ],
      "contentSnippet": "Understanding Font Formats\n\nA font file can serve different purposes. It may hold an editable design, carry work between font editors, or provide the finished data an application uses to display text. These purposes overlap, but they do not require the same information.\n\nThe distinction matters as soon as you open a font for editing. A finished font may contain everything needed to render its text without containing all the material used to develop it. FontLab therefore distinguishes saving"
    },
    {
      "slug": "creating-and-opening-fonts",
      "title": "Creating and Opening Fonts",
      "summary": "Creating and Opening Fonts You can begin with a new font or with a file that already contains drawings and font information.",
      "chapterSlug": "working-with-fonts",
      "chapterTitle": "Working with Fonts",
      "headings": [
        "Creating and Opening Fonts",
        "Creating a New Font",
        "The Welcome Dialog",
        "The initial glyph set",
        "The File menu",
        "Opening Fonts",
        "Opening a file",
        "Opening a folder",
        "Opening an installed font",
        "Recent fonts and the Welcome Dialog",
        "Opening from the operating system",
        "A font for exploration",
        "Working with Multiple Open Fonts"
      ],
      "contentSnippet": "Creating and Opening Fonts\n\nYou can begin with a new font or with a file that already contains drawings and font information. Creating a font gives you a place to develop a design. Opening an existing font gives you material to inspect, extend, or revise.\n\nBoth routes lead to a working font in FontLab. Opening or creating it does not complete the file-handling task: save it as VFC or VFJ to preserve the working data on disk.\n\nCreating a New Font\n\nThe Welcome Dialog\n\nThe Welcome Dialog provides"
    },
    {
      "slug": "naming-fonts-and-families",
      "title": "Naming Fonts and Families",
      "summary": "Naming Fonts and Families A font's name places it within a family. Even if you have created only one font, its identity has two levels: the family it...",
      "chapterSlug": "working-with-fonts",
      "chapterTitle": "Working with Fonts",
      "headings": [
        "Naming Fonts and Families",
        "Font Identity",
        "Font Info",
        "The Font Naming Model",
        "Four-style groups and typographic families",
        "Full and PostScript names",
        "WWS naming",
        "Font Names in FontLab",
        "Design attributes",
        "Naming a regular member",
        "Building names and style links",
        "Translated names and other access"
      ],
      "contentSnippet": "Naming Fonts and Families\n\nA font's name places it within a family. Even if you have created only one font, its identity has two levels: the family it belongs to and the style it represents. Establishing those names early gives the working file an identity you can recognize when saving it, opening several fonts, or preparing output.\n\nApplications use a font's internal names to group it and its style links to find related styles. Those identifiers need to agree with the role you intend the font"
    },
    {
      "slug": "saving-and-closing-fonts",
      "title": "Saving and Closing Fonts",
      "summary": "Saving and Closing Fonts Saving makes the working font available beyond the current session.",
      "chapterSlug": "working-with-fonts",
      "chapterTitle": "Working with Fonts",
      "headings": [
        "Saving and Closing Fonts",
        "VFC and VFJ",
        "Parallel VFJ saving",
        "VFJ options",
        "Saving Fonts",
        "A deliberate first save",
        "Save Font and Save All",
        "Existing files and backups",
        "Reverting to the saved file",
        "Workspace information",
        "Autosave and Recovery",
        "Recovery choices",
        "Closing Fonts"
      ],
      "contentSnippet": "Saving and Closing Fonts\n\nSaving makes the working font available beyond the current session. FontLab's native formats preserve its editable data, while save preferences control such things as the destination, the treatment of an existing file, and the inclusion of workspace information.\n\nAutosave has a different purpose. It keeps recovery copies while you work, but it does not replace deliberate saves to the working file you intend to keep.\n\nVFC and VFJ\n\nVFC and VFJ are native working formats"
    },
    {
      "slug": "windows-panels-and-workspaces",
      "title": "Windows, Panels, and Workspaces",
      "summary": "Windows, Panels, and Workspaces FontLab separates the area where you work on content from the controls that describe and adjust it.",
      "chapterSlug": "the-fontlab-interface",
      "chapterTitle": "The FontLab Interface",
      "headings": [
        "Windows, Panels, and Workspaces",
        "Tool-Based and Parameter-Based Editing",
        "Window Types",
        "Panels",
        "Opening and finding panels",
        "Compact panel views",
        "The data a panel describes",
        "Workspaces"
      ],
      "contentSnippet": "Windows, Panels, and Workspaces\n\nFontLab separates the area where you work on content from the controls that describe and adjust it. Recognizing those roles helps you choose the working view and the controls you need for a task.\n\nTool-Based and Parameter-Based Editing\n\nSome work is performed directly on a working area. You select cells in a glyph grid, draw a shape, or move part of a drawing. Other work is performed through parameters: you enter a width, inspect a name, or turn an option"
    },
    {
      "slug": "arranging-windows-and-panels",
      "title": "Arranging Windows and Panels",
      "summary": "Arranging Windows and Panels The same working content can occupy a tab or a separate window, and the same panel can float or join a dock.",
      "chapterSlug": "the-fontlab-interface",
      "chapterTitle": "The FontLab Interface",
      "headings": [
        "Arranging Windows and Panels",
        "Interface Modes",
        "Views and their names",
        "Fonts without individual Font windows",
        "Docking",
        "Windows as tabs",
        "Panel docking targets",
        "Scrollable docks",
        "Toolbar Layout",
        "Interface Focus"
      ],
      "contentSnippet": "Arranging Windows and Panels\n\nThe same working content can occupy a tab or a separate window, and the same panel can float or join a dock. These arrangements affect how you reach your work and how much space remains visible. They do not require different font files.\n\nBegin by choosing the window behavior that suits your working space, then arrange the panels you need.\n\nInterface Modes\n\nAn interface mode governs where new views open. In Preferences > General > Windows/tabs, Workspace layout"
    },
    {
      "slug": "menus-dialogs-and-controls",
      "title": "Menus, Dialogs, and Controls",
      "summary": "Menus, Dialogs, and Controls Once you know which surface you are working in, the next questions are how to issue a command and how to supply a value.",
      "chapterSlug": "the-fontlab-interface",
      "chapterTitle": "The FontLab Interface",
      "headings": [
        "Menus, Dialogs, and Controls",
        "Menus and Commands",
        "Finding a command by name",
        "Focused Menu",
        "Modal Dialogs",
        "Widgets",
        "Controls and Numeric Inputs",
        "Numeric entry",
        "Stepping and sliders",
        "Icons and expressions"
      ],
      "contentSnippet": "Menus, Dialogs, and Controls\n\nOnce you know which surface you are working in, the next questions are how to issue a command and how to supply a value. FontLab uses familiar menus, dialogs, and fields, with several shared behaviors that are useful throughout the application.\n\nMenus and Commands\n\nThe main menu groups commands by subject. File commands concern documents; Font and Glyph commands concern the font and its glyphs; other menus address drawings, text, tools, and the visible interface."
    },
    {
      "slug": "font-window-and-font-map",
      "title": "Font Window and Font Map",
      "summary": "Font Window and Font Map An open font is more than the glyph currently being drawn.",
      "chapterSlug": "the-font-window",
      "chapterTitle": "The Font Window",
      "headings": [
        "Font Window and Font Map",
        "Glyph Sets",
        "The Font Window",
        "More than one view",
        "Interface Modes",
        "Choosing the inventory arrangement",
        "Comparing fonts"
      ],
      "contentSnippet": "Font Window and Font Map\n\nAn open font is more than the glyph currently being drawn. It is a collection whose coverage, consistency, and organization need attention throughout development. The Font window gives that collection a visible working form.\n\nThis Part teaches you to survey the font, recognize the information displayed, navigate its cells, and select targets for later work. These viewing and selection tasks prepare you to act; the operations that create or change glyphs follow in later"
    },
    {
      "slug": "font-window-anatomy",
      "title": "Font Window Anatomy",
      "summary": "Font Window Anatomy The Font window places several kinds of information around the glyph inventory.",
      "chapterSlug": "the-font-window",
      "chapterTitle": "The Font Window",
      "headings": [
        "Font Window Anatomy",
        "Title Bar",
        "Property Bar",
        "Content Area",
        "Glyph Cell Anatomy",
        "Sidebar",
        "Status Bar"
      ],
      "contentSnippet": "Font Window Anatomy\n\nThe Font window places several kinds of information around the glyph inventory. The title identifies the font, the Property Bar governs the display, the central area presents glyphs, the Sidebar provides routes into the collection, and the Status Bar combines glyph information with display controls.\n\nRecognizing these areas helps you distinguish the font’s identity, the view’s settings, and the data associated with a glyph.\n\nTitle Bar\n\nThe Title Bar identifies the font"
    },
    {
      "slug": "navigating-the-font-window",
      "title": "Navigating the Font Window",
      "summary": "Navigating the Font Window Navigating the Font window changes which part of the inventory you can see. Adjusting cell size changes how much detail fits in that view.",
      "chapterSlug": "the-font-window",
      "chapterTitle": "The Font Window",
      "headings": [
        "Navigating the Font Window",
        "Scrolling the Table View",
        "Space scrolling and quick preview",
        "Controlling Cell Size",
        "Fixed column count",
        "Flex",
        "Gestures and zoom commands",
        "Cell proportions",
        "Navigating and Sizing the List View"
      ],
      "contentSnippet": "Navigating the Font Window\n\nNavigating the Font window changes which part of the inventory you can see. Adjusting cell size changes how much detail fits in that view. Neither operation changes the size or position of the glyph drawings themselves.\n\nGive the Table or List view focus before using its keyboard navigation. If a text field has focus, the same keys can affect that field instead.\n\nScrolling the Table View\n\nUse the scrollbars, mouse wheel, or trackpad to move through the Table view."
    },
    {
      "slug": "selecting-glyphs",
      "title": "Selecting Glyphs",
      "summary": "Selecting Glyphs A selection identifies the cells a later operation may act on. Making the selection does not change the font, but the distinction between...",
      "chapterSlug": "the-font-window",
      "chapterTitle": "The Font Window",
      "headings": [
        "Selecting Glyphs",
        "The Current Glyph and the Selection",
        "Single-Glyph Selection",
        "Multi-Glyph Selection",
        "Ranges and individual cells",
        "Drag selection",
        "Selecting the displayed collection",
        "Reading the highlight",
        "Reading Data from a Multi-Glyph Selection",
        "Current-glyph fields",
        "Selection-aware panels",
        "Tags and flags",
        "Advanced Selection Methods"
      ],
      "contentSnippet": "Selecting Glyphs\n\nA selection identifies the cells a later operation may act on. Making the selection does not change the font, but the distinction between one current glyph and a group of selected glyphs becomes important as soon as you read a field or choose a command.\n\nUse an existing font for these exercises so you can recognize the cells being selected. Keep focus in the Table view for the grid's keyboard operations.\n\nThe Current Glyph and the Selection\n\nThe current glyph is the cell that"
    },
    {
      "slug": "glyph-identity",
      "title": "Glyph Identity",
      "summary": "Glyph Identity A glyph has several identifiers in a working font. Its name lets you refer to it while designing and programming the font.",
      "chapterSlug": "glyph-identity-encoding-metadata",
      "chapterTitle": "Glyph Identity, Encoding, Metadata",
      "headings": [
        "Glyph Identity",
        "Glyph Names",
        "A name that tools can read",
        "Renaming and references",
        "Glyph Indices",
        "Unicode Codepoints",
        "More than one assignment",
        "No direct assignment",
        "Name-Codepoint Coherence"
      ],
      "contentSnippet": "Glyph Identity\n\nA glyph has several identifiers in a working font. Its name lets you refer to it while designing and programming the font. Its index locates it in the font's current glyph order. Its Unicode assignments connect it to characters in text.\n\nThese properties can describe the same glyph without being interchangeable. Understanding their separate roles helps you recognize a naming problem without accidentally changing the characters the font supports.\n\nGlyph Names\n\nIn FontLab, a glyph"
    },
    {
      "slug": "managing-glyph-names-and-codepoints",
      "title": "Managing Glyph Names and Codepoints",
      "summary": "Managing Glyph Names and Codepoints Name generation and codepoint generation work in opposite directions.",
      "chapterSlug": "glyph-identity-encoding-metadata",
      "chapterTitle": "Glyph Identity, Encoding, Metadata",
      "headings": [
        "Managing Glyph Names and Codepoints",
        "Naming Schemes and the Naming Table",
        "The mapping table",
        "Assigning Unicode Codepoints",
        "Deriving assignments from names",
        "Renaming Glyphs",
        "One glyph and its references",
        "Direct field edits",
        "Converting a naming scheme",
        "Suffixes and custom mappings",
        "Character Specifiers",
        "Glyph Names on Export"
      ],
      "contentSnippet": "Managing Glyph Names and Codepoints\n\nName generation and codepoint generation work in opposite directions. One derives a working label from character information; the other derives character assignments from a name. Before running either, decide which information you trust.\n\nA mismatch is a reason to inspect the relationship, not a reason to run both operations repeatedly. Start with a saved native working file so that a large naming change can be compared with the original.\n\nNaming Schemes and"
    },
    {
      "slug": "tagging-glyphs",
      "title": "Tagging Glyphs",
      "summary": "Tagging Glyphs A glyph name identifies a glyph. A tag classifies it. Several glyphs can share a tag, and one glyph can carry several tags without changing...",
      "chapterSlug": "glyph-identity-encoding-metadata",
      "chapterTitle": "Glyph Identity, Encoding, Metadata",
      "headings": [
        "Tagging Glyphs",
        "Custom Tags",
        "A single glyph",
        "Several glyphs",
        "Tags with application-defined meaning",
        "Virtual Tags",
        "Using Tags"
      ],
      "contentSnippet": "Tagging Glyphs\n\nA glyph name identifies a glyph. A tag classifies it. Several glyphs can share a tag, and one glyph can carry several tags without changing its name or Unicode assignments.\n\nThis makes tags useful for relationships that do not belong in a glyph's identity: a review group, a stylistic category, or a subset used by another part of the font. FontLab provides both labels you assign and labels it calculates from the font's properties.\n\nCustom Tags\n\nA custom tag is a label whose"
    },
    {
      "slug": "flagging-glyphs",
      "title": "Flagging Glyphs",
      "summary": "Flagging Glyphs A color flag adds a visible mark to a glyph's cell. It can make a review group recognizable before you read any names, or show which...",
      "chapterSlug": "glyph-identity-encoding-metadata",
      "chapterTitle": "Glyph Identity, Encoding, Metadata",
      "headings": [
        "Flagging Glyphs",
        "Color Flags",
        "Applying and Removing Flags",
        "Flags in Multi-Master Fonts"
      ],
      "contentSnippet": "Flagging Glyphs\n\nA color flag adds a visible mark to a glyph's cell. It can make a review group recognizable before you read any names, or show which drawings you intend to inspect next.\n\nThe color is a project convention: you decide whether green means “approved” or red means “needs correction.” Assigning a color does not make FontLab perform that assessment.\n\nColor Flags\n\nA color flag is a visual organization mark. It does not alter a glyph's outlines, Unicode assignments, or OpenType"
    },
    {
      "slug": "glyph-notes",
      "title": "Glyph Notes",
      "summary": "Glyph Notes A glyph note is freeform text attached to a glyph's working data. Use it to record a decision, explain an unfinished detail, or leave a review...",
      "chapterSlug": "glyph-identity-encoding-metadata",
      "chapterTitle": "Glyph Identity, Encoding, Metadata",
      "headings": [
        "Glyph Notes",
        "Notes in the Font window",
        "Adding and editing one note",
        "The same note on several glyphs",
        "Removing a note"
      ],
      "contentSnippet": "Glyph Notes\n\nA glyph note is freeform text attached to a glyph's working data. Use it to record a decision, explain an unfinished detail, or leave a review comment that will still be meaningful when you return to the font.\n\nA note differs from a tag or flag. Tags classify glyphs and flags mark them visually; a note explains something in words. Notes are documentation rather than an organizing handle for Font-window filters or class building. Writing “approved” in a note does not apply an"
    },
    {
      "slug": "font-filters",
      "title": "Font Filters",
      "summary": "Font Filters A font filter controls the glyph collection presented in the Font window.",
      "chapterSlug": "filtering-searching-and-sorting-the-glyph-set",
      "chapterTitle": "Filtering, Searching, and Sorting the Glyph Set",
      "headings": [
        "Font Filters",
        "Showing a group of glyphs",
        "Focus and Planning",
        "Finding missing glyphs",
        "Exact and fuzzy matching",
        "Filter Results in the Font Window",
        "Missing and blank glyphs",
        "Returning to a broader view",
        "Basic Filter Types",
        "Index",
        "Encoding",
        "Unicode range",
        "Category and Script",
        "Codepage",
        "Sidebar Filter Sections",
        "Smart Filters"
      ],
      "contentSnippet": "Font Filters\n\nA font filter controls the glyph collection presented in the Font window. It can focus the view on existing work or show a target collection that includes glyphs you have not created.\n\nFontLab uses “filtered” to mean matched and retained. Hide unfiltered glyphs therefore hides the glyphs that do not match; it does not hide the results you were looking for.\n\nShowing a group of glyphs\n\nTo work on the letters in a font, open a font containing letters as well as numbers or"
    },
    {
      "slug": "searching-the-glyph-set",
      "title": "Searching the Glyph Set",
      "summary": "Searching the Glyph Set The Font window’s Search field builds a view from a condition you enter.",
      "chapterSlug": "filtering-searching-and-sorting-the-glyph-set",
      "chapterTitle": "Filtering, Searching, and Sorting the Glyph Set",
      "headings": [
        "Searching the Glyph Set",
        "Search as Filtering",
        "Find Glyphs and Quick Find",
        "Search Criteria",
        "Names and synonyms",
        "Unicode values and properties",
        "Encodings and codepages",
        "Measurements",
        "Tags, flags, and layers",
        "Anchors and other structural properties",
        "Enumeration-Based Search"
      ],
      "contentSnippet": "Searching the Glyph Set\n\nThe Font window’s Search field builds a view from a condition you enter. It normally appears in the Property Bar, but moves to the right of a docked compact horizontal Toolbar when space permits. It is useful when a named encoding or Sidebar group is too broad: you may need a suffix, a particular tag, or glyphs whose width exceeds a chosen value.\n\nThe first decision is what you want the search to produce. A focused view and an explicit selection are related, but they"
    },
    {
      "slug": "saving-and-reusing-filters",
      "title": "Saving and Reusing Filters",
      "summary": "Saving and Reusing Filters A useful view is worth keeping. Filter history lets you return to a recent choice, a bookmark gives a recurring view a name, and...",
      "chapterSlug": "filtering-searching-and-sorting-the-glyph-set",
      "chapterTitle": "Filtering, Searching, and Sorting the Glyph Set",
      "headings": [
        "Saving and Reusing Filters",
        "Filter History and Bookmarks",
        "Reusing a view with another font",
        "Encoding Files",
        "Working with Encoding Files",
        "Exporting the intended collection",
        "Installing a shared encoding"
      ],
      "contentSnippet": "Saving and Reusing Filters\n\nA useful view is worth keeping. Filter history lets you return to a recent choice, a bookmark gives a recurring view a name, and an encoding file makes an ordered glyph collection portable.\n\nThese mechanisms preserve a way of identifying glyphs. They do not save a second copy of the drawings or replace saving the working font.\n\nFilter History and Bookmarks\n\nThe Sidebar's Search History records applied filters. Choose an entry to apply it again. This is useful when"
    },
    {
      "slug": "sorting-glyph-cells",
      "title": "Sorting Glyph Cells",
      "summary": "Sorting Glyph Cells A filter determines which glyphs match a view. The Sort Cells control determines the order in which the view presents cells where that...",
      "chapterSlug": "filtering-searching-and-sorting-the-glyph-set",
      "chapterTitle": "Filtering, Searching, and Sorting the Glyph Set",
      "headings": [
        "Sorting Glyph Cells",
        "Choosing a display order",
        "Index view",
        "Filters with a defined sequence",
        "Property and search filters",
        "Making an order permanent"
      ],
      "contentSnippet": "Sorting Glyph Cells\n\nA filter determines which glyphs match a view. The Sort Cells control determines the order in which the view presents cells where that order is not already fixed by the filter.\n\nThis is a display operation. Choosing a different sort condition can move cells around the Font window without changing the glyph-index sequence stored in the font. A useful inspection order does not have to become the font's permanent order.\n\nChoosing a display order\n\nUse the Property Bar's Sort"
    },
    {
      "slug": "creating-and-removing-glyphs",
      "title": "Creating and Removing Glyphs",
      "summary": "Creating and Removing Glyphs A prospective filter can show positions a font is intended to contain. Creating glyphs turns those positions into actual members of the font.",
      "chapterSlug": "editing-the-glyph-set",
      "chapterTitle": "Editing the Glyph Set",
      "headings": [
        "Creating and Removing Glyphs",
        "Creating New Glyphs",
        "From missing positions",
        "A name that is not in the view",
        "Generating with Aidus",
        "Recipe-based starting content",
        "Adding Glyphs from Catalog",
        "Finding the characters",
        "Selecting and adding",
        "Removing Glyphs"
      ],
      "contentSnippet": "Creating and Removing Glyphs\n\nA prospective filter can show positions a font is intended to contain. Creating glyphs turns those positions into actual members of the font. Removing glyphs changes the collection in the opposite direction.\n\nThese operations change font data. Before a substantial change, save the native working file and check the current font and selection. A visible placeholder, a blank glyph, and a glyph with drawings are different starting states.\n\nCreating New Glyphs\n\nFrom"
    },
    {
      "slug": "using-the-clipboard",
      "title": "Using the Clipboard",
      "summary": "Using the Clipboard Whole-glyph clipboard operations let you reuse existing work within a font or transfer it to another font.",
      "chapterSlug": "editing-the-glyph-set",
      "chapterTitle": "Editing the Glyph Set",
      "headings": [
        "Using the Clipboard",
        "Duplicating Glyphs",
        "Appending Glyphs",
        "Pasting Glyphs",
        "How the destinations are chosen",
        "Replacement choices",
        "A controlled paste"
      ],
      "contentSnippet": "Using the Clipboard\n\nWhole-glyph clipboard operations let you reuse existing work within a font or transfer it to another font. The crucial distinction is whether the operation adds glyphs or places their contents into specified destinations.\n\nDuplicate and Append add entries. Ordinary Paste uses the target cells and can replace existing content. Check the active font, the target selection, and the intended kind of transfer before choosing between them.\n\nDuplicating Glyphs\n\nEdit > Duplicate,"
    },
    {
      "slug": "drag-and-drop-operations",
      "title": "Drag-and-Drop Operations",
      "summary": "Drag-and-Drop Operations Dragging glyph cells can transfer content or change the font's internal glyph sequence.",
      "chapterSlug": "editing-the-glyph-set",
      "chapterTitle": "Editing the Glyph Set",
      "headings": [
        "Drag-and-Drop Operations",
        "Starting a glyph drag",
        "Repositioning in a filtered view",
        "Reordering within one font",
        "Dragging between fonts",
        "Permanent ordering commands"
      ],
      "contentSnippet": "Drag-and-Drop Operations\n\nDragging glyph cells can transfer content or change the font's internal glyph sequence. The result depends on the target view, whether the source and destination belong to the same font, and whether you request a copy.\n\nBefore dragging, establish which of those tasks you intend. A preview moving across the grid is not, by itself, evidence that the operation will only rearrange the display.\n\nStarting a glyph drag\n\nSelect the intended cells, release the selection"
    },
    {
      "slug": "font-window-and-glyph-window",
      "title": "Font Window and Glyph Window",
      "summary": "Font Window and Glyph Window The Font window shows the font as a collection of glyphs.",
      "chapterSlug": "the-glyph-window",
      "chapterTitle": "The Glyph Window",
      "headings": [
        "Font Window and Glyph Window",
        "Opening a glyph",
        "Multiple views"
      ],
      "contentSnippet": "Font Window and Glyph Window\n\nThe Font window shows the font as a collection of glyphs. Use it to find a glyph, organize the glyph set, or select glyphs for a common operation. The Glyph window is where you work on the glyphs themselves: draw and edit outlines, adjust spacing, kern pairs, and add hints.\n\nA Glyph window displays text from one font. That text can contain a single glyph or a sequence of glyphs, so you can work on a letter while seeing how it sits beside its neighbors. As with the"
    },
    {
      "slug": "glyph-window-anatomy",
      "title": "Glyph Window Anatomy",
      "summary": "Glyph Window Anatomy The Glyph window combines an editing canvas with controls for choosing tools, setting the text, and inspecting the current glyph.",
      "chapterSlug": "the-glyph-window",
      "chapterTitle": "The Glyph Window",
      "headings": [
        "Glyph Window Anatomy",
        "Content Area",
        "Toolbar",
        "Compact horizontal mode",
        "Active-window controls in the Toolbar",
        "Toolboxes",
        "Property Bar",
        "Text Bar and Glyphs Bar",
        "Content Sidebar",
        "Rulers and Metrics Table",
        "Widgets"
      ],
      "contentSnippet": "Glyph Window Anatomy\n\nThe Glyph window combines an editing canvas with controls for choosing tools, setting the text, and inspecting the current glyph. Some controls are permanent parts of the window; others can be shown when you need them. Their arrangement can differ with your workspace settings.\n\n{width=\"760\" height=\"405\"}\n\nThis expanded Glyph-window layout shows the text and glyph bars, side controls, and floating widgets around the editing canvas.\n\n[REVIEW] Refresh the whole-window"
    },
    {
      "slug": "glyph-window-modes",
      "title": "Glyph Window Modes",
      "summary": "Glyph Window Modes The Glyph window adapts to the work you are doing. Selecting a drawing tool exposes outline controls; selecting the Metrics tool gives...",
      "chapterSlug": "the-glyph-window",
      "chapterTitle": "The Glyph Window",
      "headings": [
        "Glyph Window Modes",
        "Tools and Modes",
        "Modes Overview",
        "Drawing and editing",
        "Metrics",
        "Kerning",
        "Text",
        "Matchmaker",
        "TrueType Hinting"
      ],
      "contentSnippet": "Glyph Window Modes\n\nThe Glyph window adapts to the work you are doing. Selecting a drawing tool exposes outline controls; selecting the Metrics tool gives you spacing controls; selecting the Text tool lets you enter text. These working states are called modes.\n\nTools and Modes\n\nChoose a tool from the Toolbar to enter its associated mode. There is no separate step for selecting a mode before selecting the tool. Tool-specific shortcuts are covered with their workflows.\n\nA mode affects three"
    },
    {
      "slug": "text-in-the-glyph-window",
      "title": "Text in the Glyph Window",
      "summary": "Text in the Glyph Window A Glyph window's text provides the context in which you edit and judge the font.",
      "chapterSlug": "the-glyph-window",
      "chapterTitle": "The Glyph Window",
      "headings": [
        "Text in the Glyph Window",
        "Understanding the Text Model",
        "Repeat the current glyph",
        "Arrange the text",
        "Editing Text Content",
        "Type on the canvas",
        "Use the Text Bar or Content sidebar",
        "Extend editing to neighboring glyphs",
        "Glyph Placeholders and Creating Glyphs",
        "Bidirectional Text Support"
      ],
      "contentSnippet": "Text in the Glyph Window\n\nA Glyph window's text provides the context in which you edit and judge the font. Use a short string to compare neighboring shapes, repeat the current glyph between reference letters to judge spacing, or paste a passage to inspect the design in use.\n\nChanging this text changes what the window displays. It does not rename glyphs or turn typed letters into outlines.\n\nUnderstanding the Text Model\n\nThe window's text is a sequence of glyph references. Some references"
    },
    {
      "slug": "navigating-the-glyph-window",
      "title": "Navigating the Glyph Window",
      "summary": "Navigating the Glyph Window Zoom to inspect a curve, pan to reach another part of the drawing, and switch glyphs without losing the text context.",
      "chapterSlug": "the-glyph-window",
      "chapterTitle": "The Glyph Window",
      "headings": [
        "Navigating the Glyph Window",
        "Zooming",
        "Font size and canvas zoom",
        "Zoom to a particular area",
        "Scrolling and Panning",
        "Navigating Between Glyphs",
        "Choose a glyph directly",
        "Browse with the wheel",
        "Keep the current glyph visible"
      ],
      "contentSnippet": "Navigating the Glyph Window\n\nZoom to inspect a curve, pan to reach another part of the drawing, and switch glyphs without losing the text context. These actions change your view or the current glyph; they do not scale or move the outlines themselves.\n\nZooming\n\nUse View > Zoom > Zoom In or Zoom Out, or their shortcuts:\n\n| Action | macOS | Windows |\n|---|---|---|\n| Zoom in | Cmd+Plus | Ctrl+Plus |\n| Zoom out | Cmd+Minus | Ctrl+Minus |\n| Actual Text Size | Cmd+1 | Ctrl+1 |\n| Zoom 100% | Cmd+3 |"
    },
    {
      "slug": "the-em-and-the-coordinate-system",
      "title": "The Em and the Coordinate System",
      "summary": "The Em and the Coordinate System The Glyph window measures a drawing in font units .",
      "chapterSlug": "setting-up-the-drawing-space",
      "chapterTitle": "Setting Up the Drawing Space",
      "headings": [
        "The Em and the Coordinate System",
        "The Em and Units per Em",
        "UPM changes",
        "Font units and pixels",
        "The Glyph Coordinate System",
        "The Em and the Font Bounding Box"
      ],
      "contentSnippet": "The Em and the Coordinate System\n\nThe Glyph window measures a drawing in font units. These units describe proportions inside the font; their physical size is determined when the font is used. A letter can therefore keep the same outline coordinates whether it is displayed in small text or enlarged to fill the screen.\n\nThe Em and Units per Em\n\nThe em is the font's reference size. Its name comes from the body of metal type; in a digital font it is an abstract measure, commonly pictured as a"
    },
    {
      "slug": "coordinate-precision",
      "title": "Coordinate Precision",
      "summary": "Coordinate Precision A font unit defines the scale of a coordinate. Coordinate precision determines whether an outline point can sit between whole units.",
      "chapterSlug": "setting-up-the-drawing-space",
      "chapterTitle": "Setting Up the Drawing Space",
      "headings": [
        "Coordinate Precision",
        "Integer and Fractional Coordinates",
        "The Round Coordinates Setting",
        "Choosing a Precision Strategy"
      ],
      "contentSnippet": "Coordinate Precision\n\nA font unit defines the scale of a coordinate. Coordinate precision determines whether an outline point can sit between whole units. Choose this deliberately: rounding can change a drawing, and the format you export may impose different limits from the format in which you work.\n\nInteger and Fractional Coordinates\n\nInteger coordinates use whole font units, such as  or . Fractional coordinates include positions between them, such as  or .\n\nFractional precision is useful when"
    },
    {
      "slug": "font-metrics-and-glyph-metrics",
      "title": "Font Metrics and Glyph Metrics",
      "summary": "Font Metrics and Glyph Metrics A glyph's outline defines its shape, but the outline alone does not determine how text is assembled.",
      "chapterSlug": "setting-up-the-drawing-space",
      "chapterTitle": "Setting Up the Drawing Space",
      "headings": [
        "Font Metrics and Glyph Metrics",
        "Glyph Assembly into Text",
        "Vertical Font Metrics",
        "Default line spacing",
        "Family Dimensions and Font Dimensions"
      ],
      "contentSnippet": "Font Metrics and Glyph Metrics\n\nA glyph's outline defines its shape, but the outline alone does not determine how text is assembled. Horizontal glyph metrics position neighboring glyphs. Vertical font metrics provide the reference heights and default space between lines. Both use font units and the same baseline-based coordinate system as the drawing.\n\nGlyph Assembly into Text\n\nIn a simple horizontal line, each glyph starts at an origin and advances by its advance width before the next glyph is"
    },
    {
      "slug": "on-canvas-visualization-of-metrics",
      "title": "On-Canvas Visualization of Metrics",
      "summary": "On-Canvas Visualization of Metrics Show the drawing's reference lines when you need to judge position, proportions, or spacing.",
      "chapterSlug": "setting-up-the-drawing-space",
      "chapterTitle": "Setting Up the Drawing Space",
      "headings": [
        "On-Canvas Visualization of Metrics",
        "Font Dimension Lines",
        "Spacing Controls",
        "The Unit Grid"
      ],
      "contentSnippet": "On-Canvas Visualization of Metrics\n\nShow the drawing's reference lines when you need to judge position, proportions, or spacing. Font dimension lines, spacing controls, rulers, and the unit grid are separate displays. Turning one on does not necessarily show the others, and hiding them does not remove their underlying values.\n\nFont Dimension Lines\n\nChoose View > Font Dimensions to show the horizontal dimension lines in the Glyph window. They give the current drawing its baseline, design-height,"
    },
    {
      "slug": "preparing-for-italics",
      "title": "Preparing for Italics",
      "summary": "Preparing for Italics An italic glyph leans, but its horizontal advance is still measured along the baseline.",
      "chapterSlug": "setting-up-the-drawing-space",
      "chapterTitle": "Setting Up the Drawing Space",
      "headings": [
        "Preparing for Italics",
        "Italic Angle and Slope",
        "Slope ratios",
        "Slanted Sidebearings and Caret Offset",
        "Horizontal metrics and a leaning shape",
        "Metric views",
        "Caret offset",
        "Caret placement and spacing"
      ],
      "contentSnippet": "Preparing for Italics\n\nAn italic glyph leans, but its horizontal advance is still measured along the baseline. FontLab provides a slanted metric view so you can judge the space around a leaning drawing. Set the italic angle and caret offset before relying on that view.\n\nThese settings describe the drawing space and cursor placement. Entering an angle does not transform an upright outline into an italic drawing.\n\nItalic Angle and Slope\n\nOpen File > Font Info > Font Dimensions and check which"
    },
    {
      "slug": "contours-nodes-and-handles",
      "title": "Contours, Nodes, and Handles",
      "summary": "Contours, Nodes, and Handles A filled letter looks continuous, but its outline is built from a small set of points and the segments between them.",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "Contours, Nodes, and Handles",
        "Contour Anatomy",
        "Visible contour structure",
        "Node Types",
        "Open and Closed Contours, and the Start Point"
      ],
      "contentSnippet": "Contours, Nodes, and Handles\n\nA filled letter looks continuous, but its outline is built from a small set of points and the segments between them. Learning to read that structure makes drawing and editing more predictable: you can identify what controls a shape before you try to change it.\n\nContour Anatomy\n\nOpen an existing  in the Glyph window and select the Contour tool. With the default detailed editing view, its drawing shows points and connecting segments. Use a simple outline  for this"
    },
    {
      "slug": "curves-direction-and-fill",
      "title": "Curves, Direction, and Fill",
      "summary": "Curves, Direction, and Fill The points in a contour determine its geometry. The order of those points also matters: it gives the contour a direction, which...",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "Curves, Direction, and Fill",
        "Cubic and Quadratic Curves",
        "PostScript curves",
        "TrueType curves",
        "Drawing model and output format",
        "Contour Direction and Fill",
        "Inspect and reverse a contour",
        "Inspect the filled result"
      ],
      "contentSnippet": "Curves, Direction, and Fill\n\nThe points in a contour determine its geometry. The order of those points also matters: it gives the contour a direction, which helps determine which areas of a glyph are filled. Read both the point structure and the fill when checking a drawing.\n\nCubic and Quadratic Curves\n\nFontLab supports two curve models: PostScript, or PS, curves and TrueType, or TT, curves. Both describe scalable paths between on-curve points, but they use different off-curve"
    },
    {
      "slug": "drawing-geometric-primitives",
      "title": "Drawing Geometric Primitives",
      "summary": "Drawing Geometric Primitives The Ellipse and Rectangle tools create closed contours from a drag or a set of dimensions.",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "Drawing Geometric Primitives",
        "The Ellipse Tools",
        "Draw an ellipse or circle",
        "Draw an oval with tension",
        "The Rectangle Tools",
        "Draw a rectangle or square",
        "Draw a polygon or star",
        "Shared Conventions and Procedures",
        "Draw a counter with reversed direction",
        "Enter exact dimensions"
      ],
      "contentSnippet": "Drawing Geometric Primitives\n\nThe Ellipse and Rectangle tools create closed contours from a drag or a set of dimensions. Use them for geometric forms, stems, counters, and construction shapes that you can refine afterward.\n\nFor the exercises below, begin in an empty glyph or an unused area of the current drawing. Use the Ellipse and Rectangle instructions to draw the two shapes side by side, then select the Contour tool and inspect them: the ordinary ellipse has smooth nodes and curved"
    },
    {
      "slug": "the-pen-tool",
      "title": "The Pen Tool",
      "summary": "The Pen Tool The Pen places nodes one at a time and lets you shape curve handles as you draw.",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "The Pen Tool",
        "Drawing with the Pen",
        "Draw straight segments",
        "Draw curves",
        "Close or stop the contour",
        "Sub-tools and the Preview Toggle",
        "Preview the next segment",
        "Adjust handles while drawing",
        "Continuing and Joining Contours",
        "Replace a span while drawing"
      ],
      "contentSnippet": "The Pen Tool\n\nThe Pen places nodes one at a time and lets you shape curve handles as you draw. Use it when you want to decide where a segment begins and ends, whether the next section is straight or curved, and how the contour passes through each node.\n\nSelect the Pen in the Toolbar or press P in the editing context. Holding P activates it temporarily; releasing the key returns to the previous tool.\n\nDrawing with the Pen\n\nFor the basic Pen behavior, double-click the Pen button to open its"
    },
    {
      "slug": "pen-alternatives-rapid-and-pencil",
      "title": "Pen Alternatives: Rapid and Pencil",
      "summary": "Pen Alternatives: Rapid and Pencil The Rapid and Pencil tools offer two ways to draw with less individual handle placement.",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "Pen Alternatives: Rapid and Pencil",
        "The Rapid Tool",
        "Place nodes",
        "Shape curves with tension points",
        "Adjust the live drawing",
        "Close and finalize",
        "The Pencil Tool",
        "Smooth or recognize the gesture",
        "Continue or replace existing contours"
      ],
      "contentSnippet": "Pen Alternatives: Rapid and Pencil\n\nThe Rapid and Pencil tools offer two ways to draw with less individual handle placement. Rapid builds curves from deliberate node positions and shared tension controls. Pencil converts a freehand gesture into a contour. Both produce outlines you can refine with the Contour tool.\n\nThe Rapid Tool\n\nSelect Rapid in the Toolbar or press 5. Double-click the tool button to open its toolbox. For the basic gestures below, turn off its sub-tools and disable Preferences"
    },
    {
      "slug": "tracing-a-source-image",
      "title": "Tracing a Source Image",
      "summary": "Tracing a Source Image A scan, photograph, or imported drawing can supply the starting shape for a glyph.",
      "chapterSlug": "creating-contours",
      "chapterTitle": "Creating Contours",
      "headings": [
        "Tracing a Source Image",
        "Placing a Source Image",
        "Prepare a clear bitmap",
        "Choose how artwork fits the font",
        "Autotracing a Bitmap",
        "Adjust the trace",
        "Choose and inspect the curve result",
        "Keep, remove, or retain the source as a reference",
        "Batch-tracing and SVG Conversion",
        "Trace several glyphs",
        "Make an SVG editable"
      ],
      "contentSnippet": "Tracing a Source Image\n\nA scan, photograph, or imported drawing can supply the starting shape for a glyph. Place the source in the Glyph window, size it against the font's metrics, then trace it by hand or use Autotrace to generate editable contours.\n\nAutotrace follows the image, including its defects. Treat the result as preliminary drawing material: inspect its silhouette, counters, corners, and point structure before using it in a finished font.\n\nPlacing a Source Image\n\nPrepare the source"
    },
    {
      "slug": "selecting-and-the-contour-tool",
      "title": "Selecting and the Contour Tool",
      "summary": "Selecting and the Contour Tool Before changing an outline, select the points that should change.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Selecting and the Contour Tool",
        "The Contour Tool",
        "Point States and Selections",
        "Select individual points",
        "Select an area",
        "Select contours and segments",
        "Store a selection",
        "Coordinates and Measurements on Canvas"
      ],
      "contentSnippet": "Selecting and the Contour Tool\n\nBefore changing an outline, select the points that should change. A precise selection makes a small correction predictable and keeps nearby parts of the drawing intact.\n\nThe Contour Tool\n\nSelect Contour, the narrow arrow in the Toolbar, or press A while the canvas has editing focus. Hold A for temporary use from another tool; release it to return to that tool.\n\nThe Contour tool works with existing nodes, handles, and segments. It provides selection, movement,"
    },
    {
      "slug": "basic-node-and-handle-operations",
      "title": "Basic Node and Handle Operations",
      "summary": "Basic Node and Handle Operations Use the Contour tool to move points, change how segments meet, or alter the structure of a path.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Basic Node and Handle Operations",
        "Moving Points and Point Selections",
        "Move by measured steps",
        "Whole-stem editing",
        "Aligning Points",
        "Adding and Deleting Points",
        "Remove a node without opening the path",
        "Delete and open the path",
        "Remove or restore handles",
        "Changing Node Type",
        "Breaking and Joining",
        "Setting the Startpoint"
      ],
      "contentSnippet": "Basic Node and Handle Operations\n\nUse the Contour tool to move points, change how segments meet, or alter the structure of a path. Start with a small, explicit selection and check the filled result after each structural change.\n\nMoving Points and Point Selections\n\nDrag a node to move it and its attached handles. Drag a handle to change the adjacent curve. On a smooth node, the opposite handle stays aligned through the node, though its length need not match.\n\nFor a group move, select the"
    },
    {
      "slug": "editing-modes-and-modifiers",
      "title": "Editing Modes and Modifiers",
      "summary": "Editing Modes and Modifiers A plain point move changes the selection directly. The Contour tool's editing modes let surrounding handles or nodes...",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Editing Modes and Modifiers",
        "Precision Drag, Nudge, Power Nudge, Harmonized Drag, Slide",
        "Contour lever",
        "Nudge",
        "Power Nudge",
        "Harmonized drag",
        "Slide",
        "Servant Nodes",
        "Handle Modifiers"
      ],
      "contentSnippet": "Editing Modes and Modifiers\n\nA plain point move changes the selection directly. The Contour tool's editing modes let surrounding handles or nodes participate, or constrain the movement to a curve. Choose a mode according to what should remain stable, then inspect the result.\n\nPrecision Drag, Nudge, Power Nudge, Harmonized Drag, Slide\n\nDouble-click the Contour tool button to open its toolbox. Nudge, Power Nudge, Harmonized drag, and Slide are mutually exclusive. Choosing one turns the others"
    },
    {
      "slug": "segments-and-curve-types",
      "title": "Segments and Curve Types",
      "summary": "Segments and Curve Types You can edit the path between nodes directly. A segment can be reshaped, moved with its endpoints, or converted to another representation.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Segments and Curve Types",
        "Non-Node Editing",
        "Move instead of reshape",
        "Tunni Lines",
        "Converting between Lines and Curves",
        "Converting Curve Types"
      ],
      "contentSnippet": "Segments and Curve Types\n\nYou can edit the path between nodes directly. A segment can be reshaped, moved with its endpoints, or converted to another representation. Decide whether you want to change its shape or only its position before beginning the gesture.\n\nNon-Node Editing\n\nWith the Contour tool, point directly at an unselected curve between its nodes and drag. This non-node editing reshapes the segment by moving its controls. It is useful when you can see where the edge should go but do"
    },
    {
      "slug": "contour-transformations",
      "title": "Contour Transformations",
      "summary": "Contour Transformations A transformation moves selected points together according to a geometric rule.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Contour Transformations",
        "Rotate, Scale, and Slant",
        "Choose a center and reference",
        "Rotate",
        "Scale",
        "Slant",
        "Free Transform",
        "Set the pivot",
        "Commit or cancel"
      ],
      "contentSnippet": "Contour Transformations\n\nA transformation moves selected points together according to a geometric rule. Use rotation, scaling, slanting, or a free transformation when the whole selected feature needs to change while its parts retain a defined relationship.\n\nRotate, Scale, and Slant\n\nSelect the points or contours with the Contour tool before choosing Rotate (R), Scale (S), or Slant (D). Holding a tool's key activates it temporarily; releasing the key returns to the previous tool.\n\nCheck the"
    },
    {
      "slug": "cutting-slicing-and-erasing",
      "title": "Cutting, Slicing, and Erasing",
      "summary": "Cutting, Slicing, and Erasing Use Knife to insert points or divide paths, Scissors to construct overlaps and corner treatments, and Eraser to remove points...",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Cutting, Slicing, and Erasing",
        "The Knife Tool",
        "Insert or duplicate a point",
        "Cut along a line",
        "The Scissors Tool",
        "Disconnect and make overlaps",
        "Add a simple ink trap",
        "Add a looped corner",
        "The Eraser and the Erasing Rectangle"
      ],
      "contentSnippet": "Cutting, Slicing, and Erasing\n\nUse Knife to insert points or divide paths, Scissors to construct overlaps and corner treatments, and Eraser to remove points or simplify a local section. These operations change the contour structure. Inspect the resulting paths and fill after each cut.\n\nThe Knife Tool\n\nPress J or select Knife. Double-click its Toolbar button to open the toolbox. The three sub-tools determine what a drag through contours does:\n\n| Sub-tool | Result along the cut line |\n|---|---|\n|"
    },
    {
      "slug": "overlaps-and-boolean-operations",
      "title": "Overlaps and Boolean Operations",
      "summary": "Overlaps and Boolean Operations Overlapping strokes are convenient construction pieces.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Overlaps and Boolean Operations",
        "Removing and Making Overlaps",
        "Remove overlap",
        "Make an overlap",
        "Boolean Operations: Subtract, Intersect, Exclude",
        "Cut one shape from another",
        "Protect other contours"
      ],
      "contentSnippet": "Overlaps and Boolean Operations\n\nOverlapping strokes are convenient construction pieces. Contour operations can combine them into a new boundary or use one shape to cut another. These commands rebuild geometry: the original internal edges and point structure may be lost.\n\nKeep an editable source before consolidating a drawing. For interpolation sources, retain compatible construction rather than independently rebuilding every master.\n\nRemoving and Making Overlaps\n\nRemove overlap\n\nUse Contour >"
    },
    {
      "slug": "contour-effects",
      "title": "Contour Effects",
      "summary": "Contour Effects Contour effects derive a new drawing from an existing one: an offset boundary, an expanded stroke, a shadow, or a more elaborate treatment.",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "Contour Effects",
        "Parallel and Expand Contour",
        "Create a parallel contour",
        "Expand a path into a filled stroke",
        "Batch Contour Effects"
      ],
      "contentSnippet": "Contour Effects\n\nContour effects derive a new drawing from an existing one: an offset boundary, an expanded stroke, a shadow, or a more elaborate treatment. Establish the source shape first, then apply the effect to a copy when you need to preserve the original construction.\n\nParallel and Expand Contour\n\nCreate a parallel contour\n\nSelect the source contour and choose Contour > Create Parallel Contour…. The command generates a new boundary offset from the original. A contour with any selected"
    },
    {
      "slug": "the-stem-tool",
      "title": "The Stem Tool",
      "summary": "The Stem Tool The Stem tool edits strokes within an existing outline. You can raise a crossbar, make two uprights heavier, or change a diagonal's...",
      "chapterSlug": "editing-contours",
      "chapterTitle": "Editing Contours",
      "headings": [
        "The Stem Tool",
        "Detected Stems and the Stem Tool",
        "Selecting Stems",
        "Moving and Thickening Stems",
        "Enter a numeric change",
        "Use keyboard steps",
        "Rotating Stems",
        "Spacing, Rounding, and Junctions"
      ],
      "contentSnippet": "The Stem Tool\n\nThe Stem tool edits strokes within an existing outline. You can raise a crossbar, make two uprights heavier, or change a diagonal's inclination while the connected contours adjust. The result remains ordinary outline geometry that you can inspect and refine with the Contour tool. Begin with a clearly detected stroke and check both the changed shape and its surroundings after each edit.\n\nDetected Stems and the Stem Tool\n\nA detected stem is a stroke region FontLab recognizes"
    },
    {
      "slug": "structural-soundness",
      "title": "Structural Soundness",
      "summary": "Structural Soundness A useful outline has the points needed to describe its design, placed so that the curves are easy to inspect and edit.",
      "chapterSlug": "contour-quality",
      "chapterTitle": "Contour Quality",
      "headings": [
        "Structural Soundness",
        "Node Requirements",
        "Put useful control at extrema",
        "Inspect inflections",
        "Check handles and coincident points",
        "Node Economy",
        "Clean up conservatively",
        "Simplify an approximate outline",
        "Coordinate Rounding"
      ],
      "contentSnippet": "Structural Soundness\n\nA useful outline has the points needed to describe its design, placed so that the curves are easy to inspect and edit. Use as few nodes as the design needs, and no fewer. Point count is a consequence of the shape, not a quality score by itself.\n\nNode Requirements\n\nA sharp change in direction needs a node at the corner. A curve also benefits from deliberate divisions at its local extrema, where it reaches a top, bottom, left, or right turning point.\n\nAn extremum is local to"
    },
    {
      "slug": "curve-continuity-and-the-curvature-comb",
      "title": "Curve Continuity and the Curvature Comb",
      "summary": "Curve Continuity and the Curvature Comb A curve can pass through a node without a visible corner and still have an uneven transition.",
      "chapterSlug": "contour-quality",
      "chapterTitle": "Contour Quality",
      "headings": [
        "Curve Continuity and the Curvature Comb",
        "The Curvature Comb",
        "Inspect one join",
        "Use the comb to assess structure",
        "Continuity Levels: G0–G3",
        "Position and direction",
        "Curvature",
        "Change of curvature"
      ],
      "contentSnippet": "Curve Continuity and the Curvature Comb\n\nA curve can pass through a node without a visible corner and still have an uneven transition. Continuity describes what the adjoining segments share at that point: position, direction, curvature, and the way curvature changes.\n\nUse these distinctions to diagnose a particular shape. A higher continuity level is useful only where it supports the design.\n\nThe Curvature Comb\n\nChoose View > Contours > Curvature to show the curvature comb. The Toolbar, View"
    },
    {
      "slug": "harmonizing-curves-and-smart-nodes",
      "title": "Harmonizing Curves and Smart Nodes",
      "summary": "Harmonizing Curves and Smart Nodes Harmonization adjusts a curve relationship toward a defined smoothness condition.",
      "chapterSlug": "contour-quality",
      "chapterTitle": "Contour Quality",
      "headings": [
        "Harmonizing Curves and Smart Nodes",
        "Harmonizing Nodes and Handles",
        "Harmonize nodes",
        "Harmonize handles",
        "Balance tension or equalize lengths",
        "Superharmonize and G3",
        "Genius and Spike Nodes",
        "Maintain a smooth relationship with Genius",
        "Recognize the experimental corner behavior",
        "Recommendations for Harmonizing"
      ],
      "contentSnippet": "Harmonizing Curves and Smart Nodes\n\nHarmonization adjusts a curve relationship toward a defined smoothness condition. Choose the operation according to what may move: the node, its handles, or both as part of an ongoing constraint. Use the curvature comb to diagnose the join, then check the filled letter after the adjustment.\n\nHarmonizing Nodes and Handles\n\nHarmonize nodes\n\nSelect a suitable smooth PS node and choose Contour > Harmonize Nodes. The operation moves the node between its existing"
    },
    {
      "slug": "rulers-guides-and-power-guides",
      "title": "Rulers, Guides, and Power Guides",
      "summary": "Rulers, Guides, and Power Guides Guides give the drawing explicit reference positions.",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Rulers, Guides, and Power Guides",
        "Rulers and Creating Guides",
        "Drag a guide from a ruler",
        "Move and orient a guide",
        "Guide Properties and Management",
        "Measure along a guide",
        "Manage font guides together",
        "Align drawing points to guides",
        "Power Guides",
        "Preserve a stem while changing proportions"
      ],
      "contentSnippet": "Rulers, Guides, and Power Guides\n\nGuides give the drawing explicit reference positions. Use an ordinary guide to align and measure without changing the outline; link nodes to a guide when moving that reference should also reshape the drawing.\n\nRulers and Creating Guides\n\nChoose View > Rulers, or press Cmd+Shift+R on macOS or Ctrl+Shift+R on Windows, to display the Glyph window rulers. Their divisions are font units, not screen pixels. The horizontal ruler reads x positions; the vertical ruler"
    },
    {
      "slug": "expressions-and-parameters",
      "title": "Expressions and Parameters",
      "summary": "Expressions and Parameters A fixed position records where an object is now. A location expression records a relationship, such as a guide halfway between...",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Expressions and Parameters",
        "Relational Positioning",
        "Position a guide by a formula",
        "Reference named objects",
        "Parameters",
        "Define and use a parameter",
        "Manage the list",
        "Understanding Error Messages"
      ],
      "contentSnippet": "Expressions and Parameters\n\nA fixed position records where an object is now. A location expression records a relationship, such as a guide halfway between two design heights. FontLab can recalculate that relationship when its inputs change.\n\nUse expressions for references that should follow the design, and fixed coordinates where the position should remain independent.\n\nRelational Positioning\n\nExpressions combine numbers, named values, and arithmetic. Use , , , and , with parentheses to group"
    },
    {
      "slug": "the-design-grid",
      "title": "The Design Grid",
      "summary": "The Design Grid The design grid is a configurable lattice for constructing and aligning a drawing. You choose its spacing, appearance, and slant.",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "The Design Grid",
        "Show and configure the grid",
        "Snap to the design grid",
        "Slanted grid",
        "Check the resulting coordinates"
      ],
      "contentSnippet": "The Design Grid\n\nThe design grid is a configurable lattice for constructing and aligning a drawing. You choose its spacing, appearance, and slant. It can provide a modular reference—for example, a repeated ten-unit interval—without changing the font's units per em.\n\nIt is separate from the font unit grid, which displays individual integer-coordinate intervals at high zoom. Round coordinates separately controls fractional editing.\n\nShow and configure the grid\n\nChoose View > Measurements > Grid,"
    },
    {
      "slug": "snapping-and-suggestions",
      "title": "Snapping and Suggestions",
      "summary": "Snapping and Suggestions Snapping helps an edit land on a reference. Suggestions extend that help to useful positions calculated from the drawing, such as a...",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Snapping and Suggestions",
        "Snapping",
        "Align an edit to a reference",
        "Resolve unexpected snapping",
        "Suggestions",
        "References derived from points and edges",
        "Hidden guides",
        "Consistent widths and offsets",
        "Handle relationships"
      ],
      "contentSnippet": "Snapping and Suggestions\n\nSnapping helps an edit land on a reference. Suggestions extend that help to useful positions calculated from the drawing, such as a continuation of a line or a chosen distance from a stem. Enable the references that support the task, then check the position where the edit lands.\n\nSnapping\n\nView > Enable Snapping is the overall switch for snapping and suggestions. Turn it on before choosing the references you want to use. Turning it off suspends their attraction without"
    },
    {
      "slug": "live-measurement",
      "title": "Live Measurement",
      "summary": "Live Measurement Measure the feature you intend to change before editing it. FontLab provides a dragged measurement line, pointer-following Quick...",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Live Measurement",
        "The Guides Tool",
        "Inspect automatic readouts",
        "Quick Measurement",
        "Choose a direction and precision",
        "Compare thickness along a stroke",
        "Measure against guides",
        "AutoMeter",
        "Edit a measured stem",
        "Compare with defined stems"
      ],
      "contentSnippet": "Live Measurement\n\nMeasure the feature you intend to change before editing it. FontLab provides a dragged measurement line, pointer-following Quick Measurement, and automatically placed AutoMeter values. Each answers a different question about the same outline.\n\nThe Guides Tool\n\nSelect Guides in the Toolbar or press G. Hold G for temporary measuring access from another tool, then release it to return. Use a normal tap when you want to keep the tool active.\n\nDrag from the first point to the"
    },
    {
      "slug": "font-audit",
      "title": "Font Audit",
      "summary": "Font Audit FontAudit checks outlines for technical irregularities and questionable curve construction. It can locate many problems and repair some automatically.",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Font Audit",
        "The FontAudit Checker",
        "Inspect and fix one problem",
        "Choose the tests",
        "Check several glyphs",
        "The Test Catalogue"
      ],
      "contentSnippet": "Font Audit\n\nFontAudit checks outlines for technical irregularities and questionable curve construction. It can locate many problems and repair some automatically. Use it alongside visual inspection: a reported condition may be intentional, and a clean report does not establish that the letter looks or functions as intended.\n\nThe FontAudit Checker\n\nOpen Window > Panels > FontAudit for the problem list. Enable View > Contours > FontAudit (Shift+Cmd+F on macOS, Ctrl+Shift+F on Windows) to show"
    },
    {
      "slug": "design-references-and-comparing",
      "title": "Design References and Comparing",
      "summary": "Design References and Comparing Keep a reference when an edit needs a meaningful comparison.",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "Design References and Comparing",
        "Masks",
        "Compare an edit with its starting shape",
        "Edit or reuse the reference",
        "Align against a mask",
        "Use a Global Mask",
        "History and Rewind"
      ],
      "contentSnippet": "Design References and Comparing\n\nKeep a reference when an edit needs a meaningful comparison. A mask holds artwork beside the working drawing; History lets you revisit editing states, and Rewind can explore an intermediate result between a recording and the current drawing.\n\nMasks\n\nA mask is reference content associated with a glyph's design layer, a case of the service-layer model developed in Layers and Masters. It can contain contours or an image used for tracing. It is excluded from"
    },
    {
      "slug": "view-sets-and-the-view-panel",
      "title": "View Sets and the View Panel",
      "summary": "View Sets and the View Panel An outline-editing view can accumulate many useful details: points, guides, measurements, masks, and audit markers.",
      "chapterSlug": "design-aids",
      "chapterTitle": "Design Aids",
      "headings": [
        "View Sets and the View Panel",
        "The View Panel as Display Controller",
        "Basic and Alternative View Sets",
        "Build a useful pair",
        "Per-Mode Sets and Defaults"
      ],
      "contentSnippet": "View Sets and the View Panel\n\nAn outline-editing view can accumulate many useful details: points, guides, measurements, masks, and audit markers. View sets let you retain different combinations and switch between them without repeatedly rebuilding the display.\n\nThe View Panel as Display Controller\n\nOpen Window > Panels > View with a Glyph window active. The panel gathers controls also available through the View menu and Toolbar. In compact horizontal toolbar mode, use the View options popup for"
    },
    {
      "slug": "designing-the-whitespace",
      "title": "Designing the Whitespace",
      "summary": "Designing the Whitespace A glyph's drawing and its surrounding space work together.",
      "chapterSlug": "spacing",
      "chapterTitle": "Spacing",
      "headings": [
        "Designing the Whitespace",
        "Form and Counterform",
        "Sidebearings and Advance Width",
        "Spacing and pair adjustments"
      ],
      "contentSnippet": "Designing the Whitespace\n\nA glyph's drawing and its surrounding space work together. The outlines determine the visible form; the spacing determines how that form meets its neighbors. Even an unfinished glyph already has an advance width and a position within it. Spacing makes those provisional relationships deliberate.\n\nForm and Counterform\n\nLook at a word before inspecting its individual letters. The alternation of strokes and spaces creates a rhythm. Across a paragraph, that rhythm"
    },
    {
      "slug": "the-metrics-workspace",
      "title": "The Metrics Workspace",
      "summary": "The Metrics Workspace Use Metrics mode to judge the drawing and its surrounding space without the detail of contour editing.",
      "chapterSlug": "spacing",
      "chapterTitle": "Spacing",
      "headings": [
        "The Metrics Workspace",
        "The Glyph Window in Metrics Mode",
        "Primary spacing instruments",
        "Complementary readouts",
        "Supply a test string",
        "Remove display adjustments before spacing",
        "Navigation, Viewing, and Text Entry"
      ],
      "contentSnippet": "The Metrics Workspace\n\nUse Metrics mode to judge the drawing and its surrounding space without the detail of contour editing. The workspace brings sidebearings and advance widths onto the canvas and keeps a text string visible around the current glyph.\n\nThe Glyph Window in Metrics Mode\n\nClick the Metrics tool in the Toolbar, or press M with the Glyph window in editing focus. This tool switches the window into Metrics mode; it has no floating sub-tool toolbox. Holding M activates the mode"
    },
    {
      "slug": "spacing-glyphs",
      "title": "Spacing Glyphs",
      "summary": "Spacing Glyphs Work in Metrics mode with Apply Kerning off and Simulate horizontal tracking at zero.",
      "chapterSlug": "spacing",
      "chapterTitle": "Spacing",
      "headings": [
        "Spacing Glyphs",
        "Spacing Principles and Test Strings",
        "Editing Glyph Metrics",
        "Drag on the canvas",
        "Use the keyboard",
        "Enter a value",
        "Set widths or sidebearings for a selection",
        "Autospacing",
        "Measurement Modes"
      ],
      "contentSnippet": "Spacing Glyphs\n\nWork in Metrics mode with Apply Kerning off and Simulate horizontal tracking at zero. Establish a repeatable text context, change one spacing decision, then compare the result in several strings. A useful default bearing should work beyond the one pair currently on screen.\n\nSpacing Principles and Test Strings\n\nBegin with reference glyphs whose spacing you can judge consistently. For uppercase work, compare a candidate among straight-sided  glyphs and rounded  glyphs. For"
    },
    {
      "slug": "relational-spacing",
      "title": "Relational Spacing",
      "summary": "Relational Spacing A group of related glyphs can share a spacing decision. Metrics expressions let one glyph's bearing or width follow another value.",
      "chapterSlug": "spacing",
      "chapterTitle": "Spacing",
      "headings": [
        "Relational Spacing",
        "Linking Metrics with Expressions",
        "Binding Sidebearings"
      ],
      "contentSnippet": "Relational Spacing\n\nA group of related glyphs can share a spacing decision. Metrics expressions let one glyph's bearing or width follow another value. Binding holds a bearing to a chosen value while its own outline changes. Use a link for a relationship between metrics, and a binding for a stable clearance around changing content.\n\nLinking Metrics with Expressions\n\nEnter a metrics expression in an LSB, RSB, or Width field in the Metrics Table, property bar, or Glyph panel. The formula defines"
    },
    {
      "slug": "reuse-and-composition",
      "title": "Reuse and Composition",
      "summary": "Reuse and Composition A font does not need a separately redrawn outline for every related glyph. Many letterforms share a base, a mark, or a repeated part.",
      "chapterSlug": "manual-composites-and-glyph-recipes",
      "chapterTitle": "Manual Composites and Glyph Recipes",
      "headings": [
        "Reuse and Composition",
        "Reuse and Combination in Writing Systems",
        "Components, Composites, and Composition"
      ],
      "contentSnippet": "Reuse and Composition\n\nA font does not need a separately redrawn outline for every related glyph. Many letterforms share a base, a mark, or a repeated part. Components let you express that relationship in the font, so a shared design can remain shared while each host glyph keeps its own identity.\n\nReuse and Combination in Writing Systems\n\nCombining signs is a familiar part of writing. A diacritic is a mark added to a letter to distinguish a sound, tone, grammatical form, or other reading. An"
    },
    {
      "slug": "building-composites-by-hand",
      "title": "Building Composites by Hand",
      "summary": "Building Composites by Hand Build a composite by placing references to existing glyphs in a host glyph.",
      "chapterSlug": "manual-composites-and-glyph-recipes",
      "chapterTitle": "Manual Composites and Glyph Recipes",
      "headings": [
        "Building Composites by Hand",
        "Adding Components",
        "Choose placement and metrics",
        "Use the clipboard",
        "Adjust a placed component",
        "Other ways component structure enters a font",
        "Managing, Replacing, and Reordering Components",
        "Open the source",
        "Change the order",
        "Replace a source",
        "Find dependents and sources",
        "Decomposing Composites"
      ],
      "contentSnippet": "Building Composites by Hand\n\nBuild a composite by placing references to existing glyphs in a host glyph. Work with the component as a whole when changing its placement; edit the source glyph when its shared outline needs to change.\n\nAdding Components\n\nStart with the source glyphs already present. For an accented letter, create or open the host, such as , and check that  and the intended acute mark contain the drawings you want to reuse.\nChoose Glyph > Add Component….\nSearch for the base glyph"
    },
    {
      "slug": "controlling-composite-metrics",
      "title": "Controlling Composite Metrics",
      "summary": "Controlling Composite Metrics A composite needs its own useful spacing, even when its drawing comes from other glyphs.",
      "chapterSlug": "manual-composites-and-glyph-recipes",
      "chapterTitle": "Manual Composites and Glyph Recipes",
      "headings": [
        "Controlling Composite Metrics",
        "Linking Composite Metrics",
        "Why an overhanging mark changes the calculation",
        "The Nonspacing Property",
        "Exclude the accent from metric bounds",
        "What uses the property",
        "Assign it automatically",
        "Detect or clear the property in existing content"
      ],
      "contentSnippet": "Controlling Composite Metrics\n\nA composite needs its own useful spacing, even when its drawing comes from other glyphs. Often the intended fit is the base letter's fit, with an accent extending beyond it. Metrics links preserve that relationship; the Nonspacing property controls whether the accent contributes to the bounds used to calculate it.\n\nLinking Composite Metrics\n\nFor a straightforward , enter  in both sidebearing fields. The composite then follows the corresponding bearings of . For "
    },
    {
      "slug": "using-recipes-for-composite-building",
      "title": "Using Recipes for Composite Building",
      "summary": "Using Recipes for Composite Building A glyph recipe describes which source glyphs to use, how to place them, and optionally how to set the resulting metrics.",
      "chapterSlug": "manual-composites-and-glyph-recipes",
      "chapterTitle": "Manual Composites and Glyph Recipes",
      "headings": [
        "Using Recipes for Composite Building",
        "Glyphs from Recipes",
        "Set the generation options",
        "Use the other tabs for specific tasks",
        "Construction Grammars",
        "Legacy FLS5 syntax",
        "Glyph Construction syntax",
        "Metrics and annotations",
        "Built-in Recipes"
      ],
      "contentSnippet": "Using Recipes for Composite Building\n\nA glyph recipe describes which source glyphs to use, how to place them, and optionally how to set the resulting metrics. It replaces a sequence of manual Add Component operations with a construction you can read, revise, and run again.\n\nA recipe can be executed once to build ordinary content or retained in an auto layer for regeneration. The construction language is the same; whether it stays live is a separate choice.\n\nGlyphs from Recipes\n\nChoose Font >"
    },
    {
      "slug": "anchors-for-positioning",
      "title": "Anchors for Positioning",
      "summary": "Anchors for Positioning An anchor is a named point in a glyph that defines an attachment position.",
      "chapterSlug": "anchors-and-auto-layers",
      "chapterTitle": "Anchors and Auto Layers",
      "headings": [
        "Anchors for Positioning",
        "Anchors as Attachment Points",
        "Add and name anchors",
        "Read and edit the anchor",
        "Copy anchors between glyphs",
        "Position anchors with expressions",
        "Construction Grammar for Anchors",
        "Choose a particular attachment pair",
        "Anchors in the built glyph",
        "Use anchors when adding a component",
        "Chain ligature components",
        "Anchors in Ligature Recipes",
        "Carets within a ligature",
        "Arabic construction examples",
        "Limits of Anchor-Based Placement"
      ],
      "contentSnippet": "Anchors for Positioning\n\nAn anchor is a named point in a glyph that defines an attachment position. A guide gives you a line to align to; an anchor gives a component a point to meet. Placing those points deliberately lets many composites share the same attachment decision.\n\nAnchors refine placement. A recipe or an Add Component operation still determines which glyphs are present in the construction.\n\nAnchors as Attachment Points\n\nThe usual pairing rule is a plain name on the base and the same"
    },
    {
      "slug": "auto-layers",
      "title": "Auto Layers",
      "summary": "Auto Layers An auto layer keeps a glyph recipe live. FontLab generates its content from the recipe and can rebuild that content when the sources change.",
      "chapterSlug": "anchors-and-auto-layers",
      "chapterTitle": "Anchors and Auto Layers",
      "headings": [
        "Auto Layers",
        "Auto Layers as Live Composites",
        "Keep metrics and placement related",
        "Inherit and consume anchors",
        "Other source data",
        "Custom and Dynamic Auto Layers",
        "Read, edit, and reset the recipe",
        "Copy and reuse recipes",
        "Creating, Managing, and Freezing Auto Layers",
        "Scope and creation",
        "Updating and finding auto layers",
        "Freezing for manual work"
      ],
      "contentSnippet": "Auto Layers\n\nAn auto layer keeps a glyph recipe live. FontLab generates its content from the recipe and can rebuild that content when the sources change. Choose it when the construction should be maintained automatically, rather than adjusted independently in each host glyph.\n\nAuto Layer is a layer property. A glyph with at least one auto layer is an auto glyph; different masters can have different states. The workflow here concerns one working master, with broader-scope controls identified"
    },
    {
      "slug": "the-element-model",
      "title": "The Element Model",
      "summary": "The Element Model Every contour you have drawn in FontLab belongs to an element . The element is the container through which that drawing belongs to the glyph.",
      "chapterSlug": "the-element-model-and-element-references",
      "chapterTitle": "The Element Model and Element References",
      "headings": [
        "The Element Model",
        "Elements as Containers",
        "Element Types and the Elements Panel",
        "Create and remove containers",
        "Read the list",
        "Use the on-canvas Elements widget",
        "Element Contents and Element Properties",
        "Recognize the state controls",
        "Organizing Contours and Elements",
        "Combine or separate contour membership",
        "Group elements",
        "Keep the two orders distinct"
      ],
      "contentSnippet": "The Element Model\n\nEvery contour you have drawn in FontLab belongs to an element. The element is the container through which that drawing belongs to the glyph. In ordinary drawing, FontLab supplies the container automatically, so you can work for a long time without managing it explicitly.\n\nThe components used in Parts 16–17 occupy this same element level, resolving content from a source glyph. Their glyph relationship is more specific than an ordinary shared-element reference, but the"
    },
    {
      "slug": "element-transformations",
      "title": "Element Transformations",
      "summary": "Element Transformations An element can be moved, scaled, mirrored, rotated, or slanted while retaining its original content coordinates.",
      "chapterSlug": "the-element-model-and-element-references",
      "chapterTitle": "The Element Model and Element References",
      "headings": [
        "Element Transformations",
        "Global and Local Coordinates",
        "Element-Level vs. Contour-Level Editing",
        "Expand or discard a transformation",
        "Work across elements",
        "Select through the Elements widget",
        "Applying Element and Group Transformations",
        "Mirror and reset",
        "Align and distribute",
        "Transform a group"
      ],
      "contentSnippet": "Element Transformations\n\nAn element can be moved, scaled, mirrored, rotated, or slanted while retaining its original content coordinates. The transformation belongs to that occurrence of the element. This lets a shared drawing appear in several places without forcing every occurrence to have the same pose.\n\nGlobal and Local Coordinates\n\nThe glyph has a coordinate system based on its origin and baseline. Each element's content also has a local coordinate system. With an identity"
    },
    {
      "slug": "element-references",
      "title": "Element References",
      "summary": "Element References An element reference is an occurrence of shared element content.",
      "chapterSlug": "the-element-model-and-element-references",
      "chapterTitle": "The Element Model and Element References",
      "headings": [
        "Element References",
        "References as Shared Content",
        "Creating and Managing References",
        "Copy and paste a linked occurrence",
        "Add by name or from the Gallery",
        "Use Paste Special",
        "Detect existing shared geometry",
        "Inspect or unlink",
        "Pins: Attaching Elements",
        "Set an attachment relationship",
        "Element References vs. Components",
        "Convert between the mechanisms"
      ],
      "contentSnippet": "Element References\n\nAn element reference is an occurrence of shared element content. Several occurrences can use the same drawing while retaining their own placement and visual properties. Use references when the reusable unit is a part of a glyph rather than a whole source glyph.\n\nReferences as Shared Content\n\nThe occurrences are peers: no particular glyph has to be the permanent source. Editing the shared contours through any unlocked occurrence changes the same content. The other occurrences"
    },
    {
      "slug": "building-glyphs-from-element-references",
      "title": "Building Glyphs from Element References",
      "summary": "Building Glyphs from Element References A small library of shared parts can support a large set of glyphs.",
      "chapterSlug": "the-element-model-and-element-references",
      "chapterTitle": "The Element Model and Element References",
      "headings": [
        "Building Glyphs from Element References",
        "Element References as Building Blocks",
        "Derive related forms",
        "Choose a repertoire that benefits",
        "Modeling Elements with Components",
        "Build a shared face ring",
        "Weigh the two routes"
      ],
      "contentSnippet": "Building Glyphs from Element References\n\nA small library of shared parts can support a large set of glyphs. References work best when those parts are intended to remain the same drawing under different placements or transformations. Keep local differences independent when the design needs them.\n\nElement References as Building Blocks\n\nBegin with a recurring part that has a clear role: a serif, stem, bowl, dot, or terminal. Put it in its own contour element and give that element a descriptive"
    },
    {
      "slug": "live-filters",
      "title": "Live Filters",
      "summary": "Live Filters A live filter lets you try a change to an outline while keeping the drawing that produced it.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "Live Filters",
        "Live Filter Principles",
        "Apply, adjust, and resolve",
        "Choose a filter by the change you need",
        "Filters on Element References"
      ],
      "contentSnippet": "Live Filters\n\nA live filter lets you try a change to an outline while keeping the drawing that produced it. You can round a corner, cut one shape out of another, attach a serif, or distort an entire element, then adjust the result as the design develops.\n\nLive Filter Principles\n\nAn element transformation changes where existing content appears: its position, scale, slant, or rotation. A live filter generates or modifies the geometry shown for that content. The source remains available for"
    },
    {
      "slug": "boolean-assembly-fusion-clipping-and-the",
      "title": "Boolean Assembly: Fusion, Clipping, and the Fill Tool",
      "summary": "Boolean Assembly: Fusion, Clipping, and the Fill Tool A glyph can remain a collection of editable shapes while displaying their combined outline.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "Boolean Assembly: Fusion, Clipping, and the Fill Tool",
        "The Fusion Filter",
        "Choose the operation",
        "Make a live cut",
        "Finish or discard the construction",
        "The Clipping Group",
        "The Fill Tool",
        "Fill across several elements",
        "Edit a Fill construction"
      ],
      "contentSnippet": "Boolean Assembly: Fusion, Clipping, and the Fill Tool\n\nA glyph can remain a collection of editable shapes while displaying their combined outline. Fusion lets you choose how stacked elements combine. The Fill tool lets you choose the solid and hollow regions directly on the canvas.\n\nThe Fusion Filter\n\nFusion performs live Boolean operations between elements. Unlike a contour-level Boolean operation, it does not require you to combine the participating contours into one ordinary element and"
    },
    {
      "slug": "smart-corners-and-ink-traps",
      "title": "Smart Corners and Ink Traps",
      "summary": "Smart Corners and Ink Traps A Smart Corner lets you change the treatment of a junction while keeping its original corner editable.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "Smart Corners and Ink Traps",
        "Rounded Corners and Ink Traps",
        "Add a Smart Corner",
        "Adjusting and Configuring Smart Corners",
        "Size and shape are separate settings",
        "Set defaults, then override exceptions",
        "Expansion and Export Behavior"
      ],
      "contentSnippet": "Smart Corners and Ink Traps\n\nA Smart Corner lets you change the treatment of a junction while keeping its original corner editable. Use it to soften a sharp vertex or open an ink trap, then tune the treatment as the surrounding strokes change.\n\nRounded Corners and Ink Traps\n\nA Smart Corner is a live treatment attached to a sharp corner node. Its handle controls the generated shape. Move the handle into the corner's smaller angular region to round the corner; move it to the opposite, larger"
    },
    {
      "slug": "the-glue-filter",
      "title": "The Glue Filter",
      "summary": "The Glue Filter Use Glue when a drawn detail should remain a separate, editable part while joining a larger outline.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "The Glue Filter",
        "Gluing an Open Contour to a Body",
        "Apply Glue",
        "Control the joins",
        "Resolve the result",
        "Pinned Attachment and Reuse",
        "Make a reusable serif"
      ],
      "contentSnippet": "The Glue Filter\n\nUse Glue when a drawn detail should remain a separate, editable part while joining a larger outline. A serif can keep its own source contour, attach to a stem, and update when you edit either the stem or the serif.\n\nGluing an Open Contour to a Body\n\nThe Glue filter connects the endpoints of an open contour to a closed body. The element containing that open contour becomes the glued element. FontLab puts the participating content in a glue construction, shown in the Elements"
    },
    {
      "slug": "the-skin-filter",
      "title": "The Skin Filter",
      "summary": "The Skin Filter The Skin filter applies a reusable drawing to selected nodes or segments.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "The Skin Filter",
        "The Skin Filter and Skin Sources",
        "Prepare a source",
        "Apply and edit a skin",
        "Reusing an applied skin",
        "The Four Skin Types",
        "Corner skin",
        "Turn an existing serif into a source",
        "Cap skin",
        "Segment skin",
        "Dash skin",
        "Choosing Among the Detail Filters"
      ],
      "contentSnippet": "The Skin Filter\n\nThe Skin filter applies a reusable drawing to selected nodes or segments. It can put a serif at a corner, fit a terminal across an edge, replace a segment with a more elaborate shape, or repeat a small motif along a path. The source drawing stays in a named glyph, where one edit can update many uses.\n\nThe Skin Filter and Skin Sources\n\nThe body glyph contains the nodes and segments receiving the treatment. A skin source glyph supplies the skin content: the contours and"
    },
    {
      "slug": "the-delta-filter",
      "title": "The Delta Filter",
      "summary": "The Delta Filter Use the Delta filter to try a shape change while retaining the outline that preceded it.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "The Delta Filter",
        "Delta Filter Mechanics",
        "Add the filter",
        "Move or hold coordinates",
        "Edit and copy deltas",
        "Adjust Progress",
        "Deriving Weights, Widths, and Alternates",
        "Derive an alternate from a shared source"
      ],
      "contentSnippet": "The Delta Filter\n\nUse the Delta filter to try a shape change while retaining the outline that preceded it. Move a few important coordinates, hold others in place, and let FontLab interpolate the remaining coordinates. The result stays adjustable, including the overall strength of the change.\n\nDelta Filter Mechanics\n\nPower Nudge commits a contour edit, moving selected nodes and proportional followers, the virtual servant nodes from Editing Modes and Modifiers. The Delta filter generalizes this"
    },
    {
      "slug": "the-mesh-filter",
      "title": "The Mesh Filter",
      "summary": "The Mesh Filter The Mesh filter reshapes an element through an enclosing envelope. Drag the envelope's corners or curve handles and the content deforms with it.",
      "chapterSlug": "live-filters",
      "chapterTitle": "Live Filters",
      "headings": [
        "The Mesh Filter",
        "Envelope-Based Distortion",
        "Using the Mesh Filter",
        "Keep the deformation editable",
        "Work within the envelope's limits"
      ],
      "contentSnippet": "The Mesh Filter\n\nThe Mesh filter reshapes an element through an enclosing envelope. Drag the envelope's corners or curve handles and the content deforms with it. Use it to arch, taper, or otherwise warp a drawing while keeping the source outline available.\n\nEnvelope-Based Distortion\n\nA Mesh filter controls the outline from outside its individual nodes. Where a Delta filter assigns adjustments to particular coordinates, Mesh maps the enclosed content through a deformable rectangular"
    },
    {
      "slug": "designing-with-skeletons",
      "title": "Designing with Skeletons",
      "summary": "Designing with Skeletons A contour can describe the path a pen travels instead of the boundary of the ink.",
      "chapterSlug": "stroke-and-brush",
      "chapterTitle": "Stroke and Brush",
      "headings": [
        "Designing with Skeletons"
      ],
      "contentSnippet": "Designing with Skeletons\n\nA contour can describe the path a pen travels instead of the boundary of the ink. Give that path a thickness and FontLab generates the visible outline around it. This is skeleton-based design: you edit the structural path of a letter or symbol and control how much body it receives.\n\nA skeleton is the centerline or guiding path of a stroke-built form. An open contour is a natural skeleton for a stem, swash, or handwritten stroke. A closed path can also guide a stroke,"
    },
    {
      "slug": "working-with-strokes",
      "title": "Working with Strokes",
      "summary": "Working with Strokes A stroke gives a contour thickness by generating offset edges around it.",
      "chapterSlug": "stroke-and-brush",
      "chapterTitle": "Stroke and Brush",
      "headings": [
        "Working with Strokes",
        "The Stroke Property",
        "Shape the ends",
        "Shape the corners",
        "Distribute the stroke around the path",
        "Control compression and overlaps",
        "Understand the simple stroke",
        "Expand or remove the stroke",
        "Power Stroke"
      ],
      "contentSnippet": "Working with Strokes\n\nA stroke gives a contour thickness by generating offset edges around it. Draw the path first, then choose its weight, end shapes, corner treatment, and distribution on either side. Keep the stroke adjustable while you refine those relationships.\n\nThe Stroke Property\n\nA stroke is an element property. It can give body to an open skeleton or surround a closed shape. FontLab applies the stroke after the element transformation, so changing the path's transform and changing the"
    },
    {
      "slug": "working-with-brushes",
      "title": "Working with Brushes",
      "summary": "Working with Brushes A brush carries a nib along a path. Its visible width changes with the path's direction relative to that nib, which makes it useful for...",
      "chapterSlug": "stroke-and-brush",
      "chapterTitle": "Stroke and Brush",
      "headings": [
        "Working with Brushes",
        "Drawing with the Brush",
        "Simple brush",
        "Power Brush",
        "Erasing and smoothing",
        "Choose stroke or brush",
        "Configuring the Brush",
        "Set the nib's shape and size",
        "Shape the profile and terminals",
        "Keep reusable brush settings"
      ],
      "contentSnippet": "Working with Brushes\n\nA brush carries a nib along a path. Its visible width changes with the path's direction relative to that nib, which makes it useful for broad-nib lettering, scripts, and other calligraphic forms. Keep the brush live when you want to revise the path or pen shape after drawing.\n\nDrawing with the Brush\n\nThe Brush tool uses an elliptical nib. A narrow ellipse produces contrast between movements across its broad dimension and movements along its narrow dimension. Rotating the"
    },
    {
      "slug": "the-thickness-tool",
      "title": "The Thickness Tool",
      "summary": "The Thickness Tool The Thickness tool changes the body generated around a skeleton without requiring you to edit both outline edges separately.",
      "chapterSlug": "stroke-and-brush",
      "chapterTitle": "Stroke and Brush",
      "headings": [
        "The Thickness Tool",
        "The Thickness Tool",
        "Local overrides",
        "Numeric thickness",
        "Snapping and scope",
        "Modulating Strokes",
        "Modulating Brushes",
        "Read the nib handles",
        "Make local and global changes deliberately"
      ],
      "contentSnippet": "The Thickness Tool\n\nThe Thickness tool changes the body generated around a skeleton without requiring you to edit both outline edges separately. Use it to create swells and tapers, shift a stroke from one side of its path to the other, or vary a Power Brush nib along its path.\n\nThe Thickness Tool\n\nPress 8 or choose Thickness with a Stroke, Power Stroke, or Power Brush element active. Its controls follow the skeleton nodes. For strokes, white controls indicate the element default; local side"
    },
    {
      "slug": "coloring-contour-elements",
      "title": "Coloring Contour Elements",
      "summary": "Coloring Contour Elements A color glyph can be built from the same contours you use for a monochrome design.",
      "chapterSlug": "designing-in-color",
      "chapterTitle": "Designing in Color",
      "headings": [
        "Coloring Contour Elements",
        "Fill, Stroke, and Opacity",
        "Applying Color",
        "Give a part a solid color",
        "Choose and reuse colors",
        "Make a gradient",
        "Apply a color to several glyphs",
        "Color Glyphs as Element Stacks",
        "Overlay existing fonts"
      ],
      "contentSnippet": "Coloring Contour Elements\n\nA color glyph can be built from the same contours you use for a monochrome design. Give its parts separate colors, arrange them as elements, and inspect how they overlap. The element structure determines which parts you can color independently.\n\nFill, Stroke, and Opacity\n\nA contour element carries a fill, a stroke, and an opacity setting. The fill colors its interior. The stroke colors the outline generated by its stroke settings. Opacity determines how strongly the"
    },
    {
      "slug": "working-with-color-images",
      "title": "Working with Color Images",
      "summary": "Working with Color Images Color artwork can begin in a drawing or painting application and become part of a FontLab glyph.",
      "chapterSlug": "designing-in-color",
      "chapterTitle": "Designing in Color",
      "headings": [
        "Working with Color Images",
        "Editable SVG Color",
        "Convert an SVG element to editable content",
        "Bitmap Color Content",
        "Process the image",
        "Threshold and background removal",
        "Keep pixels and contours distinct",
        "Batch-Processing Images",
        "Separate and inspect",
        "Scale and alignment",
        "Create glyphs",
        "Vector and Bitmap Output"
      ],
      "contentSnippet": "Working with Color Images\n\nColor artwork can begin in a drawing or painting application and become part of a FontLab glyph. The important distinction is what you bring in: vector shapes that can become editable contours, or pixels that remain an image. Both can be positioned and combined with other elements, but they offer different kinds of editing and scale differently in the finished design.\n\nEditable SVG Color\n\nAn SVG element stores an SVG graphic as element content. You can move, scale,"
    },
    {
      "slug": "the-variation-model",
      "title": "The Variation Model",
      "summary": "The Variation Model A family of related fonts can share a system of drawings. You design a small number of reference designs, called masters, and let...",
      "chapterSlug": "the-font-variations-framework",
      "chapterTitle": "The Font Variations Framework",
      "headings": [
        "The Variation Model",
        "Variation as Interpolation",
        "Build corresponding structures",
        "Static and Dynamic Instances",
        "Families and Variable Fonts"
      ],
      "contentSnippet": "The Variation Model\n\nA family of related fonts can share a system of drawings. You design a small number of reference designs, called masters, and let FontLab calculate designs between them. This makes interpolation useful even when the only fonts you intend to deliver are ordinary static styles.\n\nVariation as Interpolation\n\nA master supplies a complete source design at a particular location. FontLab realizes font masters through named layers registered with axis locations, as developed in"
    },
    {
      "slug": "layers-and-masters",
      "title": "Layers and Masters",
      "summary": "Layers and Masters A glyph can contain several drawings without becoming several glyphs.",
      "chapterSlug": "the-font-variations-framework",
      "chapterTitle": "The Font Variations Framework",
      "headings": [
        "Layers and Masters",
        "The Layer System",
        "Masters as Font-Registered Layers",
        "Choose the main master",
        "Creating and Managing Masters",
        "Rename, reorder, and remove",
        "Work with individual layers",
        "Distinguish masters visually"
      ],
      "contentSnippet": "Layers and Masters\n\nA glyph can contain several drawings without becoming several glyphs. Its layers hold those drawings, and the active layer determines which one you are editing. Masters connect selected layers to the font's variation model.\n\nThe Layer System\n\nThe drawing hierarchy is glyph → layer → element → contour → node and handles. An image or SVG element holds its own kind of content instead of ordinary contours. The drawing you make in a Glyph window belongs to the active layer. This"
    },
    {
      "slug": "axes-and-master-locations",
      "title": "Axes and Master Locations",
      "summary": "Axes and Master Locations Axes give masters a coordinate system. A name such as Bold identifies a design for you; its location tells FontLab how that design...",
      "chapterSlug": "the-font-variations-framework",
      "chapterTitle": "The Font Variations Framework",
      "headings": [
        "Axes and Master Locations",
        "Defining Axes",
        "Design and User Coordinates",
        "Placing Masters on Axes"
      ],
      "contentSnippet": "Axes and Master Locations\n\nAxes give masters a coordinate system. A name such as Bold identifies a design for you; its location tells FontLab how that design participates in interpolation. Keep those two roles distinct when configuring a family.\n\nDefining Axes\n\nOpen Font Info > Axes and use + to add an axis. Choose a predefined type when it describes your design, or create a custom axis. Select an axis and use − to remove it only after considering the master and instance locations that depend"
    },
    {
      "slug": "advanced-axis-management",
      "title": "Advanced Axis Management",
      "summary": "Advanced Axis Management A design's working coordinates and its user-facing values do not have to progress at the same rate. Use axis mapping to relate the two scales.",
      "chapterSlug": "the-font-variations-framework",
      "chapterTitle": "The Font Variations Framework",
      "headings": [
        "Advanced Axis Management",
        "The Axis Graph and Nonlinear Mapping",
        "Edit the mapping",
        "Change the range deliberately",
        "Extending Axes: Extrapolation"
      ],
      "contentSnippet": "Advanced Axis Management\n\nA design's working coordinates and its user-facing values do not have to progress at the same rate. Use axis mapping to relate the two scales. Use extrapolation only when you deliberately need a design beyond the masters you have drawn.\n\nThe Axis Graph and Nonlinear Mapping\n\nOpen Font Info > Axes and click the Axis Graph control for the axis. The graph relates horizontal design coordinates to vertical user coordinates. Its endpoints define the mapping's range, and"
    },
    {
      "slug": "defining-and-generating-instances",
      "title": "Defining and Generating Instances",
      "summary": "Defining and Generating Instances An instance definition records a location and the identity of the style you want there.",
      "chapterSlug": "the-font-variations-framework",
      "chapterTitle": "The Font Variations Framework",
      "headings": [
        "Defining and Generating Instances",
        "Predefined Instances",
        "Build a list",
        "Instances as Styles",
        "Generating from Instances",
        "Add and reinterpolate a master"
      ],
      "contentSnippet": "Defining and Generating Instances\n\nAn instance definition records a location and the identity of the style you want there. It does not add another drawing to the designspace. Define the useful family members first, then generate source results when you need to inspect or edit them independently.\n\nPredefined Instances\n\nOpen Font Info > Instances. A predefined instance is a saved location with naming and output properties. Use + to add an entry, select it, and enter its design-coordinate"
    },
    {
      "slug": "interpolation-and-compatibility",
      "title": "Interpolation and Compatibility",
      "summary": "Interpolation and Compatibility Interpolation combines corresponding data. Before judging the shape it produces, establish what FontLab is pairing between the masters.",
      "chapterSlug": "working-with-masters",
      "chapterTitle": "Working with Masters",
      "headings": [
        "Interpolation and Compatibility",
        "Interpolation Mechanics",
        "Pair the data before blending it",
        "Compatibility and Matching Masters",
        "Compatibility is not correct correspondence",
        "Interpolation beyond Point Coordinates"
      ],
      "contentSnippet": "Interpolation and Compatibility\n\nInterpolation combines corresponding data. Before judging the shape it produces, establish what FontLab is pairing between the masters. A numerical blend can run successfully while connecting the wrong parts of a letter.\n\nInterpolation Mechanics\n\nOn a simple axis with Light at 300 and Bold at 700, a location of 500 is halfway between them. Each master contributes half of a corresponding point's coordinates. At 340, Light contributes 90% and Bold 10%.\n\nIf an"
    },
    {
      "slug": "previewing-diagnosing-and-fixing-interpo",
      "title": "Previewing, Diagnosing, and Fixing Interpolation",
      "summary": "Previewing, Diagnosing, and Fixing Interpolation Work from the visible result toward the underlying correspondence.",
      "chapterSlug": "working-with-masters",
      "chapterTitle": "Working with Masters",
      "headings": [
        "Previewing, Diagnosing, and Fixing Interpolation",
        "Previewing Interpolation Results",
        "Diagnosing Incompatibility",
        "Read Matchmaker",
        "Making Masters Compatible",
        "Try automatic matching",
        "Correct order, direction, and starts",
        "Reconcile a problem section"
      ],
      "contentSnippet": "Previewing, Diagnosing, and Fixing Interpolation\n\nWork from the visible result toward the underlying correspondence. First preview the designspace, then identify the failing glyph and its mismatched structure. Use automatic matching where it produces the intended result, and repair individual sections where it does not.\n\nPreviewing Interpolation Results\n\nOpen Window > Panels > Variations. In Map view, move the interpolation point through the displayed axes. In List view, use the per-axis"
    },
    {
      "slug": "managing-layer-content",
      "title": "Managing Layer Content",
      "summary": "Managing Layer Content Copying data between masters is a deliberate source edit.",
      "chapterSlug": "working-with-masters",
      "chapterTitle": "Working with Masters",
      "headings": [
        "Managing Layer Content",
        "Synchronizing Data across Masters",
        "Copy a value rather than a whole drawing",
        "Copy Layer and Paste Special",
        "Copy anchors without replacing outlines",
        "Merging Layers"
      ],
      "contentSnippet": "Managing Layer Content\n\nCopying data between masters is a deliberate source edit. Decide whether you want identical values, corresponding structures, or only selected categories of content. Those are different tasks, and the available commands have different scopes.\n\nSynchronizing Data across Masters\n\nEdit > Copy to Masters (Cmd+Y on macOS, Ctrl+Y on Windows) copies supported selected content or metrics from the current editing context to other master layers. In a Glyph window, select the"
    },
    {
      "slug": "editing-across-masters",
      "title": "Editing across Masters",
      "summary": "Editing across Masters There are two ways to extend an edit beyond the current master.",
      "chapterSlug": "working-with-masters",
      "chapterTitle": "Working with Masters",
      "headings": [
        "Editing across Masters",
        "Editing Several Masters at Once",
        "Synchronizing Edits",
        "Match movement separately",
        "Selection Memory"
      ],
      "contentSnippet": "Editing across Masters\n\nThere are two ways to extend an edit beyond the current master. You can select objects in several visible layers and edit that selection directly, or edit one source and let FontLab repeat supported operations in matching masters. Choose the mechanism before making a structural change.\n\nEditing Several Masters at Once\n\nEdit > Edit Across > Elements makes the contents of several elements available for direct editing. It is also the prerequisite for editing across"
    },
    {
      "slug": "beyond-the-uniform-blend",
      "title": "Beyond the Uniform Blend",
      "summary": "Beyond the Uniform Blend Some designs need more than a uniform blend between complete masters.",
      "chapterSlug": "advanced-variation-techniques",
      "chapterTitle": "Advanced Variation Techniques",
      "headings": [
        "Beyond the Uniform Blend",
        "Anisotropic Interpolation",
        "Sparse and Font-less Masters",
        "Add a local correction",
        "Switching Glyphs Dynamically",
        "Assign an explicit conditional tag",
        "Define the region",
        "Choose when the substitution runs",
        "Complete the replacement family"
      ],
      "contentSnippet": "Beyond the Uniform Blend\n\nSome designs need more than a uniform blend between complete masters. You can separate the horizontal and vertical calculation for a static result, add local corrective sources, shape point trajectories with Sigma, or divide a glyph into bracket ranges; see The Sigma Tool and Bracket Layers. Conditional substitutions provide a separate-glyph alternative when the switch belongs in the layout workflow.\n\nAnisotropic Interpolation\n\nOrdinary interpolation uses the same"
    },
    {
      "slug": "the-sigma-tool",
      "title": "The Sigma Tool",
      "summary": "The Sigma Tool A pair of compatible masters establishes the drawings at the ends of an interpolation interval.",
      "chapterSlug": "advanced-variation-techniques",
      "chapterTitle": "Advanced Variation Techniques",
      "headings": [
        "The Sigma Tool",
        "What Sigma Changes",
        "A Point between Two Masters",
        "Choose the Appropriate Correction",
        "Edit a Point’s Path"
      ],
      "contentSnippet": "The Sigma Tool\n\nA pair of compatible masters establishes the drawings at the ends of an interpolation interval. It does not guarantee that every drawing between them will have the intended proportions. A counter may close too quickly, a join may gain too much weight, or a curved stroke may become flat before reaching the heavier master. Sigma lets you adjust how corresponding points travel between those endpoint drawings.\n\nUse it when the masters themselves are satisfactory and the correction"
    },
    {
      "slug": "bracket-layers",
      "title": "Bracket Layers",
      "summary": "Bracket Layers Not every design change should be a continuous transformation. A glyph can need one construction in light weights and another in heavy...",
      "chapterSlug": "advanced-variation-techniques",
      "chapterTitle": "Advanced Variation Techniques",
      "headings": [
        "Bracket Layers",
        "Why a Design May Need a Break",
        "Two Designs at One Location",
        "Add and Edit a Bracket",
        "Select and Preview a Range",
        "Choose Layers or Separate Glyphs"
      ],
      "contentSnippet": "Bracket Layers\n\nNot every design change should be a continuous transformation. A glyph can need one construction in light weights and another in heavy weights, even while the rest of the family changes smoothly. Bracket layers let you choose a point where one design gives way to another, then interpolate each side using its own ordinary master layers.\n\nWhy a Design May Need a Break\n\nConsider a dollar sign (). In a light design, two fine vertical strokes through the  may be clear and well"
    },
    {
      "slug": "variable-components",
      "title": "Variable Components",
      "summary": "Variable Components A component normally follows the corresponding source drawing for its host layer.",
      "chapterSlug": "advanced-variation-techniques",
      "chapterTitle": "Advanced Variation Techniques",
      "headings": [
        "Variable Components",
        "Reuse across Masters",
        "Choose the component's source instance",
        "Build a superior figure",
        "Preserve the construction in the source",
        "Glyph-Specific Axes",
        "Auto-Layers"
      ],
      "contentSnippet": "Variable Components\n\nA component normally follows the corresponding source drawing for its host layer. A variable component can instead request a named source layer or a calculated designspace location. Element placement itself interpolates, as established in Interpolation and Compatibility. Use a variable component when the reused source design also needs a selected location or different proportions from its host.\n\nReuse across Masters\n\nA variable component retains the identity of its source"
    },
    {
      "slug": "filters-strokes-and-brushes-under-variat",
      "title": "Filters, Strokes, and Brushes under Variation",
      "summary": "Filters, Strokes, and Brushes under Variation A live construction can look correct in every master and still produce unsuitable geometry between them.",
      "chapterSlug": "advanced-variation-techniques",
      "chapterTitle": "Advanced Variation Techniques",
      "headings": [
        "Filters, Strokes, and Brushes under Variation",
        "Keeping Filtered Elements Compatible",
        "Copying Deltas across Masters",
        "Strokes and Brushes across Masters"
      ],
      "contentSnippet": "Filters, Strokes, and Brushes under Variation\n\nA live construction can look correct in every master and still produce unsuitable geometry between them. Check both its editable inputs and the resolved outline that the intended output needs.\n\nKeeping Filtered Elements Compatible\n\nWhile a filter remains live, the varying inputs are its stored base content and supported per-master parameters; expansion or export resolves generated outlines. Start with corresponding source content. Each master"
    },
    {
      "slug": "shaping-text",
      "title": "Shaping Text",
      "summary": "Shaping Text The glyphs stored in a font are material for setting text. A shaping engine chooses and positions that material according to the characters,...",
      "chapterSlug": "the-opentype-layout-process",
      "chapterTitle": "The OpenType Layout Process",
      "headings": [
        "Shaping Text",
        "The Shaping Engine",
        "From Characters to Glyphs",
        "Defaults and Guarantees"
      ],
      "contentSnippet": "Shaping Text\n\nThe glyphs stored in a font are material for setting text. A shaping engine chooses and positions that material according to the characters, the writing system, the font's rules, and the application's settings. Designing the glyphs and designing those rules are complementary parts of making a usable font.\n\nThe Shaping Engine\n\nA shaping engine is the software that turns a text run into a sequence of glyphs with positions and advances. An operating system or application uses it when"
    },
    {
      "slug": "the-process-architecture",
      "title": "The Process Architecture",
      "summary": "The Process Architecture OpenType Layout organizes behavior through features, lookups, and rules.",
      "chapterSlug": "the-opentype-layout-process",
      "chapterTitle": "The OpenType Layout Process",
      "headings": [
        "The Process Architecture",
        "Features, Lookups, and Rules",
        "Order follows the compiled lookups and shaping stages",
        "Substitution and Positioning",
        "Follow a small-cap sequence",
        "Classifying Glyphs"
      ],
      "contentSnippet": "The Process Architecture\n\nOpenType Layout organizes behavior through features, lookups, and rules. Understanding their different roles helps explain why enabling a feature may not produce the result you expect, and why changing a source-code block's position is not always enough to change processing order.\n\nFeatures, Lookups, and Rules\n\nThe OpenType features introduced in Font Structures consist of individual units: a feature identifies a typographic behavior with a four-character tag, such as "
    },
    {
      "slug": "authoring-opentype-layout",
      "title": "Authoring OpenType Layout",
      "summary": "Authoring OpenType Layout Write each kind of layout data in the environment that makes its relationships clear. Substitutions are naturally expressed as glyph rules.",
      "chapterSlug": "the-opentype-layout-process",
      "chapterTitle": "The OpenType Layout Process",
      "headings": [
        "Authoring OpenType Layout",
        "Authoring Tools and Environments",
        "Author positioning where it varies",
        "Feature Parsing and Compilation",
        "Opening existing layout data",
        "Round-trip fidelity"
      ],
      "contentSnippet": "Authoring OpenType Layout\n\nWrite each kind of layout data in the environment that makes its relationships clear. Substitutions are naturally expressed as glyph rules. Kerning is usually easier to judge as spacing between visible forms. Mark attachment begins with named positions on the drawings.\n\nAuthoring Tools and Environments\n\nFontLab offers feature-code editing, visual lookup editing, visual kerning, and anchor-based mark positioning. Microsoft VOLT provides an additional external workflow."
    },
    {
      "slug": "the-lookups-panel",
      "title": "The Lookups Panel",
      "summary": "The Lookups Panel The Lookups panel lets you inspect, edit, and debug the OpenType layout in a font.",
      "chapterSlug": "the-opentype-layout-process",
      "chapterTitle": "The OpenType Layout Process",
      "headings": [
        "The Lookups Panel",
        "Opening and Browsing Layout",
        "Editing Rules and Reading the Preview",
        "Context and Referenced Lookups",
        "Importing, Copying, and Compiling",
        "Tracing a Lookup Run",
        "Read the metrics"
      ],
      "contentSnippet": "The Lookups Panel\n\nThe Lookups panel lets you inspect, edit, and debug the OpenType layout in a font. Choose a script and language, select a feature, then follow its lookups down to individual substitution or positioning rules. You can compare a rule’s input and output visually and trace what actually happens when a shaping engine applies the lookups to text.\n\nOpen Window > Panels > Lookups. The panel has two working modes: the visual rule editor and Debugger. The menu and debugger button are"
    },
    {
      "slug": "substitution-features",
      "title": "Substitution Features",
      "summary": "Substitution Features A substitution feature makes a glyph design reachable in a particular text context.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "Substitution Features",
        "Optional and Required Features",
        "Common Feature Sets",
        "Compose or decompose with `ccmp`",
        "Stylistic Sets and Positional Forms",
        "Scripts and Languages"
      ],
      "contentSnippet": "Substitution Features\n\nA substitution feature makes a glyph design reachable in a particular text context. Before writing its rules, decide what behavior you are offering, whether it is optional or required, and which scripts and languages should receive it.\n\nOptional and Required Features\n\nA feature can offer a choice, such as a swash or alternate figure style. It can also provide behavior necessary for readable text, such as joining forms, required ligatures, or composition and decomposition"
    },
    {
      "slug": "the-features-panel",
      "title": "The Features Panel",
      "summary": "The Features Panel Use the Features panel to write and maintain the font's OpenType feature source.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "The Features Panel",
        "Adding OpenType Features",
        "Writing, Compiling, and Testing",
        "Compile the current source",
        "Test the text path",
        "Language Systems and Named Lookups",
        "Importing and Exporting Features",
        "Exchanging Code with Visual Lookups"
      ],
      "contentSnippet": "The Features Panel\n\nUse the Features panel to write and maintain the font's OpenType feature source. Work in a short loop: edit a rule, compile it, inspect diagnostics, and test text that should and should not trigger it.\n\nAdding OpenType Features\n\nOpen Window > Panels > Features. The feature list selects the source shown in the syntax-highlighting editor.\n\n{width=\"750\" height=\"449\"}\n\nThe Features panel places the feature list beside its source editor. Here the selected locl feature contains"
    },
    {
      "slug": "glyph-classes",
      "title": "Glyph Classes",
      "summary": "Glyph Classes A glyph class gives a reusable name to a set of glyphs in feature code.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "Glyph Classes",
        "Classes as Substitution Inputs",
        "Building OpenType Classes",
        "Build a corresponding pair",
        "Transfer and consolidate classes",
        "Virtual Tags and Including Classes"
      ],
      "contentSnippet": "Glyph Classes\n\nA glyph class gives a reusable name to a set of glyphs in feature code. It can shorten a rule, describe its surrounding context, or provide one side of a positionally matched substitution. Those uses require different kinds of care about membership and order.\n\nClasses as Substitution Inputs\n\nA FEA glyph class has an -prefixed name. For example:\n\nWhen used in a class-to-class single substitution, the first member of one class maps to the first member of the other, the second to"
    },
    {
      "slug": "substitution-lookups",
      "title": "Substitution Lookups",
      "summary": "Substitution Lookups Start with the direct substitution types, then use them as the actions behind more complex behavior.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "Substitution Lookups",
        "Features, Lookups, and Rules in FEA",
        "Single Substitution",
        "Ligature Substitution",
        "Multiple and Alternate Substitution",
        "Editing Substitutions Visually",
        "Build a ligature rule",
        "Testing the Substitution"
      ],
      "contentSnippet": "Substitution Lookups\n\nStart with the direct substitution types, then use them as the actions behind more complex behavior. Each example below assumes that every named glyph exists. The examples are independent: choose the rule appropriate to the task rather than pasting competing alternatives into one feature.\n\nFeatures, Lookups, and Rules in FEA\n\nA feature block can contain rules directly:\n\nThe compiler places that rule in an implicit lookup. It is still a lookup in the compiled table, even"
    },
    {
      "slug": "contextual-substitution",
      "title": "Contextual Substitution",
      "summary": "Contextual Substitution A contextual rule changes a glyph only when the surrounding glyph sequence matches.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "Contextual Substitution",
        "Marked Glyphs and Chaining",
        "Exceptions and Word Boundaries",
        "Approximate an end position with a class",
        "A start-of-word pattern",
        "Inspecting and Editing a Contextual Rule",
        "Set and sample the surrounding context",
        "Trace the sampled context"
      ],
      "contentSnippet": "Contextual Substitution\n\nA contextual rule changes a glyph only when the surrounding glyph sequence matches. Use it when a form depends on neighboring shapes, not simply on a feature being enabled. The examples below are independent; replace a trial feature when testing an alternative rather than adding a second definition with the same tag.\n\nMarked Glyphs and Chaining\n\nContextual substitution distinguishes the target from the context around it. An apostrophe marks the input glyph position to"
    },
    {
      "slug": "generated-and-conditional-substitution",
      "title": "Generated and Conditional Substitution",
      "summary": "Generated and Conditional Substitution FontLab can generate many substitution rules from glyph names.",
      "chapterSlug": "glyph-substitution",
      "chapterTitle": "Glyph Substitution",
      "headings": [
        "Generated and Conditional Substitution",
        "Making an alternate available",
        "The Autofea System",
        "Naming Glyphs for Autogeneration",
        "Common naming relationships",
        "Coordinate the figure styles",
        "Updating, Mixing, and Freezing",
        "Keep manual rules outside managed blocks",
        "Positional Forms for Complex Scripts",
        "Conditional Substitution"
      ],
      "contentSnippet": "Generated and Conditional Substitution\n\nFontLab can generate many substitution rules from glyph names. Use that automation for predictable relationships, then inspect the code and add the script, context, and variation behavior that the design requires.\n\nMaking an alternate available\n\nSuppose you have drawn two forms of  and want the reader to choose between them. Keep the default glyph named  and name the alternate . The suffix associates the alternate with the first stylistic set, ss01. Both"
    },
    {
      "slug": "the-kerning-model",
      "title": "The Kerning Model",
      "summary": "The Kerning Model Spacing gives each glyph a useful default fit. Kerning corrects the combinations that still need an adjustment because of the shapes facing each other.",
      "chapterSlug": "kerning",
      "chapterTitle": "Kerning",
      "headings": [
        "The Kerning Model",
        "Spacing and Kerning",
        "From Pairs to Classes",
        "Use exceptions at the necessary scope",
        "Kerning in FontLab"
      ],
      "contentSnippet": "The Kerning Model\n\nSpacing gives each glyph a useful default fit. Kerning corrects the combinations that still need an adjustment because of the shapes facing each other. Build that distinction into the work: a large kerning list should not compensate for sidebearings that are wrong in ordinary text.\n\nSpacing and Kerning\n\nRecall the GSUB/GPOS distinction from The Process Architecture: substitution chooses the glyphs in a run, while kerning is positioning: it adjusts the relationship between"
    },
    {
      "slug": "preparations",
      "title": "Preparations",
      "summary": "Preparations A useful kerning pass starts with a class system and repeatable text.",
      "chapterSlug": "kerning",
      "chapterTitle": "Kerning",
      "headings": [
        "Preparations",
        "Building Kerning Classes",
        "Create and check a class",
        "Other assignment controls",
        "Preparing Kerning Strings",
        "Save window texts",
        "Use Pairs & Phrases"
      ],
      "contentSnippet": "Preparations\n\nA useful kerning pass starts with a class system and repeatable text. Classes reduce repeated decisions; well-chosen strings expose the cases where those shared decisions need exceptions.\n\nBuilding Kerning Classes\n\nOpen Window > Panels > Classes and choose the kerning class type. A left class occupies the left position of a visual pair, so its members are grouped by their right-side profile. A right class occupies the right position and is grouped by its members' left-side"
    },
    {
      "slug": "kerning-visually",
      "title": "Kerning Visually",
      "summary": "Kerning Visually Work on the pair's effective value while keeping its scope visible.",
      "chapterSlug": "kerning",
      "chapterTitle": "Kerning",
      "headings": [
        "Kerning Visually",
        "Kerning Mode",
        "Editing Pairs",
        "Adjust by keyboard or precision drag",
        "Create an exception",
        "Remove versus set zero",
        "Kerning Panel Operations",
        "Adjust and reorganize pairs",
        "Use autokerning as a draft",
        "The Superkerning Panel",
        "Data and preview views",
        "Pair review and adjustment",
        "Kerning across Masters",
        "Importing and Exporting Kerning"
      ],
      "contentSnippet": "Kerning Visually\n\nWork on the pair's effective value while keeping its scope visible. A small adjustment can affect one combination or hundreds of class-member combinations. Check which glyphs or classes the current pair represents before changing it.\n\nKerning Mode\n\nOpen a Glyph window and press K, or choose the Kerning tool. Activating the tool without an existing Glyph window can open a new Kerning tab or window from the selection. With focus in the Font window, typing K can instead select"
    },
    {
      "slug": "right-to-left-kerning",
      "title": "Right-to-Left Kerning",
      "summary": "Right-to-Left Kerning RTL kerning can be edited visually rather than treated as a separate code-only task.",
      "chapterSlug": "kerning",
      "chapterTitle": "Kerning",
      "headings": [
        "Right-to-Left Kerning",
        "Kerning in Visual Order",
        "Direction Flags and Storage"
      ],
      "contentSnippet": "Right-to-Left Kerning\n\nRTL kerning can be edited visually rather than treated as a separate code-only task. FontLab's model uses positions on the screen; recall visual order versus reading order in Using Recipes for Composite Building. A left class describes the glyph on the left of the displayed pair even when that glyph comes later in the logical text sequence.\n\nKerning in Visual Order\n\nDisplay the intended right-to-left text with the appropriate text direction and script processing. Text >"
    },
    {
      "slug": "kerning-gpos-and-the-kern-table",
      "title": "Kerning, GPOS, and the kern Table",
      "summary": "Kerning, GPOS, and the kern Table The editable kerning in FontLab can produce two different kinds of output data: the modern GPOS kern feature and, where...",
      "chapterSlug": "kerning",
      "chapterTitle": "Kerning",
      "headings": [
        "Kerning, GPOS, and the kern Table",
        "Visual Kerning and the kern Feature",
        "Add contextual positioning deliberately",
        "Keep master and output scope clear",
        "Legacy kern Table Support"
      ],
      "contentSnippet": "Kerning, GPOS, and the kern Table\n\nThe editable kerning in FontLab can produce two different kinds of output data: the modern GPOS  feature and, where needed, a legacy  table. Their shared name does not make them the same structure or give them the same capabilities.\n\nVisual Kerning and the kern Feature\n\nThe normal route is to let FontLab build the GPOS  feature from visual kerning and classes. A Features-panel  entry is not required just to make ordinary pair kerning export.\n\nUse an explicit"
    },
    {
      "slug": "mark-attachment-as-positioning",
      "title": "Mark Attachment as Positioning",
      "summary": "Mark Attachment as Positioning A combining mark can be positioned when text is shaped instead of requiring a separate precomposed glyph for every combination.",
      "chapterSlug": "mark-attachment",
      "chapterTitle": "Mark Attachment",
      "headings": [
        "Mark Attachment as Positioning",
        "Dynamic Diacritics",
        "Precomposed Glyphs and Decomposition",
        "Anchors, Marks, and Mark Classification"
      ],
      "contentSnippet": "Mark Attachment as Positioning\n\nA combining mark can be positioned when text is shaped instead of requiring a separate precomposed glyph for every combination. The font supplies attachment points; the shaping engine uses them to place the mark against the base or another mark.\n\nDynamic Diacritics\n\nMark attachment is a GPOS relationship between glyphs in a text run. A base supplies a receiving location and a mark supplies an attaching location. The compiled relationship aligns those locations"
    },
    {
      "slug": "attaching-marks",
      "title": "Attaching Marks",
      "summary": "Attaching Marks Build attachment around clear anchor names, then compare the source preview with compiled text behavior.",
      "chapterSlug": "mark-attachment",
      "chapterTitle": "Mark Attachment",
      "headings": [
        "Attaching Marks",
        "The Mark-Positioning Environment",
        "Mark-to-Base Attachment",
        "What the anchors build",
        "Mark-to-Mark Attachment",
        "Mark-to-Ligature Attachment"
      ],
      "contentSnippet": "Attaching Marks\n\nBuild attachment around clear anchor names, then compare the source preview with compiled text behavior. A base-and-mark pair, a stack of marks, and a marked ligature share the attachment principle but require different receiving structures.\n\nThe Mark-Positioning Environment\n\nUse the ordinary Glyph window with anchors visible. Enable Show mark attachment to preview the current anchor relationships on a base-and-mark sequence. There is no separate mark-positioning editing"
    },
    {
      "slug": "cursive-attachment",
      "title": "Cursive Attachment",
      "summary": "Cursive Attachment Cursive attachment joins neighboring glyphs through entry and exit points.",
      "chapterSlug": "mark-attachment",
      "chapterTitle": "Mark Attachment",
      "headings": [
        "Cursive Attachment"
      ],
      "contentSnippet": "Cursive Attachment\n\nCursive attachment joins neighboring glyphs through entry and exit points. It is useful for connected scripts and connecting italic or script designs whose joins need more than a fixed advance width.\n\nA glyph's entry point receives a connection and its exit point supplies the next connection. The GPOS  feature describes those relationships. This differs from a base-and-mark attachment: it connects the flowing glyph sequence rather than placing a combining mark above or below"
    },
    {
      "slug": "mark-features-and-export",
      "title": "Mark Features and Export",
      "summary": "Mark Features and Export Anchor preview and exported attachment are separate checkpoints.",
      "chapterSlug": "mark-attachment",
      "chapterTitle": "Mark Attachment",
      "headings": [
        "Mark Features and Export",
        "Compiling Features",
        "Participation and inheritance",
        "Source and compiled results",
        "Hand-Written Feature Code"
      ],
      "contentSnippet": "Mark Features and Export\n\nAnchor preview and exported attachment are separate checkpoints. The first shows source relationships; the second requires generated or authored layout data in the output font. Check which source the build uses before relying on an attachment seen in the editor.\n\nCompiling Features\n\nThe mark feature carries mark-to-base and mark-to-ligature attachment; mkmk carries mark-to-mark attachment. FontLab can generate both from anchors under the export profile’s policy. The"
    },
    {
      "slug": "appendix-microsoft-volt-integration",
      "title": "Appendix — Microsoft VOLT Integration",
      "summary": "Appendix — Microsoft VOLT Integration Microsoft VOLT offers an external authoring route for specialized OpenType layout work.",
      "chapterSlug": "mark-attachment",
      "chapterTitle": "Mark Attachment",
      "headings": [
        "Appendix — Microsoft VOLT Integration",
        "The Lookups Panel",
        "VOLT Import and Export"
      ],
      "contentSnippet": "Appendix — Microsoft VOLT Integration\n\nMicrosoft VOLT offers an external authoring route for specialized OpenType layout work. FontLab’s Lookups panel can help inspect the layout involved in that exchange, while also providing its own visual editor and debugger.\n\nThe Lookups Panel\n\nUse Window > Panels > Lookups to inspect features, their lookups, and the rules within a lookup. The panel initializes from available binary layout tables and keeps its visual document separate from Features-panel"
    },
    {
      "slug": "hinting-and-the-pixel-grid",
      "title": "Hinting and the Pixel Grid",
      "summary": "Hinting and the Pixel Grid A scalable outline must eventually be rendered at a particular size and resolution.",
      "chapterSlug": "postscript-hinting",
      "chapterTitle": "PostScript Hinting",
      "headings": [
        "Hinting and the Pixel Grid",
        "Rasterization and Gridfitting",
        "Declarative and Imperative Hinting",
        "Zones, Stems, and the Two Levels",
        "Testing Hinted Output"
      ],
      "contentSnippet": "Hinting and the Pixel Grid\n\nA scalable outline must eventually be rendered at a particular size and resolution. Hinting helps preserve important relationships when the pixel grid is too coarse to reproduce every detail of that outline faithfully.\n\nRasterization and Gridfitting\n\nRasterization converts an outline into pixels. At small sizes, the positions of edges relative to the grid can make nominally equal stems appear unequal or make aligned letters appear to have different"
    },
    {
      "slug": "alignment-zones-and-standard-stems",
      "title": "Alignment Zones and Standard Stems",
      "summary": "Alignment Zones and Standard Stems Set font-level hinting data to describe the design, then use glyph hints to connect individual outlines to it.",
      "chapterSlug": "postscript-hinting",
      "chapterTitle": "PostScript Hinting",
      "headings": [
        "Alignment Zones and Standard Stems",
        "Alignment Zones",
        "Family Alignment Zones",
        "Standard Stems",
        "Control Values and Guide Conversion"
      ],
      "contentSnippet": "Alignment Zones and Standard Stems\n\nSet font-level hinting data to describe the design, then use glyph hints to connect individual outlines to it. A small, coherent set of zones and stems is more useful than a long list of unrelated measurements.\n\nAlignment Zones\n\nOpen Font Info > Zones. A zone has an alignment position and a width extending into the overshoot region. Top zones normally extend above an alignment line; bottom zones extend below it.\n\n{width=\"760\" height=\"591\"}\n\nThe Zones page"
    },
    {
      "slug": "glyph-level-postscript-hints",
      "title": "Glyph-Level PostScript Hints",
      "summary": "Glyph-Level PostScript Hints A glyph hint identifies a stem or alignment edge in a particular drawing.",
      "chapterSlug": "postscript-hinting",
      "chapterTitle": "PostScript Hinting",
      "headings": [
        "Glyph-Level PostScript Hints",
        "Stem Hints and Ghost Hints",
        "Adding and Editing Hints",
        "Hints Linked to Nodes",
        "Hints, Components, and References"
      ],
      "contentSnippet": "Glyph-Level PostScript Hints\n\nA glyph hint identifies a stem or alignment edge in a particular drawing. Place it on the geometry the rasterizer should preserve, then inspect the small-size result rather than judging hint density as a measure of quality.\n\nStem Hints and Ghost Hints\n\nA stem hint records an edge position and a width to the opposite edge. Horizontal hints measure vertical thickness; vertical hints measure horizontal thickness. In the hint view, FontLab displays them as green bands,"
    },
    {
      "slug": "postscript-autohinting",
      "title": "PostScript Autohinting",
      "summary": "PostScript Autohinting PostScript autohinting analyzes outlines and proposes stem and ghost hints using alignment zones and available standard stems.",
      "chapterSlug": "postscript-hinting",
      "chapterTitle": "PostScript Hinting",
      "headings": [
        "PostScript Autohinting",
        "Prerequisites for PostScript Autohinting",
        "Running PostScript Autohinting",
        "Limit the measured range",
        "Autohinting Preferences",
        "Setup Workflows"
      ],
      "contentSnippet": "PostScript Autohinting\n\nPostScript autohinting analyzes outlines and proposes stem and ghost hints using alignment zones and available standard stems. Like autospacing in Spacing Glyphs, it supplies a refinable baseline rather than a final design judgment. Use it to establish consistent coverage, then refine the cases that render poorly. Its output depends on both the drawing and the font-level information available to guide it.\n\nPrerequisites for PostScript Autohinting\n\nReview alignment zones"
    },
    {
      "slug": "the-truetype-hinting-model-and-workspace",
      "title": "The TrueType Hinting Model and Workspace",
      "summary": "The TrueType Hinting Model and Workspace TrueType hinting gives explicit control over how outline points are positioned at a rendering size.",
      "chapterSlug": "truetype-instructing",
      "chapterTitle": "TrueType Instructing",
      "headings": [
        "The TrueType Hinting Model and Workspace",
        "TrueType Instructions and Rasterization",
        "Choose hinting priorities for the rendering target",
        "Native and Visual TrueType Hints",
        "The TrueType Hinting Workspace",
        "Point Names and Hint Programs"
      ],
      "contentSnippet": "The TrueType Hinting Model and Workspace\n\nTrueType hinting gives explicit control over how outline points are positioned at a rendering size. FontLab presents that work as visual instructions, backed by font-wide zone and stem data and a preview of the resulting pixels.\n\nTrueType Instructions and Rasterization\n\nA glyph program operates with the font's shared programs and control values. An instruction can position a point directly, establish a distance, or interpolate between reference"
    },
    {
      "slug": "truetype-font-level-hinting",
      "title": "TrueType Font-Level Hinting",
      "summary": "TrueType Font-Level Hinting TrueType instructions refer to shared control values so related glyphs can make consistent rounding decisions.",
      "chapterSlug": "truetype-instructing",
      "chapterTitle": "TrueType Instructing",
      "headings": [
        "TrueType Font-Level Hinting",
        "TrueType Alignment Zones",
        "Adjust a zone at particular sizes",
        "TrueType Standard Stems",
        "Set jump PPMs",
        "Other Parameters and Smoothing"
      ],
      "contentSnippet": "TrueType Font-Level Hinting\n\nTrueType instructions refer to shared control values so related glyphs can make consistent rounding decisions. FontLab exposes that setup through named zones, stems, and additional rendering parameters.\n\nTrueType Alignment Zones\n\nThe Control Value Table, or CVT, supplies values used by the compiled instructions. FontLab's named zones and stems provide an editable source model for those relationships.\n\nOpen Zones from the TrueType Hinting workspace. A top or bottom"
    },
    {
      "slug": "visual-truetype-instructions",
      "title": "Visual TrueType Instructions",
      "summary": "Visual TrueType Instructions Build a program from a few reliable controls. Establish alignment points, control important distances, interpolate secondary...",
      "chapterSlug": "truetype-instructing",
      "chapterTitle": "TrueType Instructing",
      "headings": [
        "Visual TrueType Instructions",
        "The Instruction Set",
        "Alignment Instructions",
        "Link Instructions",
        "Interpolation Instructions",
        "Delta Instructions",
        "Managing Instructions and the Code Panel"
      ],
      "contentSnippet": "Visual TrueType Instructions\n\nBuild a program from a few reliable controls. Establish alignment points, control important distances, interpolate secondary points, and use size-specific deltas only where the broader instructions do not produce a satisfactory result.\n\nThe Instruction Set\n\nFontLab's visual tools provide Align, zone alignment, Single Link, Double Link, Interpolate, Middle Delta, and Final Delta operations. Select X or Y deliberately: a command controls the corresponding coordinate"
    },
    {
      "slug": "truetype-autohinting",
      "title": "TrueType Autohinting",
      "summary": "TrueType Autohinting Autohinting supplies an initial instruction program. The preparation depends on the selected engine, and the resulting program still...",
      "chapterSlug": "truetype-instructing",
      "chapterTitle": "TrueType Instructing",
      "headings": [
        "TrueType Autohinting",
        "Prerequisites for TrueType Autohinting",
        "Running TrueType Autohinting",
        "Autohinting Controls",
        "Fine-Tuning Results"
      ],
      "contentSnippet": "TrueType Autohinting\n\nAutohinting supplies an initial instruction program. The preparation depends on the selected engine, and the resulting program still needs review in the TrueType workspace and in the intended output.\n\nPrerequisites for TrueType Autohinting\n\nFontLab TTH translates existing PostScript hints rather than independently analyzing outlines. Useful PS hints and font-level zones/stems are a prerequisite for this engine; without them it has no structural hint data to translate."
    },
    {
      "slug": "from-fonts-to-families",
      "title": "From Fonts to Families",
      "summary": "From Fonts to Families A family is more than a collection of related drawings. Its members need coherent names, style relationships, character coverage, and...",
      "chapterSlug": "family-building",
      "chapterTitle": "Family Building",
      "headings": [
        "From Fonts to Families",
        "Font Families as Coordinated Sets",
        "Style Linking",
        "Keep the linking architecture simple",
        "Configuration and Building at Scale",
        "Copy font information between open fonts"
      ],
      "contentSnippet": "From Fonts to Families\n\nA family is more than a collection of related drawings. Its members need coherent names, style relationships, character coverage, and shared metrics so applications can present and use them as intended.\n\nFont Families as Coordinated Sets\n\nRecall family-properties and font-properties from Naming Fonts and Families. Shared properties identify the family and coordinate its behavior; per-font properties distinguish weight, width, slope, and style. The vertical-metrics"
    },
    {
      "slug": "organizing-and-auditing-families",
      "title": "Organizing and Auditing Families",
      "summary": "Organizing and Auditing Families Select the intended fonts before a family-wide operation.",
      "chapterSlug": "family-building",
      "chapterTitle": "Family Building",
      "headings": [
        "Organizing and Auditing Families",
        "Grouping Fonts into Families",
        "Auditing a Family with Compare Fonts",
        "Compare coverage",
        "Compare designs and metadata"
      ],
      "contentSnippet": "Organizing and Auditing Families\n\nSelect the intended fonts before a family-wide operation. Naming and grouping commands can change how members are identified, even though they do not alter their outlines.\n\nGrouping Fonts into Families\n\nThese operations change naming metadata, not merely the temporary order of fonts in the panel. They reorganize the family-grouping defined in From Fonts to Families and must preserve the intended family-properties from Naming Fonts and Families. Save a source"
    },
    {
      "slug": "proofing-environments",
      "title": "Proofing Environments",
      "summary": "Proofing Environments Proofing asks two questions: does the type work as a design, and does the delivered font behave correctly where it will be used?",
      "chapterSlug": "proofing",
      "chapterTitle": "Proofing",
      "headings": [
        "Proofing Environments",
        "Design and Interoperability",
        "In-App Proofing Limitations",
        "Tools for In-App Proofing"
      ],
      "contentSnippet": "Proofing Environments\n\nProofing asks two questions: does the type work as a design, and does the delivered font behave correctly where it will be used? Keep both questions in the review plan.\n\nDesign and Interoperability\n\nDesign proofing examines the forms in use: text color, counter openness, spacing, kerning, marks, and the relationship between styles and sizes. Use running text and targeted strings. A beautiful enlarged glyph can still interrupt a line of text.\n\nInteroperability concerns the"
    },
    {
      "slug": "text-mode",
      "title": "Text Mode",
      "summary": "Text Mode Text mode is a HarfBuzz-shaped passage environment, not a general rich-text editor: formatting applies to the whole rendered passage rather than...",
      "chapterSlug": "proofing",
      "chapterTitle": "Proofing",
      "headings": [
        "Text Mode",
        "Text Tool and Text Mode",
        "Formatting Options in Text Mode"
      ],
      "contentSnippet": "Text Mode\n\nText mode is a HarfBuzz-shaped passage environment, not a general rich-text editor: formatting applies to the whole rendered passage rather than independently to a selected span. It provides a closer proof than raw glyph display, but target shapers and renderers can differ; recall Proofing Environments. Use it to compare reading rhythm and layout behavior while the source remains close at hand.\n\nText Tool and Text Mode\n\nPress T in the Glyph window or choose the Text tool. Type on the"
    },
    {
      "slug": "the-preview-panel",
      "title": "The Preview Panel",
      "summary": "The Preview Panel The Preview panel keeps a proof visible while you edit. It can mirror the current passage, hold an independent sample, or compare sizes...",
      "chapterSlug": "proofing",
      "chapterTitle": "Proofing",
      "headings": [
        "The Preview Panel",
        "Content Modes",
        "Formatting and Comparison Modes",
        "Compare forms and family members",
        "Preview an interpolation range",
        "Compare viewing conditions",
        "Check layout details"
      ],
      "contentSnippet": "The Preview Panel\n\nThe Preview panel keeps a proof visible while you edit. It can mirror the current passage, hold an independent sample, or compare sizes and source designs without repeatedly replacing the Glyph window text.\n\nContent Modes\n\nOpen Window > Panels > Preview. Expand its sidebar when you need content and formatting controls; use the compact panel when the current proof should remain visible with minimal controls.\n\n{width=\"760\" height=\"615\"}\n\nThe Preview panel combines rendered text"
    },
    {
      "slug": "printing-and-visual-proofs",
      "title": "Printing and Visual Proofs",
      "summary": "Printing and Visual Proofs A saved proof gives reviewers a fixed result to compare and annotate.",
      "chapterSlug": "proofing",
      "chapterTitle": "Proofing",
      "headings": [
        "Printing and Visual Proofs",
        "Printing",
        "PDF, SVG, and Image Export"
      ],
      "contentSnippet": "Printing and Visual Proofs\n\nA saved proof gives reviewers a fixed result to compare and annotate. Choose an output that captures the question: a glyph map, a clean text specimen, an editing diagram, or individual glyph artwork.\n\nPrinting\n\nUse File > Print… from the relevant view; the context determines what is printed. Recall the glyph inventory in Font Window and Font Map, Text mode in Text Mode, and the Preview panel in The Preview Panel. PDF alternatives are described below. The Font window"
    },
    {
      "slug": "the-sketchboard",
      "title": "The Sketchboard",
      "summary": "The Sketchboard The Sketchboard combines a free drawing surface with live text frames.",
      "chapterSlug": "proofing",
      "chapterTitle": "Proofing",
      "headings": [
        "The Sketchboard",
        "The Sketchboard Canvas",
        "Text-Frame Specimens",
        "Other Sketchboard Uses"
      ],
      "contentSnippet": "The Sketchboard\n\nThe Sketchboard combines a free drawing surface with live text frames. Use it to stage artwork and arrange specimens from several open fonts when a single preview panel is too constrained.\n\nThe Sketchboard Canvas\n\nChoose Window > Open Sketchboard. FontLab provides one live Sketchboard canvas in the session. Window > Clear Sketchboard empties that canvas; it does not create a second independent document.\n\nThe Sketchboard autosave and startup settings are under Preferences >"
    },
    {
      "slug": "font-and-metadata-formats",
      "title": "Font and Metadata Formats",
      "summary": "Font and Metadata Formats Recall the format taxonomy in Understanding Font Formats.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Font and Metadata Formats",
        "Font Formats",
        "Open Font Format 2026 input",
        "Metadata Formats"
      ],
      "contentSnippet": "Font and Metadata Formats\n\nRecall the format taxonomy in Understanding Font Formats. Choose among four categories:\nSource formats preserve editable development data for continuing work.\nProduction or final formats deliver fonts to applications, operating systems, or browsers.\nInterchange formats transfer a project between authoring tools.\nMetadata formats transfer selected information, such as metrics or feature code, rather than a complete font.\n\nFont Formats\n\nUse native FontLab sources for"
    },
    {
      "slug": "completing-font-metadata",
      "title": "Completing Font Metadata",
      "summary": "Completing Font Metadata Finish the identity and descriptive data before producing a release.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Completing Font Metadata",
        "Identity, Authorship, and Legal Metadata",
        "Version Metadata",
        "Embedding Permissions and Classification",
        "Codepage and Unicode Coverage",
        "Text Formatting Metadata",
        "Digital Signature",
        "Font and Master Libraries"
      ],
      "contentSnippet": "Completing Font Metadata\n\nFinish the identity and descriptive data before producing a release. These fields affect identification, selection, permissions processing, and application behavior even though most of them do not change a glyph outline.\n\nIdentity, Authorship, and Legal Metadata\n\nReview the Creator and Legal pages in Font Info alongside the family/style naming workflow in Naming Fonts and Families.\n\nUse the Vendor code for the short vendor identifier and the manufacturer field for the"
    },
    {
      "slug": "the-export-process",
      "title": "The Export Process",
      "summary": "The Export Process Export turns the editable source into a specific deliverable.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "The Export Process",
        "Export Prerequisites",
        "The Export Dialog",
        "Test an exported installation",
        "Compiling Font Binaries"
      ],
      "contentSnippet": "The Export Process\n\nExport turns the editable source into a specific deliverable. Choose the content and technical policy deliberately, then inspect the files that were actually written.\n\nExport Prerequisites\n\nCarry the family-level QA from Organizing and Auditing Families through to the chosen output. Save the native source first and complete the metadata checks in Completing Font Metadata. Validate the intended character set using Encoding and Codepage views, not only a sample of visible"
    },
    {
      "slug": "export-profiles",
      "title": "Export Profiles",
      "summary": "Export Profiles An export profile records the format and technical decisions for a target.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Export Profiles",
        "Export Settings as Profiles",
        "Profile Parameters"
      ],
      "contentSnippet": "Export Profiles\n\nAn export profile records the format and technical decisions for a target. Give custom profiles meaningful names so a later export does not depend on remembering a series of temporary dialog changes.\n\nExport Settings as Profiles\n\nOpen File > Export Profiles…, or use Customize… from the export dialog. Built-in profiles are protected starting configurations; clone and rename a configurable profile to customize it. VFC/VFJ native-save profiles do not expose the same customization"
    },
    {
      "slug": "opentype-variable-and-web-fonts",
      "title": "OpenType, Variable, and Web Fonts",
      "summary": "OpenType, Variable, and Web Fonts Choose the outline flavor and packaging for the intended consumers, then verify the resulting layout and rendering.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "OpenType, Variable, and Web Fonts",
        "OpenType PS and TT",
        "Variable Fonts",
        "Sigma and bracket layers",
        "Web Fonts"
      ],
      "contentSnippet": "OpenType, Variable, and Web Fonts\n\nChoose the outline flavor and packaging for the intended consumers, then verify the resulting layout and rendering. Similar filenames or matching previews do not make two output formats identical.\n\nOpenType PS and TT\n\nOpenType PS, normally , stores cubic outlines in CFF. OpenType TT, normally , uses TrueType  outlines and TrueType hinting. Both can carry Unicode mappings, names, metrics, and OpenType Layout.\n\nCubic source outlines can reach CFF without"
    },
    {
      "slug": "color-fonts",
      "title": "Color Fonts",
      "summary": "Color Fonts Color output depends on both the artwork and the color technology selected in the profile.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Color Fonts",
        "The Color Font Technologies",
        "Color Fonts and Fallback Mechanisms",
        "Supply and inspect monochrome fallback"
      ],
      "contentSnippet": "Color Fonts\n\nColor output depends on both the artwork and the color technology selected in the profile. Plan a useful fallback and test the delivered font in the intended applications; a color preview inside FontLab is only the source-side check.\n\nThe Color Font Technologies\n\n| Technology | Representation |\n| --- | --- |\n| OT+SVG (Adobe/Mozilla) | SVG artwork in the font's  table, potentially including vectors, gradients, and images. |\n| OT+COLR (Microsoft; COLR/CPAL) | Color drawing structure"
    },
    {
      "slug": "interchange-and-legacy-formats",
      "title": "Interchange and Legacy Formats",
      "summary": "Interchange and Legacy Formats Use interchange to collaborate without treating it as a promise that every editor understands the same source model.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Interchange and Legacy Formats",
        "Interchange Formats",
        "Legacy Formats"
      ],
      "contentSnippet": "Interchange and Legacy Formats\n\nUse interchange to collaborate without treating it as a promise that every editor understands the same source model. Keep the native project and compare representative data after each transfer.\n\nInterchange Formats\n\nWithin the interchange category from Font and Metadata Formats, UFO is a structured font-source format with glyph files and metadata. UFO and  exchange are not fully lossless substitutes for native VFC/VFJ sources; smart-node/filter behavior and"
    },
    {
      "slug": "inspecting-and-repairing-fonts",
      "title": "Inspecting and Repairing Fonts",
      "summary": "Inspecting and Repairing Fonts When a production font behaves differently from its source preview, inspect the compiled data as well as the source.",
      "chapterSlug": "font-formats-and-export",
      "chapterTitle": "Font Formats and Export",
      "headings": [
        "Inspecting and Repairing Fonts",
        "The Tables Panel",
        "Libraries and External Tools"
      ],
      "contentSnippet": "Inspecting and Repairing Fonts\n\nWhen a production font behaves differently from its source preview, inspect the compiled data as well as the source. A table-level correction can be useful, but it must remain consistent with the rest of the font.\n\nThe Tables Panel\n\nAn OpenType table is a named binary structure, such as , , , , , or . The Tables panel stores supported custom definitions in TTX XML, the fontTools representation of those structures.\n\nOpen Window > Panels > Tables. Imported"
    },
    {
      "slug": "annotating-project-sources",
      "title": "Annotating Project Sources",
      "summary": "Annotating Project Sources Keep decisions and unfinished work with the objects they concern.",
      "chapterSlug": "project-documentation-and-management",
      "chapterTitle": "Project Documentation and Management",
      "headings": [
        "Annotating Project Sources",
        "Documenting Workflows and Results",
        "Master Notes",
        "Glyph Notes",
        "Element Notes",
        "Stickers"
      ],
      "contentSnippet": "Annotating Project Sources\n\nKeep decisions and unfinished work with the objects they concern. A useful note explains what needs attention, why it matters, and how to recognize completion; it does not merely say that something looks wrong.\n\nDocumenting Workflows and Results\n\nA font project carries workflow, version, and review information as well as outlines. The textual note tiers share Markdown-formatted entry, so the same simple structure can follow an issue from the overall project to a"
    },
    {
      "slug": "project-data-and-versioning",
      "title": "Project Data and Versioning",
      "summary": "Project Data and Versioning Preserve both the source history and the exact files delivered.",
      "chapterSlug": "project-documentation-and-management",
      "chapterTitle": "Project Documentation and Management",
      "headings": [
        "Project Data and Versioning",
        "Source Files and Release Data",
        "Project Versioning",
        "Project Data and Handoff"
      ],
      "contentSnippet": "Project Data and Versioning\n\nPreserve both the source history and the exact files delivered. They answer different questions: how the design developed, and what a user actually received.\n\nSource Files and Release Data\n\nKeep the native FontLab project as the working record. VFC provides compact storage; VFJ provides structured JSON text for review and version control. Omitting optional session data can reduce unrelated source-control changes. An exported OpenType font is a product, not a"
    },
    {
      "slug": "actions",
      "title": "Actions",
      "summary": "Actions An action is FontLab’s basic no-code automation: a configured operation repeated across chosen glyphs and layers.",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "Actions",
        "The Actions Dialog",
        "Basic Actions",
        "Contour Actions",
        "Metrics Actions",
        "Adjust Actions",
        "Clear selected categories of layer data",
        "Effects Actions",
        "Guide and Anchor Actions",
        "Hinting Actions"
      ],
      "contentSnippet": "Actions\n\nAn action is FontLab’s basic no-code automation: a configured operation repeated across chosen glyphs and layers. Most batch an operation available elsewhere; Effects can redraw geometry through a more complex transformation. Their main advantage is consistent scope: one decision can be applied to a batch, with the same parameters each time.\n\nThe Actions Dialog\n\nThe dialog organizes actions into seven groups: Basic, Contour, Metrics, Adjust, Effects, Guide and Anchor, and Hinting. The"
    },
    {
      "slug": "action-sets",
      "title": "Action Sets",
      "summary": "Action Sets An action set saves several actions in the order you want to run them.",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "Action Sets",
        "Building a set",
        "Scaling and raising a glyph",
        "Choosing the order",
        "Running the set",
        "Saving and reusing a set",
        "Adding script logic"
      ],
      "contentSnippet": "Action Sets\n\nAn action set saves several actions in the order you want to run them. It lets you repeat the same preparation or production steps on selected glyphs and layers, or reuse them in another project, without writing a script. Sets are stored as JSON files, so you can save and share them.\n\nBuilding a set\n\nOpen Tools > Actions and show the action-set sidebar. Select an action, configure it, then use + to add that configured step to the set. Add the remaining steps in the order they"
    },
    {
      "slug": "python-scripting",
      "title": "Python Scripting",
      "summary": "Python Scripting Python extends automation beyond a fixed list of Actions. A script can inspect a font, select data according to custom criteria, perform a...",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "Python Scripting",
        "Automating FontLab with Python",
        "The Scripting Panel and Console",
        "The Script Library and File Types"
      ],
      "contentSnippet": "Python Scripting\n\nPython extends automation beyond a fixed list of Actions. A script can inspect a font, select data according to custom criteria, perform a repetitive edit, or prepare a report that would be awkward to assemble by hand.\n\nAutomating FontLab with Python\n\nFontLab includes Python 3.11 for its scripting environment. You do not need a separate system installation merely to run a script inside the application. Older Python 2 or FontLab Studio scripts may require adaptation.\n\nStart"
    },
    {
      "slug": "the-python-api-and-libraries",
      "title": "The Python API and Libraries",
      "summary": "The Python API and Libraries Choose the API layer that matches the task. FontLab's high-level objects, its font engine, and external font-file libraries...",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "The Python API and Libraries",
        "The Python Packages and Bundled Libraries",
        "TypeRig and Installing Packages",
        "What Scripting Can Reach"
      ],
      "contentSnippet": "The Python API and Libraries\n\nChoose the API layer that matches the task. FontLab's high-level objects, its font engine, and external font-file libraries describe related data but are not interchangeable object systems.\n\nThe Python Packages and Bundled Libraries\n\n** exposes application-integrated font and workspace objects. It is the usual starting point for scripts that work with open fonts, glyphs, layers, elements, and the editor.\n\n exposes lower-level font-engine data. Use it where the task"
    },
    {
      "slug": "automation-hooks-and-direct-data-access",
      "title": "Automation Hooks and Direct Data Access",
      "summary": "Automation Hooks and Direct Data Access Hooks provide shared setup for scripts. The Source panel provides direct access to serialized glyph data.",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "Automation Hooks and Direct Data Access",
        "Startup and Init Hooks",
        "The Source Panel"
      ],
      "contentSnippet": "Automation Hooks and Direct Data Access\n\nHooks provide shared setup for scripts. The Source panel provides direct access to serialized glyph data. Use each for its specific scope rather than treating it as a substitute for the application's entire object model.\n\nStartup and Init Hooks\n\nFontLab uses two specially named scripts with different locations and execution points:\n\n| File | Location and execution point |\n| --- | --- |\n|  | The fixed FontLab 9 application-data directory; runs when the"
    },
    {
      "slug": "ai-assisted-automation",
      "title": "AI-Assisted Automation",
      "summary": "AI-Assisted Automation Aidus is FontLab’s beta AI integration, connecting natural-language requests to FontLab’s inspection and editing tools.",
      "chapterSlug": "automation",
      "chapterTitle": "Automation",
      "headings": [
        "AI-Assisted Automation",
        "Setting up AI Integration",
        "Using Chat",
        "fontpr and the MCP Layer"
      ],
      "contentSnippet": "AI-Assisted Automation\n\nAidus is FontLab’s beta AI integration, connecting natural-language requests to FontLab’s inspection and editing tools. Built-in Chat can answer questions and perform requested operations. Smart Filters turn a description into a reusable glyph filter, while glyph generation uses an image-capable model to supply starting outlines. External assistants can reach FontLab’s tools through MCP, a separate connection described below.\n\nSetting up AI Integration\n\nOpen Preferences"
    },
    {
      "slug": "customizing-the-workspace",
      "title": "Customizing the Workspace",
      "summary": "Customizing the Workspace A workspace preserves the arrangement of your working surfaces.",
      "chapterSlug": "customization",
      "chapterTitle": "Customization",
      "headings": [
        "Customizing the Workspace",
        "Workspaces",
        "Compact Toolbar",
        "Configuring the Interface"
      ],
      "contentSnippet": "Customizing the Workspace\n\nA workspace preserves the arrangement of your working surfaces. Use different layouts for drawing, spacing, feature editing, or proofing so that the relevant panels are available without rebuilding the interface each time.\n\nWorkspaces\n\nArrange panel visibility, positions, and docking, then choose Window > Workspaces > Save Workspace... to save the layout under a descriptive name. FontLab ships predefined workspaces, including Default for returning to the standard"
    },
    {
      "slug": "customizing-tools-and-functions",
      "title": "Customizing Tools and Functions",
      "summary": "Customizing Tools and Functions Preferences change how FontLab interprets input, presents data, and performs operations.",
      "chapterSlug": "customization",
      "chapterTitle": "Customization",
      "headings": [
        "Customizing Tools and Functions",
        "File Handling",
        "Glyph Set Management",
        "Drawing, Editing, and Operations",
        "Design Aids and Validation",
        "Spacing, Text, and Variations",
        "Other Preferences"
      ],
      "contentSnippet": "Customizing Tools and Functions\n\nPreferences change how FontLab interprets input, presents data, and performs operations. Find the page that governs the observed behavior before changing unrelated settings. The map below identifies the decisions; the exhaustive control-by-control Preferences reference belongs to Volume Two.\n\nFile Handling\n\nOpen Fonts governs reconstruction from non-native files: naming, curve conversion, node detection, composite handling, zone tagging, and layout/table"
    },
    {
      "slug": "commands-and-shortcuts",
      "title": "Commands and Shortcuts",
      "summary": "Commands and Shortcuts FontLab uses different shortcut systems for tools, commands, and navigation.",
      "chapterSlug": "customization",
      "chapterTitle": "Customization",
      "headings": [
        "Commands and Shortcuts",
        "Shortcut Types",
        "Customizing Shortcuts",
        "Non-English Keyboard Layouts"
      ],
      "contentSnippet": "Commands and Shortcuts\n\nFontLab uses different shortcut systems for tools, commands, and navigation. Knowing which system a key belongs to helps when customizing it or diagnosing a key that behaves differently in another window.\n\nShortcut Types\n\nA tool shortcut is usually a single key. Tapping selects the tool; holding a supported tool key temporarily selects it and returns to the previous tool when released. Modifiers can alter the temporary tool's behavior while it is held.\n\nThese fixed tool"
    },
    {
      "slug": "the-user-data-folder-and-customizable-da",
      "title": "The User Data Folder and Customizable Data Files",
      "summary": "The User Data Folder and Customizable Data Files FontLab's editable data files let you tailor naming, encoding, character ranges, and glyph-generation...",
      "chapterSlug": "customization",
      "chapterTitle": "Customization",
      "headings": [
        "The User Data Folder and Customizable Data Files",
        "Understanding the User Data Folder",
        "Relocate customization data",
        "Customizable Data Files",
        "Encoding and naming workflows",
        "Construction and coverage resources"
      ],
      "contentSnippet": "The User Data Folder and Customizable Data Files\n\nFontLab's editable data files let you tailor naming, encoding, character ranges, and glyph-generation behavior without modifying the application bundle. Keep overrides deliberate and documented, because they can affect automatic operations across many fonts.\n\nUnderstanding the User Data Folder\n\nFontLab uses several data locations, from local/user-specific resources toward shared and bundled defaults:\n\n| Location | Main role |\n| --- | --- |\n|"
    },
    {
      "slug": "m01-overview-orientation-and-the-nature-of-fonts",
      "title": "Orientation",
      "summary": "Orientation and the Nature of Fonts Making a font combines visual design with decisions about how the font is stored, identified, and used.",
      "headings": [
        "Orientation and the Nature of Fonts",
        "Setup and Orientation",
        "[Introduction](vb://article/introduction)",
        "[Installation and Setup](vb://article/installation-and-setup)",
        "[Help and Support](vb://article/help-and-support)",
        "About Fonts",
        "[Fonts and Encodings](vb://article/fonts-and-encodings)",
        "[Font Structures](vb://article/font-structures)",
        "[Fonts and Font Families](vb://article/fonts-and-font-families)",
        "Working with Fonts",
        "[Understanding Font Formats](vb://article/understanding-font-formats)",
        "[Creating and Opening Fonts](vb://article/creating-and-opening-fonts)",
        "[Naming Fonts and Families](vb://article/naming-fonts-and-families)",
        "[Saving and Closing Fonts](vb://article/saving-and-closing-fonts)",
        "The FontLab Interface",
        "[Windows, Panels, and Workspaces](vb://article/windows-panels-and-workspaces)",
        "[Arranging Windows and Panels](vb://article/arranging-windows-and-panels)",
        "[Menus, Dialogs, and Controls](vb://article/menus-dialogs-and-controls)"
      ],
      "contentSnippet": "Orientation and the Nature of Fonts\n\nMaking a font combines visual design with decisions about how the font is stored, identified, and used. This chapter establishes the working environment and vocabulary for that work. It begins with installation and help, then explains the relationship between text and the forms a font supplies to display it.\n\nFrom there, you can create or open a font, give it a consistent identity, and preserve its editable source. The interface articles introduce the"
    },
    {
      "slug": "m02-overview-the-font-window-and-the-glyph-set",
      "title": "Glyph Set",
      "summary": "The Font Window and the Glyph Set A font’s glyph set is the collection of forms available to represent text.",
      "headings": [
        "The Font Window and the Glyph Set",
        "The Font Window",
        "[Font Window and Font Map](vb://article/font-window-and-font-map)",
        "[Font Window Anatomy](vb://article/font-window-anatomy)",
        "[Navigating the Font Window](vb://article/navigating-the-font-window)",
        "[Selecting Glyphs](vb://article/selecting-glyphs)",
        "Glyph Identity, Encoding, Metadata",
        "[Glyph Identity](vb://article/glyph-identity)",
        "[Managing Glyph Names and Codepoints](vb://article/managing-glyph-names-and-codepoints)",
        "[Tagging Glyphs](vb://article/tagging-glyphs)",
        "[Flagging Glyphs](vb://article/flagging-glyphs)",
        "[Glyph Notes](vb://article/glyph-notes)",
        "Filtering, Searching, and Sorting the Glyph Set",
        "[Font Filters](vb://article/font-filters)",
        "[Searching the Glyph Set](vb://article/searching-the-glyph-set)",
        "[Saving and Reusing Filters](vb://article/saving-and-reusing-filters)",
        "[Sorting Glyph Cells](vb://article/sorting-glyph-cells)",
        "Editing the Glyph Set",
        "[Creating and Removing Glyphs](vb://article/creating-and-removing-glyphs)",
        "[Using the Clipboard](vb://article/using-the-clipboard)",
        "[Drag-and-Drop Operations](vb://article/drag-and-drop-operations)"
      ],
      "contentSnippet": "The Font Window and the Glyph Set\n\nA font’s glyph set is the collection of forms available to represent text. Before editing individual drawings, you need to see what that collection contains, identify its members, and select the right objects for a change. The Font window and Font Map provide that overview, including views that show expected glyphs still missing from the font.\n\nThis chapter follows the collection from inspection to organization and editing. Names and Unicode assignments"
    },
    {
      "slug": "m03-overview-drawing-and-spacing-glyphs",
      "title": "Drawing & Spacing",
      "summary": "Drawing and Spacing Glyphs A glyph’s shape and the space around it develop together.",
      "headings": [
        "Drawing and Spacing Glyphs",
        "The Glyph Window",
        "[Font Window and Glyph Window](vb://article/font-window-and-glyph-window)",
        "[Glyph Window Anatomy](vb://article/glyph-window-anatomy)",
        "[Glyph Window Modes](vb://article/glyph-window-modes)",
        "[Text in the Glyph Window](vb://article/text-in-the-glyph-window)",
        "[Navigating the Glyph Window](vb://article/navigating-the-glyph-window)",
        "Setting Up the Drawing Space",
        "[The Em and the Coordinate System](vb://article/the-em-and-the-coordinate-system)",
        "[Coordinate Precision](vb://article/coordinate-precision)",
        "[Font Metrics and Glyph Metrics](vb://article/font-metrics-and-glyph-metrics)",
        "[On-Canvas Visualization of Metrics](vb://article/on-canvas-visualization-of-metrics)",
        "[Preparing for Italics](vb://article/preparing-for-italics)",
        "Creating Contours",
        "[Contours, Nodes, and Handles](vb://article/contours-nodes-and-handles)",
        "[Curves, Direction, and Fill](vb://article/curves-direction-and-fill)",
        "[Drawing Geometric Primitives](vb://article/drawing-geometric-primitives)",
        "[The Pen Tool](vb://article/the-pen-tool)",
        "[Pen Alternatives: Rapid and Pencil](vb://article/pen-alternatives-rapid-and-pencil)",
        "[Tracing a Source Image](vb://article/tracing-a-source-image)",
        "Editing Contours",
        "[Selecting and the Contour Tool](vb://article/selecting-and-the-contour-tool)",
        "[Basic Node and Handle Operations](vb://article/basic-node-and-handle-operations)",
        "[Editing Modes and Modifiers](vb://article/editing-modes-and-modifiers)",
        "[Segments and Curve Types](vb://article/segments-and-curve-types)",
        "[Contour Transformations](vb://article/contour-transformations)",
        "[Cutting, Slicing, and Erasing](vb://article/cutting-slicing-and-erasing)",
        "[Overlaps and Boolean Operations](vb://article/overlaps-and-boolean-operations)",
        "[Contour Effects](vb://article/contour-effects)",
        "[The Stem Tool](vb://article/the-stem-tool)",
        "Contour Quality",
        "[Structural Soundness](vb://article/structural-soundness)",
        "[Curve Continuity and the Curvature Comb](vb://article/curve-continuity-and-the-curvature-comb)",
        "[Harmonizing Curves and Smart Nodes](vb://article/harmonizing-curves-and-smart-nodes)",
        "Design Aids",
        "[Rulers, Guides, and Power Guides](vb://article/rulers-guides-and-power-guides)",
        "[Expressions and Parameters](vb://article/expressions-and-parameters)",
        "[The Design Grid](vb://article/the-design-grid)",
        "[Snapping and Suggestions](vb://article/snapping-and-suggestions)",
        "[Live Measurement](vb://article/live-measurement)",
        "[Font Audit](vb://article/font-audit)",
        "[Design References and Comparing](vb://article/design-references-and-comparing)",
        "[View Sets and the View Panel](vb://article/view-sets-and-the-view-panel)",
        "Spacing",
        "[Designing the Whitespace](vb://article/designing-the-whitespace)",
        "[The Metrics Workspace](vb://article/the-metrics-workspace)",
        "[Spacing Glyphs](vb://article/spacing-glyphs)",
        "[Relational Spacing](vb://article/relational-spacing)"
      ],
      "contentSnippet": "Drawing and Spacing Glyphs\n\nA glyph’s shape and the space around it develop together. This chapter takes you into the Glyph window, establishes the coordinate and measurement framework, and introduces contours: the paths that describe an outline. You can create them with geometric tools, draw them point by point or freehand, or trace source artwork.\n\nOnce a drawing exists, the work becomes more selective. You reshape its points and curves, inspect its structure and smoothness, and use guides,"
    },
    {
      "slug": "m04-overview-composition-and-reuse",
      "title": "Composition",
      "summary": "Composition and Reuse Many glyphs share a base letter, an accent, or a smaller piece of drawing. Reusing that content gives related forms a common source.",
      "headings": [
        "Composition and Reuse",
        "Manual Composites and Glyph Recipes",
        "[Reuse and Composition](vb://article/reuse-and-composition)",
        "[Building Composites by Hand](vb://article/building-composites-by-hand)",
        "[Controlling Composite Metrics](vb://article/controlling-composite-metrics)",
        "[Using Recipes for Composite Building](vb://article/using-recipes-for-composite-building)",
        "Anchors and Auto Layers",
        "[Anchors for Positioning](vb://article/anchors-for-positioning)",
        "[Auto Layers](vb://article/auto-layers)",
        "The Element Model and Element References",
        "[The Element Model](vb://article/the-element-model)",
        "[Element Transformations](vb://article/element-transformations)",
        "[Element References](vb://article/element-references)",
        "[Building Glyphs from Element References](vb://article/building-glyphs-from-element-references)"
      ],
      "contentSnippet": "Composition and Reuse\n\nMany glyphs share a base letter, an accent, or a smaller piece of drawing. Reusing that content gives related forms a common source. A component is a placed reference to another glyph; a composite assembles such references into a new form. This chapter begins with arranging those components and controlling the composite’s spacing, then introduces written recipes for constructing glyphs.\n\nNamed anchors specify where parts attach, and auto layers retain a recipe so that the"
    },
    {
      "slug": "m05-overview-advanced-font-development-techniques",
      "title": "Advanced",
      "summary": "Advanced Font Development Techniques FontLab’s element model supports ways to develop a drawing while retaining an adjustable construction.",
      "headings": [
        "Advanced Font Development Techniques",
        "Live Filters",
        "[Live Filters](vb://article/live-filters)",
        "[Boolean Assembly: Fusion, Clipping, and the Fill Tool](vb://article/boolean-assembly-fusion-clipping-and-the)",
        "[Smart Corners and Ink Traps](vb://article/smart-corners-and-ink-traps)",
        "[The Glue Filter](vb://article/the-glue-filter)",
        "[The Skin Filter](vb://article/the-skin-filter)",
        "[The Delta Filter](vb://article/the-delta-filter)",
        "[The Mesh Filter](vb://article/the-mesh-filter)",
        "Stroke and Brush",
        "[Designing with Skeletons](vb://article/designing-with-skeletons)",
        "[Working with Strokes](vb://article/working-with-strokes)",
        "[Working with Brushes](vb://article/working-with-brushes)",
        "[The Thickness Tool](vb://article/the-thickness-tool)",
        "Designing in Color",
        "[Coloring Contour Elements](vb://article/coloring-contour-elements)",
        "[Working with Color Images](vb://article/working-with-color-images)"
      ],
      "contentSnippet": "Advanced Font Development Techniques\n\nFontLab’s element model supports ways to develop a drawing while retaining an adjustable construction. Live filters can combine shapes, reshape an outline, or attach details such as corners and serifs. Strokes and brushes build a visible form around a skeleton path, letting you work with its course and thickness as separate design decisions.\n\nColor adds another set of choices: solid fills, gradients, opacity, and the arrangement of colored elements. SVG and"
    },
    {
      "slug": "m06-overview-variation-and-the-designspace",
      "title": "Variation",
      "summary": "Variation and the Designspace Related styles can be developed from a set of source designs called masters.",
      "headings": [
        "Variation and the Designspace",
        "The Font Variations Framework",
        "[The Variation Model](vb://article/the-variation-model)",
        "[Layers and Masters](vb://article/layers-and-masters)",
        "[Axes and Master Locations](vb://article/axes-and-master-locations)",
        "[Advanced Axis Management](vb://article/advanced-axis-management)",
        "[Defining and Generating Instances](vb://article/defining-and-generating-instances)",
        "Working with Masters",
        "[Interpolation and Compatibility](vb://article/interpolation-and-compatibility)",
        "[Previewing, Diagnosing, and Fixing Interpolation](vb://article/previewing-diagnosing-and-fixing-interpo)",
        "[Managing Layer Content](vb://article/managing-layer-content)",
        "[Editing across Masters](vb://article/editing-across-masters)",
        "Advanced Variation Techniques",
        "[Beyond the Uniform Blend](vb://article/beyond-the-uniform-blend)",
        "[The Sigma Tool](vb://article/the-sigma-tool)",
        "[Bracket Layers](vb://article/bracket-layers)",
        "[Variable Components](vb://article/variable-components)",
        "[Filters, Strokes, and Brushes under Variation](vb://article/filters-strokes-and-brushes-under-variat)"
      ],
      "contentSnippet": "Variation and the Designspace\n\nRelated styles can be developed from a set of source designs called masters. Axes, such as weight or width, describe the changes between them; together they define a designspace. Interpolation calculates designs at locations within that space, allowing you to develop separate family members or prepare a variable font.\n\nThis chapter first establishes masters, layers, axes, and named instances. It then turns to the correspondence needed for a useful blend: matching"
    },
    {
      "slug": "m07-overview-opentype-layout",
      "title": "OpenType",
      "summary": "OpenType Layout When an application displays text, its shaping engine selects and positions glyphs using information in the font.",
      "headings": [
        "OpenType Layout",
        "The OpenType Layout Process",
        "[Shaping Text](vb://article/shaping-text)",
        "[The Process Architecture](vb://article/the-process-architecture)",
        "[Authoring OpenType Layout](vb://article/authoring-opentype-layout)",
        "[The Lookups Panel](vb://article/the-lookups-panel)",
        "Glyph Substitution",
        "[Substitution Features](vb://article/substitution-features)",
        "[The Features Panel](vb://article/the-features-panel)",
        "[Glyph Classes](vb://article/glyph-classes)",
        "[Substitution Lookups](vb://article/substitution-lookups)",
        "[Contextual Substitution](vb://article/contextual-substitution)",
        "[Generated and Conditional Substitution](vb://article/generated-and-conditional-substitution)",
        "Kerning",
        "[The Kerning Model](vb://article/the-kerning-model)",
        "[Preparations](vb://article/preparations)",
        "[Kerning Visually](vb://article/kerning-visually)",
        "[Right-to-Left Kerning](vb://article/right-to-left-kerning)",
        "[Kerning, GPOS, and the kern Table](vb://article/kerning-gpos-and-the-kern-table)",
        "Mark Attachment",
        "[Mark Attachment as Positioning](vb://article/mark-attachment-as-positioning)",
        "[Attaching Marks](vb://article/attaching-marks)",
        "[Cursive Attachment](vb://article/cursive-attachment)",
        "[Mark Features and Export](vb://article/mark-features-and-export)",
        "[Appendix — Microsoft VOLT Integration](vb://article/appendix-microsoft-volt-integration)"
      ],
      "contentSnippet": "OpenType Layout\n\nWhen an application displays text, its shaping engine selects and positions glyphs using information in the font. OpenType Layout supplies rules for those operations. A substitution can select a ligature or an alternate form; positioning can adjust a pair’s spacing or attach a mark to a letter. Some choices are optional, while others are needed for a writing system to display correctly.\n\nThis chapter explains the processing model before introducing the authoring tasks. You"
    },
    {
      "slug": "m08-overview-hinting",
      "title": "Hinting",
      "summary": "Hinting A smooth outline must eventually be represented on a grid of pixels. At small sizes, that translation can make similar strokes look uneven or...",
      "headings": [
        "Hinting",
        "PostScript Hinting",
        "[Hinting and the Pixel Grid](vb://article/hinting-and-the-pixel-grid)",
        "[Alignment Zones and Standard Stems](vb://article/alignment-zones-and-standard-stems)",
        "[Glyph-Level PostScript Hints](vb://article/glyph-level-postscript-hints)",
        "[PostScript Autohinting](vb://article/postscript-autohinting)",
        "TrueType Instructing",
        "[The TrueType Hinting Model and Workspace](vb://article/the-truetype-hinting-model-and-workspace)",
        "[TrueType Font-Level Hinting](vb://article/truetype-font-level-hinting)",
        "[Visual TrueType Instructions](vb://article/visual-truetype-instructions)",
        "[TrueType Autohinting](vb://article/truetype-autohinting)"
      ],
      "contentSnippet": "Hinting\n\nA smooth outline must eventually be represented on a grid of pixels. At small sizes, that translation can make similar strokes look uneven or disturb shared heights. Hinting supplies information that helps a rendering system fit the design to the grid. Its visible effect depends on the font format, rendering system, and size being tested.\n\nThis chapter covers the two principal approaches separately. PostScript hinting describes important alignments and stem dimensions, while TrueType"
    },
    {
      "slug": "m09-overview-family-building-and-font-production",
      "title": "Production",
      "summary": "Family Building and Font Production Producing a font family brings together decisions made throughout development.",
      "headings": [
        "Family Building and Font Production",
        "Family Building",
        "[From Fonts to Families](vb://article/from-fonts-to-families)",
        "[Organizing and Auditing Families](vb://article/organizing-and-auditing-families)",
        "Proofing",
        "[Proofing Environments](vb://article/proofing-environments)",
        "[Text Mode](vb://article/text-mode)",
        "[The Preview Panel](vb://article/the-preview-panel)",
        "[Printing and Visual Proofs](vb://article/printing-and-visual-proofs)",
        "[The Sketchboard](vb://article/the-sketchboard)",
        "Font Formats and Export",
        "[Font and Metadata Formats](vb://article/font-and-metadata-formats)",
        "[Completing Font Metadata](vb://article/completing-font-metadata)",
        "[The Export Process](vb://article/the-export-process)",
        "[Export Profiles](vb://article/export-profiles)",
        "[OpenType, Variable, and Web Fonts](vb://article/opentype-variable-and-web-fonts)",
        "[Color Fonts](vb://article/color-fonts)",
        "[Interchange and Legacy Formats](vb://article/interchange-and-legacy-formats)",
        "[Inspecting and Repairing Fonts](vb://article/inspecting-and-repairing-fonts)"
      ],
      "contentSnippet": "Family Building and Font Production\n\nProducing a font family brings together decisions made throughout development. Related members need coherent names, style links, coverage, and shared properties. Their drawings and text behavior also need to be judged together, both in FontLab and in the applications where the delivered fonts will be used.\n\nThis chapter moves from organizing the family to proofing and export. Text previews, comparisons, and printed or exported specimens support design"
    },
    {
      "slug": "m10-overview-workflow-automation-and-customization",
      "title": "Workflow",
      "summary": "Workflow, Automation, and Customization A font project needs a working record as well as a finished result.",
      "headings": [
        "Workflow, Automation, and Customization",
        "Project Documentation and Management",
        "[Annotating Project Sources](vb://article/annotating-project-sources)",
        "[Project Data and Versioning](vb://article/project-data-and-versioning)",
        "Automation",
        "[Actions](vb://article/actions)",
        "[Action Sets](vb://article/action-sets)",
        "[Python Scripting](vb://article/python-scripting)",
        "[The Python API and Libraries](vb://article/the-python-api-and-libraries)",
        "[Automation Hooks and Direct Data Access](vb://article/automation-hooks-and-direct-data-access)",
        "[AI-Assisted Automation](vb://article/ai-assisted-automation)",
        "Customization",
        "[Customizing the Workspace](vb://article/customizing-the-workspace)",
        "[Customizing Tools and Functions](vb://article/customizing-tools-and-functions)",
        "[Commands and Shortcuts](vb://article/commands-and-shortcuts)",
        "[The User Data Folder and Customizable Data Files](vb://article/the-user-data-folder-and-customizable-da)"
      ],
      "contentSnippet": "Workflow, Automation, and Customization\n\nA font project needs a working record as well as a finished result. Notes, source versions, and release records help you understand an earlier decision, return to a useful state, or hand the work to someone else. This chapter gathers the practices and tools that support that continuity.\n\nRepeated work can be organized as action sets or expressed in scripts, with optional AI assistance for suitable tasks. Automation still needs a defined target and a way"
    }
  ],
  "generatedAt": "2026-10-28T02:04:29.187Z"
}