我们想要的是前言出现在目录中,但如下面的屏幕截图所示,虽然虚线也与页码一起出现,但章节名称似乎不可见。
当我们尝试使该部分出现在目录中时,我们使用以下几行:
\input{sections/0_Preface}
\addcontentsline{toc}{section}{\hspace*{2.2em}\nameref{sec:preface}} % ---- ADDS PREFACE TO THE TOC
导致这种情况的原因可能是我们同时使用了 titlesec 和 fancyhdr,尽管它们相互冲突。如果我们删除 titlesec 包,则节名称会突然出现在目录中:
当仍然使用 titlesec 和 fancyhdr 时,我们如何使章节名称出现在目录中?我们需要 fancyhdr 用于页眉、页脚等,以及 titlesec 用于更改章节的字体大小。
平均能量损失
\documentclass[11pt, report]{report}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\graphicspath{ {./figures/} }
\usepackage{lastpage}
\usepackage{array}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage[pagestyles]{titlesec} % <------ This here
\titleformat{\section}{\bfseries\LARGE}{\hspace{1ex}\Huge\thesection}{2ex}{} %<--- changes font size of sections
\usepackage{fancyhdr} %<---- Before that there
\usepackage{color}
\usepackage{hyperref}
\usepackage{lastpage,refcount,atbegshi}
\usepackage{lipsum}
\title{Header} % Title
\author {Ahmad Ahmadsen} % Author
\date{\today} % Date
\makeatletter
\let\mytitle\@title
\let\theauthor\@author
\let\thedate\@date
\makeatother
\pagestyle{fancy}
\fancyhf{}
\lhead{\mytitle}
\rfoot{\thepage \space}
\lfoot{University}
\begin{document}
\pagenumbering{Roman}
\input{sections/0_Preface}
\addcontentsline{toc}{section}{\hspace*{2.2em}\nameref{sec:preface}} % ---- ADDS PREFACE TO THE TOC
\cfoot{\thepage \space of \pageref{LastPage}}
\rfoot{}
\lfoot{}
\renewcommand \thesection{\arabic{section}}
\pagenumbering{gobble}
\pagenumbering{arabic}
\vspace*{-20em}\tableofcontents\numberline{}
%\tableofcontents
\thispagestyle{empty}
\clearpage
\setcounter{page}{1}
\setcounter{tocdepth}{3}
\newpage
% Add sections here!
\section{Introduction}
\subsection{Motivation}
\subsection{Research Question}
\newpage
\section{Analysis}
\subsection{analys 1}
\subsection{analys 2}
\subsection{analys 3}
\end{document}
0_前言文件:
\section*{Preface} \label{sec:preface}
\clearpage
答案1
更新:
这似乎是软件包hyperref
(nameref
由 加载hyperref
)和titlesec
(参见https://tex.stackexchange.com/a/397032/113546)。所以我用那里给出的解决方案来解决冲突。
\makeatletter
\newcommand*{\starsection}[1]{%
\section*{#1}%
\NR@gettitle{#1}%
}
\makeatother
然后使用\starsection
而不是\section*
- 删除了该
pagestyles
选项 - 替换
\input{sections/0_Preface}
为
\chapter*{Preface}
\label{sec:preface}
- 已重命名
\thetitle
为\TheTitle
。 - 删除了页脚字段的重新定义。
- 顺便说一句,如果您在 中写入
Preface
而不是,这个问题就会消失。您仍然可以通过添加对宏的调用并使用而不是 来简化操作。请参阅下面的第二个解决方案。\nameref{sec:preface}
\addcontentsline
\addcontentsline
\starsection
#1
\nameref{sec:preface}
\documentclass[11pt, report]{report}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\graphicspath{ {./figures/} }
\usepackage{lastpage}
\usepackage{array}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage{titlesec}
\titleformat{\section}{\bfseries\LARGE}{\hspace{1ex}\Huge\thesection}{2ex}{} %<--- changes font size of sections
\usepackage{fancyhdr}
\usepackage{color}
\usepackage{hyperref}
\usepackage{lastpage,refcount,atbegshi}
\usepackage{lipsum}
\title{Header} % Title
\author {Ahmad Ahmadsen} % Author
\date{\today} % Date
\makeatletter
\newcommand*{\starsection}[1]{%
\section*{#1}%
\NR@gettitle{#1}%
}
\let\TheTitle\@title
\let\TheAuthor\@author
\let\TheDate\@date
\makeatother
\pagestyle{fancy}
\fancyhf{}
\lhead{\TheTitle}
\rfoot{\thepage \space}
\lfoot{University}
\begin{document}
\pagenumbering{Roman}
%\input{sections/0_Preface}
\starsection{Preface}
\label{sec:preface}
\addcontentsline{toc}{section}{\hspace*{2.2em}\nameref{sec:preface}} % ---- ADDS PREFACE TO THE TOC
% \cfoot{\thepage \space of \pageref{LastPage}}
% \rfoot{}
% \lfoot{}
\renewcommand \thesection{\arabic{section}}
\pagenumbering{gobble}
\pagenumbering{arabic}
\vspace*{-20em}\tableofcontents\numberline{}
%\tableofcontents
\thispagestyle{empty}
\clearpage
\setcounter{page}{1}
\setcounter{tocdepth}{3}
\newpage
% Add sections here!
\section{Introduction}
\subsection{Motivation}
\subsection{Research Question}
\newpage
\section{Analysis}
\subsection{analys 1}
\subsection{analys 2}
\subsection{analys 3}
\end{document}
\contentsline
添加了宏的版本\starsection
:
\documentclass[11pt, report]{report}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\graphicspath{ {./figures/} }
\usepackage{lastpage}
\usepackage{array}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage{titlesec}
\titleformat{\section}{\bfseries\LARGE}{\hspace{1ex}\Huge\thesection}{2ex}{} %<--- changes font size of sections
\usepackage{fancyhdr}
\usepackage{color}
\usepackage{hyperref}
\usepackage{lastpage,refcount,atbegshi}
\usepackage{lipsum}
\title{Header} % Title
\author {Ahmad Ahmadsen} % Author
\date{\today} % Date
\makeatletter
\newcommand*{\starsection}[1]{%
\section*{#1}%
\NR@gettitle{#1}%
\addcontentsline{toc}{section}{\hspace*{2.2em}#1}%
}
\let\TheTitle\@title
\let\TheAuthor\@author
\let\TheDate\@date
\makeatother
\pagestyle{fancy}
\fancyhf{}
\lhead{\TheTitle}
\rfoot{\thepage \space}
\lfoot{University}
\begin{document}
\pagenumbering{Roman}
%\input{sections/0_Preface}
\starsection{Preface}
\label{sec:preface}
% \cfoot{\thepage \space of \pageref{LastPage}}
% \rfoot{}
% \lfoot{}
\renewcommand \thesection{\arabic{section}}
\pagenumbering{gobble}
\pagenumbering{arabic}
\vspace*{-20em}\tableofcontents\numberline{}
%\tableofcontents
\thispagestyle{empty}
\clearpage
\setcounter{page}{1}
\setcounter{tocdepth}{3}
\newpage
% Add sections here!
\section{Introduction}
\subsection{Motivation}
\subsection{Research Question}
\newpage
\section{Analysis}
\subsection{analys 1}
\subsection{analys 2}
\subsection{analys 3}
\end{document}