Funziona solo perché il comando \thepart usa cifre romane e infatti devi sapere in anticipo il numero delle parti.
Hai ragione però se esagero inserendo al posto di “-1”, “-10000”, il problema della conoscenza del numero di parti, che compone il documento, non dovrebbe porsi.
La soluzione è semplicemente di usare \part*
Ci avevo pensato, ma per le mie esigenze, che d’altra parte non avevo esplicitato nei messaggi precedenti, la tua soluzione presenta due problemi: 1) dal documento sparisce “Parte” e 2) non viene visualizzato nell’indice.
Ovvio che sparisca “Parte”! Se non ci metti il numero, che ci sta a fare? A meno che tu non voglia una cosa del tipo “Parte prima”, ma allora lo scrivi nell’argomento, no? Oppure fai così:`\makeatletter
\newcommand{\ordinalefemminile}[1]{\ifcase#1\relax
\or prima\or seconda\or terza\or quarta\or quinta\else\@ctrerr\fi}
\renewcommand{\thepart}{\expandafter\ordinalefemminile\csname c@part\endcsname}
\makeatother`Se hai bisogno di più di cinque parti, la modifica è ovvia.
Ciao
Enrico