How might one implement a simple drop cap in plain TeX without additional packages?
1 Answer
Here's a very basic approach showing two possibilities; the first one using \hangindent
and the second one (more flexible), \parshape
:
\font\lettrine=cmssdc10 at 30pt
\font\scfont=cmcsc10
\hsize=24pc
\noindent{\lettrine L}
\vskip-2.15\baselineskip\hangindent=1.8pc \hangafter-2 \noindent{\scfont orem} ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,
consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque
habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut
leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices.
Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium
quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum.
\vskip\baselineskip
\noindent{\lettrine L}
\vskip-2.15\baselineskip\parshape 3 1pc 23pc 1.5pc 22.5pc 0pc 24pc \noindent{\scfont orem} ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,
consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque
habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut
leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices.
Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium
quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum.
\bye
-
just as an aside, knuth's macro for the "dangerous bend" (found in
manmac.tex
in every tex distribution) uses basically the same technique as @Gonzalo's first suggestion, with added protection against an unwanted page break after the first line of the paragraph. Sep 2, 2012 at 12:33
\parshape
like in Gonzalo's answer.