如何在 kaobook 包中设置 A4 以外的纸张尺寸?

如何在 kaobook 包中设置 A4 以外的纸张尺寸?

看起来应该很容易,看看这个kao.sty文件是如何附带的......

% Set the default page layout
\RequirePackage[
    a4paper,
    bottom=27.4mm,
    inner=24.8mm,
    textwidth=107mm,
    marginparsep=8.2mm,
    marginparwidth=49.4mm,
    includemp
]{geometry}

...但如果我将其更改a4paperc5paper(这正是我感兴趣的),整个页面几何形状不会相应缩放,因此大多数边距注释都会被截断,因为页面现在太小而无法容纳它们。更改此处列出的任何边距似乎也有没有任何效果,除了随机放错原始未修改模板的某些章节中已经存在的部分边注。

我做错什么了吗?我甚至不想以这种方式更改纸张尺寸——我希望有一个选项可以根据新尺寸自动放大或缩小所有内容(有点像twoside=truetwoside=false,只需修改 main.tex 文件中的一个单词即可更改);但我在任何地方都找不到这样的东西,所以我不得不手动完成……而且它不起作用。

答案1

更新

模板的最新版本支持类选项来更改纸张大小。例如,要使用 B5 格式,请使用“b5paper”选项加载类,如下所示:\documentclass[b5paper]{kaobook}

原始答案

除了纸张尺寸之外,您还应该更改bottominnertextwidthmarginparsepmarginparwidth。此外,您不仅应该在\RequirePackage块中更改它们,还\newgeometry应该在 中找到的每个后续命令中更改它们kao.sty

构建页面布局有几个或多或少启发式的规则(例如,参见http://ctan.mirror.garr.it/mirrors/CTAN/macros/latex/contrib/koma-script/doc/scrguien.pdf),其中一些已经使用了几个世纪。然而,在 kaobook 中,作者没有使用任何算法规则,而是手动调整数字,直到找到他喜欢的布局。因此,对于其他纸张尺寸,也应重复相同的过程。

最简单的方法可能是保持原始布局的比例。例如,A4 纸为 210x297mm,而 C5 纸为 162x229mm;这意味着,为了保持相同的比例从 A4 转换为 C5,垂直尺寸应按 229:297(= 约 0.7710)的比例缩放,而水平尺寸应按 162:210(= 约 0.7714)的比例缩放。因此,在实践中,如果将每个原始长度乘以 0.771,您应该会得到一个相当不错的布局。我不知道使用这种方法的结果是否总是美观,但至少边距不会被切断。

如果您从 GitHub 下载最新版本的模板(https://github.com/fmarotta/kaobook/),您会发现我定义了两个长度,即\hpll\vpll,它们应该代表页面的比例;默认情况下,它们都是 1 毫米,适用于 A4 纸;我引入它们只是为了避免逐个更改所有数字,而只需更改水平(hpll)和垂直(vpll)比例即可。例如,在您的例子中,您必须更改此

\setlength{\hpll}{1mm}
\setlength{\vpll}{1mm}

% Set the default page layout
\RequirePackage[
    a4paper,
    top=\vpll*\real{27.4},
    bottom=\vpll*\real{27.4},
    inner=\hpll*\real{24.8},
    textwidth=\hpll*\real{107},
    marginparsep=\hpll*\real{8.2},
    marginparwidth=\hpll*\real{49.4},
    includemp
]{geometry}

进入这个

\setlength{\hpll}{0.7714mm}
\setlength{\vpll}{0.7710mm}

% Set the default page layout
\RequirePackage[
    c5paper,
    top=\vpll*\real{27.4},
    bottom=\vpll*\real{27.4},
    inner=\hpll*\real{24.8},
    textwidth=\hpll*\real{107},
    marginparsep=\hpll*\real{8.2},
    marginparwidth=\hpll*\real{49.4},
    includemp
]{geometry}

无需修改\newgeometry命令。但是,使用旧版本的模板,您需要手动更改所有数字,包括\newgeometry命令中的数字。

答案2

来得晚了,但我想要一个非标准尺寸的页面。我进入 kao.sty 并添加了一张新纸。添加缩放功能使这变得非常容易。

我的目标是制作一张 8 1/2 英寸 x 8 1/2 英寸的简单方形页面,因此我添加了

\@ifclasswith{\@baseclass}{squarepaper}{\setlength{\hscale}{1.028mm}\setlength{\vscale}{0.727mm}}{}

看起来运行良好。我可能需要更改顶部边距,以便打印在顶部而不是居中,但目前一切正常。

相关内容