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.