Tre risposte al volo e una correzione.
Ecco la correzione che se il tuo editore vede la numerazione araba ricominciare da 1 con la main matter come minimo si incavola; colpa mia che mi osno dimenticato di dirti di togliere \pagenumbering{arabic} dalla definizione di mainmatter: in sostanza le modifiche da fare sono le seguenti`\makeatletter
\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
}
\renewcommand\mainmatter{%
\cleardoublepage
\@mainmattertrue
}`
Prima rispostina: lasciare la prefazione nella forntmatter con le pagine in cifre arabe o metterla nella mainmatter non è prorpio la stessa cosa: nella main matter il comando \chapter produce un capitolo numerato e lo manda nell’indice; nella frontmatter \chapter produce un capitolo NON numerto, ma lo mada ugalmente nell’indice.
Seconda: per avere nel testo fuori dell’ambiente [ code ] e [ /code ] (senza gli spazi) il font a spaziatura fissa bisogna usare, sempre senza gli spazi; [ tt ] e [ /tt ].
Terza rispostina: non dicco leggi una guida, ma ti dico leggi la guida tematica Il LaTeX Reference Manual commentato da scaricare dalla sezione delle guide tematiche nella sezione Documentazione di questo forum. A parte il fatto che sia in italiano, non è una semplice traduzione del Manuale di Leslie Lamport, il creaore di LaTeX. Lì sono descritti tutti i ocmandi, le dichiarazini, gli ambienti definiti per usare il markup di LaTeX che contiene anche dei comandi epr generare del nuovo marlup. Tannto epr capirci [tt]\frontmatter[/tt] è un comando di markup; esso è stato definito mediante il comando LaTeX [tt]\newcommand[/tt]; io ti ho suggerito di cambiarne la definizione “ridefinendolo” con un altro comando di LaTeX [tt]\renewcommand[/tt].
Per i cultori di informatica il linguaggio LaTeX non è solo un linguaggio di marjup, ma è un linguaggio di programmazione che nel loro gergo costituisce una macchina di Turing completa.