Modificare l’altezza delle righe di una tabella

  • Creatore
    Topic
  • #37159
    Up
    0
    Down
    ::


    Buongiorno a tutti.
    Se volessi scrivere l’elenco degli alunni delle mie classi in una tabella, e poi regolare l’altezza delle sue righe in modo da poterla ritagliare e incollare sul registro in modo che le righe (dovrei mettere dopo ogni nome \midrule, ovviamente) andassero a sovrapporsi perfettamente con quelle stampate, come dovrei fare? Si assuma, per esempio, che tra una ria e l’altra ci sia 1 cm.

    Grazie
    Tommaso

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #37160
      Up
      0
      Down
      ::


      Ciao Tommaso,

      un modo semplice è:
      `{\renewcommand\arraystretch{1.2}
      \begin{tabular}{…}

      \end{tabular}}`
      Cambia 1.2 nel valore che ti serve. È un semplice fattore moltiplicativo rispetto all’altezza standard.

      Nota il fatto che è tutto racchiuso in parentesi graffe così il fattore per scalare le altezze si applica solo alla tabella corrente.
      Se al posto delle graffe avessi usato un ambiente table sarebbe stata la stessa cosa.

      Se vuoi invece un fattore che si applica a tutte le tabelle del documento basta che metti la ridefinizione nel preambolo.

      Ciao ciao.
      Fra

    • #37161
      Up
      0
      Down
      ::

      Buongiorno a tutti.
      Se volessi scrivere l’elenco degli alunni delle mie classi in una tabella, e poi regolare l’altezza delle sue righe in modo da poterla ritagliare e incollare sul registro in modo che le righe (dovrei mettere dopo ogni nome \midrule, ovviamente) andassero a sovrapporsi perfettamente con quelle stampate, come dovrei fare? Si assuma, per esempio, che tra una ria e l’altra ci sia 1 cm.

      La soluzione più semplice usa Plain TeX e non LaTeX:
      `\newdimen\entryheight
      \hsize=10cm % larghezza della colonna
      \entryheight=1cm % altezza delle righe

      \offinterlineskip % niente interlinea
      \parindent=0pt % né rientro

      \def\entry#1{\vskip-0.2pt\hrule\vskip-0.2pt
      \vbox to 1cm{\vss\hbox{#1}\vss}
      \vskip-0.2pt\hrule\vskip-0.2pt}

      \hbox{}
      \entry{Pinco Pallino}
      \entry{Tizio Caio}
      \entry{Donaldo Papero}
      \entry{Sempronio De Busillis}

      \bye`
      Compilare con pdftex e non con pdflatex. Stampare, ritagliare e incollare. 🙂

      Ciao
      Enrico

    • #37162
      Up
      0
      Down
      ::


      Buongiorno a tutti, e grazie per le risposte.
      Forse sono stato avaro di indicazioni, anche se la soluzione proposta dal noto autore è eccellente (ho anche già imparato a modificare ulteriormente l’altezza delle righe 😀 ).

      Siccome, però, sono già di mio intrigato con i comandi di LaTeX, e non conosco affatto pratico di Plain TeX, allora fornisco ulteriori elementi:

      1. vorrei che, a partire dalla prima riga, le righe dispari fossero colorate di grigio, in una tonalità molti sbiadita;
      2. tenuto conto che il cognome più lungo è “Santacatterina”, vorrei che i nomi venissero tutti incolonnati, come se li scrivessi in una table {ll};
      3. vorrei scrivere tutti i cognomi in maiuscoletto (ma anche poterlo toigliere quando voglio).

      Sono cose possibili? E se sì, come si può fare con LaTeX?

      Grazie e ciao
      Tommaso

    • #37163
      Up
      0
      Down
      ::

      Buongiorno a tutti, e grazie per le risposte.
      Forse sono stato avaro di indicazioni, anche se la soluzione proposta dal noto autore è eccellente (ho anche già imparato a modificare ulteriormente l’altezza delle righe 😀 ).

      Siccome, però, sono già di mio intrigato con i comandi di LaTeX, e non conosco affatto pratico di Plain TeX, allora fornisco ulteriori elementi:

      1. vorrei che, a partire dalla prima riga, le righe dispari fossero colorate di grigio, in una tonalità molti sbiadita;
      2. tenuto conto che il cognome più lungo è “Santacatterina”, vorrei che i nomi venissero tutti incolonnati, come se li scrivessi in una table {ll};
      3. vorrei scrivere tutti i cognomi in maiuscoletto (ma anche poterlo toigliere quando voglio).

      Sono cose possibili? E se sì, come si può fare con LaTeX?

      `\documentclass[a4paper]{article}
      \usepackage{color}
      \definecolor{mygray}{gray}{0.85}

      %\newcommand{\surnamefont}{}
      \newcommand{\surnamefont}{\textsc}

      \newlength{\cellheight}
      \newlength{\surnamelen}
      \newlength{\givennamelen}

      \settowidth{\surnamelen}{\surnamefont{Santacatterina}}
      \settowidth{\givennamelen}{Massimiliano}

      \setlength{\cellheight}{1cm} % inserire qui l'altezza voluta
      \addtolength{\cellheight}{-2\fboxsep} % non toccare questa riga
      \newcounter{cellcount}

      \pagestyle{empty}
      \offinterlineskip
      \setlength{\parindent}{0pt}

      \newcommand{\cellcolor}{%
      \ifodd\value{cellcount}mygray\else white\fi}

      \newcommand{\entry}[2]{%
      \stepcounter{cellcount}%
      \colorbox{\cellcolor}{%
      \vbox to \cellheight{
      \vss
      \hbox{%
      \makebox[\surnamelen][l]{\surnamefont{#1}}\quad
      \makebox[\givennamelen][l]{#2}%
      }
      \vss
      }%
      }\par
      }

      \begin{document}

      \hrule
      \entry{Santacatterina}{Filippo}
      \entry{Sempronio}{Massimiliano}
      \entry{Cesare}{Gaio Giulio}
      \entry{Pompeo}{Gneo}
      \hrule

      \end{document}`
      I filetti servono solo per indicare dove rifilare.

      La soluzione Plain era gratis, per questa c’è il supplemento LaTeX

      Ciao
      Enrico

    • #37164
      Up
      0
      Down
      ::


      Grazie!
      Dopo a casa mi metto subito all’opera.
      Mi spieghi perché non sono capace di fare queste cose, che poi sono banali?

      Un’ultima cosa: l’altezza di ogni riga è di circa 7,4 mm (misurando con un banale righello).
      Qual è l’unità di misura più corretta per lavori di questo tipo, tra tutte quelle riconosciute da LaTeX?

      Grazie
      Tommaso

      PS: il supplemento LaTeX sarà corrisposto con enorme piacere, dopo il tramonto, di qui a un ciclo lunare completo.

      PPS: e gli svarioni nel mio primo messaggio sono causati da questa stupida tastiera che ho a scuola, con i tasti separati da un centimetro di spazio, con le lettere cancellate, con un tempo di rilascio geologico.

    • #37165
      Up
      0
      Down
      ::

      Grazie!
      Dopo a casa mi metto subito all’opera.
      Mi spieghi perché non sono capace di fare queste cose, che poi sono banali?

      Un’ultima cosa: l’altezza di ogni riga è di circa 7,4 mm (misurando con un banale righello).
      Qual è l’unità di misura più corretta per lavori di questo tipo, tra tutte quelle riconosciute da LaTeX?

      C’era un piccolo errore di valutazione, bisogna correggere il valore di \cellheight per tener conto del parametro \fboxsep, aggiungendo
      `\addtolength{\cellheight}{-2\fboxsep}`
      Stampando ottengo esattamente un centimetro, non fidarti del monitor. Correggo anche nel messaggio precedente.

      Ciao
      Enrico

    • #37166
      Up
      0
      Down
      ::


      Ciao.
      Il comando che hai proposto nel tuo ultimo messaggio compare già nel codice che mi hai dato sopra, esattamente identico.
      Indendevo dire che sul registro, le righe sono alte 7,4 mm 😀

      Mi sono spiegato male.

      Ciao
      Tommaso

    • #37167
      Up
      0
      Down
      ::

      Ciao.
      Il comando che hai proposto nel tuo ultimo messaggio compare già nel codice che mi hai dato sopra, esattamente identico.
      Indendevo dire che sul registro, le righe sono alte 7,4 mm 😀

      Mi sono spiegato male.

      Infatti, ho corretto il codice dopo essermi accorto della magagna. Basta scrivere 7.4mm in vece che 1cm.

      Ciao
      Enrico

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

Go to top