首先:我在这里阅读了许多可能的解决方案,但似乎没有一个对我有用。我想将一本书的最后一章重命名为目录中的“结语”,并用于所有类似目的,并且有一个“真实”的名字。所以我现在有的是:
章节标题:
尾声中的页面顶部:
目录:
我想要的是这个:
到目前为止,我尝试过在最后一个命令前面放置不同的命令\chapter{}
,但通常只会改变一部分,并且从未对目录起作用,所以我认为这个技巧可能在目录的定义中。编辑:这是我在合理的时间内通过检查注释掉某些内容时是否发生故障而制作出的最小示例,因为我还不了解大多数高级命令。
附加问题:是否可以轻松进行某些更改,以使奇数边距和偶数边距不同,从而更适合打印?
\documentclass[12pt,extrafontsizes,twoside,openright,final]{memoir}
\begin{document}
\tableofcontents*
\chapter{Once upon a time}
there was a princess (more text here, so that it is actually
at least 3 pages)
\fixepilogue
\chapter{Epilogue: Ending}
then she died (more text here, so that it is actually at
least 3 pages)
\end{document}
答案1
好的,我修剪了您的 MWE,事实上,它既精简(没有多余的字体信息、格式等),又可以正常工作(编译时没有错误)。我不会复制您的格式;但这里的原则是有效的。
看来,对于目录,您希望用“Epilogue”一词替换章节编号(您以文字形式提供);下面的代码将实现这一点。它还将“Epilogue”一词和尾声名称放在标题中,尽管它不会像您的标题那样格式化标题。(您可能需要切换参数才能使其适合您\markboth
;我没有注意您想要在哪里。)
\documentclass[12pt,extrafontsizes,twoside,openright,final]{memoir}
\usepackage{lipsum}
\begin{document}
\tableofcontents*
\chapter{Once upon a time}
there was a princess (more text here, so that it is actually
at least 3 pages)
\renewcommand{\chaptername}{Epilogue}
\renewcommand{\thechapter}{Epilogue}
\makeatletter
\renewcommand{\@makechapterhead}[1]{%
\markboth{Epilogue}{#1}%
\vspace*{10pt}%
\begin{center}%
\LARGE%
\chaptername%
\vskip1em%
\leavevmode#1%
\end{center}%
\vspace*{10\p@}%
}%
\makeatother
\chapter{Ending}
then she died (more text here, so that it is actually at
least 3 pages)\lipsum\lipsum
\end{document}
此代码的作用是,在结尾之前,将其重新定义\chaptername
为“Epilogue”(这使其打印“Epilogue”而不是“Chapter”),并将章节号重新定义为“Epilogue”(这使其打印“Epilogue”而不是目录中的章节号)。但是,这并不影响章节号本身,其内部仍保持不变。
然后,它会重新定义 LaTeX 的内部命令\@makechapterhead
,其方式应该非常透明。您可以修复此问题,以将其格式化为您想要的任何格式。不过,以下是此代码为您提供的内容:
我认为这就是您要寻找的内容的大致轮廓。希望对您有所帮助。
答案2
基本上你所要做的就是
\renewcommand{\chaptername}{\ignorespaces}
\renewcommand{\thechapter}{Epilogue}
\chapter{Ending}
因为这是文档中的最后一章。尽管没有必要,但章节计数器仍会递增。
答案3
对我来说解决方案是
\renewcommand{\chaptername}{\ignorespaces}
\renewcommand{\thechapter}{Epilogue}
\chapter{}
而我避免了叠加。