免责声明:基本上这些代码都不是我的原创;我从网上的各个地方获取了这些代码(例如,好看的 TOC 来自这个答案。
我的问题:我的文档中没有显示章节编号。我很确定这是一个非常简单的修复方法,但我找不到它!(我确实检查了 titlesec 包文档,但没有成功。)
代码:
\documentclass{article}
\usepackage{array}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage[T1]{fontenc}
\usepackage[left=20mm, right=20mm,top=15mm,bottom=15mm,includehead=true,headsep=3pt]{geometry}
\usepackage{etoolbox}
\usetikzlibrary{calc}
\usepackage{enumitem}
\usepackage{scalerel}
\usepackage{titlesec}
\usepackage[pdfview=FitB,hidelinks]{hyperref}
%Format the section titles/headings
\newcommand{\colorsection}[1]{%
\colorbox{blue!20}{\parbox{\dimexpr\textwidth}{#1}}}
\titleformat{name=\section}[hang]
{\Large}
{}
{0pt}
{\colorsection}
\titlespacing{\section}{-5mm}{10mm}{\baselineskip}
%change how the TOC appears
\makeatletter
\patchcmd{\l@section}{\begingroup}{\begingroup\hacknumberline}{}{}
\newcommand\hacknumberline{\let\numberline\my@numberline}
\def\my@numberline #1%
{\vbox{\hbox{\kern-\fboxsep
\color{blue!20}%
\rlap{\rule{\dimexpr\linewidth+\fboxsep}{1pt}}%
\kern\fboxsep
}%
\nointerlineskip
\hb@xt@ \@tempdima
{\kern-\fboxsep\colorbox{blue!20}{\color{black}#1.}% I added a dot here
\hfil}%
}%
}
\makeatother
\makeatletter
\renewcommand{\tableofcontents}{\@starttoc{toc}}
\makeatother
\title{MyTOC}
\date{}
\begin{document}
\fontfamily{bch}\selectfont
\maketitle
\tableofcontents
\clearpage
\section{Section 1}
This is Section 1
\subsection{Subsection 1}
Hello
\end{document}
答案1
根据包的文档titlesec
,您的命令\colorsection
仅获取该部分的标题作为参数,因此您必须自己处理编号。下面,我添加了\arabic{section}\quad
;根据需要对其进行修改。
\newcommand{\colorsection}[1]{%
\colorbox{blue!20}{\parbox{\dimexpr\textwidth}{\arabic{section}\quad#1}}}