我的目录存在问题:第一章标题的外观是
CHAPTER ONE
INTRODUCTION
使用以下代码生成
\newcommand{\mychapter}[2]{
\setcounter{chapter}{#1}
\setcounter{section}{0}
\chapter*{#2}
\addcontentsline{toc}{chapter}{#2}
}
\usepackage{indentfirst} % to make indent from first paragraph
\begin{document}
\titlespacing*{\chapter}{10pt}{0pt}{10pt}
\titleformat{\chapter}[display]
{\centering\normalfont\large\bfseries}{ \chaptertitlename\ \thechapter}{40pt}{\large}
\tableofcontents
\mychapter{1}{CHAPTER ONE\\INTRODUCTION}`
\end {document}
但是,在目录中“第一章”和“简介”并没有出现在一行中:
因此,问题是:我怎样才能将“第一章”和“简介”放在一线?
答案1
标题元素最终分为两行,因为你告诉它们分为两行(ie\\
负责这一点)。问题是你的\mychapter
宏缺乏 LaTeX 标准命令所具有的某些功能:
通常在 LaTeX 中,分段命令有一个可选参数,该参数接受将写入目录的标题。如果未指定,则强制参数中给出的标题将写入目录。(这就是 @AndrewSwann 在他的评论中试图向您解释的内容。)
虽然我不清楚您如何从定义宏中获益\mychapter
,但您可以通过以下方式添加上面描述的功能:
\newcommand{\mychapter}[3][]{%
\setcounter{chapter}{#3}
\setcounter{section}{0}
\chapter*{#2}
\if\relax\detokenize{#1}\relax
\addcontentsline{toc}{chapter}{#2}
\else
\addcontentsline{toc}{chapter}{#1}
\fi
}
请注意,我稍微改变了你的参数设计。你现在可以像这样使用你的宏\mychapter[CHAPTER ONE INTRODUCTION]{CHAPTER ONE\\INTRODUCTION}{1}
——总结一下:一般来说,概要是
\mychapter[<ToC heading>]{<body heading>}{<chapter number>}
如果没有给出可选参数,则<body heading>
等于。<ToC heading>