Latex 中的自定义页面大小名称

Latex 中的自定义页面大小名称

我想知道是否有可能“扩展”现有的页面大小

\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。(如果您指定,它也会这样做,ratcatchergeometry在这种情况下显然会抱怨。)
  • 加载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 英寸)

它还包括定义您自己的纸张尺寸的方法。

相关内容