我正在为我们公司的报告编写一个类。我想提供一个环境overview
,将章节标题设为“概述”,然后将环境中的文本保留在同一页上(尽可能)。
现在,我的课程基本上模仿:
\documentclass[a4paper,11pt,titlepage,headings=big,
chapterprefix=true,headsepline,parskip=half]{scrreprt}
\usepackage[activate={true,nocompatibility},final,tracking=true,kerning=true,
spacing=true,]{microtype}
\usepackage[all]{nowidow}
%\RequirePackage{multicol}
\usepackage{multicol}
\newenvironment{overview}%
{\onecolumn\begin{minipage}{\textwidth}\chapter*{Overview}\begin{multicols}{2}}%
{\end{multicols}\end{minipage}\twocolumn}
\usepackage{lipsum}
\begin{document}
\begin{overview}
\lipsum[1-5]
\end{overview}
\end{document}
但这不是我想要的。 parskips 不正确。在特定情况下,获取外观相当简单
\begin{document}
\chapter*{Overview}
\lipsum[1-5]
\end{document}
但我想将一些将概述内容保存在一页上的机制委托给 LaTeX。
我也尝试过模仿samepage
环境,但我知道这只能使段落保持在同一页面上,这还不够。
我知道没有办法解决概述中的文本过多的问题,但有时 TeX 会决定在下一页上放两行。有没有办法可以让 TeX 不这样做,而是 (a) 稍微减少段落之间的间距或 (b) 减少底部边距?
答案1
官方的说法是您应该始终使用类似 latex 命令而minipage
不是类似底层 TeX 原语\vbox
,但有时......
\documentclass[a4paper,11pt,titlepage,headings=big,
chapterprefix=true,headsepline,parskip=half]{scrreprt}
\usepackage[activate={true,nocompatibility},final,tracking=true,kerning=true,
spacing=true,]{microtype}
\usepackage[all]{nowidow}
\usepackage{multicol}
\newenvironment{overview}%
{\onecolumn\vtop to 0pt\bgroup\chapter*{Overview}\begin{multicols}{2}}%
{\end{multicols}\vss\egroup\hfill\twocolumn}
\usepackage{lipsum}
\begin{document}
\begin{overview}
\lipsum[1-5]
\end{overview}
\end{document}