Re: Gli oggetti mobili, questi sconosciuti

#62650
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    Ragazzi, ho letto il codice della routine di uscita diversi anni fa; non vorrei rileggerla, perché non è una esperienza divertente. Tuttavia le disuguaglianze che la routine verifica sono sequenziali, e non ha importanza quale incontra prima; anch’io direi che almeno in una sequenza fissa, ma non chiara all’esterno, le varie possibilità sono sempre controllate e la prima che soddisfa a tutte le condizioni viene eseguita, ma per qualche motivo che mi sfugge p è diversa; se è da sola funziona, se è in compagnia funziona di meno (secondo la mia esperienza e secondo quel che dice Lamport) non funziona affatto, ma è un dato empirico, non è una dimostrazione rigorosa.

    La routine di ptput definisce due comandi per vedere cosa succede quado ci sono degli oggetti mobili da controllare: \trecefloats e \tracefloatvals il primo dovrebbe mostrare sul file log tutto quello che succede e il secondo dovrebbe mostrare via via i parametri dimensionali o numerici quando cambiano. La brutta notizia è che non sono attivi se il formato non è stato compilato con l’opzione trace, come infatti succede normalmente.

    Quello che ho potuto constatare rileggendo molto rapidamente e superficialmente il file /texmf-dist/source/latex/base/ltoutput.dtx, è che h viene gestito prima e per conto suo, poi vengono gestiti t e b passando dall’uno all’altro a secondo che l’inserimento t abbia avuto o non abbia avuto successo, poi viene gestito p; quando una cosa non ha successo, il fluat viene messo nella \@deferlist per essere riesaminato per l’output della pagina successiva. le 18 scatole servono per tutti gli oggetti mobili, tranne le note marginali, da quel che ho capito, e sono gestiti mediante il concetto primitivo di insert. ogni lista contiene un numero che nei 5 bit meno significativi (dalla posizione 0 alla posizione 4) contiene i bit impostati a 1 se la posizione –nell’ordine– h, t, b, p ! è stata specificata; il bit 6 serve per le figure, il bit 7 per le tabelle, i bit successivi sono destinati all’identificazione di altri oggetti mobili da definire per esempio con il pacchetto float. Ne segue, certamente, che l’ordine con il quale vengono specificate le opzioni di posizione è irrilevante e che l’unica cosa che conta è l’ordine con cui sono gestite le code iniziali e le code differite.

    Molto difficile da leggere, più difficile di come lo ricordavo. Speriamo che Enrico possa illuminarci meglio.

    Go to top