我有一个章节位于书籍类文档的后记部分,我想改变其样式。
更准确地说,我不希望在标题和章节正文开始之前留出同样大面积的空白。
它是一个章节没有名称并用星号标记,以便它不会出现在内容列表中,我的意思是类似于chapter*{}
。
这是一个 MWE:
\documentclass[13pt]{book}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\usepackage{showframe}
\begin{document}
\mainmatter
\chapter{Intro and end}
Nothing to say here.
\backmatter
\chapter{This is a backmatter chapter}
\chapter*{}
\thispagestyle{empty} % I also want pages without page number and so on.
I would like this text to appear at the top of the page, as if it was the second or third page in a chapter.
I do want this to be a different chapter from the previous one.
Any help will be appreciated.
\newpage
\thispagestyle{empty}
---like this text does, actually.
\end{document}
我想这对于这里的很多人来说都很容易,但我不习惯处理\renewcommand
和\setlenght
句子......
答案1
我不太确定我是否理解了你想要什么。我不明白的主要问题是,\chapter*
如果你不想要一个章节,你为什么要使用。\newpage
例如,为什么不直接使用?
我不确定的第二件事是,您是否只想知道如何重新定义所有实例\chapter*
,以便它不会留下这么大的空白,或者您是否想要一个可以执行类似操作的新命令。
我假设您只是想重新定义\chapter*
。如果您想要其他内容,请重新表述您的问题或在下面的评论中澄清。
查看book.cls
命令\chapter*
最终会调用\@schapter
,反过来,这会调用命令\@makeschapterhead
。正是这最后一个命令创建了您不喜欢的额外空间,因此如果您重新定义它,那么空间就会消失。下面这样做,结果您的错误页面变成
为此,您只需复制\@makeschapterhead
from的定义book.cls
并用 注释掉第一行即可\vspace
。这是您的 MWE 的修改版本(但也请参阅下面的注释):
\documentclass[13pt]{book}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\usepackage{showframe}
\makeatletter% you need this because the commands below contain @'s
\def\@makeschapterhead#1{%
%\vspace*{50\p@}% have just commented out this line
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
\begin{document}
\mainmatter
\chapter{Intro and end}
Nothing to say here.
\backmatter
\chapter{This is a backmatter chapter}
\chapter*{}
\thispagestyle{empty} % I also want pages without page number and so on.
I would like this text to appear at the top of the page, as if it was the second or third page in a chapter.
I do want this to be a different chapter from the previous one.
Any help will be appreciated.
\newpage
\thispagestyle{empty}
---like this text does, actually.
\end{document}
即使上述方法“修复”了你的 MWE,但它可能还不足以满足你的要求,因为如果你使用,\chapter*{A title}
仍然会得到一些较大的差距:
原因是宏\vskip 40\p@
末尾的\@makeschapterhead
。如果您需要使用\chapter*
非空标题,则需要调整此 40pt vskip。
最后,如果您不想进行普遍修改,\chapter*
请更清楚地解释您在寻找什么,我会对其进行修改。