对于制作文档类别有点陌生..所以请原谅我肯定犯下的新手错误。
我正在尝试制作一个documentclass
代表我所在组织使用的报告的文件。我正在尝试在文档中设置一个标志.tex
来定义文档是否处于final
或draft
状态。在相应的 .cls 中,我将更改标题页、页眉/页脚/等。
在单个文档中,这是成功的(这是companyreport.cls
):
\LoadClass{report}
\usepackage{etoolbox}
\newtoggle{final}
\settoggle{final}{true}
\begin{document}
% Define a table layout for the title page.
\def\tabularxcolumn#1{m{#1}}
\begin{tabularx}{\textwidth}{| X | X |}
\hline
\includegraphics{titleimage.png} &
\iftoggle{final}{Final}{Draft} Report \newline Title \\
\hline
\null & Confidential to \newline Company \\
\hline
\end{tabularx}
\newpage
Project Team
Revision History
\end{document}
如果我将上述内容放在文档类中,并尝试final
从中设置值.tex
,则它不起作用。
徘徊在工作走廊时,我想知道这是否是正确的方法,以及我是否应该使用课程选项......?
答案1
标准文档类已定义draft
和final
选项。要么重新定义它们,要么使用\DeclareOption
它们进行扩展,然后进行相关切换。
companyreport.cls
\ProvidesClass{companyreport}
\LoadClass{report}
\RequirePackage{etoolbox}
\newtoggle{final}
\DeclareOption{draft}{\togglefalse{final}}
\DeclareOption{final}{\toggletrue{final}}
\PassOptionsToClass{draft}{report}
\PassOptionsToClass{final}{report}
\ProcessOptions
\endinput
以及驱动程序文件:companyreport.tex
\documentclass[final]{companyreport}
\usepackage{tabularx}
\usepackage[demo]{graphicx}
%\settoggle{final}{true}
\begin{document}
% Define a table layout for the title page.
\def\tabularxcolumn#1{m{#1}}
\begin{tabularx}{\textwidth}{| X | X |}
\hline
\includegraphics{titleimage.png} &
\iftoggle{final}{Final}{Draft} Report \newline Title \\
\hline
\null & Confidential to \newline Company \\
\hline
\end{tabularx}
\newpage
Project Team
Revision History
\end{document}