我想修改目录,使其中的所有字母都变成大写字母。如何在不改变布局的情况下实现此目的?我的字体没有小写字母,因此我不能简单地使用
{\scshape \tableofcontents}
另外,我发现了以下代码片段,但它只改变了部分内容:
\usepackage{textcase, etoolbox}
\makeatletter
\patchcmd{\l@section}{#1}{\MakeTextUppercase{#1}}{}{}
\makeatother
答案1
对于 ,article
您可以使用tocloft
和etoolbox
将您的节、小节和小小节大写。对于book
环境,您需要替换section->chapter
和cftsecfont->cftchapfont
。
\documentclass{article}
\usepackage{tocloft}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\l@section}
{\cftsecfont #1}
{\cftsecfont {#1}}
{}
{}
\makeatother
\renewcommand\cftsecfont{\bf\MakeUppercase}
\makeatletter
\patchcmd{\l@subsection}
{\cftsubsecfont #1}
{\cftsubsecfont {#1}}
{}
{}
\makeatother
\renewcommand\cftsubsecfont{\small\MakeUppercase}
\makeatletter
\patchcmd{\l@subsubsection}
{\cftsubsubsecfont #1}
{\cftsubsubsecfont {#1}}
{}
{}
\makeatother
\renewcommand\cftsubsubsecfont{\small\MakeUppercase}
\begin{document}
\tableofcontents
\section{First one}
\section{Second one}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}
此外,您还可以使用和\section[UPPERCASED TEXT]{Normal text}
来实现相同的效果。\subsection[]{}
\subsubsection[]{}
希望它能起作用!祝你有个愉快的一天!