There are many "interesting" cases:
- logical content is wider than display width (long lines).
In this case, we truncate.
- logical content is smaller than display height (fewer lines
than visible).
In this case, we pad with empty lines up to the specified height.
- logical content is higher than display height (more lines than
visible).
In this case, we truncate.
- style specifies a width wider than the display width.
In this case, we ignore the style width and
fit in the display width.
- style specifies a height higher than the display height.
Same as width, we ignore the style and fit in the display height.
- style specifies a narrower width or smaller height than the display.
In this case we obey the style.