\def\testpar{``bla bla bla'' bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla?
`bla bla bla' bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla\-bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla\discretionary{!}{`}{!{}`}bla bla bla'
bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla: bla:
bla: bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla; bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla\-bla.
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla; bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla.
}
\begin{document}
\hyphenpenalty=-1000 % to show a hyphen
This document demonstrates the use of \cs{marginchar} kerning
for hanging punktuation and hyphenation. The same method can
be used to achieve optical margin correction (a font can provide
more than one \cs{marginchar}).
Note that the algorithm deals properly with ligatures (``),
\cs{parindent}, hanging indentation and complex discretionaries
(\cs{discretionary}\texttt{\{!\}\{`\}\{!{}`\}}).
The different break in the penultimate line demonstrates that
the \cs{margin\-char} kerning is in fact taken into account during
line-breaking.