Newsgroup: it.comp.software.tex
Titolo: Num. italiano capitoli con \chapterstyle{demo} di memoir.cls

Vorrei usare in italiano 
\chapertsyle{demo}
che e' predefinito nella class memoir.
Il problema e' che il numero del capitolo viene scritto con una parola invece che con un numero (one, two, three ... invece di 1, 2 ,3 ...) e questo mi piace ma lo vorrei in italiano (uno, due tre, ....). Ovviamente ho installato babel che funziona senza problemi ma non su questo dettaglio..
La documentazione di memoir fa riferimento a un comando \n@me@number e dice:
%%%%%%%%%%%%%%%
The actual picking and ordering of the names is done by an internal macro called \n@me@number. If the ordering is not appropriate for a particular language, that is the macro to peruse and modify.
%%%%%%%%%%%%%%%%
Il comando pero' mi sembra complesso e non ho idea di come modificarlo. Ho gia' anche installato il package fmtcount ma non sembra produca l'effetto voluto.
Ho una installazione recentissima di MikTeX 2.5, del tutto OK (ma questo mi sembra inessenziale).
Grazie dell'aiuto,
Maurizio

 voluto.
Se non hai troppi capitoli puoi provare con una soluzione alla buona:
\renewcommand{\numtoName}[1]{
\ifcase#1\relax\or
Uno\or Due\or Tre\or Quattro\or Cinque\or Sei\or
Sette\or Otto\or Nove\or Dieci\fi}
Aggiungi, secondo lo stesso schema, quello che ti serve. Certo, se hai
255 capitoli diventa un po' eccessivo.
Ciao
Enrico

 
Grazie, in effetti funziona e puo' bastare. Sarebbe bello' pero' se ci 
fosse una soluzione piu' ufficiale...
Ciao e grazie,
Maurizio

 scrive:

Dubito che Peter Wilson possa prevedere il supporto a questa cosa in 
più lingue. Ci sono poi svariati problemi a rendere i numeri in
parole, per quanto riguarda l'italiano.
In inglese 31 è "thirty one", 32 "thirty two"; in italiano "trentuno"
e "trentadue". Una soluzione sarebbe di inserire come stringa
delle decine "trent" e come stringa delle unità "uno" e "adue", quando
il numero è maggiore di diciannove (quelli fra 1 e 19 sono irregolari
in molte lingue). Ah, no! "Ventuno" e "ventidue"!
Un disastro! Ma quel codice è compatto e comprensibile. Se vuoi un 
programma in TeX che stampi gli assegni con la conversione automatica
da cifre in lettere, ci posso pensare. Per un compenso di un decimo
della cifra massima che vuoi inserire. ;-)
Ciao
Enrico


Beh, nel tuo esempio, basta usare trenta e venti e far cadere l'ultima vocale
se le unita' sono "uno", attenzione pero' che da cento in poi tutto si
regolarizza (es. centouno) nel caso di mille si dovra' distinguere fra il
prefisso "mille" e il suffisso "mila".
Conuque un algoritmo fatto bene esistera' gia' :)
Ciao ciao, AO.


Forse questo?
http://a2.pluto.it/a2779.htm
Ciao ciao, AO.


http://a2.pluto.it/a2779.htm
Il problema non è l'algoritmo, il problema è LaTeX o, meglio, scrivere
l'algoritmo in LaTeX.
L'algoritmo in sé può essere un po' più complesso del corrispondente per
l'inglese, ma non è poi nulla di intrattabile; è LaTeX che ne aumenta la
complessità di almeno un ordine di grandezza.
Il comportamento delle decine è, come dici, il medesimo per tutte: elisione
dell'ultima lettera di fronte a unità che comincia con vocale (quindi non
solo "uno", ma anche "otto"); così il caso "Trentuno, Trentadue, Trentotto"
è identico a quello "Ventuno, Ventidue, Ventotto". Le singolarità quindi
non sono poi così tante.
Ma poi che ci frega? con una manciata di byte in più, di cui nessuno, al
giorno d'oggi, verrà mai a chiederci conto, memorizziamo in una matrice
tutti i valori in lettere da 1 a 99. Il resto, centinaia, migliaia e oltre,
è veramente banale.
Già, ma in LaTeX nessuna delle due strade è così facilmente praticabile. Le
matrici, tanto per cominciare, neppure esistono.
Comunque, tutto si fa. L'algoritmo che citi non è particolarmente "fatto
bene", ma una sua variante appena un po' più intelligente (e magari, giusto
per prudenza, depurata dell'aspetto ricorsivo) funzionerebbe. Solo, io
personalmente non ho il tempo e la pazienza necessari per scriverla in
LaTeX.
Ciao.

 
http://a2.pluto.it/a2779.htm
Ci sono altre difficoltà: 33423 si scrive 
trentratremilaquattrocentoventitré (con l'accento solo in fondo).
Per quanto riguarda TeX, la definizione del comando deve usare
solo costruzioni espandibili e non assegnazioni.
Ciao
Enrico