Longtable con empty rows

  • Creatore
    Topic
  • #65044
    Up
    0
    Down
    ::


    Salve a tutti, sono un nuovissimo utente e praticamente un nuovo utente con latex.

    Scrivo qui perché mi sto imbattendo in un problema e non riesco a trovare una soluzione.

    Ho la necessità di inserire in una pagina, all’interno dello stesso ambiente table, 3 tabelle.

    La prima e la terza hanno delle dimensioni predefinite e le creo con il \begin{tabular}.

    Il problema è che la dimensione della seconda tabella non mi è nota a priori e ci può essere la possibilità che questa possa essere divisa in più pagine….ed allora ho pensato di utilizzare una longtable.

    Sostanzialmente creo la longtable e poi faccio un \input{dati} con il file dati.tex che contiene i campi della tabella già formattati e pronti per l’uso.

    Il mio problema è che vorrei avere una longtable con tante righe (ovviamente vuote se necessario) sufficienti a riempire l’intera pagina. Ossia se in dati.tex ho una sola riga, vorrei che la longtable avesse una riga compilata e poi un tot numero di righe vuote sufficienti a riempire la tabella fino alla fine della pagina (ci sarebbe poi da considerare che lo spazio libero da riempire è sempre quello compreso tra la prima e la terza tabella che devono stare all’inizio e alla fine del documento).

    Ora quello che ottengo è solo una tabella lunga quante sono le righe presenti nel file dati.tex, ossia una tabella che dinamicamente si adatta alle righe presenti.

    Spero che il problema sia chiaro e spero che qualcuno possa darmi una dritta, anche dei documenti da leggere per capire il da farsi.

    Stavo infatti pensando di lavorare sul longtable.sty ma onestamente non so bene dove mettere le mani.

    Accetto qualsiasi consiglio.

    Grazie in anticipo per la disponibilità

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #65045
      Up
      0
      Down
      ::

      MiceneSagitter” post=64104Salve a tutti, sono un nuovissimo utente e praticamente un nuovo utente con latex.

      Scrivo qui perché mi sto imbattendo in un problema e non riesco a trovare una soluzione.

      Ho la necessità di inserire in una pagina, all’interno dello stesso ambiente table, 3 tabelle.

      La prima e la terza hanno delle dimensioni predefinite e le creo con il \begin{tabular}.

      Il problema è che la dimensione della seconda tabella non mi è nota a priori e ci può essere la possibilità che questa possa essere divisa in più pagine….ed allora ho pensato di utilizzare una longtable.

      Sostanzialmente creo la longtable e poi faccio un \input{dati} con il file dati.tex che contiene i campi della tabella già formattati e pronti per l’uso.

      Il mio problema è che vorrei avere una longtable con tante righe (ovviamente vuote se necessario) sufficienti a riempire l’intera pagina. Ossia se in dati.tex ho una sola riga, vorrei che la longtable avesse una riga compilata e poi un tot numero di righe vuote sufficienti a riempire la tabella fino alla fine della pagina (ci sarebbe poi da considerare che lo spazio libero da riempire è sempre quello compreso tra la prima e la terza tabella che devono stare all’inizio e alla fine del documento).

      Ora quello che ottengo è solo una tabella lunga quante sono le righe presenti nel file dati.tex, ossia una tabella che dinamicamente si adatta alle righe presenti.

      Spero che il problema sia chiaro e spero che qualcuno possa darmi una dritta, anche dei documenti da leggere per capire il da farsi.

      Stavo infatti pensando di lavorare sul longtable.sty ma onestamente non so bene dove mettere le mani.

      Accetto qualsiasi consiglio.

      Grazie in anticipo per la disponibilità

      Benvenuto!

      Sarebbe stato utile avere il codice che hai per il momento creato. In attesa di questo ti consiglio di leggere gli Appunti di programmazione di Enrico Gregorio (p. 112)

      Ciao
      Ivan

    • #65046
      Up
      0
      Down
      ::


      Prima di tutto grazie per la risposta, anche se forse ho trovato una edizione differente del testo che mi consigliavi, visto che non trovo nulla in quella pagina, cmq ora ti posto i codici….

      allora questo è il master file:

      `

      \documentclass[a4paper]{article}
      \usepackage[a4paper, top=2.5cm, bottom=3.5cm, right=1.5cm, left=1.5cm]{geometry}
      \usepackage[english]{babel}
      \usepackage{makeidx}
      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}
      %\usepackage{courier}
      \usepackage[scaled]{helvet}
      \renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
      \usepackage{color}
      \usepackage[pdftex]{graphicx}
      \usepackage{MioStile}
      \usepackage{genmpage}
      \usepackage{multirow}
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \spettle{Spett.le}
      \destCorrispondenza{Destinazione corrispondenza}
      %%%%%%%% COMANDI DI IMPAGINAZIONE %%%%%%%
      \testatina
      \piedino
      \pagestyle{fancy}
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %
      \input{dati_in_tabella_prima_riga_fattura}%
      %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \begin{document}
      \SpazioVuoto
      \intestazione
      %\SpazioVuoto
      \fattura
      \end{document}

      `

      Negli input passo i dati già formattati correttamente

      Nel file MioStile.sty ho definito i vari comandi che vedi nel master file…..senza riportare proprio tutto il codice che sarebbe troppo dispersivo metto la parte relativa al comando \fattura

      `

      \newcommand{\fattura}
      {
      \begin{table}[!h]
      \centering
      % sottotabella per dati contabili cliente
      %\begin{tabular}{|l|l|l|l|l|}\hline\hline
      \begin{tabular}{|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{3.5cm}|}\hline%\hline
      % prima riga fattura
      \cambiaFont{Cod.Cliente}\rb & \cambiaFont{Cod.Fornitore}\rb & \cambiaFont{Partita IVA} & \cambiaFont{Num. documento} & \cambiaFont{Data documento} & \cambiaFont{Agente}\\
      % valori prima riga fattura
      \textbf{\@codCliente} & & \textbf{\@partitaIVA} & \textbf{\@numDoc} & \textbf{\@dataDoc} & \textbf{\@agente}\\ \hline
      % seconda riga fattura
      \multicolumn{2}{|l|}{\cambiaFont{Cod. e descr. pagamento}\rb} & \multicolumn{2}{l|}{\cambiaFont{Codice~IBAN}} & \multicolumn{2}{p{6cm}|}{\cambiaFont{Banca d'appoggio}}\\
      % valori seconda riga fattura
      \multicolumn{2}{|l|}{\textbf{\@codiceTipoPagamento}} & \multicolumn{2}{l|}{\textbf{\@codiceIBAN}} & \multicolumn{2}{p{6cm}|}{\textbf{\@bancaAppoggio}} \\ \hline
      % terza riga fattura
      \multicolumn{2}{|l|}{\cambiaFont{telefono}\rb} & \multicolumn{1}{l|}{\cambiaFont{Valuta}} & \multicolumn{3}{l|}{\cambiaFont{Tipo documento}}\\
      % valori terza riga fattura
      \multicolumn{2}{|l|}{\textbf{\@telefono}} & \multicolumn{1}{l|}{\textbf{\@valuta}} & \multicolumn{3}{l|}{\textbf{\@tipoDocumento}} \\ \hline\hline
      %\multicolumn{6}{|c|}{}
      %\hline
      %\end{longtable}
      \end{tabular}
      %\end{table}
      % sottotabella per descrizione merci
      \end{table}
      % sottotabella per descrizione merci
      \vspace{-0.43cm}

      \begin{longtable}{|p{1.5cm}|p{6.9cm}|p{.5cm}|p{1cm}|p{1.73cm}|p{1cm}|p{1.5cm}|p{1cm}|}\hline%\hline
      % quarta riga fattura
      \small{\textbf{Codice}}\rb & \small{\textbf{Descrizione}} & \small{\textbf{U.M.}} & \small{\textbf{Q.t}} & \small{\textbf{Prezzo Un.}} & \small{\textbf{Sc.~\%}} & \small{\textbf{Imp.~Netto}} & \small{\textbf{IVA~\%}}\\ \hline
      \endfirsthead
      % continuazione della longtable in pagine successive
      \multicolumn{8}{c}{ — Continued} \\[.5ex]
      \hline
      \small{\textbf{Codice}}\rb & \small{\textbf{Descrizione}} & \small{\textbf{U.M.}} & \small{\textbf{Quantit}} & \small{\textbf{Prezzo Un.}} & \small{\textbf{Sc.~\%}} & \small{\textbf{Imp.~Netto}} & \small{\textbf{IVA~\%}}\\
      \hline
      \endhead
      %This is the footer for all pages except the last page of the table…
      \multicolumn{8}{c}{\vspace{.4cm}{Continued on Next Page\ldots}} \\
      \endfoot
      %This is the footer for the last page of the table…
      \hline\hline
      \endlastfoot
      %Now the data…
      \input{dati_in_tabella_descrizione_merci}
      \hline
      \end{longtable}

      %sottotabella per riepilogo finale dati contabili
      % quinta riga fattura
      \begin{table}[!b]
      \begin{tabularx}{18.3cm}{|X|X|X|X|}
      \hline\hline
      \small{\cambiaFont{Totale merce}}\rb & \small{\cambiaFont{\%~Sconto}} & \small{\cambiaFont{Importo sconto}} & \small{\cambiaFont{Netto merce}}\\
      % valori dei campi
      {\textbf{\@totaleMerce}}\rb & \textbf{\@percSconto} & \textbf{\@importoSconto} & \textbf{\@NettoMerce} \\ \hline
      \end{tabularx}
      \begin{tabularx}{18.3cm}{|X|X|X|X|}
      \hline
      \small{\cambiaFont{Bolli}}\rb & \small{\cambiaFont{Spese Incasso}} & \small{\cambiaFont{Varie}} & \small{\cambiaFont{Acconto}}\\
      % valori dei campi
      {\textbf{\@bolli}}\rb & \textbf{\@speseIncasso} & \textbf{\@varie} & \textbf{\@acconto} \\ \hline
      \end{tabularx}
      \begin{tabularx}{18.3cm}{|X|X|X|}
      \hline
      \small{\cambiaFont{Imponibile}}\rb & \small{\cambiaFont{Aliquota IVA}} & \small{\cambiaFont{Importo IVA}}\\
      %Now the data…
      \input{dati_in_tabella_imponibile}
      \hline
      \end{tabularx}
      % settima riga fattura
      \begin{tabular}{|p{8.5cm}c|p{8.5cm}|}\hline
      \small{\textbf{TOTALE A PAGARE}}\rb && \small{\textbf{TOTALE DOCUMENTO}}\\
      % valori settima riga
      {\textbf{\@TotaleAPagare}}\rb & &\textbf{\@TotaleDocumento} \\ \hline
      \end{tabular}
      % ottava riga fattura
      \begin{tabular}{|p{3.5cm}|p{3.5cm}|p{10cm}|}\hline
      \small{\cambiaFont{Scadenze}}\rb & \small{\cambiaFont{Rd}} & \small{\cambiaFont{Annotazioni}} \\
      %valori dei campi
      \textbf{\@dataScadenza} & \textbf{\@TotaleAPagare} & \textbf{\@annotazioni}\\
      &&\\ \hline\hline
      \end{tabular}
      \end{table}
      }

      `

      Il risultato che ottengo è corretto ma la longtable come detto è dinamica, ossia se gli passo in input 3 righe, la tabella viene chiusa dopo 3 righe, se gliene passo 80, la tabella si spezza correttamente (anche se c’è un problema sul \piedino che viene spostato in basso, che magari si risolve dopo), e se, per esempio, nell’ultima pagina rimangono 6 righe, dopo quelle 6 righe la tabella viene chiusa.

      Spero che ora sia più chiaro….fammi sapere se hai delle idee

    • #65047
      Up
      0
      Down
      ::


      Non è affatto chiaro perché tu voglia un ambiente table: non ce n’è alcun bisogno.

      Intanto penso al tuo problema.

      Ciao
      Enrico

    • #65048
      Up
      0
      Down
      ::

      egreg9″ post=64108Non è affatto chiaro perché tu voglia un ambiente table: non ce n’è alcun bisogno.

      Intanto penso al tuo problema.

      Ciao
      Enrico

      Considera sempre che non sono un espertissimo…..ho visto degli esempi fatti in quel modo ed ho palesemente scopiazzato 😀

      Grazie anche a te per l’aiuto

    • #65049
      Up
      0
      Down
      ::


      Difficile aiutarti se non ci permetti di compilare il documento.

      Ciao
      Enrico

    • #65050
      Up
      0
      Down
      ::

      egreg9″ post=64111Difficile aiutarti se non ci permetti di compilare il documento.

      Ciao
      Enrico

      Ciao….allora ho creato una cartella con i file necessari alla compilazione….il master file è fattura.tex

      [attachment=51]guit_help_me.tar.bz2[/attachment]

      l’obiettivo è quello di riempire l’ultima pagina con delle righe vuote fino alla terza tabella….

      fammi sapere se hai qualche idea

      Ciao
      Fabio

      Attachments:
      You must be logged in to view attached files.
Visualizzazione 5 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top