width:sprite_font_story.TextWidth
height:len(sprite_font_story.Text)
TextWidth returns the width of text in Text/Spritefont object. Setting width to TextWidth will have no effect.
And len() expression returns the number of characters. Setting object height (in pixels) to the number of characters makes absolutely no sense.
.
Simply make the SpriteFont object large enough in layout editor to fit the largest chapter.