A dark slide with a large red 92-97% figure and the words 'Pixel match recreating a real, hand-designed branded deck'.
From the YC demo-day example deck, rendered with slaide.

Your Deck Looks Different on Their Laptop

Test every deck on a machine that isn’t yours before you present it. If you skip that, the headlines can come back in a different typeface, and nobody in the room will know why.

It’s not a bug, it’s the documented default

If a font isn’t embedded in the file and it isn’t installed on the machine opening it, the app swaps in a different font. Microsoft’s font embedding page says a different font is substituted when the embedded one is missing. That is expected behavior, not a fault anyone owes you an apology for. The fix isn’t to complain about it. It’s knowing which of your fonts are actually traveling with the file and which ones are just relying on the other laptop already having them, which it usually doesn’t.

The common case is a deck built on a machine with a licensed font installed, then opened on a machine that never had a reason to install it. Nothing is wrong with the file. The second machine just doesn’t have what the first one had.

Embedding has four permission levels, and the font decides, not you

You can ask PowerPoint to embed fonts, but whether it actually can depends on a permission flag baked into the font file, and Microsoft lists four tiers: Non-embeddable, Preview/Print, Editable, and Installable. By the usual definition of these tiers, only the top tier lets someone else edit text set in that font on their own machine. The others range from “can’t embed it at all” to “can see it, can’t touch it.” You don’t choose this tier. Whoever licensed the font did, long before you picked it for a deck, and Microsoft recommends OTF or TTF and says to avoid PostScript fonts (.PFB, .PFM), so a font in another format may not be a candidate at all.

The trap that catches people who did everything right

Say you embedded the fonts correctly. Then you, or somebody downstream of you, saves the file down to the old PowerPoint 97-2003 format, maybe because someone asked for a .ppt instead of a .pptx. Microsoft says that when you save to the PowerPoint 97-2003 format, some fonts are not embedded, so other fonts replace them on another computer. Everything can be right at step one and gone by step three, invisible until someone opens the file on a machine without the font.

What to actually do the day before

A few minutes of checking beats any amount of hoping. Open the file on a machine you don’t control, not just a second window on your own laptop, because your own machine already has every font you used installed and will hide the exact problem you’re checking for. If you’re staying in PowerPoint, turn on font embedding in the save options before anything else, and check it’s still on after any later save, because it’s the kind of setting that gets silently reset by exactly the trap above. Export a PDF as a backup regardless of what else you do, and keep it somewhere you can reach without wifi, because a substituted font is a survivable problem and a laptop that can’t reach your cloud drive two minutes before you’re on stage is not.

The ranking of fixes, worst to best

  • Hope. The font happens to be common enough, or installed on their machine by coincidence. Not a plan, a bet. I would not take it before a talk that matters.
  • Embed the fonts. Works if the license tier allows it and nobody re-saves the file to an old format afterward. Also grows the file. Microsoft notes some fonts are very large.
  • Convert the text to outlines. The words become shapes instead of text. The look locks in for good, but you lose the ability to edit the text, so this is a last export step, not something you do mid-draft.
  • Send a PDF instead. A PDF usually embeds its fonts, so nobody’s laptop gets a vote on the outcome. The tradeoff is nobody can edit it either, which is sometimes exactly what you want and sometimes the opposite.
  • Use a format where the theme lives in the source. If the font is a line in a theme block instead of a setting buried inside a binary file, there’s nothing left for a save-as to quietly drop.

That last one is how Slaide works. A Slaide theme names its fonts in a YAML file, and the docs say fonts come from Google Fonts. The compiler warns (non-embeddable-font) when a font is neither a common system font nor on Google Fonts, because that font will not embed in the .pptx. This fixes one part of the problem. Once you export to .pptx, the file is a normal PowerPoint file, and the same font rules apply to it. So which fix are you actually going to do the night before your talk?