章节后垂直对齐文本开头

章节后垂直对齐文本开头

我有一份回忆录文档,希望章节标题后的文本块开头的高度相同。与章节标题长度或节标题无关。

梅威瑟:

\documentclass{memoir}
\begin{document}
\chapter{Chapter with number}
Text starts here

\chapter{Chapter with number and title exceeds one line}
Text starts here

\chapter{Chapter with number and title exceeds one line}
\section{and section below}
Text starts here

\chapter*{Chapter without number}
Text starts here

\end{document}

尝试用图片来说明我的想法: 在此处输入图片描述

也许我应该在某些环境中包装章节和部分。我试过了minipage,但它会破坏章节标题间距。

答案1

使用minipage是一个不错的选择。如果效果不佳,您可以在其中设置段落,将其\parbox[<pos>][<height>]{<width>}{<stuff>}设置<pos>为顶部,固定在\linewidth,然后指定一个<height>可以容纳所有段落的内容。

以下是一个例子:

\documentclass{memoir}

\usepackage{lipsum}

\setlength{\parindent}{0pt}
\newlength{\parboxheight}
\setlength{\parboxheight}{25\baselineskip}

\begin{document}

\parbox[t][\parboxheight]{\linewidth}{%
  \strut
  \chapter{Chapter with number}
  \strut
}

\lipsum[1]

\clearpage

\parbox[t][\parboxheight]{\linewidth}{%
  \strut
  \chapter{Chapter with number and title exceeds one line}
  \strut
}

\lipsum[1]

\clearpage

\parbox[t][\parboxheight]{\linewidth}{%
  \strut
  \chapter{Chapter with number and title exceeds one line}
  \section{and section below}
  \strut
}

\lipsum[1]

\clearpage

\parbox[t][\parboxheight]{\linewidth}{%
  \strut
  \chapter*{Chapter without number}
  \strut
}

\lipsum[1]

\end{document}

答案2

如果您仍然坚持使用memoir课程,那么您可以使用titlesec一个名为的包选项,[rigidchapters]它可以完成您想要的操作。

例子:

\documentclass{memoir}
\usepackage[rigidchapters]{titlesec}

\titleformat{\chapter}[display]{\bfseries\Large\setlength{\parskip}{0 mm}}{Chapter \ \thechapter}{
\dimexpr25mm-\baselineskip}{}[]
\titlespacing{\chapter}{0 mm}{0 mm}{38 mm}
\setlength{\parindent}{0 mm}

\begin{document}
\chapter{Chapter with number}

Text starts here

\chapter{Chapter with number and title exceeds one line}

Text starts here

\chapter{Chapter with number and title exceeds one line}
\section{and section below}

Text starts here

\chapter*{Chapter without number}

Text starts here

\end{document}

注意:\section继承自章节。因此,如果您希望章节包含在间距中,则应该对其进行硬编码。

另一点是:您可以使用另一个类似的类,scrbook它可以给出相同的结果。

\documentclass{scrbook}

\RedeclareSectionCommand[afterskip=35mm]{chapter}

\makeatletter
\renewcommand*{\chapterlinesformat}[3]{%
  \parbox[t][0pt][t]{\linewidth}{\raggedchapter\@hangfrom{#2}{#3}}%
}
\makeatother

\begin{document}
\chapter{Chapter with number}

Text starts here

\chapter{Chapter with number and title exceeds one line}

Text starts here

\chapter{Chapter with number and title exceeds one line}
\section{and section below}

Text starts here

\chapter*{Chapter without number}

Text starts here

\end{document}

相关内容