在回忆录中为侧边栏设置自定义页面文本/线宽

在回忆录中为侧边栏设置自定义页面文本/线宽

我希望使用回忆录包来布局一个页面,使其具有如下尺寸:

  #  <--        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 #|

上述代码运行时将打印textwidth284.0pt 的文本,但实际打印linewidth383.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 上进行了解释

无论如何,在这种情况下,理解

  1. 为什么文本块的大小没有按预期更新;
  2. 为什么在数量上\linewidth有所不同;以及\textwidth
  3. 我们应该怎样设置文本块的适当宽度来容纳这里这种情况的超大侧段落。

答案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` 命令中)

相关内容