Re: Eliminare quel dannato spazio spurio dopo \ProsodicMarksOn

#57237
Up
0
Down
::

Carissimi, innanzitutto buona Festa! 🙂

Questo è un documento “abbastanza” minimo.
`\documentclass{scrreprt}
\usepackage[writefile]{listings}
\usepackage{classicthesis-ldpkg}
\usepackage{classicthesis}
\usepackage[latin,italian]{babel}
\languageattribute{latin}{withprosodicmarks}
\usepackage{arsclassica}

\lstset{language=[LaTeX]Tex,
showstringspaces=false,
breaklines=true,
frame=lines,
}

\lstset{extendedchars}
\makeatletter
\lstnewenvironment{sidebyside}{%
\global\let\lst@intname\@empty
\setbox\z@=\hbox\bgroup
\setkeys{lst}{columns=fullflexible,%
linewidth=0.45\linewidth,keepspaces=true,%
breaklines=false,%
breakindent=0pt,%
boxpos=t,%
basicstyle=\small\ttfamily
}%
\lst@BeginAlsoWriteFile{\jobname.tmp}%
}{%
\lst@EndWriteFile\egroup
\begin{center}%
\begin{minipage}{0.45\linewidth}%
\hbox to\linewidth{\box\z@\hss}
\end{minipage}%
\qquad
\begin{minipage}{0.45\linewidth}%
\setkeys{lst}{frame=none}%
\leavevmode \catcode`\^^M=5\relax
\small\input{\jobname.tmp}%
\end{minipage}%
\end{center}%
}
\makeatother

\begin{document}

\begin{sidebyside}
\dots testo in italiano.

\begin{otherlanguage*}{latin}
Gallia est omnis divisa in
partes tres, quarum unam
incolunt Belgae, aliam
Aquitani, tertiam qui ipsorum
lingua Celtae, nostra Galli
appellantur.
\end{otherlanguage*}
\end{sidebyside}

\begin{sidebyside}
\begin{otherlanguage*}{latin}
\ProsodicMarksOn
ros^a \\
ros=a
\end{otherlanguage*}
\end{sidebyside}

\begin{sidebyside}
\begin{otherlanguage*}{latin}
\ProsodicMarksOn
Galli^a est omn^is divis^a in
part=es tr=es, qu=arum un^am
inc^olunt Belgae, ali^am
Aquitan=i, terti^am qu=i
ips=orum lingu=a Celtae,
nostr=a Gall=i appell=antur.
\end{otherlanguage*}
\end{sidebyside}

\end{document}`
Come vedete, la dichiarazione \ProsodicMarksOn introduce dopo di sé un fastidioso spazio spurio, che vorrei eliminare, facendo sì che il secondo e il terzo esempio non abbiano alcun rientro (proprio come il primo, che mi va benissimo).

Mi va bene anche uno sporco trucco: che so, ridefinire localmente \ProsodicMarksOn in modo da curarlo, oppure anche ridefinire sidebyside in modo che il problema venga mascherato.

Grazie mille,
L.

Ne abbiamo già discusso a lungo. Non mi pare un’ottima idea quella di consigliare un metodo che ha parecchi limiti, ora che siamo in tempi di Unicode. Naturalmente ti rendi conto che chi non ha la correzione di babel.def non avrà il risultato sperato.

Sperando che babel.def venga corretto al più presto, ecco l’inganno per far funzionare \ProsodicMarksOn in sidebyside:
`\lstnewenvironment{sidebyside}{%
\addto\extraslatin{\preto\ProsodicMarksOn{\unskip}}
\global\let\lst@intname\@empty
…`
Ciao
Enrico

Go to top