非常に無理矢理なやり方ですが、別バッファに書いたテキストを拡大or縮小コピーすることで
擬似的に11.5サイズとか16.5サイズなどを表示するやり方もあります。
#include "user32.as"
#module
#define boxf2(%1,%2,%3,%4) boxf %1,%2,(%1)+(%3)-1,(%2)+(%4)-1
#defcfunc higher int h_a,int h_b //大きい方を返す
if h_a>h_b : return h_a
return h_b
//zoommes_init p1,p2,p3,p4,p5,p6
//zoommes実行前に、これを実行する必要がある
//p1 : フォント名
//p2 : フォントの元の大きさ
//p3 : フォントのオプション(太字など)
//p4 : サイズ変更前のサイズ比率
//p5 : サイズ変更後のサイズ比率
//p6 : この処理で使うバッファの番号
#deffunc zoommes_init str _fname,int _fsize,int _fopt,int _zm_b,int _zm_a,int _buf_n
dim rect,4
fname=_fname : fsize=_fsize : fopt=_fopt : zm_b=_zm_b : zm_a=_zm_a : buf_n=_buf_n
return
#deffunc zoommes str _text,local text
text=_text
buf0=ginfo_sel
x=ginfo_cx : y=ginfo_cy
r=ginfo_r : g=ginfo_g : b=ginfo_b
buffer buf_n,1,1 : gsel buf_n
font fname,fsize,fopt
DrawText hdc,varptr(text),-1,varptr(rect),0x400 //0x400:DT_CALCRECT 横幅・縦幅を事前調査
b_w=rect(2)-rect(0) //サイズ変更前の横幅
b_h=rect(3)-rect(1) //サイズ変更前の縦幅
a_w=b_w*zm_a/zm_b //サイズ変更後の横幅
a_h=b_h*zm_a/zm_b //サイズ変更後の縦幅
buffer buf_n,higher(b_w,a_w*2),b_h+a_h
color 0,0,0 : boxf
color r,g,b : boxf2 0,0,a_w,a_h
color 255,255,255
rect=0,a_h,b_w,a_h+b_h
font fname,fsize,fopt
DrawText hdc,varptr(text),-1,varptr(rect),0
pos a_w,0 : gzoom a_w,a_h,buf_n,0,a_h,b_w,b_h,1
gsel buf0 : pos x,y
gmode 7,a_w,a_h
gcopy buf_n,0,0,a_w,a_h
gmode 0
buffer buf_n,1,1 : gsel buf0
pos x,y+a_h
return
#global
a="いろはにほへと\nちりぬるを\nわかよたれそつねならむう\nゐのおくやまけふこえてあ\nさきゆめみしゑひもせす"
font msgothic,16,0
mes a
mes
zoommes_init msgothic,16,0,32,33,100 //フォントサイズ16のテキストを32分の33倍に縮小し、擬似的にサイズ16.5で表示
zoommes a
mes
zoommes_init msgothic,17,0,34,33,100 //フォントサイズ17のテキストを34分の33倍に縮小し、擬似的にサイズ16.5で表示
zoommes a
mes
font msgothic,17,0
mes a