我希望使用回忆录包来布局一个页面,使其具有如下尺寸:
# <-- 21.6cm (Letter stock) --> #
# Margin | Content | | Note | Margin #
# 2.5cm | <- 10cm --> | | 5.4cm | 2.5cm #
# | ^.6cm | #
不幸的是,我似乎在尝试中忽略了一些东西。以下是我尝试过的一个例子:
\documentclass[oneside,12pt]{memoir}
\usepackage{ragged2e}
\usepackage{lipsum}
\begin{document}
\setlrmarginsandblock{2.53cm}{2.53cm}{*}%
\settypeblocksize{20cm}{10cm}{*}%
\sideparmargin{outer}%
\renewcommand{\sideparfont}{\footnotesize}%
\renewcommand{\sideparform}{\RaggedRight}
\setlength\marginparwidth{5.4cm}%
\setlength\marginparsep{0.6cm}%
\setlength{\parindent}{0pt}% no par indent
\checkandfixthelayout[nearest]%
\sidepar[]{\lipsum[2]}\lipsum[1]
Textwidth: \the\textwidth\newline
Linewidth: \the\linewidth
\end{document}
上面的代码最终看起来像这样:
# Margin | Content | | Note #|
# 2.5cm | <-- 13.5cm --> | | 5.4cm #|
上述代码运行时将打印textwidth
284.0pt 的文本,但实际打印linewidth
383.0pt 的文本。在这种情况下,大约有 28.425pt/cm,因此文本宽度为 10cm,但线宽为 13.47cm。这似乎是当前问题的线索,因为文本看起来(基于目视检查)可疑地大了约 3.5cm。
运行上述程序后,回忆录类将向 LaTeX 日志输出类似以下内容:
库存高度和宽度:794.96999pt x 614.295pt 顶部和边缘饰边:0pt 和 0pt 页面高度和宽度:794.96999pt x 614.295pt 文本高度和宽度:563pt x 284pt 书脊和边缘边距:71.13188pt 和 71.13188pt 上边距和下边距:124.64378pt 和 107.3262pt 头部高度和头部间距:14.5pt 和 19.8738pt 脚步跳跃:30pt Columnsep 和 columnseprule:10pt 和 0pt Marginparsep 和 marginparwidth:17.07182pt 和 170.71652pt Sidecapsep 和 sidecapwidth:7pt 和 50pt Sidebarhsep 和 sidebarwidth:7pt 和 50pt Sidebarvsep 和 sidebartopsep:14.5pt 和 0pt 侧边栏高度:546.64995pt Sidefoothsep 和 sidefootwidth:7pt 和 50pt Sidefootvsep 和 sidefootheight:14.5pt 和 546.64995pt
人们会认为运行\settypeblocksize
会改变文本块的大小,无论是更新textwidth
还是linewidth
其他方式。这与我对这些变量关系的理解一致——在 tex.SE 上进行了解释。
无论如何,在这种情况下,理解
- 为什么文本块的大小没有按预期更新;
- 为什么在数量上
\linewidth
有所不同;以及\textwidth
- 我们应该怎样设置文本块的适当宽度来容纳这里这种情况的超大侧段落。
答案1
这有用吗?
侧面标准杆中的规则只是为了看看它是否激起了过满的禁区。showlocs 用于说明边界。
\documentclass[oneside,12pt]{memoir}
\settypeblocksize{20cm}{10cm}{*}%
\setlrmargins{2.5cm}**
\sideparmargin{outer}%
\setmarginnotes{0.6cm}{5.4cm}{1em}
\checkandfixthelayout[nearest]%
\renewcommand{\sideparfont}{\footnotesize}%
\renewcommand{\sideparform}{\RaggedRight}
\setlength{\parindent}{0pt}% no par indent
\usepackage{ragged2e}
\usepackage{lipsum}
\pagestyle{showlocs}
\begin{document}
\sidepar[]{\rule{5.4cm}{2mm}}\lipsum[1]
Textwidth: \the\textwidth\newline
Linewidth: \the\linewidth
\end{document}
添加:
memoir
几乎可以\newgeometry
独立完成。(假设单列)
\clearpage
% some new layout
\checkandfixthelayout
\makeatletter
\ch@ngetext
\makeatletter
应该是这个技巧。我不知道为什么\ch@ngetext
没有包含在 \checkandfixthelayout . Perhaps I'll add it at some point (it is an internal component of the
\changetext` 命令中)