Each set of options applies to a range of characters equal to the length
of the text added.
E.g. on write calls like:
Write("text", opts1)
Write("long text", opts2)
The two passed options will be stored as:
opts1 for byte range low:0, high:4
opts2 for byte range low:4, high:13
The text itself will be stored in a bytes.Buffer.