::
E vero che la documentazione di marginnote non usa floata di nessun genere, ma dice anche che talvolta la parità della pagina reale non è individuata in modo corretto. (fine dell’abstract). Poi elenca i problemi che marginnote incontra e talvolta indica come risolverli.
Purtroppo l’autore Marcus Kohm non documenta bene il suo codice (spesso contorto secondo il mio senso di contorsione, che non necessariamente è codniviso da altri) quindi il suo codice è difficile da interpretare. Ci ho provato e ho rinunciato.
Dice di seguire un metodo tipo quello di usare un \label, ma dal codice che sono riuscito ad interpretare egli non usa davvero il comando \label, o meglio dice di usare lo stesso meccanismo, ma di usare un altro prefisso. Il risultato è che non capisco che cosa faccia con questo suo particolare label. Non lo vedo mai usato nemmeno colo suo nuovo prefisso. Sarò io che non sono capace di leggere il suo codice, ma questo è il risultato.
Il caso della nota 96 nella pagina 32 dimostra, secondo me chiaramente, che il metodo di Kohm non funziona bene, perché lo stile di quella nota è quello della pagina precedente, e non quello della pagina corrente. La spiegazione che ti ho dato nel primo messaggio si applica perfettamente.
Ora, siccome è difficilissimo modificare un codice che non si capisce, se vuoi puoi provarti a cimentarti con la definizione di una nuova macro, che devi inventarti, che sappia estrarre il numero di pagina da trarre da un label con etichetta creata apposta; per esempio definendo un nuovo contatore notamarginale e specificando, ogni volta che scrivi una nota margnale con un comando del tipi \LaMiaNotaMarginale che scriva un label del tipo \label{nota:\thenotamarginale} dopo aver incrementato il contatore di una unità. Prima di procedere oltre deve ricavare, se esiste, il contenuto del newlabel che abbia quell’etichetta; se non lo trova, vuol dire che è la rpima volta che si usa il comando. Ma se esiste il new label scritto solo al momento dello ship-out della pagina vera, esso contiene il riferimento della pagina vera, non solo quello del numero della nota, che non usa per altri scopi. Allora diventa facile verificare la parità del numero voro e procedere coerentmente a seocnda di questa parità.
In teoria il codice di Kohm dovrebbe fare queste coe più altre, tipo quella di scrivere la nota marginale come argomento di una macro \vadjust, ma se non usi queste note marginali in posizioni strane la tua \LaMiaNotaMarginale può tranquillamente usare \amrginpar senza fare altre acrobazie.
Non è facile, perché si tratta di codice delicato; probabilmente devi usare le macro con argomenti delimitati da definire con comandi di basso livelllo; ma si può fare. Io l’ho fatto in circostanze diverse dalle tue, am ci sono riuscito; tu devi adattare l’idea che ti ho descritto al tuo uso personale di queste note marginali.
D’altro canto non mi stupirei se il tuo problema,che sembra sia stato adombrato anche da Markus Kohm, di note marginali emesse fra due capoversi potrebbe sparire se ridefinissi i comando\note in questo modo` \newcommand\note[1]{ % questo è il comando preoccupante
\leavevmode\hphantom{A}\relax
\ifodd\value{page}\marginnote{> #1}\else\marginnote{#1 <}\fi
}`Io l'ho provato e l'impaginazione è leggerissimamente cambiata per cui non c'è più nessuna nota che capti ad inizio pagina.
\leavevmode permette da passare dal modo verticale a quello orizzontale; \hphantom{A} permette di inserire un oggetto orizzontale nascondendolo e imponendogli una larghezza nulla; in questo modo la \nota produce i suoi effetti da dentro un capoverso e a me risultano tutte le note con il formato previsto per le pagine pari e per quelle dispari (ho anche imposto l'opzione twoside alla classe). Tuttavia, siccome con il ciclo for che prevede 164 capoversi non succede mai che un capoverso cominci nella prima riga di una pagina non posso essere sicuro che quello che ho fatto sia davvero efficace