Gestione spazi in tabella matematica

  • Creatore
    Topic
  • #106735
    Up
    0
    Down
    ::


    Salve a tutti!

    E’ la prima volta che scrivo su questo forum quindi perdonatemi se sbaglio qualcosa (e scrivetemi così che possa rimediare subito 🙂 ).

    Ho fatto alcune prove, ma ho problemi con la gestione degli spazi in tabelle matematiche: le mie tabelle hanno 3 colonne e molte righe. Le prime due colonne sono tutte abbastanza piene di valori mentre la terza colonna ha pochissimi valori (nell’esempio che carico ho solo un 1 nella sesta riga) quindi Latex quando va a creare la tabella adatta la larghezza delle colonne al suo contenuto e la terza colonna mi esce strettissima.
    `
    \begin{displaymath}
    \begin{array}{c|c|c}
    [\lambda_{m_{0}}] & \dot{\psi} & \dot{y} \\
    \hline \hline &&\\ [-3mm]
    V_{JK_{x}} & -\dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\eta_{0} & \\ [3mm]
    V_{JK_{y}} & \dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\eta_{0} & \\ [3mm]
    \hline &&\\ [-2mm]
    \omega_{JK} & \dfrac{\partial\beta}{\partial\psi} & \\ [3mm]
    \hline &&\\ [-3mm]
    V_{KL_{x}} & -AK\cdot\sin\psi_{0} – \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin(\beta+\beta_{0}) & \\ [3mm]
    V_{KL_{y}} & AK\cdot\cos\psi_{0} + \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos(\beta+\beta_{0}) & \\ [3mm]
    \hline
    \omega_{KL} & 1 & 1 \\
    \end{array}
    \end{displaymath}
    `
    Dato che a me non piace esteticamente, vorrei impostargli una larghezza maggiore e, leggendo in internet, ho trovato che questo si può fare con il comando m{width}. Ho provato quindi a inserirlo nelle mie tabelle, ma ottengo sempre degli errori:
    `
    \begin{displaymath}
    \begin{array}{c|c|m{2cm}}
    [\lambda_{m_{0}}] & \dot{\psi} & \dot{y} \\
    \hline \hline &&\\ [-3mm]
    V_{JK_{x}} & -\dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\eta_{0} & \\ [3mm]
    V_{JK_{y}} & \dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\eta_{0} & \\ [3mm]
    \hline &&\\ [-2mm]
    \omega_{JK} & \dfrac{\partial\beta}{\partial\psi} & \\ [3mm]
    \hline &&\\ [-3mm]
    V_{KL_{x}} & -AK\cdot\sin\psi_{0} – \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin(\beta+\beta_{0}) & \\ [3mm]
    V_{KL_{y}} & AK\cdot\cos\psi_{0} + \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos(\beta+\beta_{0}) & \\ [3mm]
    \hline
    \omega_{KL} & 1 & 1 \\
    \end{array}
    \end{displaymath}
    `
    Se eseguo il codice sopra ottengo diversi errori:

    Per risolvere il problema ho provato a cambiare un po’ il codice definendo nuove tipologie di colonne:
    `
    \newcolumntype{A}{>{$\displaystyle}c<{$}} \newcolumntype{A}{>{$}c<{$}} \newcolumntype{L}{>{$\displaystyle}c<{$}} \newcolumntype{L}{>{$}c<{$}} \newcolumntype{L}{>{\centering}m{1cm}}
    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
    \begin{table}
    \centering
    \begin{tabular}{A|A|A}
    [\lambda_{m_{0}}] & \dot{\psi} & \dot{y} \\
    \hline \hline &&\\ [-3mm]
    V_{JK_{x}} & -\dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\eta_{0} & \\ [3mm]
    V_{JK_{y}} & \dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\beta – IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\eta_{0} & \\ [3mm]
    \hline &&\\ [-2mm]
    \omega_{JK} & \dfrac{\partial\beta}{\partial\psi} & \\ [3mm]
    \hline &&\\ [-3mm]
    V_{KL_{x}} & -AK\cdot\sin\psi_{0} – \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin(\beta+\beta_{0}) & \\ [3mm]
    V_{KL_{y}} & AK\cdot\cos\psi_{0} + \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos(\beta+\beta_{0}) & \\ [3mm]
    \hline
    \omega_{KL} & 1 & 1 \\
    \end{tabular}
    \end{table}
    `
    Ma se cambio la tipologia della terza colonna:
    `
    \begin{tabular}{A|A|L}
    \begin{tabular}{A|A|M{2cm}}
    `
    ottengo sempre gli errori presenti nello screenshot precedente.

    Se qualcuno sapesse come risolvere il problema lo ringrazio tantissimo in anticipo!!!

    Saluti
    Alberto

    P.S. Delle due versioni di codice io preferisco usare la seconda poiché mi permette di centrare la tabella nella pagina e mi dà più opzioni.

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


      Ciao albo94!

      Il tuo problema ho visto che è trattato numerose volte in questo forum, ad esempio qui. Prova a vedere se fa al caso tuo 🙂

    • #106737
      Up
      0
      Down
      ::


      Grazie mille per il link mire!

      Mettendo
      `
      \setlength{\headheight}{14.5pt}
      `
      in effetti riesco a risolvere un warning che avevo: \headheight is too small (12.0pt): Make it at least 13.59999pt.

      Purtroppo però ho ancora molti errori che non mi fanno girare il codice correttamente:
      se metto (nel codice con tabular) `\begin{tabular}{A|A|L}` ottengo:

      se invece metto (nel codice con l’array) `\begin{array}{c|c|m{2cm}}` ottengo:

      Grazie ancora a tutti
      Alberto

    • #106738
      Up
      0
      Down
      ::


      Probabilmente tu intendi fare qulcosa del tipo mostrato nel codice seguente, che si compila senza errori. Nota i punti seguenti:

      1. come definisco lo specificatore [tt]M[/tt];
      2. (anche se non c’entra nulla con il problema) che non uso [tt]displaymath[/tt], ma l’ambiente [tt]equation*[/tt] definito dal pacchetto amsmath, che raccomando vivissimamente.

      `
      % My standard header for TeX.SX answers:
      \documentclass[a4paper]{article} % To avoid confusion, let us explicitly
      % declare the paper format.

      \usepackage[T1]{fontenc} % Not always necessary, but recommended.
      % End of standard header. What follows pertains to the problem at hand.

      \usepackage{amsmath} % matematica superiore
      \usepackage{array} % per poter usare “\newcolumnntype”
      \newcolumntype{M}[1]{>{\centering\arraybackslash $}m{#1}<{$}} \begin{document} Testo prima. \begin{equation*} \begin{array}{c|c|M{2cm}} [\lambda_{m_{0}}] & \dot{\psi} & \dot{y} \\ \hline \hline &&\\ [-3mm] V_{JK_{x}} & -\dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\beta - IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin\eta_{0} & \\ [3mm] V_{JK_{y}} & \dfrac{JK}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\beta - IJ\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos\eta_{0} & \\ [3mm] \hline &&\\ [-2mm] \omega_{JK} & \dfrac{\partial\beta}{\partial\psi} & \\ [3mm] \hline &&\\ [-3mm] V_{KL_{x}} & -AK\cdot\sin\psi_{0} - \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\sin(\beta+\beta_{0}) & \\ [3mm] V_{KL_{y}} & AK\cdot\cos\psi_{0} + \dfrac{KL}{2}\cdot\dfrac{\partial\beta}{\partial\psi}\cdot\cos(\beta+\beta_{0}) & \\ [3mm] \hline \omega_{KL} & 1 & 1 \\ \end{array} \end{equation*} Testo dopo. \end{document} ` Un’altra cosa che raccomando vivissimamente (e che tu non fai :wink: ) è di seguire le raccomandazioni dell’Arte circa il modo di comporre tabelle, sfruttando anche il pacchetto booktabs.

      Ciao.


      Gustavo

    • #106739
      Up
      0
      Down
      ::


      Grazie mille Gustavo, il tuo codice mi è stato utilissimo!!! 🙂 🙂
      Ho dato un’occhiata a booktabs, ho eliminato le linee verticali e ho messo qualche comando \midrule al posto delle \hline.
      Grazie ancora

      Alberto

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

Go to top