XeLaTeX e matematica

  • Creatore
    Topic
  • #29381
    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….:)

    Grazie!
    Ivan

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #29382
      mlgdominici
      Amministratore del forum
        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.

        Sottolineavo anche, però, la maggiore facilità d’uso di XeTeX. Bisognerebbe avventurarsi nelle complicazioni di un’installazione vecchia maniera solo se è strettamente necessario.

        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…

        Prova a dare un’occhiata a mathspec (http://www.ctan.org/tex-archive/macros/xetex/latex/mathspec/). Dovrebbe fare quello che chiedi.

        Ciao,
        Max.

      • #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

      • #29384
        Up
        0
        Down
        ::

        Sottolineavo anche, però, la maggiore facilità d’uso di XeTeX. Bisognerebbe avventurarsi nelle complicazioni di un’installazione vecchia maniera solo se è strettamente necessario.

        Sono d’accordo. Fare da zero l’installazione di un set di font alla maniera indicata dal tuo articolo apparso su Ars TeXnica (n°4, Ottobre 2007) è un lavoraccio; e, per quanto mi riguarda, al di là delle mie capacità, anche se ho letto (e rileggerò) l’articolo più di una volta. Se però si posseggono i files .pfb e .afm, grazie all’uso di fontinst, l’installazione non è complicatissima, sempre che ci si limiti ad utilizzare la modalità semplificata.

        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)

        Ho provato il codice che hai creato e credo che per molti utilizzatori di XeLaTeX, che non vogliono rinunciare alla uniformità tra testo e formule sia un’ottima soluzione. Naturalmente, come dici tu, se gli aggiustamenti da fare sulle spaziature sono molti, forse non ne vale la pena…E comunque il problema delle spaziature c’è anche usando mathspec, di cui mi avevi accennato ieri e che mi consiglia anche Massimiliano.

        Prova a dare un’occhiata a mathspec (http://www.ctan.org/tex-archive/macros/xetex/latex/mathspec/). Dovrebbe fare quello che chiedi.

        Ho provato il pacchetto mathspec; molto semplice ed efficace. Il problema delle spaziature è presente anche qui, sebbene il paccheto preveda una correzione automatica degli spazi in modo matematico. Anche per formule relativamente semplici, infatti, è necessario effettuare una correzione manuale degli spazi se si vuole ottenere un ottimo risultato. Un altro problema riguarda alcune lettere, ad esempio quelle greche, ma farò dei test per avere un quadro più chiaro.

        Riporto un breve esempio, preso dalla documentazione di mathspec. La scelta del font è una forzatura; è decisamente inadeguato per testi matematici, ma è utile per vederne i limiti…L’autore del pacchetto consiglia in particolare di usare “\left(” e “\right)” anziché le semplici parentesi. Personalmente, il risultato mi sembra carino…

        `
        \documentclass{article}
        \usepackage[greek,italian]{babel}
        \usepackage{amsmath}
        \usepackage[garamond]{mathdesign}
        \usepackage{mathspec}
        \usepackage{xltxtra,xunicode}

        \setprimaryfont{Hoefler Text}

        \newcommand\grp[3]{\left#1#3\right#2}
        \begin{document}

        %%Due equazioni senza correzione degli spazi
        \begin{align}
        f(x) & = \sum_{n=-\infty}^{\infty}{c_ne^{jnx}}\\
        c_n & = \frac{1}{2\pi}\int_{-\pi}^{\pi}{f(x)e^{-jnx}\,\mathrm{d}x}\\
        123456789
        \end{align}

        %%Le stesse quazioni con correzione degli spazi
        \begin{align}
        f\grp(){x} & = \sum_{n=-\infty}^{\infty}{c_ne^{\+[5]jn\+x}}\\
        c_n & = \frac{1}{2\pi}\int_{-\pi}^{\pi}{\+f\grp(){x}e^{\+-jn\+x}\,\mathrm{d}x}\\
        \end{align}

        \end{document}
        `

        Grazie a tutti!

        Ciao,
        Ivan

    Visualizzazione 2 filoni di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top