Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How can I capitalize all the table names in the Table of Contents, List of Tables? I am not talking about the headings, but the actual entries. E.g., the first entry in the picture is ok, as it is uppercase, while the others are not.

enter image description here

share|improve this question

2 Answers 2

up vote 4 down vote accepted

Use the optional arguments to \caption and/or \section. EDITED to follow egreg's emphatic recommendation.

\documentclass[11pt]{article}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\listoftables
\noindent\hrulefill

\section[\MakeUppercase{this is the first of two sections}]{this is the first of two sections}

\lipsum[4]

\section[\MakeUppercase{blah for blah}]{blah for blah}

\lipsum[3]

\begin{table}[ht]
\centering
\caption[\MakeUppercase{this is the table for this section}]{this is the table for this section}
\begin{tabular}{|c|c|}
\hline
This is & my table\\
\hline
\end{tabular}
\end{table}
\end{document}

enter image description here

Based on a follow-up query by the OP, here is a way to get just the LOT (but not the LOF) to automatically capitalize the table captions:

\documentclass[11pt]{article}
\usepackage{lipsum}
\let\svcaption\caption
\let\svtable\table
\def\table{\tablecaps\svtable}
\def\tablecaps{%
  \renewcommand\caption[2][]{\svcaption[\MakeUppercase{##2}]{##2}}
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\noindent\hrulefill
\section{blah for blah}

\begin{figure}[ht]
\centering
\framebox{My Figure}
\caption{this is the figure caption}
\end{figure}
\begin{table}[ht]
\centering
\caption{this is the table for this section}
\begin{tabular}{|c|c|}
\hline
This is & my table\\
\hline
\end{tabular}
\end{table}
\end{document}

enter image description here

share|improve this answer
    
That works, thank you for your answer, but I would prefer not to modify every single entry in the document. Is that possible? –  Edo Jun 16 at 17:47
    
@Edo In the preamble, \renewcommand\caption[2][]{\svcaption[\uppercase{#2}]{#2}} will ignore any optional argument in \caption (both tables and figures) and use the uppercase equivalent of the 2nd argument as the LOT/LOF entry. Does that suffice? –  Steven B. Segletes Jun 16 at 17:58
    
The command to use is definitely \MakeUppercase, not \uppercase. –  egreg Jun 16 at 18:05
    
@egreg Thanks. Revised, though I'll have to search for the nuanced reason why. –  Steven B. Segletes Jun 16 at 18:09
1  
@StevenB.Segletes Try with \'i in the caption text. –  egreg Jun 16 at 19:45

It's not clear if you want all material in table of contents and list of tables and figures to be uppercase (which is bad style, I'd say).

Here's a set of patches for the article class. If you're using book or report also the chapter title commands should be patched.

\documentclass{article}
\usepackage{etoolbox}
\usepackage{lipsum}

\makeatletter
\patchcmd{\@caption}
  {\ignorespaces #2}
  {\MakeUppercase{\ignorespaces #2}}
  {}{}
\patchcmd{\@sect}{\fi#7}{\fi\MakeUppercase{#7}}{}{}
\patchcmd{\@sect}{\fi#7}{\fi\MakeUppercase{#7}}{}{}
\makeatother

\begin{document}
\tableofcontents
\listoftables

\section{Title}

\subsection{Title}

\lipsum[3]

\begin{table}[ht]
\centering
\caption{This is a table caption}
\begin{tabular}{|c|c|}
\hline
This is & my table\\
\hline
\end{tabular}
\end{table}
\begin{table}[ht]
\centering
\caption[Optional]{This is a table caption}
\begin{tabular}{|c|c|}
\hline
This is & my table\\
\hline
\end{tabular}
\end{table}
\end{document}

enter image description here

share|improve this answer
    
Thanks @egreg, I know this style is very unpleasant, but it is mandatory to have the thesis accepted by a US university. –  Edo Jun 16 at 19:58
    
@Edo Please, let me know if you need also uppercase chapter titles, also telling what document class you're using. –  egreg Jun 16 at 19:59
    
thanks a lot, submitted and accepted. It was a custom class by the university, a real nightmare :) –  Edo Jun 16 at 20:56
    
@Edo You have all my sympathy. ;-) –  egreg Jun 16 at 20:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.