如何将目录、表格列表中的所有表格名称都大写?我说的不是标题,而是实际条目。例如,图片中的第一个条目是可以的,因为它是大写的,而其他条目不是。
答案1
使用可选参数和\caption
/或\section
。已编辑以遵循egreg的强调建议。
\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}
根据 OP 的后续查询,这里有一种方法可以让 LOT(而不是 LOF)自动将表格标题大写:
\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}
答案2
目前尚不清楚您是否希望目录和表格及图表列表中的所有材料都采用大写形式(我认为这是不好的风格)。
这是一组针对该类的补丁article
。如果您正在使用book
或,report
也应该修补章节标题命令。
\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}