If points of TrueType glyph aren't (or may not be) intergers: 1) edit > select > all 2) element > round > to int Edit font names before saving: 1) Element > Font Info 2) enter fontname: (eg. FreshPlexSans) 3) enter Family Name: (eg. Fresh Plex Sans) 4) enter Name for Humans (Fullname): (eg. Fresh Plex Sans Regular) Note: clicking "OK" at this point may cause an alert if you changed the font's name without changing the UniqueID (or XUID). If so, you can click "Change" but UniqueID and XUID is no longer used. 5) After clicking "OK", click OS/2 in the left menu and confirm that PFM family (serif, sans-serif, etc) is correct and add a vendor ID of up to four characters, then click OK. 6) If there will be a woff version of the font file, click woff in the left menu and add XML data (description, etc.) Save ("generate") font: 1) File > Generate Fonts 2) expand drop-down menu under file name 3) select "TrueType" from menu (or save as sfd first to retain layers, undo history, etc. to enable reversions and aid further editing) 4) name file (eg. FreshPlexSans) 5) click generate NOTE: FontForge ignores the STAT file attributes table, which Adobe and Mac use in font menus. Other apps can restore STAT if needed. Rendering will not be affected without STAT -- it would only affect document creation for those using the font to create a document. --- ChatGPT That’s a clear, well-structured checklist — great for your future self. Just a few optional refinements to improve clarity and prevent missteps: Refined Version (with a couple clarifying tweaks): If points of a TrueType glyph aren't (or may not be) integers: Go to Edit > Select > All Points Then Element > Round > To Int (snaps all point coordinates to whole numbers — optional but clean) Edit font names before saving (recommended to avoid conflicts): Go to Element > Font Info Set: Fontname: FreshPlexSans (used internally) Family Name: Fresh Plex Sans (used for font grouping in menus) Fullname (Name for Humans): Fresh Plex Sans Regular Save ("Generate") the font: Go to File > Generate Fonts In the file type dropdown (below the filename), select: > TrueType (.ttf) (Or select .sfd first to preserve edit history, layers, undo info) Name the file (e.g., FreshPlexSans.ttf) Click Generate If prompted about non-power-of-two em size, click Yes to continue ---------------- FreshPlexSans is heavily based on IBM Plex Sans. Three strengths of IBM Plex Sans, which are retained in FreshPlexSans, are: * Easily distinguishable lowercase "l" uppercase "I" and number "1". * While not as formal as serif fonts, still suitable for serious writing. * Exceptional overall legibility. In FreshPlexSans, the digits "1" and "7" are less blocky than in IBM Plex Sans. For the "1" the base and the serif-like line at the top were shortened. For the "7" the serif-like line at the top was removed. --- FreshPlexSans is heavily based on IBM Plex Sans. Three strengths of IBM Plex Sans, which are retained in FreshPlexSans, are: • Easily distinguishable lowercase "l", uppercase "I", and number "1". • While not as formal as serif fonts, still suitable for serious writing. • Exceptional overall legibility. In FreshPlexSans, the digits "1" and "7" are less blocky than in IBM Plex Sans. For the "1", the base and the serif-like line at the top were shortened. For the "7", the serif-like line at the top was removed. ------------------ how can I change the creation date in FontForge? ChatGPT said: In FontForge, you can change the creation date by following these steps: Option 1: Use the Font Info dialog (GUI) Open your font in FontForge. Go to Element → Font Info (or press Ctrl+Shift+F). In the left sidebar, select TTF Names or PS Names depending on which table you're editing. Look for a field labeled Created or Modification Date. If it's not visible here, skip to Option 2 — it's not editable via GUI in many builds. Change the value if editable, then click OK. Option 2: Manually override it with a script FontForge sets the creation date automatically when generating the font file. To manually set or override it (especially for OpenType fonts), use Python scripting: Example Python script: import fontforge font = fontforge.open("FreshPlexSans.sfd") font.appendSFNTName('English (US)', 'Created', '2024-01-01 00:00:00') font.generate("FreshPlexSans-modified.otf") Save that to a .py file. Run it via FontForge's command line: fontforge -script yourscript.py This adds a "Created" field to the name table, but doesn't necessarily change the internal OpenType timestamp (used by operating systems). Option 3: Use ttx to edit the head table If you're targeting OpenType/TrueType and want to set the internal timestamp (head table), you’ll need FontTools/ttx. Export your font to .ttx: ttx YourFont.otf Open the generated .ttx file in a text editor. Find the table and look for: Replace the value with the correct Unix epoch time in hexadecimal. For example, Jan 1, 2024 → 0x63B1E000 (You can use an online Unix time converter + hex converter) Save and compile it back: ttx YourFont.ttx Let me know which method fits your workflow and I can guide you step-by-step.