使用回忆录更改文档中间的文本块和边距大小

使用回忆录更改文档中间的文本块和边距大小

memoir文档中,我想为后面的内容设置不同的文本块大小和边距,以便为词汇表提供更大的空间。

关于更改页面布局设置,也有类似的问题被问到memoir,尽管如此,我无法得到一致的结果(如果有的话)。我可能在下面的 MWE 中遗漏了一些琐碎的步骤。

\documentclass[11pt]{memoir}

\usepackage{multicol}
\usepackage{calc}

\setstocksize{9in}{6in}
\settrimmedsize{\stockheight}{\stockwidth}{*}
\settrims{0pt}{0pt}
\settypeblocksize{32\baselineskip + \topskip}{*}{0.577}% 1/1.732 (sqrt(3)), Hexagon ratio
\setlrmargins{*}{*}{1.125}% 1/0.889 major 2nd ratio
\setulmargins{*}{*}{1.701}% Tall Pentagon ratio
\setlength{\footskip}{3\baselineskip}
\checkandfixthelayout

\begin{document}

\mainmatter

\chapter{A Message From Mars}

In plain English, at 4 a.m., a ray of light had been observed on the
disc of the planet Mars in or near the "terminator"; that is to
say\ldots

\backmatter

\settypeblocksize{32\baselineskip + \topskip}{110mm}{*}
\setlrmargins{*}{14mm}{*}
\checkandfixthelayout

\chapter{Glossary}

``Some ten times round the world. Well, is that tremendous vacuum
absolutely impassable?''

\begin{multicols}{2}

\begin{description}
  \item[The next] evening promised well, and I kept my appointment, but unfortunately a slight haze
  \item[gathered] in the sky and prevented us from making further observations.
  \item[While] hoping in vain for it to clear away, Professor Gazen and I talked
\end{description}

\end{multicols}

\end{document}

日志打印新的页面尺寸:

...
Text height and width: 446.2002pt by 257pt
Spine and edge margins: 82.88574pt and 93.2786pt
...
Text height and width: 446.2002pt by 312pt
Spine and edge margins: 80.80585pt and 39.83385pt
...

但不知何故,这并没有发生:

在此处输入图片描述

答案1

在之后添加此内容(在更改布局之前\checkandfixthelayout添加也可能是个好主意)\clearpage

\setlength{\vsize}{\textheight}
\setlength{\columnwidth}{\textwidth}%
\setlength{\hsize}{\columnwidth}%
\setlength{\linewidth}{\hsize}

它取自geometry.sty

编辑:

\makeatletter
\ch@ngetext
\makeatother

应该做同样的事情。不太清楚为什么没有将其添加到\checkandfix...

答案2

以下是@daleif 解决方案的 MWE:

\documentclass[b5paper]{memoir}

% Set some custom paper size and layout
\setstocksize{240mm}{170mm}
\settrimmedsize{240mm}{170mm}{*}
\medievalpage[9]
\checkandfixthelayout

\usepackage{lipsum} % dummy text


\begin{document}
% Reset the margins to be symmetric
\setlrmarginsandblock{2cm}{2cm}{*}
\setulmarginsandblock{2cm}{2cm}{*}
\checkandfixthelayout

% Magic happens here. Comment this to get non-symmetric margins
\makeatletter
\ch@ngetext
\makeatletter
\clearpage

% Now center something on the page. 
% Vertical centering is still somewhat off?
\vspace*{\fill}
\begin{center}
{\Huge + }
\end{center}
\vspace*{\fill}
\clearpage

\lipsum
\lipsum

\end{document}

为了恢复这一点,似乎下面的方法可行(虽然我不知道为什么),\ch@ngetext似乎是一个切换:

\medievalpage[9]
\checkandfixthelayout
\makeatletter
\ch@ngetext
\makeatletter
\clearpage
\cleardoublepage

答案3

谢谢@daleif!这也让我抓狂。尽管搜索了多次,但直到我花了相当多的时间输入自己的问题后,这个问题才出现。如果有其他更新,我认为这绝对应该出现\checkandfixthelayout

我需要这个,因为我的章节有大量的边距注释,所以它们需要很大的外边距,但是诸如目录、标题页等内容不应该有这么大的边距。

我猜测第二个\makeatletter实际上应该是\makeatother,在大多数其他情况下也是如此。

当我尝试将该代码插入宏时,它会中断;似乎您无法放入\makeatletter宏。这对我有用:

\makeatletter

\newcommand{\textmargins}{
    \clearpage
    \setlrmarginsandblock{2cm}{7.6cm}{*}
    \setmarginnotes{1cm}{4.6cm}{1cm}
    \checkandfixthelayout
    \ch@ngetext
    \pagestyle{textRuled}
}

\newcommand{\evenmargins}{
    \clearpage
    \setlrmarginsandblock{3.4cm}{5.2cm}{*}
    \setmarginnotes{1cm}{1cm}{1cm}
    \checkandfixthelayout
    \ch@ngetext
    \pagestyle{Ruled}
}

\makeatother

相关内容