Problema newenvironment con tabularx [RISOLTO]

  • Creatore
    Topic
  • #99713
    Nino
    Partecipante
      Up
      0
      Down
      ::


      Salve a tutti!
      Mi scuso in anticipo: se esiste una discussione simile, non l’ho trovata.
      Non so perché, ma quando definisco un nuovo ambiente con una tabularx, LaTeX mi dà errore, mentre un simile ambiente con tabular è tranquillo, e tranquilla è pure la tabularx scritta a mano ogni volta. Qualche idea? Vorrei evitare di fare continuamente copia-incolla.
      Vi allego il prembolo. Ah, uso TeXlive 2014 aggiornata a ieri pomeriggio. 🙂

      `% !TEX encoding = UTF-8
      % !TEX program = pdflatex
      % !TEX spellcheck = it_IT

      \documentclass[a4paper,11pt,oneside]{book}

      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}
      \usepackage{indentfirst}
      \usepackage{tabularx}
      \usepackage{booktabs}
      \usepackage{kpfonts}
      \usepackage{microtype}
      \normalfont
      \usepackage{layaureo}
      \usepackage[a-1b]{pdfx}

      \newcommand{\entita}[2]{\textsc{#1} (#2)}

      \newcommand{\chiave}[1]{Chiave: & #1 \\}

      \newcommand{\vincDet}[3][Vincoli: ]{#1 & #2 $\rightarrow$ #3 \\}

      \newcommand{\vincMul}[3][Vincoli: ]{#1 & #2 $\rightarrow\rightarrow$ #3 \\}

      \newenvironment{chiaveVincoli}%
      {\begin{tabularx}{0.9\textwidth}{lX}}%
      {\end{tabularx}}

      \newenvironment{domini}%
      {\begin{flushleft}
      \begin{tabular}{ll}
      \textbf{Attributi} & \textbf{Domini} \\[1ex]}%
      {\end{tabular}
      \end{flushleft}}`

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


          Non puoi usare tabularx in un ambiente, perché, come leggi nella documentazione di tabularx, esso calcola la dimensione delle colonne eseguendo tre vole i calcoli sul contenuto dell’ambiente; deve quindi leggere memorizzare il contenuto dell’ambiente una prima volata in un qualche registro per poi riusarlo le tre volte necessarie; devi quindi trovare la riga \end{tabularx} per sapere dove finisce il contenuto dell’ambiente; nascondendo quella riga nei comandi di chiusura del tuo ambiente circostante, non trova quella riga e va avanti a leggere o fino alla fine del file sorgente o finché satura il buffer d’ingresso.

          Non so se mi sono spiegato in modo chiaro in queste poche righe; ma la conclusione è che non puoi costruire un altro ambiente sopra tabularx.

        • #99715
          Nino
          Partecipante
            Up
            0
            Down
            ::


            Ah ok, grazie mille.
            In effetti ho saltato il passaggio “leggere la documentazione di tabularx”, davo per scontato che potesse essere usato per creare un nuovo ambiente. 🙄
            Meno male non è un grande ambiente da impostare, lo riscriverò ogni volta. 🙂
            Grazie ancora!

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

        Go to top