根据纸张大小调整 typeblocksize

根据纸张大小调整 typeblocksize

我正在试图弄清楚如何根据 的比例调整回忆录中的\paperheighttypeblocksize \paperwidth

现在,我已经

\settypeblocksize{*}{\lxvchars}{1.414}

将 调整\textheight为 值的 1.414 倍\lxvchars(根据字体和点大小计算得出)。这对于公制纸张来说很有效,因为公制纸张的高度是宽度的 sqrt(2) 倍。

我想用基于文档类中选择的纸张尺寸的变量表达式来替换它。例如

\settypeblocksize{*}{\lxvchars}{\paperheight / \paperwidth}

但我不知道如何用表达式(内联或在其他地方计算)替换标量 1.414。

有人可以帮忙吗?

答案1

calc包的\ratio命令可能会有所帮助:

\documentclass[10pt,crownvopaper,landscape]{memoir}
\usepackage{lipsum}
\usepackage{calc}
\settypeblocksize{\lxvchars*\ratio{\paperheight}{\paperwidth}}{\lxvchars}{*}
\checkandfixthelayout
\begin{document}
\lipsum
\end{document}

请注意,memoir似乎不喜欢用作\ratio第三个参数。

顺便说一句,我倾向于抵制这样的诱惑:让字体块具有与页面相同的形状(比例)就能获得良好的布局自动地... :)

相关内容