tabelle allineate a textwidth+marginparwidth

  • Creatore
    Topic
  • #71308
    maurotono
    Partecipante
      Up
      0
      Down
      ::


      salve, ho provato a trovare risposta al mio problema ma ancora senza risultato.
      devo inserire tabelle in un manualetto A5 composto una colonna di testo (largo 220pt) e una colonna di margine laterale (da 120pt) che è a destra o sinistra a seconda della pagina.
      le tabelle hanno larghezza testo+margine.
      le tabelle, che inserisco nel testo, rimangono sempre allineate al testo e questo va bene solo sulle pagine con margine a destra. come fare per le pagine con margine a sinistra?
      GRAZIE
      saluti
      Mauro

      inserisco due righe di codice

      %nel preambolo ho allargato l’intestazione per avere grafica uguale a precedenti pubblicazioni dello stesso manualino
      \headwidth = 220pt % come \textwidth
      \addtolength{\headwidth}{\marginparsep}
      \addtolength{\headwidth}{\marginparwidth}

      \begin{center}
      \rowcolors{2}{}{lightgray}
      \begin{tabularx}{\headwidth }{ cXX }
      \toprule
      SIMBOLO&SIGNIFICATO&DESCRIZIONE\\
      \midrule
      \end{tabularx}
      \end{center}

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #71309
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          La cosa non è semplicissima; in un certo senso può sembrare banale se si mette l’ambiente tabular come argomento di una scatola realizzata con \makebox di larghezza specificata:
          `
          \makebox[\textwidth][]{}
          `
          dove [tt][/tt] sarà la lettera [tt]l[/tt] quando la tabella cade nella pagina di destra/dispoari e [tt]r[/tt] quando la tabella cade nella pagina di sinistra/pari.

          Lo si può fare a mano, ma bisogna farlo soltanto quando il lavoro è finito e non ci sono più modifiche da fare.

          La cosa difficile è farlo in modo automatico, perché quando si scrive l’ambiente table che contiene la tabella e la sua didascalia, non si sa su quale pagina la tabella verrà fatta muovere; il codice allora diventerebbe una cosa del genere
          `
          \newcounter{paginavera}

          \begin{table}

          % codice opportuno per recuperare il numero della pagina da un \label creato apposta oppure dal label della didascalia
          % e per assegnarlo al contatore paginavera.

          \makebox[\textwidth][\ifodd\value{paginavera}l\else r\fi]{}

          \end{table}
          `
          e la parte difficile sta proprio in quello che è descritto mediante il commento che prevede anche due alternative a seconda che si sia caricato il file hyperref oppure non si usino i collegamenti ipertestuali.

          Probabilmente esiste qualche pacchetto che permette di fare simili cose e non mi stupirei se fosse proprio ctable, che non uso spesso, anzi quasi mai, ma so che ha moltissime utili funzionalità, anche se ha dei trabocchetti nascosti.

          Io mi sono scritto le macro sia con sia senza hyperref, ma dubito che siano modelli da seguire, anche se a me funzionano. Sai queste cose artigianali funzionano spesso per chi le ha realizzate, mentre se le usa un’altra persona è facile che succedano le cose più turpi.

        • #71310
          maurotono
          Partecipante
            Up
            0
            Down
            ::


            bene, a domanda mi sono dato risposta
            per i posteri: ho usatoil pacchetto {fullwidth} –> perfetto e semplice
            domani vedo le controindicazioni, a prima compilazione sembra ok
            saluti

        Visualizzazione 1 filone di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top