The separate window happens when you use GLMakie, that’s also what you need for interactivity and 3D plots. You can theme the font size if it’s too big but that’s something that has to be adjusted per backend. In GLMakie a unit is a pixel of your window, in CairoMakie it can either be a pt in vector graphics or a px in bitmaps. The px_per_unit and pt_per_unit keywords when saving in cairomakie allow you to scale your plot’s size up and down while keeping the relative size of all elements intact.
So you can use GLMakie, then GLMakie.activate!() and scenes should open in a window. Then when you like the plot you can CairoMakie.activate!() and save to a vector file. If the size is too big or small with the settings that looked good in GLMakie, use pt_per_unit or px_per_unit to adjust. Or maybe CairoMakie.save could work directly without activate!()