def embolden(font, maintain_spacing=True):
    """
	Create a bold version of a font by widening each glyph.

	:param Font font: The font to embolden.
	:param bool maintain_spacing: If true, each glyph's advance width
		will be incremented, because a wider glyph needs more room.
	:returns: A copy of ``font``, with each glyph emboldened.
	:rtype: :class:`.Font`

	To embolden a glyph, it is drawn over itself one pixel to the right,
	making each vertical stroke one pixel wider.
	"""
    res = font.copy()
    for cp in res.codepoints():
        g = res[cp]
        g.merge_glyph(g, 1, 0)
        if maintain_spacing:
            g.advance += 1
    return res
