我正在为一款游戏写一份文档,其中有多个角色描述,包括肖像图片。我正在尝试排版,但在防止分页符出现在奇怪的地方方面遇到了一些问题。考虑一下这个 MWE:
\documentclass[11pt]{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{placeins}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{wrapfig}
\setlength\parskip{3pt}
\makeatletter
\newcommand\person[6][black]{
\vspace{1em plus 5cm}
\FloatBarrier
\filbreak
\begin{samepage}
\noindent\begingroup\small\textbf{\large #2}\\#3 (#4) -- #5\endgroup\par
\noindent\textit{#6}\par
\end{samepage}
\nopagebreak
\begin{wrapfigure}{R}{3cm}
\begingroup
\color{#1}\rule{3cm}{3cm}
\endgroup
\end{wrapfigure}%
\nopagebreak
\@afterindentfalse%
\@afterheading%
}
\makeatother
\begin{document}
\lipsum[1-4]
\person[red]{Name}{Occupation}{Employed by}{Role}{Short description}
\lipsum[1]
\person[green]{Name}{Occupation}{Employed by}{Role}{Short description}
\lipsum[1]
\person[blue]{Name}{Occupation}{Employed by}{Role}{Short description}
\lipsum[1]
\person[yellow]{Name}{Occupation}{Employed by}{Role}{Short description}
\lipsum[1]
\end{document}
如您所见,我(或多或少盲目地)添加了诸如 、 和 之类的内容,\filbreak
以便在samepage
我不喜欢的地方隐藏分页符,并在我喜欢的地方鼓励分页符。然而,结果仍然包含一个非常奇怪的分页符:\nopagebreak
\@afterheading
我希望指示 LaTeX 不惜一切代价防止字符描述的“页眉”和“正文”之间出现分页符,即使这意味着在页面底部留下四分之一的空白或在各部分之间增加过多的拉伸。
不过,我确实希望允许 LaTeX 在段落文本内断行,只要它不与 的位置冲突wrapfig
,因为有些文本足够长,可以做到这一点。
有什么建议么?