在文档类中,我使用 编辑了章节和小节的编号格式(颜色为灰色和欧拉字体)titlesec
。但是,我不知道如何将相同的样式应用于目录中的标签。
问题是我只希望修改标题上的编号格式,这意味着不能修改\thesection
等\thesubsection
(除非有办法在本地执行此操作,我尝试在 中更改它们\titleformat
,然后在最后一个[...]
参数中将它们改回,但这没有用),但\thecontentslabel
oftitletoc
似乎使用它们的值。有了这个限制,如何将编号格式也应用于目录中的标签?
下面是一个 MWE。(是的,它很丑陋,因为这只是一个“最小”代码演示)
\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{xcolor}
\usepackage{ulem}
\titleformat{\section}
{\centering}
{\textcolor{gray}{\usefont{U}{zeur}{b}{n}\arabic{section}}}{.75em}
{#1}
\titleformat{\subsection}
{\normalfont}
{}{0pt}
{\uline{\textcolor{gray}{\usefont{U}{zeur}{b}{n}\arabic{section}$.$\arabic{subsection}}\nobreakspace\textcolor{gray}{$|$}\nobreakspace #1}}
\titlecontents{section}
[2em] % i.e., 0em (part) + 2em
{\normalfont}
{\contentslabel{1.75em}}
{\hspace*{-1.75em}}
{\titlerule*[1em]{\textcolor{gray!30}{.}}\contentspage}
\titlecontents{subsection}
[4.5em] % i.e., 2em (section) + 2.5em
{\normalfont}
{\contentslabel{2.25em}}
{\hspace*{-2.25em}}
{\titlerule*[1em]{\textcolor{gray!30}{.}}\contentspage}
\begin{document}
\tableofcontents
\section{Test section}
\subsection{Test subsection}
Text in case of empty.
\end{document}
答案1
我不确定这是否是你想要的(“相同风格”有歧义)。
\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{xcolor}
\usepackage{ulem}
\newcommand{\eul}[1]{{\usefont{U}{zeur}{b}{n}#1}}
\ExplSyntaxOn
\NewDocumentCommand{\eulernumber}{m}
{
\seq_set_split:Nnx \l_tmpa_seq { . } { #1 }
\seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq { \eul{##1} }
\textcolor{gray}{\seq_use:Nn \l_tmpb_seq {.}}
}
\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx }
\ExplSyntaxOff
\titleformat{\section}
{\filcenter}
{\eulernumber{\thesection}}
{.75em}
{#1}
\titleformat{\subsection}
{\normalfont}
{}{0pt}
{%
\begin{tabular}[t]{@{}c|l@{}}
\eulernumber{\thesubsection} & #1\\
\hline
\end{tabular}%
}
\titlecontents{section}
[2em] % i.e., 0em (part) + 2em
{\normalfont}
{\eulernumber{\thecontentslabel}\enspace}
{}
{\titlerule*[1em]{\textcolor{gray!30}{.}}\contentspage}
\titlecontents{subsection}
[4.5em] % i.e., 2em (section) + 2.5em
{\normalfont}
{\eulernumber{\thecontentslabel}\enspace}
{}
{\titlerule*[1em]{\textcolor{gray!30}{.}}\contentspage}
\begin{document}
\tableofcontents
\section{Test section}
\subsection{Test subsection}
Text in case of empty.
\end{document}
答案2
我认为这符合你的要求。
% tocfontprob.tex SE 636705
\documentclass{article}
\usepackage{xcolor}
\usepackage{tocloft}
% change the color and font of ToC section numbers
\renewcommand{\cftsecpresnum}{\bgroup \color{gray}{} \usefont{U}{zeur}{b}{n}}
\renewcommand{\cftsecaftersnum}{\egroup}
\begin{document}
\tableofcontents
\section {First section}
\subsection{A subsection}
\section{Second section}
\subsection{Another subsection}
\end{document}
更改颜色和字体以适合您。阅读tocloft
手册了解更多信息。顺便说一句,我不确定tocloft
您使用这些title...
包的效果如何。