Estoy tratando de ampliar mi clase admitiendo múltiples tamaños de papel y, por lo tanto, agregando algunas opciones al
\DeclareOption{a5paper}{% Paper size: 148mm x 210mm
% \SBpaperAfivetrue
% \SBpaperAsixfalse
}
Todo mi documento como MWE se ve así
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{Liederbuch}[2016/02/04 version 1.00 Decoration and placement of songs]
\typeout{Book subclass: Liederbuch 2016/02/04 v 1.00}
% --- Class structure: declaration of options part
% ---
% This class extends the book class
% Read all the documentclass options; pass them to book
\DeclareOption*{\InputIfFileExists{\CurrentOption.min}{}{%
\PassOptionsToClass{\CurrentOption}{book}}}
% --- Class structure: execution of options part
% ---
\ProcessOptions \relax
% --- Class structure: declaration of options part
% ---
\LoadClass{book}
%Page layout
%\RequirePackage{xcolor}
\RequirePackage{gtrcrd}
\RequirePackage{stackengine}
\RequirePackage{graphicx}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage[object=vectorian]{pgfornament}
\usetikzlibrary{calc}
\RequirePackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}
\RequirePackage{fancyhdr}
% --- Page size
% --- Option declaration for page size
\DeclareOption{a5paper}{% Paper size: 148mm x 210mm
% \SBpaperAfivetrue
% \SBpaperAsixfalse
}
importado en un documento como
\documentclass[8pt,a6paper]{Liederbuch}
%\usepackage[utf8]{inputenc}
\begin{document}
Hallo 2
\newpage
Test
\newpage
Test 3
\end{document}
Si dejo el \DeclareOption
, me sale el error
The package `' is defective.
It attempts to load `pdftexcmds' in the options section, i.e.,
between \DeclareOption and \ProcessOptions.
Si lo quito, todo está bien. Si muevo la \ProcessOption
opción después de la declaración, obtengo aún más errores. ¿Qué estoy haciendo mal?
Respuesta1
El orden correcto debe ser
\DeclareOption{<option>}{<code>} % any number of them
\ExecuteOptions{<option list>} % optional
\ProcessOptions\relax
\LoadClass{<class>}
Después de esta línea, se pueden agregar otras configuraciones, particularmente la adición de paquetes.