The answer depends on whether or not you use a language package like babel
or polyglossia
.
Without babel
Names like "Figure" and "Contents" are stored in macros like \figurename
and \contentsname
, i.e., to change them, you have to change the definition of the respective macros. Add the following to your preamble:
\renewcommand{\figurename}{Fig.}
\renewcommand{\contentsname}{Table of Contents}
Here's a list of the "name macros" (and their default meaning) defined by the LaTeX standard classes article
, book
, and report
:
\abstractname
[only article
, report
]: Abstract
\appendixname
: Appendix
\bibname
[only book
, report
]: Bibliography
\chaptername
[only book
, report
]: Chapter
\contentsname
: Contents
\figurename
: Figure
\indexname
: Index
\listfigurename
: List of Figures
\listtablename
: List of Tables
\partname
: Part
\refname
[only article
]: References
\tablename
: Table
Other classes and packages may define additional "name macros"; here are some you're likely to come up against (plus their source):
\acronymname
[glossaries
]: Acronyms
\alsoname
[makeidx
]: see also
\ccname
[letter
]: cc
\enclname
[letter
]: encl
\glossaryname
[glossaries
]: Glossary
\headtoname
[letter
]: To
\lstlistingname
[listings
]: Listing (the environment)
\lstlistlistingname
[listings
]: Listings (the "List of")
\nomname
[nomencl
]: Nomenclature
\notesname
[endnotes
]: Notes
\pagename
[letter
]: Page
\prefacename
[babel
]: Preface
\proofname
[amsthm
]: Proof
\seename
[makeidx
]: see (misdefined as "see also" in the AMS classes)
\seeonlyname
[AMS classes]: see
With babel
(or polyglossia
)
The same principles as above apply – with one crucial difference: for every language, "name macros" must be redefined in the argument of \addto\captions<language>
(instead of a simple \renewcommand
). That is, for the English language, you'd have to add the following to your preamble (after loading babel
(or polyglossia
)):
\addto\captionsenglish{%
\renewcommand{\figurename}{Fig.}%
\renewcommand{\contentsname}{Table of Contents}%
}
Changing "Bibliography" and "References" with biblatex
The biblatex
package is an exception to the rule: It uses "bibliography strings" for (among other things) the headings of bibliographies, so redefining \bibname
or \refname
won't work (whether you use babel
or not). To rename both "Bibliography" and "References" to "Works Cited" for the English language, add the following to your preamble:
\DefineBibliographyStrings{english}{%
bibliography = {Works Cited},
references = {Works Cited},
}
Afterword
"Name macros" should only contain the string to be printed. Don't add formatting instructions like \renewcommand{\contentsname}{\vspace{20pt}{\Huge Table of Contents}}
– they may "work" in the document body, but are likely to play havoc with, e.g., headers and bookmarks. To change the formatting of the "Contents" heading, either redefine \tableofcontents
as shown in this answer or, if you want your changes to apply to all sectioning headings, have a look at the titlesec
package. For captions, the caption
package offers a host of customization possibilities.
Add this to your document preamble:
\makeatletter
\g@addto@macto\appendix{\renewcommand{\thefigure}{S\arabic{figure}}}
\makeatother
A MWE:
\documentclass{report}
\makeatletter
\g@addto@macro\appendix{\renewcommand{\thefigure}{S\arabic{figure}}\setcounter{figure}{0}}
\makeatother
\begin{document}
\begin{figure}
\caption{Not in Appendix}
\end{figure}
\appendix
\begin{figure}
\caption{In Appendix}
\end{figure}
\end{document}
Best Answer
First, you have to redefine
\figurename
.Option1: Without using the
babel
package:Option2: With
babel
(and English as language):For other
babel
languages you need to use the proper\captions<language>
command instead of\captionsenglish
in the command above.For changing the separator between label and caption text, I recommend the
caption
package.EDIT: In case anyone wonders how to change the caption name of tables: Redefine
\tablename
.