17

I found there are many commands in LaTex to satisfy all kinds of requirements of font shape. For example, \textsc{...} for Small Capitals and \uppercase{...} for UPPERCASE, etc. See the following picture, which is form Wikibooks. https://en.wikibooks.org/wiki/LaTeX/Fonts

However, I failed to find a command to make first letter upper case, that is to say, to make first letter upper case as First Letter Upper Case does it exist?

  • 3
    I'd say it's an exact duplicate of this question, isn't it? – thewaywewalk Oct 26 '16 at 9:36
  • Please check this: tex.stackexchange.com/questions/7992/… – Ambika Vanchinathan Oct 26 '16 at 9:48
  • @ebo All of them? What about \uppercase? – cfr Oct 30 '16 at 0:56
  • Several of the commands you list are not LaTeX commands at all. They are provided only by certain font support packages. (And isn't \em TeX rather than LaTeX, for example?) – cfr Oct 30 '16 at 0:57
  • Their picture is clearly wrong in several respects e.g. it suggests oblique and italics are the same shape. – cfr Oct 30 '16 at 0:59
26

Yes, using the mfirstuc package.

\documentclass{article}
\usepackage{mfirstuc}
\begin{document}
\capitalisewords{first letter upper case}
\end{document}

Moreover, one can exclude some words (as "a", "an", "the", "at", "by", "for", etc.) to follow capitalization styles with \MFUnocap{word}

\documentclass{article}
\usepackage{mfirstuc}
\MFUnocap{are}
\MFUnocap{or}
\MFUnocap{etc}
\begin{document}
\capitalisewords{first letters are upper case or lower case, etc}.
\end{document}

In this case, the result should be:

First Letters are Upper Case or Lower Case, etc.

However, note that this package use plain spaces to determine what is a word, so if you exclude "case" will work only in the first match, because the second time the word is really "case," (with a comma).

Alternatively, the titlecaps package can perform the same task but with taking care of the punctuation signs:

\documentclass{article}
\usepackage{titlecaps}
\Addlcwords{are or etc}
\begin{document}
\titlecap{first letters are upper case or lower case, etc.}
\end{document}

The output is exactly the same, but note that the final period was inside the capitalized string and "etc" was correctly not capitalized.

Also note that your mileage may vary with both packages if there are text formatting commands inside the text string, that make the capitalization task much more complex. For example, both packages manage well \textit{xxx}, \emph{xxx} fail only with titlecaps, \itshape xxx fail with only mfirstuc but {\itshape xxx} fail in both packages (although not in the same way).

  • It's also possible to exclude words from case-changing with mfirstuc (e.g. \MFUnocap{etc}). The mfirstuc-english package does this for common English words that shouldn't be case-changed, but you can add additional words as required. – Nicola Talbot Oct 29 '16 at 18:08
  • @NicolaTalbot My apologies for not remember this. I will edit the answer accordingly. – Fran Oct 29 '16 at 21:02
  • 1
    Do you mean correctly not capitalized rather than not capitalized correctly? The latter sounds to me like incorrectly not capitalized but isn't etc. correctly not capitalized? – cfr Oct 30 '16 at 0:54
  • +1. But I agree with cfr. I think you mean: '... "etc" was, correctly, not capitalized'. (Note I am off-setting the 'correctly' here only for emphasis: I'd also suggest 'correctly not capitalized'.) – jon Oct 30 '16 at 3:22
  • @cfr and jon Thanks, It was a typo for lack of sleep. Fixed. – Fran Oct 30 '16 at 5:03

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.