我需要更新我组织的样式文件以使其hyperref
兼容。它使用memoir
类并要求所有目录条目都大写:
每带有回忆录和超链接的小写目录以及memoir
课程文档(第 162 页)课堂上没有内置的方法可以做到这一点,但我能够调整 Gonzalo Medina 的答案如何使目录中的章节名称大写?获得以下 MWE。此解决方案适用于我组织的其他样式文件,但仅将顶层 ( section
) 全部大写。
\documentclass{memoir}
\usepackage{textcase}
\usepackage{hyperref}
\renewcommand{\thesection}{\arabic{section}}
\setcounter{tocdepth}{4}
\setcounter{secnumdepth}{4}
\makeatletter
\let\oldcontentsline\contentsline
\def\contentsline#1#2{%
\expandafter\ifx\csname l@#1\endcsname\l@section
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{%
\oldcontentsline{#1}{\MakeTextUppercase{#2}}%
}{%
\oldcontentsline{#1}{#2}%
}%
}
\makeatother
\begin{document}
\tableofcontents
\section{A test section $a=b$}\label{sec:test}
\subsection{A test subsection}\label{sec:test2}
\section{Another test section with a reference:~\ref{sec:test}}
\subsection{A subsection with a reference~\ref{sec:test2}}
\subsubsection{A subsubsection}
\paragraph{A paragraph}
\end{document}
我对代码片段的工作原理了解不够,无法对其进行修改以使其他级别也全部大写。上面的示例一直到paragraph
,这可能是我需要的 ToC 的最多级别,但因为它是我组织的样式文件,所以我想学习如何将其实现到所需的深度级别。有人可以提供任何帮助吗?如果有任何不同,出于其他原因,我们的样式文件需要使用 LuaLaTeX。