diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,11 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## 0.1.0.1 - 2026-03-18
+
+- Make plane rescaling depend on `layout.atlas.sizeUnit`.
+  * 1.0 if already caps-sized, unitsPerEm/capHeight otherwise.
+
 ## 0.1.0.0 - 2025-12-30
 
 Initial release.
diff --git a/ktx-font.cabal b/ktx-font.cabal
--- a/ktx-font.cabal
+++ b/ktx-font.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           ktx-font
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       GPU-ready rasterized fonts
 category:       Graphics
 author:         IC Rainbow
@@ -22,10 +22,6 @@
 source-repository head
   type: git
   location: https://gitlab.com/dpwiz/ktx
-
-flag executables
-  manual: True
-  default: False
 
 library
   exposed-modules:
diff --git a/src/Codec/Ktx2/Font.hs b/src/Codec/Ktx2/Font.hs
--- a/src/Codec/Ktx2/Font.hs
+++ b/src/Codec/Ktx2/Font.hs
@@ -46,6 +46,7 @@
 import GHC.Generics (Generic, Generic1)
 import Graphics.MSDF.Atlas.Compact (Compact, compact)
 import Graphics.MSDF.Atlas.Compact qualified as Compact
+import Graphics.MSDF.Atlas.Layout qualified as Layout
 import KB.Text.Shape qualified as TextShape
 import KB.Text.Shape.FFI.Enums qualified as KBTS
 import KB.Text.Shape.FFI.Handles (Font(..), intHandle)
@@ -77,25 +78,33 @@
   kbtsData <- Font.extractBlob ttfData 0
 
   font <- createFont kbtsData 0
-  capsScale <- withFontData font $ pure . Font.emToCaps
+  rescale <-
+    case layout.atlas.sizeUnit of
+      Just Layout.CapsHeight -> pure id
+      Nothing -> do
+        factor <- withFontData font $ pure . Font.emToCaps
+        pure $ scalePlanes factor
   destroyFont font
 
   sourceKtx <- Ktx2.fromFile pathKtx2
   let
-    atlas = capScalePlanes capsScale $ compact layout
+    atlas = rescale $ compact layout
     atlasData = ByteString.toStrict $ encode atlas
     kvd =
       KVD.insertBytes KTX_KEY_atlas (Zstd.compress 19 atlasData) $
       KVD.insertBytes KTX_KEY_kbts (Zstd.compress 19 kbtsData) $
       KVD.insertText KTX_KEY_kbts_version kbtsVersion $
-      KVD.setWriterWith ("ktx-font 0.1.0.0 / " <>) sourceKtx.kvd
+      KVD.setWriterWith ("ktx-font 0.1.0.1 / " <>) sourceKtx.kvd
   Ktx2.toFile pathKtxf sourceKtx{Ktx2.kvd}
 
 -- | Rescale planes to caps height instead of ems.
-capScalePlanes :: Float -> Compact -> Compact
-capScalePlanes capsScale a = a
-  { Compact._size = a._size
-  , Compact.planes = Vector.map (Compact.scaleBox capsScale) a.planes
+--
+-- With 1.4 factor, 1em targeting 10px would become 14px.
+-- That means you need smaller font sizes in caps that in ems.
+scalePlanes :: Float -> Compact -> Compact
+scalePlanes s a = a
+  { Compact._size = a._size * s
+  , Compact.planes = Vector.map (Compact.scaleBox s) a.planes
   }
 
 {- | Put already-loaded font to context.
