我正在尝试编写一个包,它可以通过TeX
应用程序文件中的选项支持各种 Trim 尺寸,我的标签如下:
.sty
我的文件中的定义
\newif\ifsixbynine
\newif\ifsevenbynine
\newif\ifeightbynine
\NeedsTeXFormat{LaTeX2e}
\usepackage[a4,center,cam,info]{crop}
\usepackage{lipsum}
\ifsixbynine
\setlength{\paperheight}{9truein}%
\setlength{\paperwidth}{6truein}%
\fi
\ifsevenbynine
\setlength{\paperheight}{9truein}%
\setlength{\paperwidth}{7truein}%
\fi
\ifeightbynine
\setlength{\paperheight}{9truein}%
\setlength{\paperwidth}{8truein}%
\fi
\addtolength\topmargin{-1in}
\setlength\textwidth{26pc}
\setlength\textheight{39pc}
\setlength\oddsidemargin{5pc}
\addtolength\oddsidemargin{-1in} % subtract out the 1 inch driver margin
\setlength\@tempdima{\paperwidth}
\addtolength\@tempdima{-\textwidth}
\addtolength\@tempdima{-5pc}
\setlength\evensidemargin{\@tempdima}
\addtolength\evensidemargin{-1in}
\DeclareOption{6x9}{\global\sixbyninetrue}
\DeclareOption{7x9}{\global\sevenbyninetrue}
\DeclareOption{8x9}{\global\eightbyninetrue}
\ProcessOptions
\endinput
.tex
我的文件内容
\documentclass{book}
\usepackage[6x9]{test}
\begin{document}
\lipsum[1-9]
\end{document}
但输出结果与我预期的不一样。你能帮我看看我的定义哪里错了吗?
答案1
问题在于,您正在声明选项并\ProcessOptions
在包文件末尾调用宏。根据提供的选项,此宏将设置适当的标志(\sixbynine
和其他标志),因此需要调用它前使用了标志。