我想知道是否有可能“扩展”现有的页面大小
\documentclass{book}
就像是
\documentclass[crownpage]{document}
documentclass[demypage]{document}
- ...
如果可以的话,请指教。我们的想法是创建一个本地印刷的所有流行书籍尺寸的列表,并在整个系统内提供这些尺寸。
我已经读过,人们可以使用geometry
包并定义页面大小(而这些定义又可以分别驻留在它们“自己的”包中)。类似于\usepackage[crownpage]
(假设crownpage.sty
驻留在 LaTeX 的路径中(?)。
但我在思考我打算做的事是否可行。
提前致谢!
PS:我是 TeX 的新手。
答案1
像这样吗?
% mypapersizes.sty
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mypapersizes}
\RequirePackage{xkeyval}
\define@choicekey+{mypapersizes.sty}{papersize}[\mypapersizes@choice\ic]{crown, demy}{%
\ifcase\ic\relax
%crown
\gdef\mypapersizeswidth{381mm}%
\gdef\mypapersizesheight{508mm}%
\or
%demy
\gdef\mypapersizeswidth{445mm}%
\gdef\mypapersizesheight{572mm}%
\fi}{\PackageWarning{choice \mypapersizes@choice choice \ic}}
\ExecuteOptionsX{papersize=a4paper}
\ProcessOptionsX
\@ifundefined{mypapersizeswidth}{%
\RequirePackage[\mypapersizes@choice]{geometry}%
}{%
\RequirePackage[paperwidth=\mypapersizeswidth, paperheight=\mypapersizesheight]{geometry}%
}
\endinput
那么你可以说,例如:
\documentclass{book}
\usepackage[papersize=demy]{mypapersizes}
\begin{document}
abc
\end{document}
- 默认为 A4。
- 如果您指定例如
letterpaper
,它将通过将值传递给来工作geometry
。(如果您指定,它也会这样做,ratcatcher
但geometry
在这种情况下显然会抱怨。) - 加载
mypapersizes
将覆盖任何类选项,并且您不应该将纸张尺寸传递给类以避免混淆。 - 如果需要指定其他选项
geometry
,请\geometry{}
在之后使用\usepackage{mypapersizes}
。
答案2
看一下回忆录类(增强型书籍/报告类),它有许多纸张尺寸选项:
---- 12 适用于公制纸张尺寸,从 a6paper(148 x 105 毫米)到 msmallroyalvopaper(234 x 156 毫米);
--- 8 适用于美国纸张尺寸,从 dbillpaper(7 x 3 英寸)到 broadsheetpaper(22 x 17 英寸)
--- 13 表示英国纸张尺寸,从 pottvopaper(6.25 x 4 英寸)到 imperialvopaper(11 x 7.5 英寸)
它还包括定义您自己的纸张尺寸的方法。