Re: plain – accenti

#65472
Up
0
Down
::

Sam Qasbah” post=64515Salve 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.

Non certo così. È sbagliato fin dal principio: i font OpenType non hanno gli accenti come i font tradizionali TeX, ma usano combinazioni predefinite.

Per esempio, “è” (U+00E8) può essere ottenuto come U+0065/U+0300, dove U+0300 si chiama COMBINING GRAVE ACCENT. Potresti ottenere il risultato voluto con
`\XeTeXinputnormalization=1 % XeTeX esegue la combinazione e vede il carattere combinato come unico
% grave
\def\`#1{#1^^^^0300}
% acuto
\def\'#1{#1^^^^0301}
% caron/hacek
\def\v#1{#1^^^^030c}
% breve sopra
\def\u#1{#1^^^^0306}
% macron sopra
\def\=#1{#1^^^^0304}
% circonflesso
\def\^#1{#1^^^^0302}
% punto sopra
\def\.#1{#1^^^^0307}
% umlaut lungo ungherese (doppio acuto)
\def\H#1{#1^^^^030b}
% tilde
\def\~#1{#1^^^^0303}
% unlaut o dieresis
\def\”#1{#1^^^^0308}
`
Ma impara a usare Unicode anche per l’input, vivrai molto più sereno. Non con tutti i font il posizionamento delle combinazioni è perfetto e, in realtà, sarebbe meglio un approccio indiretto.
`\def\`#1{\ifcsname grave@#1\endcsname\csname grave@#1\endcsname\else#1^^^^0300\fi}
\chardef\grave@a=”E0
\chardef\grave@e=”E8
…`
In questo modo useresti il carattere vero e proprio.

Ciao
Enrico

Go to top