Is there a package that automatically tells LaTeX to use small-caps for the first few words (say, three) in a chapter/section/subsection?



Not that I'm aware of. You can use the magaz package to make the whole first line small caps, or you could write a command like this:

\def\scwords #1 #2 #3 {\textsc{#1} \textsc{#2} \textsc{#3} }
\scwords Lorem ipsum delorem fugit however this goes

Then if you need more/fewer words just change the number of parameters in \scwords. (It doesn't seem worth the hassle to write an iterating version.)

Making this happen automatically is a little more difficult.


As Fowler wrote, a paragraph is a unit of thought not a length, and the starting of a new paragraph must make a statement in this respect. Just emphasizing one way or another the first line or the first three words might not look good or read good. I prefer the way the tufte-book class handles it with the newthought command (and you can choose how many and what words to capitalize).

   \addvspace{1.0\baselineskip plus 0.5ex minus 0.2ex}%
   \noindent\textsc{#1} % small caps text out

Adding a touch of vertical space makes it even look more professional. The solution by Will is the simplest, if you wish to just pick up the first few two-three words, automatically.

You can using it as follows:

\newthought{Testing the new thought}
  • I use this for my body of text, but when I try to use newthought command within a footnote, I get an error report ("something's wrong, perhaps a missing \item"). – bozidarka Nov 16 '14 at 17:47

I've just encountered this problem myself, re-typesetting some 19th century articles that start with a few words in small caps. My solution was to use the lettrine package, and treat the small-capped passage just the same way lettrine does, but without the initial drop cap.

\lettrine[lines=1]{}{I wish} to ask your opinion and procure...

produces the semantic effect I was looking for (and it sounds like you are), though you might think it's overkill if you're not also going to be using drop caps.

updated: I earlier removed what I thought was an extra parameter [lines=1], but it turns out to be crucial in this case: without it, the lettrine package leaves an indent in the following line.

Your Answer

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