Re: Misteri di \ProsodicMarksOn

#55684
Up
0
Down
::

Ciao a tutti.

1.
`\documentclass{article}
\usepackage[latin,italian]{babel}
\languageattribute{latin}{withprosodicmarks}
\begin{document}
Ciao \begin{otherlanguage}{latin}\ProsodicMarksOn{ros^a}\end{otherlanguage} ciao.
\end{document}
`
Perché quegli spazi sbagliati?

Una possibile soluzione: usare il pacchetto “newunicodechar” appena inviato su CTAN e lasciar perdere “withprosodicmarks”
`\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[latin,italian]{babel}
\usepackage{newunicodechar}

%\newunicodechar{Ă}{\u{A}} \newunicodechar{ă}{\u{a}}
\newunicodechar{Ĕ}{\u{E}} \newunicodechar{ĕ}{\u{e}}
\newunicodechar{Ĭ}{\u{I}} \newunicodechar{ĭ}{\u{\i}}
\newunicodechar{Ŏ}{\u{O}} \newunicodechar{ŏ}{\u{o}}
\newunicodechar{Ŭ}{\u{U}} \newunicodechar{ŭ}{\u{u}}
\newunicodechar{Ā}{\={A}} \newunicodechar{ā}{\={a}}
\newunicodechar{Ē}{\={E}} \newunicodechar{ē}{\={e}}
\newunicodechar{Ī}{\={I}} \newunicodechar{ī}{\={\i}}
\newunicodechar{Ō}{\={O}} \newunicodechar{ō}{\={o}}
\newunicodechar{Ū}{\={U}} \newunicodechar{ū}{\={u}}

\begin{document}

\begin{otherlanguage*}{latin}rosă, invincibĪlis, pōpŭlus, pŏpŭlus\end{otherlanguage*}

\end{document}`
Naturalmente occorre un editor Unicode. Con \newunicodechar è possibile definire il significato di qualsiasi carattere Unicode. Per esempio,
`\usepackage{wasysym}
\newunicodechar{♪}{\eighthnote}`
Ciao
Enrico

Grazie per il pacchetto 😀

Però mi chiedo come potrei fare a scrivere nel preambolo quelle definizioni non avendo la tastiera italiana la possibilità di mettere lunga e breve sopra le vocali.

Mi sembra di capire che la tua soluzione aggiri utf8x, necessario invece per scrivere

ă ĕ ĭ ŏ ŭ Ă Ĕ Ĭ Ŏ Ŭ ā ē ī ō ū Ā Ē Ī Ō Ū

direttamente da tastiera a chi ne ha la possibilità.

In sostanza, rimanendo in ambito latineggiante, per segnare la quantità sulle vocali potrei:

1. mettere latin tra le lingue di babel, withprosodicmarks come attributo, \ProsodicMarksOn prima del testo interessato e usare le scorciatoie;

2.dare utf8x a inputenc e scrivere ă ĕ ĭ ŏ ŭ Ă Ĕ Ĭ Ŏ Ŭ ā ē ī ō ū Ā Ē Ī Ō Ū direttamente dalla tastiera (su Mac basta impostare la US extended come sorgente di input);

3. dare utf8 a inputenc e procedere con venti dichiarazioni nel preambolo del tipo

`\DeclareUnicodeCharacter{0102}{\u{A}}`

4. usare il tuo pacchetto e scrivere nel preambolo venti cose come

`\newunicodechar{Ĕ}{\u{E}}`

per poi usare Ĕ tranquillamente nel testo. Naturalmente dando utf8 a inputenc.

Giusto? In pratica si usa il metodo del punto 2 evitando utf8x.

Ciao
Tommaso

Go to top