4

I am trying to use a drop cap in a verse environment. I was more or less successful doing it manually in the following:

\documentclass{book}

\usepackage{verse,anyfontsize}

\begin{document}

\begin{verse}
\hspace{22pt}his is line 1 of the verse.\\
\vspace{-8pt}{\fontsize{28}{30}\selectfont T}\hspace{2pt}This is line 2 of the verse.\\
Here is the third line.\\
And the fourth and final.

This is line 1 of the verse.\\
This is line 2 of the verse.\\
Here is the third line.\\
And the fourth and final.
\end{verse}

\end{document} 

manual drop cap in verse environment

However, if I use a different letter for the drop cap, all the horizontal spacings would need to be changed by eye. And if I change the font size in the document, which would change the leading, then the vertical spacing in the above would need to be changed by eyeballing it as well.

Is there a better way of doing this? Such that a different letter as drop cap or a different font size wouldn't throw it all out of whack? Appreciate any suggestions.

  • Unfortunately, both \lettrine and verse hang on \parshape so they can't be used together. – egreg Mar 2 '14 at 22:21
  • verse uses a list environment. lettrine cannot be used within a list. As far as I can tell, verse doesn't use \parshape as such. – cfr Mar 3 '14 at 0:38
7

Here, I just brewed up my own version that seems to work. Begin the verse with \startverse{}{} with the first two lines of the stanza as the arguments. make sure you place a \\ after the invocation of \startverse.

I did hardwire a minipage to 4in, which can be changed. In addition to working for the inline fontsize changes (as shown), this has been confirmed to work for documents set for 10pt - 12pt.

EDITED to handle the only versal descender: the letter "Q". I also RE-EDITED, per OP's comment, to handle colored and left-offset versal. Note that I made the offset a fraction of the letter width, rather than a fixed amount. I left both forms in the code (one commented), in case the OP wishes a fixed offset.

\documentclass[12pt]{book}
\usepackage{scalerel}
\usepackage{stackengine}
\usepackage{verse,anyfontsize}
\usepackage{xcolor}

\def\startverse#1#2{%
  \begin{minipage}{4in}%
  \firstline#1\relax%
  \def\verselineB{#2}%
  \if Q\versalletter\def\descstrut{\strut}\else\def\descstrut{}\fi%
  \def\Versal{\textcolor{red}{%
             \scalerel*{$\fontsize{28}{30}\selectfont\versalletter$}%
                       {\def\stacktype{L}\stackon{T\descstrut}{T}}}}%
  \setbox0=\hbox{\Versal\,}%
%  \def\leftoffset{-15pt}%WHAT OP ASKED FOR, BUT NOT BEST, IMHO
  \def\leftoffset{-.3\wd0}%
  \hspace*{\wd0}\hspace{\leftoffset}%
    \verselineA\\%
  \hspace*{\wd0}\hspace{\leftoffset}%
    \llap{\smash{\box0}}%
    \verselineB\strut%
  \end{minipage}%
}

\def\firstline#1#2\relax{\def\versalletter{#1}\def\verselineA{#2}}
\begin{document}
\begin{verse}
\startverse
{This is line 1 of my newly formed verse.}
{The second is nicely tucked in.}\\
Here is the third line, it is not quite so terse\\
and the fourth line is not quite its twin.

\startverse
{Queerly, the Q is a versal descender.}%
{If fully set, it would interfere.}\\
With a strut I will staunchly defend her\\
descending not fully, it suffers so here.

\scriptsize\startverse
{And this is line 1 of my scriptsiz-ed verse.}
{Good things are often quite small.}\\
I once wed a sweet, blonde-headed night nurse\\
only five feet and four inches tall.

\tiny\startverse
{Only this is yet smaller; ever so tiny.}
{You may need your spectacles on.}\\
Without them you could become quite whiney.\\
and that is the end of my song.

\end{verse}
\end{document} 

enter image description here


PART OF EARLIER ANSWER:

And for those who don't like setting the first two lines in braces, this alternative should suffice.

\documentclass[12pt]{book}
\usepackage{scalerel}
\usepackage{stackengine}
\usepackage{verse,anyfontsize}
\def\startverse#1\\#2\\{%
  \begin{minipage}{4in}%
  \firstline#1\relax%
  \def\verselineB{#2}%
  \if Q\versalletter\def\descstrut{\strut}\else\def\descstrut{}\fi%
  \def\Versal{\scalerel*{$\fontsize{28}{30}\selectfont\versalletter$}%
                        {\def\stacktype{L}\stackon{T\descstrut}{T}}}%
  \setbox0=\hbox{\Versal\,}%
  \noindent\hspace*{\wd0}\verselineA\\%
  \smash{\Versal\,}\verselineB\strut%
  \end{minipage}\\%
}
\def\firstline#1#2\relax{\def\versalletter{#1}\def\verselineA{#2}}
\begin{document}
\begin{verse}
\startverse
This is line 1 of my newly formed verse.\\
The second is nicely tucked in.\\
Here is the third line, it is not quite so terse\\
and the fourth line is not quite its twin.

\startverse
Queerly, the Q is a versal descender.\\
If fully set, it would interfere.\\
With a strut I will staunchly defend her\\
descending not fully, it suffers so here.

\scriptsize\startverse
And this is line 1 of my scriptsiz-ed verse.\\
Good things are often quite small.\\
I once wed a sweet, blonde-headed night nurse\\
only five feet and four inches tall.

\tiny\startverse
Only this is yet smaller; ever so tiny.\\
You may need your spectacles on.\\
Without them you could become quite whiney.\\
and that is the end of my song.
\end{verse}
\end{document} 
  • Thank you for this. One final thing: how would you tweak it to shift the drop cap, say 15pt to the left, and change the color of the drop cap? I'm just not familiar with the code. Thanks again. – Ryan Mar 3 '14 at 22:06
  • 1
    @Ryan done, per your request. – Steven B. Segletes Mar 4 '14 at 12:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.