Ho risolto il mio problema 🙂 (è il primo caso di un topic monoutente?).
Ho trovato un modo per aggirare il problema di non saper aggiungere uno al risultato di \pageref. Credo, al di là dell’ineleganza, che funzioni. Allego il risultato commentato, a futura memoria e ringrazio il prof. Gregorio per i suoi “appunti di programmazione” che mi sono stati utili.
Lorenzo
`
\newcounter{numsalmo}% contatore numero del salmo
\newcounter{diff}% contatore per lo “sporco trucco con \thepage”
\newenvironment{salmo}[1]
{\stepcounter{numsalmo}% ogni chiamata dell'environment fa scattare il numero per avere
% numerazione delle antifone e per non definire in maniera multipla le labels
\def\antifona{#1}% memorizza l'antifona per usarla nella seconda parte di \newenvironment
\leavevmode\label{pi-\thenumsalmo}\setcounter{diff}{-\thepage}% mette la label della pagina
% iniziale (pi) e memorizza nel contatore il valore negativo della pagina (anche se non è sicuro)
\textbf{Ant.~\thenumsalmo}: #1
\begin{quotation}
}
{\end{quotation}%
\leavevmode\label{pf-\thenumsalmo}% forzata l'uscita dal modo verticale
% mette la label della pagina finale (pf)
\noindent\textbf{Ant.~\thenumsalmo}: %
\addtocounter{diff}{\thepage}% dopo questa operazione in \thediff c'è la differenza tra pagina
% iniziale e pagina finale AL NETTO DELL'ATTENDIBILITA' del metodo con l'uso di
% \thepage. Questa differenza viene usata nel terzo \ifthenelse
\ifthenelse{\equal{\pageref{pi-\thenumsalmo}}{\pageref{pf-\thenumsalmo}}}
{v.~sopra}% se c'è uguaglianza di pagine, sia per oneside che per twoside scrive v. sopra
{\ifthenelse{\NOT\boolean{@twoside}\OR\isodd{\pageref{pi-\thenumsalmo}}}% qui siamo
% sicuri che p. finale > p. iniziale. Se non siamo twosided O la pagina iniziale è dispari allora
% si riscrive l'antifona.
{\antifona}
{\ifthenelse{\isodd{\pageref{pf-\thenumsalmo}}\AND\thediff<2}% se siamo qui vuol
% dire che siamo twosided e la pagina iniziale è pari. Visto che non funziona la scrittura
% \pageref{}+1 usiamo lo sporco trucco: mettiamo come condizione l'essere dispari la
% pagina finale. Questo funziona ma introduce dei “falsi positivi”: ad esempio con p. iniz =2
% e p. fin=5 verrebbe scritto “v. accanto” invece di riscrivere \antifona. Allora aggiungiamo
% la condizione che \thediff sia < 2. Questo, pur nella non sincronicità del contatore \thepage
% assicura che larghe differenze di pagina non ricadano in questo ramo dell'\ifthenelse, ma
% nel successivo dove si riscrive esplicitamente l'antifona.
{v.~accanto}
{\antifona}
}
}
}`