Re: XeLaTeX e matematica

#29383
Up
0
Down
::

Ciao a tutti!

Propongo un problema per i maghi LaTeX, ma prima di tutto una premessa…

Massimiliano Dominici, in questa conferenza, ha sottolineato i vantaggi che l’installazione standard dei font in LaTeX conserva. XeLaTeX rimane tuttavia uno strumento fantastico, e molto attraente, per chi voglia sbizzarrirsi con i fonts, se non fosse per la difficoltà che ancora permangono per la gestione dei caratteri in modalità matematica. Di alcune questioni c’è qualche traccia anche in questo forum.
Se volessimo usare, per esempio, un font della famiglia Garamond, poniamo il Simoncini Garamond, potremmo utilizzare il font matematico fornito dal pacchetto mathdesign, con l’opzione [garamond] (l’opzione funziona solo dopo aver installato il font urw-garamond, perché mathdesign usa quel font per le lettere in modalità matematica). I simboli che usa mathdesign con l’opzione garamond sono perfetti per tutti i font del tipo “garamond”. Il problema è che in questo modo le lettere (i numeri e la punteggiatura) che compaiono in modalità matematica vengono prese dal font urw-garamond, e non dal Simoncini Garamond. Niente di drammatico, certamente, ma volendo essere pignoli la differenza si vede.
Chiedo quindi se non ci sia un modo per dire a XeLaTeX di usare il font matematico fornito dal pacchetto mathdesign (o da quello che più aggrada) per quanto riguarda i simboli (in senso stretto), ma di usare il font caricato con \setromandefault{} per le lettere, i numeri e la punteggiatura in modalità matematica. Questa sarebbe sicuramente una gran bella soluzione…! Oltre a ciò la soluzione sarebbe anche di carattere generale…

Non so perché ma ho la certezza che mi risponderà Enrico, con una delle sue formule magiche….:)

Facile profeta! 😉

Se la matematica da scrivere non è più di qualche formulina in corpo, senza troppe pretese (e con l’avvertenza che le spaziature vanno certamente riviste una formula per volta aggiungendo \, dove serve), si possono ridefinire i codici per le lettere in modo matematico: ci inventiamo un nuovo pacchetto, scrivendo il file poormathitalic.sty che deve avere la seguente struttura:
`\ProvidesPackage{poormathitalic}
\normalfont
\edef\@pmienc{\f@encoding}
\edef\@pmifam{\f@family}

\DeclareSymbolfont{poormathitalic}{\@pmienc}{\@pmifam}{m}{it}
\SetSymbolFont{poormathitalic}{bold}{\@pmienc}{\@pmifam}{b}{it}

\DeclareMathSymbol{A}{\mathalpha}{poormathitalic}{`A}
\DeclareMathSymbol{B}{\mathalpha}{poormathitalic}{`B}

\DeclareMathSymbol{Z}{\mathalpha}{poormathitalic}{`Z}
\DeclareMathSymbol{a}{\mathalpha}{poormathitalic}{`a}
\DeclareMathSymbol{b}{\mathalpha}{poormathitalic}{`b}

\DeclareMathSymbol{z}{\mathalpha}{poormathitalic}{`z}
\endinput`
Il file naturalmente va completato con la dichiarazione di tutte le lettere, secondo lo schema indicato. Si deve dare \usepackage{poormathitalic} dopo la dichiarazione \setromanfont{} relativa all’uso di fontspec.

Le due definizioni con \edef dopo \normalfont servono a catturare la codifica di output (normalmente è EU1) e il nome della famiglia, che fontspec assegna in modo piuttosto imprevedibile.

Il nuovo “pacchetto” deve stare insieme al file che si sta scrivendo oppure in una delle solite aree, meglio quelle personali.

Ciao
Enrico

Go to top