![titletoc:如何使目录中的编号格式与章节标题的编号格式相匹配?](https://linux22.com/image/447168/titletoc%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BD%BF%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E7%BC%96%E5%8F%B7%E6%A0%BC%E5%BC%8F%E4%B8%8E%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E7%9A%84%E7%BC%96%E5%8F%B7%E6%A0%BC%E5%BC%8F%E7%9B%B8%E5%8C%B9%E9%85%8D%EF%BC%9F.png)
在文档类中,我使用 编辑了章节和小节的编号格式(颜色为灰色和欧拉字体)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...
包的效果如何。