Newsgroup: it.comp.software.tex
Titolo: Ottenere il numero di pagina corrente

Come si puo' definire un comando che scriva su un file il numero di
pagina assoluto in cui il comando si trova e possibilmente in grado di
funzionare con tutti i formati?.
Grazie
Riccardo

r.de...@tiscalinet.it
 (Riccardo de Maria) scrive:

Direi di no, visto che ogni formato ha le sue idee sul contatore
che contiene il numero di pagina. In Plain TeX hai \count0, in 
LaTeX `page'.
Il problema poi ha un altro aspetto, quello dell'asincronia 
nell'output delle pagine, risolto in LaTeX con cose del tipo
\label e \ref.
Ciao
Enrico

 \label e \ref.
Quindi un comando di \immediate\write\the\count0 potrebbe non
funzionare?
Tra l'altro come e' possibile scegliere uno stream di output
sicuramente non occupato?
La ragione di questo comando e' che ho trovato il modo di comandare
xdvi con uno script e vorrei comunicargli di visualizzare la pagina
che sto editando con vi ridefinendo il comando 'salva' in modo che
scriva nella posizione del cursore il comando in questione. In questo
modo il mio script ,che si accorge che il sorgente e' piu' nuovo del
.dvi, aggiorna, o apre se non e' gia' aperto, xdvi alla pagina giusta
leggendo il file che il comando ha opportunamente creato.
Riccardo

 funzionare?
No. TeX produce le pagine in maniera asincrona, e potrebbe stare 
elaborando testo che poi finirà alla pagina successiva.
-- 
Giuseppe "Oblomov" Bilotta
Axiom I of the Giuseppe Bilotta
theory of IT:
Anything is better than MS

 elaborando testo che poi finirą alla pagina successiva.
In che modo allora puo' funzionare l'accoppiata winedt yap? Winedt
riesce a comunicare a yap la posizione corrente che yap indichera' con
un cerchietto.
Riccardo

un cerchietto.
Non ho capito (e non ci tengo neppur tanto a capire) tutto il meccanismo ad
orologeria che vuoi costruire; mi pare pero` che un ingranaggio potrebbe
essere costituito dall'inserimento di uno \special in un punto opportuno del
sorgente TeX. xdvi o chi per lui rintraccerebbe quindi la posizione dello
special (posto che sia in grado di farlo).
Ciao.

 un cerchietto.
L'opzione --src(-special), quando passata al compilatore, inserisce 
nel flusso di dati che finirà nel DVI un codice indicante il file e la 
riga d'origine. Questo codice (source special) "cammina" con il testo 
a cui si riferisce e quindi "finisce" sempre al posto giusto. Quando 
WinEdt dice a YaP di cercare un certo file + una certa riga, YaP 
elabora tutti i source special fino a trovare quelli giusti. 
Viceversa, se fai doppio click sul .dvi, YaP cerca il source special 
più vicino e finisce al posto giusto nel file. Le pagine non entrano 
mai in gioco.


 posizione dello special (posto che sia in grado di farlo).
Il meccanismo e' pronto funziona bene ed e' robusto, manca solo
l'ingranaggio che tiene aggiornato il dvi sulla pagina corretta. La strada
che suggerisci potrebbe andare, tuttavia complica un  po' le cose.
Grazie
Riccardo

che suggerisci potrebbe andare, tuttavia complica un  po' le cose.
Immagino, si`; ma d'altra parte, se e` vero quello che ci dicono, che la
nozione di "pagina" nell'esecuzione di TeX e` un insondabile mistero, non
vedo molte altre alternative se non "metterci un segno", rintracciabile in
seguito.
A me, d'altra parte, e` sempre bastato il refresh normale di xdvi o di yap;
questione, evidentemente, di gusti e di abitudini di lavoro.
Ciao.

 rintracciabile in seguito.
Ho provato a guardare dentro il dvi, ma si capisce poco. Hai idea di come
recuperare la pagina 'marcata' nel dvi? Al limite si possono contare gli
inizi pagina (sono identificabili?) fino allo special.
Riccardo

inizi pagina (sono identificabili?) fino allo special.
No, io non ne ho nessunissima idea. O meglio, l'unica idea che avevo al
riguardo era che un visualizzatore di DVI (yap, xdvi o chi per essi),
potesse *forse* avere un'idea di come rintracciare gli special.
Sicuramente lo fanno per generare le immagini; e yap ha una voce di menu
"Source specials", che non ho mai capito a che cosa serva, ma a qualche cosa
dovra` pure servire, e pare appunto che riguardi gli special.
La speranza insomma era che ci si arrivasse cosi`: con funzioni, opzioni di
comando o che altro gia` fornite dal visualizzatore, senza scomodarsi a
vivisezionare i DVI.
C'e` poi, certo, la possibilita` di documentarsi circa il formato dei DVI e
fare questo o quello. Pero` su questo non saprei proprio come aiutarti.
So che c'e` una libreria perl TeX::DVI, ma non so in dettaglio che cosa
renda possibile fare.
Ciao.


È quello che fa YaP.


 renda possibile fare.
Ah, questo non lo sapevo. Molto interessante; e pensare che ho perso 
un sacco di tempo a farlo da me ...


un sacco di tempo a farlo da me ...
Essenzialmente, ho visto giusto ora, e` una libreria per *scrivere* DVI.
C'e` pero` anche un sotto-modulo TeX::DVI::Parse con cui, con un po' di
pazienza, e` possibile interpretare un DVI, e fare cose in corrispondenza di
cose.
Ciao.