12

I don't want to change them one by one. I am wondering how to make the section names globally title case? That is "This is a Title Case Section Name".

It would be nice if you can also give answers applied to such as concerning subsection as well. Or using Small Capitals etc... Thanks

I am using article document class, that is used for journal publications.


Edit:

As shown in this website, the Title Case I want is:

TitleCase exceptions

Articles, conjunctions, and prepositions less than six letters long are changed to lower case unless they are at the beginning of a sentence. These include:

(01)a (02)abaft (03)about (04)above (05)afore (06)after (07)along (08)amid (09)among (10)an (11)apud (12)as (13)aside (14)at (15)atop (16)below (17)but (18)by (19)circa (20)down (21)for (22)from (23)given (24)in (25)into (26)lest (27)like (28)mid (29)midst (30)minus (31)near (32)next (33)of (34)off (35)on (36)onto (37)out (38)over (39)pace (40)past (41)per (42)plus (43)pro (44)qua (45)round (46)sans (47)save (48)since (49)than (50)thru (51)till (52)times (53)to (54)under (55)until (56)unto (57)up (58)upon (59)via (60)vice (61)with (62)worth (63)the (64)and (65)nor (66)or (67)yet (68)so

6
  • 1
    A minimal working example (MWE) would be helpful here, because the solution might depend on the document class you're using. – jub0bs Apr 10 '14 at 19:29
  • hmm article is what I am using. – Daniel Apr 10 '14 at 19:37
  • 2
    Please be a bit more specific as to which titlecase convention you're looking to emulate. E.g., the Wikipedia entry on case styles lists quite a few possibilities for what might qualify as "titlecase style" and notes that there is no universal agreement as to the capitalization of pronouns, articles, prepositions, conjunctions in Titlecase-style headings. – Mico Apr 10 '14 at 20:35
  • @Mico Well, I don't care! Even if I care, do you really think there is a "clean" method to do it? Like useTitleCaseStyle1 or useTitleCaseStyle2 ...? :) – Daniel Apr 11 '14 at 2:19
  • 1
    @Daniel - I think you may have misunderstood the point of my comment. The issue I was trying to get at is that there appear to be many distinct titlecase styles or conventions. Presumably, some organization or journal requires you to do use titlecase style, right? Unless you provide clarity as to which style you wish to adhere to, there is little point in people trying to come up with their interpretations of what "titlecase" means to them; their interpretations and your needs will coincide only by chance, right? – Mico Apr 11 '14 at 4:46
7

Here is a simple way with sectsty:

\documentclass{article}
\usepackage{sectsty}
\usepackage{titlecaps}
\allsectionsfont{\titlecap}
\begin{document}

\section{This should be title case}

\subsection{This should also be title case}

\end{document}

enter image description here

This will make all sectional headings in title caps. If you want this for only section fonts, use

\sectionfont{\titlecap}
3
  • 3
    The outcome of this approach -- which renders the first letters of the words also and be (along with the first letters of all other words in the scope of the command) in uppercase -- is not what is generally understood to be titlecase style. In "titlecase" style, the first letters of articles, prepositions, conjunctions, and all conjugated forms of the verb to be should, in genral, be rendered in lowercase. – Mico Apr 11 '14 at 8:23
  • ... Is this what called Start Case? – Daniel Apr 11 '14 at 14:01
  • @Mico You are right. I blame it on titlecaps ;) – user11232 Apr 11 '14 at 22:30
10

As mentioned by Werner in his comment, Steven Segletes's titlecaps package provides a macro called \titlecap that capitalises every word of its argument. Simply use that macro in the last mandatory argument of \titleformat from the titlesec package to typeset the heading of interest in title case.

Edit: as Gonzalo Medina remarks, no need for the explicit package option.

enter image description here

\documentclass{article}

\usepackage{titlesec}
\usepackage{titlecaps}

\titleformat{\section}
  {\normalfont\bfseries\Large}
  {\thesection}
  {1em}
  {\titlecap} % <---- leave empty to get the default heading (in article)

\titleformat{\subsection}
  {\normalfont\bfseries\large}
  {\thesubsection}
  {1em}
  {\titlecap} % <---- leave empty to get the default heading (in article)

\begin{document}

\section{this should be title case}

\subsection{this should also be title case}

\end{document}
8
  • 1
    In fact, due to the way LaTeX absorbs arguments, one can load titlesec without the explicit option and use \titleformat{\section} {\normalfont\bfseries\Large} {\thesection} {1em} {\titlecap} \titleformat{\subsection} {\normalfont\bfseries\large} {\thesubsection} {1em} {\titlecap} – Gonzalo Medina Apr 10 '14 at 20:33
  • 1
    Note that "titlecase-style" headings would normally (though not universally) not capitalize the first letter of the word "be" in your section header example. Other words that would normally (but, again, not universally) not be capitalized are conjunctions (and, or), articles (the, a, an), all conjugated forms of the verb "to be", and a few more such cases -- as long as the words contain no more than characters... I've posted a comment in the OP asking for a clarification as to which titlecase-style convention is supposed to be used. – Mico Apr 10 '14 at 20:41
  • 1
    Well, in that case (pun intended), I give up. It's too complicated: you would need to list in advance which words should be capitalised and which shouldn't. Let's just see if the OP is happy enough with my solution... – jub0bs Apr 10 '14 at 20:43
  • 1
    @Jubobs What Mico points out was what I meant, sorry for being unclear, I thought that the rule of always lowercasing prepositions and some other words is well-known. And you're right, it's impossible to achieve. – yo' Apr 10 '14 at 20:53
  • 1
    Not to speak of the French rules, for which only the first name of an enumeration is capitalized, or the epithet of a capitalised noun that is itself capitalised if it is written before the noun, and is in lowercase if written after. – Bernard Apr 10 '14 at 21:17
3

You can use the titlesec and titlecaps packages and use the formatting command:

\titleformat{\section}[hang]{\Large\bfseries}{\thesection}{\titlecap}

The 1st argument after [hang] describes the global formatting of label + section title; the second argument describes commands specific to the labal and the third argument is for commands specific to the section title.

The titlecap command (suggested by @Werner) makes uppercase the first letter of the relevant words of a text. This supposes that rules are specified to determine which words have to be capitalised and which don't. This is done by default for English, and there is a \Addlcwordscommand to add words to the list of words that must be in lowercase. However, it cannot work for languages like French that have less simple rules for capitalising titles,, depending on the structure of a sentence, and not only on a list of words

If you want a small caps title, with uppercase first letter, you can load titlesec with the explicit option, and replace \titlecap with \textsc{\titlecap{#1}}.

4
  • \MakeUppercase does not provide Title Case. Perhaps consider looking into titlecaps. – Werner Apr 10 '14 at 20:08
  • Note That The OP Wants Title Case, not UPPERCASE. – jub0bs Apr 10 '14 at 20:08
  • You could try replacing \MakeUppercase with \capitalisewords provided by mfirstuc. – Nicola Talbot Apr 10 '14 at 20:16
  • Thank you for mentioning the \Addlcwords macro, which helps the OP with designated LC words. – Steven B. Segletes Jul 26 '16 at 10:29

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.