Re: Tilde e trattino ondulato

#45535
Up
0
Down
::


Ora se nel tuo testo mi metti
U+006E LATIN SMALL LETTER N U+007E TILDE
(U+007E TILDE è ‘~’, quello dell tastiera)

Secondo le convenzioni di Unicode, i “combining characters” vanno inseriti dopo. Si può scrivere

“U+006E LATIN SMALL LETTER N” “U+0303 COMBINING TILDE”

e un software adeguato renderà la combinazione come richiesto. Il “cut and paste” e la ricerca di “ñ” andranno a buon fine.

Non che tutto sia a posto, però: dipende dal font che si sta usando. Per esempio il seguente documento produce due ñ identiche quando compilato con XeLaTeX:
`% -*- coding: utf-8 -*-
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{Charis SIL}

\begin{document}
ñ

ñ
\end{document}`
Ma se si cambia il font in “Linux Libertine O”, la tilde non sarà al posto giusto.

(Nota: la seconda “ñ” deve essere prodotta con la combinazione, temo che il software di gestione del forum faccia la conversione automaticamente).

Naturalmente ciò è accademico per quanto riguarda LaTeX: il pacchetto inputenc non è in grado di gestire i caratteri combinati; il motivo è ovvio: l’accento viene dopo e TeX va da sinistra a destra; quando trova la n la compone e poi è troppo tardi per accorgersi della tilde. Con XeLaTeX tutto va a buon fine, invece, purché il font gestisca correttamente le combinazioni.

Scoperto l’arcano comando che evita lavoro inutile ai font (che magari, come Linux Libertine, non gestiscono bene le composizioni):
`\XeTeXinputnormalization=1`
Se questo registro vale 1, ogni composizione che Unicode dichiara equivalente a un carattere precomposto viene ridotta al più semplice. Se il registro vale 2, viene fatto il viceversa. Se ha un altro valore, si lascia il lavoro al font. Evidentemente LuaTeX fa di default l’operazione equivalente a porre il valore 1 nel registro, a differenza di XeTeX.

Ciao
Enrico

Go to top