Re: plain – accenti

#65473
Up
0
Down
::

egreg9″ post=64517

Salve a tutti.

Ho scritto il codice per gli accenti di un font opentype da usare con XeTeX. Il codice è il seguente:

Come si fa a settare l’accento grave?

Grazie, ciao.

Per esempio, “è” (U+00E8) può essere ottenuto come U+0065/U+0300, dove U+0300 si chiama COMBINING GRAVE ACCENT. …
Ciao
Enrico

Grazie infinite per la risposta, ma purtroppo non su tutti i fonts è presente il carattere U+0300. La tabella caratteri di ubutu non è affidabile da questo punto di vista, i caratteri effettivamente presenti li mostra FontMatrix. Il Minion Pro sembra avere un unico accento grave, il carattere U+0060.

Tra l’altro sembra che il problema sia parecchio complicato: Jonathan Kew sostiene che dipende dal “tex-text” font mapping, il quale converte il carattere U+0060 (`) con U+2018 (l’ogonek). Le soluzioni proposte in quel post sono tutte impraticabili: rinunciare a “tex-text”, dovendo così anche rinunciare agli apici e ai trattini in stile TeX, o addirittura mettere mani nei files della mappatura, perdendo così la compatibilità con altre macchine o con altre versioni del TeXLive.

Ho la sensazione di essermi scontrato, come a volte succede, con uno dei limiti del sistema.

Come workaround credo si possa usare qualcosa del genere:

`% grave
\def\`#1{%
\if#1a\char224\fi
\if#1A\char192\fi
\if#1e\char232\fi
\if#1E\char200\fi
\if#1i\char236\fi
\if#1I\char204\fi
\if#1o\char242\fi
\if#1O\char210\fi
\if#1u\char249\fi
\if#1U\char217\fi}
`

(edit. Mi accorgo solo ora che questo codice è una versione “povera” di quello proposto da Enrico. A essere sincero non avevo mai visto prima il comando \ifcsname 😳 )

Certo è poco elegante e limitato (ad esempio credo che non funzioni con gli small-caps, ma non ho fatto prove al riguardo), ma sembra essere la cosa più vicina ad una soluzione.

Grazie, ciao.

Go to top