Lorenzo, ho dovuto risolvere questo problema con al Guida GuIT, come ti hao già scritto quando avevi aperto l’altro filone.
Come ti ho detto, tutto si può fare, pur di volersi sporcare le mani. Avevi detto che se avevi una front matter di 40 pagine ti sarebbe spiaciuto di avere il primo capitolo che comincia nella pagina 41. Dipende dal libro che si ha sottomano e dai gusti personali, ma nel caso specifico di avere una frontmatter in numeri romani che permettano anche di eseeguire i collegamenti a ritroso (back ref) quando ci sono di mezzo i numeri romani dipende da un mucchio di cose, alcune delle quali fanno riferimento a comandi primitivi, ed altra a idiosincrasie di hyperref, da come sono composte le classi, eccetera.
Ci sono diversi punti in cui si incontrano numeri romani minuscoli:
a) nella numerazione delle pagine,
b) nell’indice e anche negli indici analitici
c) nei file aux che contengono le informazioni che usa hyperref per disporre delle ancore e dei bersagli giusti
1) Negli indici generali bisogna ridefinire il modo di scrivere al rigaa che riporta l’informazione che riguarda i capitolli; direi che i pacchetto tocloft dovrebbe permetterti di specificare il maiuscoletto simulato senza problemi (simulato, perché generalmente il maiscoletto non disponde altro che della seria chiara, quindi bisogna simulare un maiuscoletto della serie nera rimpicciolendo al 70% il corpo normale)
2) per i numeri delle pagine bisogna specificare la dichiarazione \scshape oppure il comando dem maiuscoletto simulato a seocnda dei font in uso, ma è una scelta a livelo di classe, a livello generale, cioè, perché non è che si cambi stile nello scrivere i numeri delle pagine da una pagina all’altra. Cose come fancyhdr o classi come scrbook o memoir che consteno di personalizzare i numeri delle pagine permettono di risolvere questo problema senza sporxarsi le mani.
c) bisogna sporcarsi le mani invece con l’argomento di hyerref che contiene la dichiarazione \textlatin o \doscroman, quella che mostri nel tuo messaggio d’errore.
In questo ultimo caso bisogna sporcarsi le mani perché bisogna creare un comando che elimini \textlatin o \doscroman; allora io mi sono sporcato le mani in questo modo: ho creato due macro, una che determini se almeno la stringa da concvertire si scritta in lettere minuscole — non sono stato a badare se sian lettere della numerazione latina o lettere qualsiasi. Una seocnda macro, dentro un ambiente, elimina il comando \docsroman eseguendolo. poi per il resto non ci sono particolari problemi, salvo che non bisogna avere paura a scrivere in modo da sporcarsi le mani.
La prima macro è ad argomenti delimitati:`\newif\iflettere\letterefalse
\def\testlettere#1#2!{\count256=`#1 \ifnum\count256<`a \letterefalse\else
\ifnum\count256>`z \letterefalse\else\letteretrue\fi\fi}`
La seconda è quella più sporca:`\DeclareRobustCommand*{\simulatedSC}[1]{{\def\textlatin##1{##1}\relax\edef\@tempA{#1}%
\expandafter\testlettere\@tempA!\iflettere\textormath{%
\hbox{\check@mathfonts
\fontsize{\sf@size}{\f@baselineskip}\selectfont\uppercase\expandafter{\@tempA}}%
}{%
\scriptsize\mathrm{\@tempA}}\else#1\fi}}`
Come vedi il trucco sporchissimo è contenuto nelle prime due righe di questa definzione; il paramentro #1 arriva dal file .aux scritto come tu hai mostrato: [tt]\textlatin {i}[/tt], quindi quando \@tempA viene definito mediante l’espansione dell’argomento \textlatin {i} si ritrova solamente i e non più la macro \textlatin. Dopo il resto è normale amministrazione \textormath è la solita macro definita da babel per comporre qualcosa indifferentemente (o differentemente) in modo matematico o in modo testo..
Ben con queste due macro messe nel preambolo (magari con un bel \makeatletter prima e un bel \makeother dopo) e dopo aver modificato la riga di scrittura dei capitoli nell’indice generale e lo stile dei numeri di pagina nelle testatine, mi consente di avere la parte preliminare con la numerazione delle pagine in maiuscoletto vero, di avere le righe dell’indice relativi ai capitoli i nero maiuscolo ridotto di corpo; mi permette di avere i riferimenti incrociati alle pagine in numeri romani in modo corretto senza l’errore di “missing \begin{document}”.
Per gli indici analitici per essere sicuro ho sempre scritto l’argomento del comando \index con l’appendice |textsc, che è la sintassi giusta per per i numeri di pagina in maiuscoletto medio, tanto i numeri del maiuscoletto e quelli del tondo sono gli stessi (nel senso che vengono da font diversi, ma hanno la stessa forma).
Naturalmente usando il linguaggio L3 si potrebbe fare di meglio, ma per imbracciare quel fucile di precisione bisogna avere il porto d’armi che io non ho. Però bisogna sporcarsi le mani — non conosco nessun pacchetto che faccia tutte queste cose, comprese quelle delicate per mettere a posto questa insufficienza di comandi appositi e questa limitazione sui font di forma maiuscoletta, ma dotati solo della serie media, che non dispongono né di neretto né di “corsivo/inclinato”, tanto meno del corsivo nero.
😉