亲爱的专家(彼得?):
我仍然在为回忆录的长度而苦恼。我决定我需要了解这里的基本会计恒等式。所以我写了一个简单的表格显示助手 --- 不是很优雅但可行:
%% should require memoir
\usepackage{calc}
\usepackage{lengthconvert}
\newcommand{\topt}[1]{\Convert[unit=pt,precision=1]{#1}}
\newcommand{\tomm}[1]{\Convert[unit=mm,precision=2]{#1}}
\newcommand{\toin}[1]{\Convert[unit=in,precision=3]{#1}}
%% below is very inelegant. this should instead have a definition like
% \newcommand{\allfour}[3][]{#1 & \topt{#2} & \tomm{#2} & \toin{#2} & #3}
%% should also have a column for what is set for and what is calculated by memoir
\newcommand{\tablemylengths}{
\newlength{\fullwidth}
\setlength{\fullwidth}{\trimedge+\marginparwidth+\marginparsep+\textwidth+\spinemargin}
\section{Horizontal Widths (Verso)}
\begin{tabular}{l l l l >{\footnotesize}l}
\toprule
paperwidth & \topt\paperwidth & \tomm\paperwidth & \toin\paperwidth \\
pagewidth & \topt\pagewidth & \tomm\pagewidth & \toin\pagewidth \\
stockwidth & \topt\stockwidth & \tomm\stockwidth & \toin\stockwidth \\
\addlinespace
trimedge & \topt\trimedge & \tomm\trimedge & \toin\trimedge & from stock to paper \\
marginparsep & \topt\marginparsep & \tomm\marginparsep & \toin\marginparsep & between bodytext and marginnote \\
marginparwidth & \topt\marginparwidth & \tomm\marginparwidth & \toin\marginparwidth & marginnote \\
\addlinespace
spinemargin & \topt\spinemargin & \tomm\spinemargin & \toin\spinemargin & from paper to text (body) \\
oddsidemargin & \topt\oddsidemargin & \tomm\oddsidemargin & \toin\oddsidemargin & not used in memoir, but set? \\
evensidemargin & \topt\evensidemargin & \tomm\evensidemargin & \toin\evensidemargin & not used in memoir, but set? \\
\addlinespace
foremargin & \topt\foremargin & \tomm\foremargin & \toin\foremargin & unknown \\
columnsep & \topt\columnsep & \tomm\columnsep & \toin\columnsep & unknown \\
columnseprule & \topt\columnseprule & \tomm\columnseprule & \toin\columnseprule & unknown \\
\midrule
\multicolumn5r{trimedge + marginparwidth + marginparsep + textwidth + spinemargin} \\
fullwidth & \topt\fullwidth & \tomm{\fullwidth} & \toin{\fullwidth} & missing: to paperwidth to stockheight \\
\bottomrule
\end{tabular}
\section{Vertical Heights}
\newlength{\fullheight}
\setlength{\fullheight}{\trimtop+\uppermargin+\textheight+\footskip}
\begin{tabular}{l l l l >{\footnotesize}l}
\toprule
paperheight & \topt\paperheight & \tomm\paperheight & \toin\paperheight \\
pageheight & \topt\pageheight & \tomm\pageheight & \toin\pageheight \\
stockheight & \topt\stockheight & \tomm\stockheight & \toin\stockheight \\
\addlinespace
trimtop & \topt\trimtop & \tomm\trimtop & \toin\trimtop & from stock to paper \\
uppermargin & \topt\uppermargin & \tomm\uppermargin & \toin\uppermargin & overlaps with headheight/headsep \\
topskip & \topt\topskip & \tomm\topskip & \toin\topskip & not sure how used in memoir \\
topmargin & \topt\topmargin & \tomm\topmargin & \toin\topmargin & not used in memoir? \\
% headmargin &\topt\headmargin & \tomm\headmargin & \toin\headmargin & unknown \\
headheight & \topt\headheight & \tomm\headheight & \toin\headheight & header height itself \\
headsep & \topt\headsep & \tomm\headsep & \toin\headsep & from header to bodytext (page\#?) \\
\addlinespace
footskip & \topt\footskip & \tomm\footskip & \toin\footskip & text to footer (page number?) \\
\addlinespace
marginparpush & \topt\marginparpush & \tomm\marginparpush & \toin\marginparpush & between consecutive margin notes \\
\midrule
\multicolumn5r{trimtop + uppermargin + textheight + footskip} \\
fullheight & \topt\fullheight & \tomm{\fullheight} & \toin{\fullheight} & missing: footer to paperheight to stockheight \\
\bottomrule
\end{tabular}
}
并且(根据 Peter 的建议)主要文件如下:
\documentclass[12pt]{memoir}
\usepackage{tablemylengths}
\begin{document}
\tablemylengths
\medskip
See Section~2 of memoir docs. What is set, what is calculated?
\end{document}
在普通回忆录中引用这个
我的第一个问题是,我省略了什么来使我的宽度和高度加到页面的宽度和高度。
我的第二个问题是回忆录希望用户设置什么以及它根据用户值计算出什么。
一旦我理解了这些,我希望能够更好地处理这个问题。(彼得 --- 如果回忆录文档表 2.9 也打印了默认设置,那就更好了……或者如果你有类似我在这里尝试构建的东西。哦,谢谢你为我们制作了这么棒的课程。没有它,我就写不出我的教科书了。)
/iaw
答案1
memoir.cls
请查看(在我的计算机上)的代码/usr/local/texlive/2021/texmf-dist/tex/latex/memoir/memoir.cls)
,查看类 papersize 选项设置的长度以及可以通过用户宏更改的长度。默认值与 LaTeX 类相同book
。
** 开始编辑我尝试提供设置,以便为 33 个类papersize
选项中的每一个提供合理的布局。** 结束编辑
查看手册中的图 2.2 和 2.3,没有关于\fullheight
页脚下方空间的固定说明 --- 这取决于之前的情况,因此它是一个灵活空间。您的定义\fullheight
不正确(它缺少页脚后未定义的空间(这是\paperheight - (\trimtop + \uppermargin +\textheight + \footskip)
关于表 2.9,默认设置取决于类 papersize 选项,其中有 33 个。我认为打印设置的 33 个可能值是没有意义的。
不过,我非常欣赏您提供的用于转换为 pts、mm 和英寸的宏。该代码在包中很有用。