Re: Misteri di \ProsodicMarksOn

#55667
Up
0
Down
::

Se è per quello, chi ha la tastiera italiana o usa il meccanismo dell’attributo withprosodicmarks e delle dichiarazioni \ProsodicMarksOn (dentro un gruppo la dichiarazione \ProsodicMarksOff non dovrebbe essere necessaria) oppure usa i soliti vecchi comandi \=a per la a lunga e \u{a} per la a breve.
Il meccanismo dei segni prosodici servirebbe per semplificare l’input, mi è stato chiesto apposta, ma non mi sembra che semplifichi tanto, solo una battuta per la lunga e tre battute per la breve.

Scrivendo
`
Questo è un breve esempio di testo latino con segni prosodici <<\begin{otherlanguage}{latin}\ProsodicMarksOn ros=a invincib^ilis\end{otherlanguage}>>
`
gli spazi spuri non compaiono, ma scrivendo
`
Questo è un breve esempio di testo latino con segni prosodici <<\begin{otherlanguage}{latin}\ProsodicMarksOn ros=a invincib^ilis \end{otherlanguage}>>
`
appare uno spazio abbastanza largo (due spazi? non direi) prima dei caporali chiusi. Direi che è normale. Non vedo spazi spuri prima fra i caporali di apertura e l’inizio del testo latino.
Scrivendo invece
`
Questo è un breve esempio di testo latino con segni prosodici <<\foreignrlanguage{latin}{\ProsodicMarksOn ros=a invincib^ilis}>>
`
Succede quello che ha descritto Enrico, che i segni prosodici vengono letti insieme a tutto l’argomento e quindi quando hanno ancora il significato di segni matematici o di interpunzione, perché \ProsodicMarksOn non è ancora entrato in funzione; quindi si rende necessario il codice con \scantokens:
`
Questo è un breve esempio di testo latino con segni prosodici \foreignlanguage{latin}{\scantokens{\ProsodicMarksOn ros=a invincib^ilis\empty}}
`
Ma dei due spazi che richiedono i due \unskip io non ho trovato traccia.

Questo fatto in effetti non è descritto nella documentazione del latino in babel; io stesso me ne rendo conto solo ora; evidentemente non ho mai testato i segni prosodici nell’argomento di \foreignlanguage.

Claudio

Purtroppo gli spazi ci sono. 🙁 Qui c’è il PDF e segue il codice:
`\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[latin,italian]{babel}
\languageattribute{latin}{withprosodicmarks}

\begin{document}

1.\ Esempio di testo latino con segni prosodici
<<\begin{otherlanguage}{latin}\ProsodicMarksOn ros=a invincib^ilis\end{otherlanguage}>>

1.\ Esempio di testo latino con segni prosodici
<<\space\space r (\string\space)\string\space 1.\ Esempio di testo latino con segni prosodici <<\space r (\string\space) \medskip 2.\ Esempio di testo latino con segni prosodici <<\begin{otherlanguage}{latin}\ProsodicMarksOn ros=a invincib^ilis \end{otherlanguage}>>

\medskip

%3.\ Esempio di testo latino con segni prosodici
%<<\foreignlanguage{latin}{\ProsodicMarksOn %ros=a invincib^ilis}>>
%
% \medskip

4.\ Esempio di testo latino con segni prosodici
\foreignlanguage{latin}{\scantokens{\ProsodicMarksOn ros=a invincib^ilis\empty}}

4.\ Esempio di testo latino con segni prosodici \space\space r (\string\space\string\space)

4.\ Esempio di testo latino con segni prosodici \space r (\string\space)

\medskip

5.\ Esempio di testo latino con segni prosodici
\foreignlanguage{latin}{\unskip\scantokens{\ProsodicMarksOn ros=a invincib^ilis\empty}}

5.\ Esempio di testo latino con segni prosodici r (\string\unskip)

\medskip

6.\ Esempio di testo latino con segni prosodici
\foreignlanguage{latin}{\unskip\unskip\scantokens{\ProsodicMarksOn ros=a
invincib^ilis\empty}}

6.\ Esempio di testo latino con segni prosodici r (\string\unskip\string\unskip)

\end{document}`
Nel caso 1 ci sono due spazi fra le virgolette aperte e la “r”, come si vede dalle due righe successive: nella seconda le “r” sono allineate (e sono stati aggiunti due spazi).

Nel caso 2 lo spazio prima delle virgolette chiuse è dovuto al fine riga prima di \end{otherlanguage}. Comunque in questi casi va usato “otherlanguage*” che è più efficiente (e non suppone di racchiudere interi capoversi).

Il caso 3 è commentato perché dà un errore che ho già spiegato.

Il caso 4 mostra come effettivamente ci siano due spazi di troppo. Il caso 5 mostra l’effetto di aggiungere un \unskip, ancora insufficiente. Nel 6 si vede che l’aggiunta di due \unskip fa allineare perfettamente le due “r”.

Se a te viene diversamente ci dev’essere qualche differenza nella distribuzione: questo è il risultato di \listfiles.
` article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
fontenc.sty
t1enc.def 2005/09/27 v1.99g Standard LaTeX file
babel.sty 2008/07/06 v3.8l The Babel package
latin.ldf 2008/07/06 v2.0l Latin support from the babel system
italian.ldf 2008/03/14 v1.2t Italian support from the babel system`
È un problema che bisogna cercare di risolvere.

Ciao
Enrico

Go to top