Stemby,
io cercavo di rispondere alla tua domanda se c’era un modo, una prassi, per il file di stile.
Non ho dubbi sul fatto che i tuoi file .tex e il tuo modo di leggerli funzionino, altrimenti non avresti concluso niente fino ad ora e non ti staresti divertendo nel lavoro certe volte complesso, ma ricco di soddisfazioni, di creare e usare una classe e i suoi pacchetti accessori.
Tuttavia lo stile corretto è quello di scrivere una classe .cls, che comincia con il suo breve preambolo, prosegue con la definizione delle opzioni e prima di usare le sue definizioni interne, carica i file di cui necessita con \RequirePackage, non con \input.
Il comando \input può leggere qualunque file, anche un file di definizioni, basta specificarne l’estensione, per esempio \input{t1enc.def}. Sembrerebbe che \input risolva tutto; perché allora sono state definiti dei comandi come \RequirePackage o \LoadClass? Questi alla fin fine eseguono il comando primitivo \input, ma prima che cosa fanno?
Ecco, questo è il punto importante che determina lo stile corretto per creare classi e gestire i “file di stile”; usando \input rinunci alla funzionalità in più che LaTeX ti consente di avere “gratis”.
Poi ci sono i file .def, .ld, .fd, e tanti altri che la classe può caricare ed usare.
.def sono file contenteneti delle definizioni; apri t1enc.def in …/tex/latex/base/ e vedrai che si tratta di definizioni eseguite con i comandi \def, \DeclareTextCommand, e simili.
.ld sono i file che descrivono e definiscono quello che è necessario attivare attraverso babel per getire una lingua specifica; per il messale babel legge certamente i file italian.ld e latin.ld
.fd sono i file che descrivono i font di ciascuna famiglia; apri per esempio t1cmr.fd in …/tex/latex/base/ troverai descritti tutti i font con l’encoding T1 della famiglia CMR nelle varie serie e forme per indicare a LaTeX che cosa fare per ottenere i corpi desiderati di ciascun font.
Però tutti questi file, mutatis mutandis, vengono scritti seguendo le regole indicate in clsguide.pdf e vengono letti con i comandi di livello superiore a \input proprio per sfruttare quanto i comandi a livello superiore fanno prima di aprire il file da leggere.
Se per la tua classe per il messale hai bisogno di avere dei file distinti da quello della classe che contengano definizioni specifiche e magari da leggere selettivamente a seconda delle opzioni fornite alla classe, leggile pure con il comando che preferisci, ma se non metti l’estensione, viene assunta l’estensione .tex. Per chiarezza sarebbe meglio che un file di definizioni abbia l’estensione .def, che però devi specificare nel comando di lettura.
Poi puoi usare anche comandi come \IfFileExists{file.ext}{vero}{falso} per eseguire vero se il file c’è, oppure falso se il file non c’è.
Puoi usare \InputIfFileExists{file.ext}{cosa fare prima]{cosa fare se non c’è}.
Eccetera…
Cerca di essere ordinato nella tua programmazione e correttamente spezza la tua classe in moduli parziali; non cadere nell’errore che ho commesso io di scrivere classi o pacchetti monolitici, non modulari, anche di 10 000 righe, magari senza un solo commento; tanta fatica sprecata, perché a distanza di poco tempo con file così grandi, non ci si ricorda più perché si sono fatte certe cose.
Inoltre da tempo ho imparato a scrivere i file .dtx (documented tex file); fallo anche tu, se puoi. Ora finisci la tua classe, ma poi mettiti lì e risistema tutto in ordine secondo la “best practice” che clsguide.pdf suggerisce e usando i file .dtx.