[Tex/LaTex] command to make first letter upper case

fonts

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?

Best Answer

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).