将默认章节符号改为讲座后,如何将其放入目录?我只得到主要章节编号。但我希望我的目录看起来像这样,
讲座 1
1.1 简介...........3
讲座 2
2.2 GrahQL...............5
我在下面附加了一个 MWE。
\documentclass[12pt,a4paper]{book}
\begin{document}
\tableofcontents
\makeatletter
\renewcommand{\@chapapp}{Lecture}
\makeatother
\chapter{}
\section{Introduction}
\chapter{}
\section{GraphQL}
\end{document}
非常感谢您的帮助。
答案1
使用该tocloft
包。
% lecturetocprob.tex SE 569160
\documentclass[12pt,a4paper]{book}
\usepackage{tocloft}
\addtolength{\cftchapnumwidth}{4em} % more space for number + Lecture
\renewcommand{\cftchappresnum}{Lecture }
\begin{document}
\tableofcontents
\makeatletter
\renewcommand{\@chapapp}{Lecture}
\makeatother
\chapter{}
\section{Introduction}
\chapter{}
\section{GraphQL}
\appendix
\chapter{In appendix}
\end{document}
我已经扩展了您的 MWE 以包含附录,只是为了检查这是否可以,即使您可能没有任何附录。
答案2
您可以修补\@chapter
它,以便发布\chapternumberline
而不是\numberline
:然后我们可以定义\chapternumberline
做我们喜欢的事情。
\documentclass[12pt,a4paper]{book}
\usepackage{etoolbox}
%\usepackage{hyperref}
\renewcommand{\chaptername}{Lecture}
\makeatletter
\@ifpackageloaded{hyperref}
{\patchcmd{\Hy@org@chapter}}
{\patchcmd{\@chapter}}
{\numberline}{\chapternumberline}{}{}
\newcommand{\chapternumberline}[1]{\chaptername\ #1}
\makeatother
\begin{document}
\tableofcontents
\chapter{}
\section{Introduction}
\chapter{}
\section{GraphQL}
\end{document}
我制作的补丁可以解决已hyperref
加载或未加载的情况。
请注意,重新定义的正确命令是\chaptername
而不是\@chapapp
。
这是使用时的图片hyperref
,显示整个条目是一个链接。
答案3
也许这会有效:
\documentclass[12pt,a4paper]{book}
\usepackage{titletoc}
\titlecontents*{chapter}[0pt]{}
{\bfseries\phantomsection\hyperlink{chapter.\thecontentslabel}{Lecture~\thecontentslabel}}{}
{\hfill\bfseries\contentspage}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\makeatletter
\renewcommand{\@chapapp}{Lecture}
\makeatother
\chapter{}
\section{Introduction}
\chapter{}
\section{GraphQL}
\end{document}