Re: Gli oggetti mobili, questi sconosciuti

#62648
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    Ciao Lorenzo;
    le cose che ho scritto “traducendo”, o meglio, interpretando l’Handbook di Lamport sono lì nell’appendice; non mi sono inventato niente. Ho letto un po’ il codice della routine di output per capire meglio e ho avuto conferma che è giusto quello che scrive Lamport, il quale non le scrive sempre assolutamente giuste, ma qualche piccola “white lie” qualche bugiolina, qua e là, ce la mette.

    1) l’opzione tb può mettere l’oggetto in testa alla pagina del punto dove compare il codice per la figura, quindi in effetti un po’ prima del punto in cui si parla della figura; Lamport infatti afferma che nessun oggetto flottante viene messo in una “pagina” precedente al punto in cui il codice è inserito. Con ht la cosa non può succedere, perché h ha la precedenza.
    2) essendo stato specificato tbp, t e b hanno la precedenza; se con t o con b non va, non va né qui né nella pagina successiva, ma a fine capitolo quando c’è un \clearpage implicito e tutti i codici vengono trattati come se fossero p.
    3) sì c’è differenza tra tb e tbp, ma poca, molto poca.
    4) l’ordine in cui sono messe le opzioni è irrilevante per quel che riguarda h, perché ha sempre la precedenza, anche se è inserito per ultimo.
    5) h pretenderebbe che l’oggetto mobile vada solo lì, non in una pagina successiva, quindi il solo h bloccherebbe la coda se lì non ci può stare.
    6) be’ come al solito dipende dai vari parametri numerici e dimensionali che regolano il deflusso dalle loro code degli oggetti flottanti; tieni presente che lo spazio in mezzo al testo che può accettare un oggetto mobile ammonta, se ricordo bene, al 20% dell’altezza della griglia; quel 20% include anche la didascalia e lo spazio di separazione fra la didascalia e l’oggetto; in una pagina di 40 righe, occorrono 8 righe per inserire un oggetto mobile proprio lì e non deve superare le 8 righe; una riga di didascalia e una riga di spazio bianco fra didascalia e oggetto, fanno 6 righe per l’oggetto; componendo a 10 punti con un avanzamento di 12 punti si ha uno spazio di 72 punti in verticale per l’oggetto, vale a dire 25 mm; piccolo in questo caso vuol dire veramente “piccolo”.
    7) Sì. O per lo meno viene trattato come se fosse htb. Lamport dixit.
    8 ) come ho detto nella Guida, o meglio come ha detto Lamport, se specifichi solo h e lì l’oggetto non ci può stare, esso blocca tutta la coda e viene sputato fuori a fine capitolo quando il \clearpage implicito cambia l’operato di funzionamento della routine di uscita e obbliga lo svuotamento delle code indipendentemente dalle opzioni specificate fa parentesi quadre; l’unica cosa che viene conservata è l’ordine di entrata nella coda, quindi la coda è del tipo FIFO (first in, first out) e il numero di oggetti che vengono messi in una pagina di soli oggetti mobili dipende dalle loro dimensioni e dallo spazio minimo che esse devono occupare (tranne l’ultima pagina del capitolo dove anche lo spazio minimo non viene rispettato).
    9) dando solo t oppure solo b quella posizione viene provata di nuovo ad ogni pagina, solo h viene provata solo nella prima pagina dove compare il segnaposto dove c’era il codice dell’oggetto. Poi a fine capitolo tutte le opzioni di posizione vengono ignorate e la coda vien svuotata di forza.

    Non te la prendere; il collocamento degli oggetti flottanti è delicato; qualche rara volta si può sbloccare la situazione aggiungendo un punto esclamativo, ma di solito i risultati non sono belli, perché vengono rilasciate un po’, non completamente, le condizioni di uscita dalla coda per gli oggetti flottanti. La classe che ho scritto per la cooperativa libraria dove pubblicavo i miei testi ha delle percentuali di pagina stranissime, diverse da quelle della classe book, e talvolta rimango stupito anch’io per la disinvoltura con cui scarica gli oggetti flottanti con le opzioni di default della classe, che sono htb. Nonostante questo in più di una circostanza mi è capitato di non riuscire a gestire le code appropriatamente nemmeno a mano. Dipende anche da che cosa c’è in coda; dipende anche dalle code degli altri oggetti (e qui, nonostante abbia letto il codice della routine di uscita, non ho capito veramente se le 18 scatole che servono per conservare gli oggetti in coda siano 18 in tutto o se ce ne sono 18 per le figure, 18 per le tabelle, 18 per le note marginali, 18 per…)

    Ciao
    Claudio

    Go to top