So che un certo alone di magia circonda LaTeX, ma vorrei chiedervi una cosa.
Sto scrivendo un file di classe che vorrei fosse indipendente dalle classi standard.
Dunque il file comincia così:`% section: identification
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myletter}[2009/01/15 v0.1 Standard letter]
%
\newcommand{\@ptsize}{}
%
% section: loading package
%
\RequirePackage[italian]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage[latin1]{inputenc}
%
\RequirePackage{ifthen}\newboolean{inner@flag}
%
\RequirePackage{tikz}
\RequirePackage{eurosym}
\RequirePackage{lmodern}
\RequirePackage{indentfirst}
\RequirePackage{microtype}
\RequirePackage[a4paper,margin=1.5cm]{geometry}
%
% section: option declaration
%
\DeclareOption{internal}{\setboolean{inner@flag}{true}}
\DeclareOption{external}{\setboolean{inner@flag}{false}}
%
\DeclareOption{10pt}{\renewcommand{\@ptsize}{0}}
\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}}
\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}}
%
\DeclareOption*{\ClassWarning{myletter}{Unknow option `\CurrentOption'}}
%
% section: process option
%
% …
\ExecuteOptions{external,11pt}
%
\ProcessOptions\relax
%
%
%
% section: code
\input{size1\@ptsize.clo}
%
%…`Ricevo un errore perchè \normalsize non è definito al momento in cui carica il file size1\@ptsize.clo. che inizia con un \renewcommand\normalsize{}.
(che ho copiato nella stessa cartella della classe).La magia è questa: poiché ho la stessa impostazione della classe article o letter, perché con queste funziona e con la mia classe no?
L’errore è caricare microtype prima di aver definito \normalsize. Il caricamento dei pacchetti va, di norma, dopo \ProcessOptions. Prima vanno solo quelli “generici” come ifpdf o ifthen (ma ti serve davvero?).
Non vanno mai caricati con una classe né babel né inputenc.
Ciao
Enrico