回忆录:目录中的缩进 \mainmatter 和多个新命令指令/参数

回忆录:目录中的缩进 \mainmatter 和多个新命令指令/参数

我有两个问题与memoir目录有些相关,因为对我来说,它们都涉及同一件事,我希望将它们归为一组是可以的,如果将来我应该分别提问,请告诉我,我会这样做。

首先:我只想缩进简短目录中的 \mainmatter 条目,但无法使用 来做到这一点,因为\cftsetindents当我使用 时它会缩进所有条目\cftsetindents{chapter},有没有办法区分目录中\frontmatter\mainmatter和条目?\appendix

\documentclass[oneside]{memoir}

% Creating short table of contents (Comes before main TOC in my actual file)
\newcommand*{\setupshorttoc}{%
    \renewcommand*{\contentsname}{Short Contents}       % Title of the contents
    \renewcommand*{\changetocdepth}[1]{}            % Changes toc depth
    \setcounter{tocdepth}{0}                        % Chapters and above
    \cftsetindents{chapter}{1.5em}{3.0em} % Indents front matter, main matter and appendices
    }

\begin{document}

\frontmatter
\tableofcontents*
\newpage
\setupshorttoc
\tableofcontents*
\newpage
\listoffigures

\mainmatter
\chapter{Introduction}
\section{Research Aims}

\appendix
\chapter{Research}
\end{document}

第二:我尝试制作页面内容{empty}并在页码上方添加“页面”,但当我单独发出参数时,它们自然会覆盖先出现的参数。我确信这是基本的,与此无关,memoir但一旦我知道如何在同一命令中对参数进行分组,那么从这一点开始我就知道了。例如:

\documentclass{memoir}
\usepackage{blindtext}

% Trying to combine commands is leading to unexpected output such as increased lengths in between `Page' and numbers
\newcommand*{\setuptoc}{%
    \renewcommand*{\aftertoctitle}{%
        \par\nobreak \mbox{}\hfill{\normalsize\bfseries Page}\par\nobreak%
         \thispagestyle{empty}\afterchaptertitle} % Instruction
    }

\begin{document}
\frontmatter
\setuptoc
\tableofcontents
\mainmatter
\chapter{Introduction}
\section{Research Aims}
\Blindtext[1]
\end{document}

这实现了我想要的,空白的页面样式和页码上方的页面,但导致了这样的空白:

在此处输入图片描述

\newcommand在同一个或中拥有多个参数/指令的正确方法是什么\renewcommand

答案1

对于第一个问题,我不知道您所提问题的答案。长目录和短目录都将从文档.toc文件中获取输入,因此文件中的内容.toc将用作两个目录的来源。

您可以\addtocontents{toc}{<stuff>}在之后使用\frontmattermainmatterbackamatter更改 ToC 输出,但这将适用于您的长 ToC 和短 ToC。

关于你的第二个问题,你需要改变代码的顺序\renewcommand*{\aftertoctitle}{%

% memtocs2prob.tex  SE 603431 (second question)

\documentclass{memoir}
\usepackage{blindtext}

% Trying to combine commands is leading to unexpected output such as increased lengths in between `Page' and numbers
\newcommand*{\setuptoc}{%
    \renewcommand*{\aftertoctitle}{%
          \thispagestyle{empty}%\afterchaptertitle} % Instruction
       \par\nobreak \mbox{}\hfill{\normalsize\bfseries Page}\par\nobreak%
%         \thispagestyle{empty}\afterchaptertitle} % Instruction
    }}

\begin{document}
\frontmatter
\setuptoc
\tableofcontents
\mainmatter
\chapter{Introduction}
\section{Research Aims}
\Blindtext[1]
\end{document}

在此处输入图片描述

答案2

设法解决了如何区分短目录中的不同\mainmatter条目,以便仅缩进一种类型。来自 daleif\appendixmemoir不久以前,在条目前添加“附录”的命令如下:

\renewcommand\cftappendixname{\appendixname~}

可以通过添加\hspace{}或类似内容进行修改。经过手动反复试验找到最佳对齐的厘米长度后,给出了一个示例:

\documentclass[oneside]{memoir}

% Preamble to set up the short table of contents
\newcommand*{\setupshorttoc}{%
    \renewcommand*{\contentsname}{Short Contents}   % Title of the contents
    \let\oldchangetocdepth\changetocdepth           % Defining oldchangetocdepth to be the default definition
    \renewcommand*{\changetocdepth}[1]{}            % Changes toc depth
    \setcounter{tocdepth}{0}                        % Chapters and above
    \renewcommand*{\cftchapterfont}{\normalsize}    % Changes font, spacing of the list on the left
    \renewcommand*{\cftchapterdotsep}{\cftdotsep}   % Chapters include dots in short contents
    \renewcommand*{\cftchapterleader}{%
        \sffamily\cftdotfill{\cftchapterdotsep}}    % Font and format of leader between page numbers and content
    \renewcommand*\cftappendixname{\appendixname~}  % Adds `Appendix' before appendix letter
    \setpnumwidth{2.55em}                           % Changes page number width to standard 2.55em
    \renewcommand*{\cftchapteraftersnum}{.}         % Added dots after ch. names, applied globally so may affect lists
    \renewcommand*{\cftchapterformatpnum}[1]{%
        \hbox {\hfil{\cftchapterfont ##1}}}         % Sets page number font
        
    % Change either \hspace to something else or change the dimensions %
    \renewcommand*\cftchaptername{%
        \hspace{0.245cm}\chaptername~}
        
%   % The below equally works as above
%   \renewcommand*\cftchaptername{%
%       \hspace{0.245cm}Chapter }       
    }

%
%\newcommand*{\setupmaintoc}{%
%   % Instructions here for reverting back from short TOC to long TOC
%   }

\begin{document}
\frontmatter
\setupshorttoc
\tableofcontents*
\newpage
\listoftables
\newpage
\listoffigures
\newpage

\mainmatter
\chapter{One}
\section{Aims}
\chapter{Two}
\section{Research}
\chapter{One}
\section{Aims}
\chapter{Two}
\section{Research}

\appendix
\chapter{One}
\section{Aims}
\chapter{Two}
\section{Research}
\chapter{One}
\section{Aims}
\chapter{Two}
\section{Research}

\end{document}

然后,只需按需要缩进章节标题,如果需要,还可以更改为附录。我希望章节稍微缩进一点,这样它们就突出来了,反正一整页的直线内容对我来说看起来不太好看。

如果有人能做出改进,尤其是如何自动对齐不同类型之间的相邻章节标题(如下图所示:第 4 章 - 附录 A),那就太好了。希望这能在未来对某些人有所帮助。

在此处输入图片描述

相关内容