我是 LaTeX 新手,已经遇到了第一个问题。我想将目录中的所有章节标题都改为小写,但是不是在文中。
我正在使用 WriteLaTeX 和article
作为文档类。
我的文档结构如下
\documentclass{article}
\begin{document}
\tableofcontents
\newpage
\section{Section 1}
\subsection{Section 1.1}
\subsection{Section 1.2}
\newpage
\section{Section 2}
\newpage
\section{Section 3}
\end{document}
答案1
最优解决方案
加载tocloft
包并将\renewcommand{\cftsecfont}{\scshape}
其放在前导码后面。MWE:
\documentclass[11pt]{article}
\usepackage{tocloft}
\renewcommand{\cftsecfont}{\scshape}
\begin{document}
\title{My document}
\maketitle
\tableofcontents
\section{first section}
bla
\subsection{a subsection}
bla
\section{second section}
bla
\end{document}
这只会改变目录,而不会改变标题。
低于标准的解决方案
如果由于某种原因你无法加载 tocloft,这是有史以来最丑陋的黑客攻击:
% make your sections using \newsection{title}
\newcommand{\newsection}[1]{
\stepcounter{section}
\section*{\arabic{section}. #1}
\addcontentsline{toc}{section}{\scshape \arabic{section}. #1}
}
答案2
仅供比较,以下是使用titletoc
包中,重要的部分是
\titlecontents{section}
[0pt] % left margin
{}%
{\contentsmargin{0pt} % numbered entry format
\thecontentslabel\enspace%
\large\scshape}
{\contentsmargin{0pt}\large} % unnumbered entry format
{\titlerule*[.5pc]{.}\contentspage} % filler-page format (e.g dots)
[] % below code (e.g vertical space)
我加载了hyperref
包仅用于演示。
这是一个完整的 MWE,可供使用。
% arara: pdflatex
\documentclass{article}
\usepackage{titletoc}
\usepackage{hyperref}
\titlecontents{section}
[0pt] % left margin
{}%
{\contentsmargin{0pt} % numbered entry format
\thecontentslabel\enspace%
\large\scshape}
{\contentsmargin{0pt}\large} % unnumbered entry format
{\titlerule*[.5pc]{.}\contentspage} % filler-page format (e.g dots)
[] % below code (e.g vertical space)
\begin{document}
\tableofcontents
\loop
\section{Section text}
\ifnum\value{section}<5\repeat
\end{document}
答案3
以下代码将把所有部分标题更改为小写字体:
\documentclass{article}
\usepackage[T1]{fontenc}
\makeatletter
\renewcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{1.0em \@plus\p@}%
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
\scshape #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
\makeatother
\begin{document}
\tableofcontents
\newpage
\section{Section 1}
\subsection{Section 1.1}
\subsection{Section 1.2}
\newpage
\section{Section 2}
\newpage
\section{Section 3}
\end{document}
重新定义命令l@section
,将所有部分改为小写。fontenc
用于使目录中出现粗体小写字母。