32

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?

7
  • 4
    I'd say it's an exact duplicate of this question, isn't it? Oct 26, 2016 at 9:36
  • Please check this: tex.stackexchange.com/questions/7992/… Oct 26, 2016 at 9:48
  • @ebo All of them? What about \uppercase?
    – cfr
    Oct 30, 2016 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, 2016 at 0:57
  • 1
    See the titlecaps package Dec 11, 2019 at 11:15

2 Answers 2

45

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

12
  • 1
    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. Oct 29, 2016 at 18:08
  • @NicolaTalbot My apologies for not remember this. I will edit the answer accordingly.
    – Fran
    Oct 29, 2016 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, 2016 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, 2016 at 3:22
  • @cfr and jon Thanks, It was a typo for lack of sleep. Fixed.
    – Fran
    Oct 30, 2016 at 5:03
11

you can use \MakeUppercase command,
when you write note={\MakeUppercase accessed:2.3.2019},
the output: Accessed 2.3.2019,
else if you write note={\MakeUppercase {accessed}:2.3.2019},
the output: ACCESSED 2.3.2019,

for example:

@misc{ref5, 
title={Use of Images}, url={https://www.hpl.ca/articles/use-images},
note = {\MakeUppercase  Accessed: 25.10.2019}}
2
  • 4
    The command is \MakeUppercase, not \MakeUpper... Dec 2, 2019 at 22:51
  • 2
    I like this solution because it worked immediately, without importing any further package in my document... May 7, 2020 at 16:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .