各位技术人员大家好,
尝试使用回忆录类排版书籍时,我遇到了一个令人沮丧的问题。我设计了一个不错的章节和标题样式,但我将其分解为以下 MWE:
% !TEX TS-program =xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt,a5paper]{memoir}
\usepackage{lipsum}
\usepackage[ngerman]{babel}
\settypeblocksize{160mm}{100mm}{}
\setulmargins{*}{25mm}{*}
\setlrmargins{25mm}{*}{*}
\setheaderspaces{*}{*}{0.7}
\checkandfixthelayout
\flushbottom
\linespread{1.2}
\setlength{\parskip}{0\baselineskip}
\begin{document}
\chapter{Nice Chapter}
\section*{Good Section}
\lipsum*
\end{document}
现在第一页上多出了一行文本,导致文本块没有正确排列。
(添加红框以强调。)
如何强制第一页与其他页面对齐?我可以调整哪些距离来实现此目的?
删除时,文本块实际上会对齐设置类型块大小命令,但文本块没有正确的尺寸。
期望的输出看起来更像这样:
“好”的例子是通过删除设置类型块大小,但正如您所见,其余布局完全不同(这不是我们所希望的。)
答案1
在您的 MWE 更改中关注 @barbarabeeton
\checkandfixthelayout
到
\checkandfixthelayout[lines]
这将确保文本高度(略微)调整,以使正文字体中的整数行数恰好适合高度。有关此内容的更多信息,请参阅回忆录手册(> texdoc memoir
)。
答案2
在我看来,最好使用memoir
自己的界面而不是\linespread
。
这似乎奏效了
\setSingleSpace{1.2}
\SingleSpace
\settypeblocksize{160mm}{100mm}{}
\setulmargins{*}{25mm}{*}
\setlrmargins{25mm}{*}{*}
\setheaderspaces{*}{*}{0.7}
\checkandfixthelayout
\flushbottom
我也通过添加这些行来验证(绘制文本块)
\pagestyle{showlocs}
\aliaspagestyle{chapter}{showlocs}
然后将 PDF 导入此文档:
\documentclass[a4paper,landscape]{memoir}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,nup=2x1]{imf.pdf}
\end{document}
答案3
您可以添加一些可拉伸性以\baselineskip
允许 TeX 调整以适合页面:
\setlength\baselineskip{\the\baselineskip plus 0.5pt minus 0.5pt}
这将允许线之间的距离\baselineskip
拉伸至0.5pt
或收缩至0.5pt
。我测试过,这些值似乎足够了。
另外,我将的重新定义\baselineskip
放在一个\AtBeginDocument
钩子中,因为它的定义发生在的某个地方\begin{document}
。
% !TEX TS-program =xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[12pt,a5paper]{memoir}
\usepackage{lipsum}
\usepackage[ngerman]{babel}
\settypeblocksize{160mm}{100mm}{}
\setulmargins{*}{25mm}{*}
\setlrmargins{25mm}{*}{*}
\setheaderspaces{*}{*}{0.7}
\checkandfixthelayout
\flushbottom
\linespread{1.2}
\setlength{\parskip}{0\baselineskip}
\AtBeginDocument{%
\setlength\baselineskip{\the\baselineskip plus 0.5pt minus 0.5pt}}
\begin{document}
\chapter{Nice Chapter}
\section*{Good Section}
\lipsum*
\end{document}