Leggere un contatore al cambio pagina.

  • Creatore
    Topic
  • #102263
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao.
      È possibile attivare una macro TeX sempre e subito dopo che il sistema ha chiuso una pagina e ne ha aperta una nuova?
      Questa macro dovrebbe poter scrivere un contatore TeX.

      L’idea è quella di realizzare un sistema tipo longtable ma con righe di tabella di altezza fissa.
      Questo pacchetto misura lo spazio ancora disponibile nella pagina e eventualmente chiude l’ambiente tabular per riaprirlo nella pagina successiva.
      Il pacchetto nel momento di cambio pagina è in grado di inserire un ultima riga alla tabella così come una prima riga nella successiva.

      Se invece di una tabella utilizzassi un \box di altezza fissa, basterebbe emetterli in sequenza per dare lo stesso risultato di una tabella multipagina.
      Tuttavia non avrei la possibilità di gestire l’ultima riga e la prima della pagina successiva.

      Per inserire una prima riga, tipicamente con le intestazioni di colonna, ho pensato di attivare una macro non appena TeX ha fatto il cambio pagina.
      Invece, per inserire un ultima riga le cose si fanno più difficili.

      longtable o supertabular sono pacchetti che funzionano ma vorrei tentare con una tabella multipagina ad altezza di colonna fissa.
      Grazie a chi vorrà partecipare alla discussione.
      R.

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #102264
        Up
        0
        Down
        ::


        Forse puoi utilizzare un condizionale con le due dimensioni [tt]\pagegoal[/tt] e [tt]\pagetotal[/tt] che ti danno rispettivamente quanto resta di pagina da occupare o quanto hai già occupato. Quindi se [tt]\pagetotal[/tt] è pari a zero dovresti essere su una pagina nuova.
        `
        \ifnum\pagetotal=\z@
        codice per inizio pagina
        \else
        altro codice
        \fi
        `

      • #102265
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          skevin93″ post=102078Forse puoi utilizzare un condizionale con le due dimensioni [tt]\pagegoal[/tt] e [tt]\pagetotal[/tt] che ti danno rispettivamente quanto resta di pagina da occupare o quanto hai già occupato. Quindi se [tt]\pagetotal[/tt] è pari a zero dovresti essere su una pagina nuova.
          `
          \ifnum\pagetotal=\z@
          codice per inizio pagina
          \else
          altro codice
          \fi
          `

          Si ma io non so in quale punto parte la “tabella” multipagina.
          Vorrei che TeX mi comunicasse in qualche modo il momento in cui sta attraversando un confine di pagina. Così posso emettere un ultima riga e una prima riga di pagina successiva opportune.
          Il pacchetto longtable fa un calcolo dell’altezza di pagina ancora disponibile ma ha qualche approssimazione, o forse era supertabular?
          Ricordo che Enrico mi passò una macro per sostituire quella del pacchetto per eliminare l’altezza, dimensione di sicurezza, aggiunta dal pacchetto.
          Poi nel tempo ho cambiato strategia emettendo righe di testo che simulano una riga di tabella, ma ovviamente, senza la possibilità d’inserire ultima o prima riga personalizzata.
          Vorrei provare a inserire almeno la prima riga ripetendo le intestazioni di colonna. Nell’ultima riga andrebbe inserito un testo tipo “prosegue nella pagina successiva” ma è meno importante in un report della ripetizione delle intestazioni.
          Grazie.
          R.

        • #102266
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Io penso che il cnfronto vda fatto fra la differenza di \pagegaol e \pagetoral; se questa differenza è appena maggiore, oppure ugale all’altezza della riga finale, emettel la riga finale, cambia pagina e poi inizia con la riga di intestazione. Se in realtà stati componendo una tabella con righe di altezza fissa, non capisco perché longtable non vada bene; ma il test che ti ho indicato funziona piuttosto bene, anche se devi sperimentare un poco per gestire l’altezza limite alla quale la macro deve intervenire. Ovviamante devi mettere questo codice ad ogni irga, perché non sai in quale riga avverrà il confronto giusto. Probabilmente ti può essere itile la token list \everycr che dovrebbe essere messa ina azione automaticamente ad ogni alla fine di ogni irga.

          • #102267
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::


              Grazie Claudio. Buone notizie quindi.
              Indagherò sulle macro da te citate.
              R.

          Visualizzazione 3 filoni di risposte
          • Devi essere connesso per rispondere a questo topic.

          Go to top