Problema compilazione codice generato da Gnuplot

  • Creatore
    Topic
  • #17941
    Stemby
    Partecipante
      Up
      0
      Down
      ::


      Come da topic: compilando del codice generato da Gnuplot ricevo una scatervata di errori. Copio output:
      `
      [PDFLaTeX] Tesi.tex => Tesi.pdf (pdflatex)
      [PDFLaTeX] concluso con stato di uscita 1
      Tesi.tex:136:Overfull \vbox (113.81145pt too high) detected
      ./Dati/greggio.tex:9:Extra }, or forgotten $. \put(201,121){\makebox(0,0)[r]{$0.00}}
      ./Dati/greggio.tex:9:Missing $ inserted. \put(201,121){\makebox(0,0)[r]{$0.00}}
      ./Dati/greggio.tex:9:Missing } inserted. \put(201,121){\makebox(0,0)[r]{$0.00}}
      ./Dati/greggio.tex:13:Extra }, or forgotten $. \put(201,213){\makebox(0,0)[r]{$10.00}}
      ./Dati/greggio.tex:13:Missing $ inserted. \put(201,213){\makebox(0,0)[r]{$10.00}}
      ./Dati/greggio.tex:13:Missing } inserted. \put(201,213){\makebox(0,0)[r]{$10.00}}
      ./Dati/greggio.tex:17:Extra }, or forgotten $. \put(201,306){\makebox(0,0)[r]{$20.00}}
      ./Dati/greggio.tex:17:Missing $ inserted. \put(201,306){\makebox(0,0)[r]{$20.00}}
      ./Dati/greggio.tex:17:Missing } inserted. \put(201,306){\makebox(0,0)[r]{$20.00}}
      ./Dati/greggio.tex:21:Extra }, or forgotten $. \put(201,398){\makebox(0,0)[r]{$30.00}}
      ./Dati/greggio.tex:21:Missing $ inserted. \put(201,398){\makebox(0,0)[r]{$30.00}}
      ./Dati/greggio.tex:21:Missing } inserted. \put(201,398){\makebox(0,0)[r]{$30.00}}
      ./Dati/greggio.tex:25:Extra }, or forgotten $. \put(201,491){\makebox(0,0)[r]{$40.00}}
      ./Dati/greggio.tex:25:Missing $ inserted. \put(201,491){\makebox(0,0)[r]{$40.00}}
      ./Dati/greggio.tex:25:Missing } inserted. \put(201,491){\makebox(0,0)[r]{$40.00}}
      ./Dati/greggio.tex:29:Extra }, or forgotten $. \put(201,583){\makebox(0,0)[r]{$50.00}}
      ./Dati/greggio.tex:29:Missing $ inserted. \put(201,583){\makebox(0,0)[r]{$50.00}}
      ./Dati/greggio.tex:29:Missing } inserted. \put(201,583){\makebox(0,0)[r]{$50.00}}
      ./Dati/greggio.tex:33:Extra }, or forgotten $. \put(201,675){\makebox(0,0)[r]{$60.00}}
      ./Dati/greggio.tex:33:Missing $ inserted. \put(201,675){\makebox(0,0)[r]{$60.00}}
      ./Dati/greggio.tex:33:Missing } inserted. \put(201,675){\makebox(0,0)[r]{$60.00}}
      ./Dati/greggio.tex:37:Extra }, or forgotten $. \put(201,768){\makebox(0,0)[r]{$70.00}}
      ./Dati/greggio.tex:37:Missing $ inserted. \put(201,768){\makebox(0,0)[r]{$70.00}}
      ./Dati/greggio.tex:37:Missing } inserted. \put(201,768){\makebox(0,0)[r]{$70.00}}
      ./Dati/greggio.tex:41:Extra }, or forgotten $. \put(201,860){\makebox(0,0)[r]{$80.00}}
      ./Dati/greggio.tex:41:Missing $ inserted. \put(201,860){\makebox(0,0)[r]{$80.00}}
      ./Dati/greggio.tex:41:Missing } inserted. \put(201,860){\makebox(0,0)[r]{$80.00}}
      ./conclusioni.tex:0:Overfull \hbox (103.29453pt too wide) has occurred while \output is active
      ./Tesi.bbl:4:Underfull \hbox (badness 1354) in paragraph
      [PDFLaTeX] 27 errori, 0 avvertimenti, 3 fuori misura
      `
      Ho aggiunto
      `
      \usepackage{latexsym}
      `
      come trovato scritto in giro; uso PdfLaTeX su una TeXLive completa.

      Ringrazio chi mi saprà aiutare: ho già cercato una soluzione, ma non ho trovato niente.

      Saluti

      Carlo

    Visualizzazione 11 filoni di risposte
    • Autore
      Risposte
      • #17942
        Up
        0
        Down
        ::

        Come da topic: compilando del codice generato da Gnuplot ricevo una scatervata di errori. Copio output:
        `
        [PDFLaTeX] Tesi.tex => Tesi.pdf (pdflatex)
        [PDFLaTeX] concluso con stato di uscita 1
        Tesi.tex:136:Overfull \vbox (113.81145pt too high) detected
        ./Dati/greggio.tex:9:Extra }, or forgotten $. \put(201,121){\makebox(0,0)[r]{$0.00}}
        ./Dati/greggio.tex:9:Missing $ inserted. \put(201,121){\makebox(0,0)[r]{$0.00}}

        ./Dati/greggio.tex:41:Missing $ inserted. \put(201,860){\makebox(0,0)[r]{$80.00}}
        ./Dati/greggio.tex:41:Missing } inserted. \put(201,860){\makebox(0,0)[r]{$80.00}}
        ./conclusioni.tex:0:Overfull \hbox (103.29453pt too wide) has occurred while \output is active
        ./Tesi.bbl:4:Underfull \hbox (badness 1354) in paragraph
        [PDFLaTeX] 27 errori, 0 avvertimenti, 3 fuori misura
        `
        Ho aggiunto
        `
        \usepackage{latexsym}
        `
        come trovato scritto in giro; uso PdfLaTeX su una TeXLive completa.

        Ringrazio chi mi saprà aiutare: ho già cercato una soluzione, ma non ho trovato niente.

        Il pacchetto latexsym non risolve nulla. Il problema è evidente: il carattere $ introduce una formula. Per scrivere il simbolo del dollaro, si usa \$. Devi insegnare a Gnuplot di scrivere quella combinazione invece che il semplice $.

        Ciao
        Enrico

      • #17943
        Stemby
        Partecipante
          Up
          0
          Down
          ::


          Grazie mille!

          Però… come si fa?

          Questo è lo script che uso:
          `
          # Modifiche all'asse “x”
          set xlabel ” ”
          set xdata time
          set timefmt “%d/%m/%Y” ### formato dati input ###
          set format x “%Y”
          set xrange [“1/1/1987″:”1/1/2008”]
          set xtics rotate #('1/1/1880', '1/1/1890', '1/1/1900', '1/1/1910', '1/1/1920', '1/1/1930', '1/1/1940', '1/1/1950', '1/1/1960', '1/1/1970', '1/1/1980', '1/1/1990', '1/1/2000', '1/1/2010')

          # Modifiche all'asse “y”
          set ylabel “Prezzo (Dollari al barile)”
          set format y “$%.2f”
          set yrange [0:80]

          # Legenda
          # unset key ### toglila ###
          set key top left ### in alto a sinistra ###

          # Griglia
          set grid

          # Disegna!
          plot “prezzo_greggio.csv” using 1:2 title 'Cushing' with lines#, \
          # “prezzo_greggio.csv” using 1:3 title 'Brent' w lines

          # Guarda il risultato:
          pause -1 ” Premere per proseguire”

          # Output file

          # TeX
          set output “greggio.tex”
          set terminal latex
          replot
          `

          e questo è il codice generato avviando lo script:
          `
          % GNUPLOT: LaTeX picture
          \setlength{\unitlength}{0.240900pt}
          \ifx\plotpoint\undefined\newsavebox{\plotpoint}\fi
          \sbox{\plotpoint}{\rule[-0.200pt]{0.400pt}{0.400pt}}%
          \begin{picture}(1500,900)(0,0)
          \sbox{\plotpoint}{\rule[-0.200pt]{0.400pt}{0.400pt}}%
          \put(221.0,121.0){\rule[-0.200pt]{293.416pt}{0.400pt}}
          \put(221.0,121.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(201,121){\makebox(0,0)[r]{$0.00}}
          \put(1419.0,121.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(221.0,213.0){\rule[-0.200pt]{293.416pt}{0.400pt}}
          \put(221.0,213.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(201,213){\makebox(0,0)[r]{$10.00}}
          \put(1419.0,213.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(221.0,306.0){\rule[-0.200pt]{293.416pt}{0.400pt}}
          \put(221.0,306.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(201,306){\makebox(0,0)[r]{$20.00}}
          \put(1419.0,306.0){\rule[-0.200pt]{4.818pt}{0.400pt}}
          \put(221.0,398.0){\rule[-0.200pt]{293.416pt}{0.400pt}}

          […]

          \put(1410.0,778.0){\rule[-0.200pt]{0.400pt}{1.445pt}}
          \put(1411.0,787.0){\rule[-0.200pt]{0.400pt}{1.445pt}}
          \put(1411.0,787.0){\rule[-0.200pt]{0.400pt}{1.445pt}}
          \put(221.0,121.0){\rule[-0.200pt]{0.400pt}{178.025pt}}
          \put(221.0,121.0){\rule[-0.200pt]{293.416pt}{0.400pt}}
          \put(1439.0,121.0){\rule[-0.200pt]{0.400pt}{178.025pt}}
          \put(221.0,860.0){\rule[-0.200pt]{293.416pt}{0.400pt}}
          \end{picture}
          `

          Quest’ultimo è ampiamente tagliato, visto che è lunghissimo.

          Scusate la niubbaggine…

          Grazie ancora

          Carlo

        • #17944
          Stemby
          Partecipante
            Up
            0
            Down
            ::


            Per ora ho risolto inserendo a mano le “\” nel codice, ma non è certo una buona soluzione (altrimenti appena si aggiornano i dati, bisogna ripetere la faccenda).

            Qualcuno conosce una soluzione più elegante?

          • #17945
            Up
            0
            Down
            ::

            Grazie mille!

            Però… come si fa?

            Questo è lo script che uso:
            `
            # Modifiche all'asse “x”
            set xlabel ” ”
            set xdata time
            set timefmt “%d/%m/%Y” ### formato dati input ###
            set format x “%Y”
            set xrange [“1/1/1987″:”1/1/2008”]
            set xtics rotate #('1/1/1880', '1/1/1890', '1/1/1900', '1/1/1910', '1/1/1920', '1/1/1930', '1/1/1940', '1/1/1950', '1/1/1960', '1/1/1970', '1/1/1980', '1/1/1990', '1/1/2000', '1/1/2010')

            # Modifiche all'asse “y”
            set ylabel “Prezzo (Dollari al barile)”
            set format y “$%.2f”
            set yrange [0:80]

            # Legenda
            # unset key ### toglila ###
            set key top left ### in alto a sinistra ###

            # Griglia
            set grid

            # Disegna!
            plot “prezzo_greggio.csv” using 1:2 title 'Cushing' with lines#, \
            # “prezzo_greggio.csv” using 1:3 title 'Brent' w lines

            # Guarda il risultato:
            pause -1 ” Premere per proseguire”

            # Output file

            # TeX
            set output “greggio.tex”
            set terminal latex
            replot
            `

            Meglio sarebbe stato fornire un estratto del .csv, che dici?

            Hai provato a scrivere
            `set format y “\$%.2f”`
            o con un doppio backslash? Non sono pratico della sintassi di GNUplot, quindi può darsi che ne servano due per ottenerne una.

            Ciao
            Enrico

          • #17946
            Stemby
            Partecipante
              Up
              0
              Down
              ::

              Meglio sarebbe stato fornire un estratto del .csv, che dici?

              Mah, non è che sia niente di che, comunque ecco come è strutturato:
              `
              #######################################
              # Data Cushing Brent #
              #######################################

              […]

              28/05/1987 19.28 18.6
              29/05/1987 19.36 18.58
              01/06/1987 19.55 18.65
              02/06/1987 19.7 18.68
              03/06/1987 19.87 18.75
              04/06/1987 19.75 18.78
              05/06/1987 19.79 18.65
              08/06/1987 19.94 18.75
              09/06/1987 19.84 18.78
              10/06/1987 19.83 18.78

              […]
              `

              Hai provato a scrivere
              `set format y “\$%.2f”`
              o con un doppio backslash?

              Con una sì, e non cambiava niente; con due ho provato ora e in effetti così inserisce una barra prima del $.

              Il problema adesso è che l’output fa abbastanza schifo, in particolare LaTeX mi mette in orizzontale tutte quelle scritte che a video Gnuplot mette in verticale (le date e la label dell’asse y che così, in orizzontale, finisce dentro al grafico).

              Consigli?

              Ciao, e grazie!

              Carlo

              P.S.: non conosco molto gli usi e costumi di questo forum, è il caso di aprire un nuovo topic?

            • #17947
              Up
              0
              Down
              ::

              Meglio sarebbe stato fornire un estratto del .csv, che dici?

              Mah, non è che sia niente di che, comunque ecco come è strutturato:
              `#######################################
              # Data Cushing Brent #
              #######################################
              28/05/1987 19.28 18.6
              29/05/1987 19.36 18.58`

              E come pensi che uno possa fare a scriversi un esempio, altrimenti? 🙂

              Hai provato a scrivere
              `set format y “\$%.2f”`
              o con un doppio backslash?

              Con una sì, e non cambiava niente; con due ho provato ora e in effetti così inserisce una barra prima del $.

              Il problema adesso è che l’output fa abbastanza schifo, in particolare LaTeX mi mette in orizzontale tutte quelle scritte che a video Gnuplot mette in verticale (le date e la label dell’asse y che così, in orizzontale, finisce dentro al grafico).

              Consigli?

              Il problema, a questo punto, riguarda solo Gnuplot. Quindi trasferisco nell’altro forum. Chissà se qualcuno sa come si fa. Io proprio no.

              Ciao
              Enrico

            • #17948
              Up
              0
              Down
              ::


              Io con Gnuplot uso spesso il terminale pstricks.

              Prova qualcosa del genere:

              `
              set datafile separator “,”
              set title “Il mio titolo”
              set key left spacing 1.5
              set term pstricks; set out 'pippo.tex'
              set xlabel '$t/D$'
              set ylabel “$C_{D_N}$”
              plot 'pippo.csv' using 1:2 with lines lw 3 title '$C_L = 0.4$|

              # fai vedere anche a video
              set out; # libera il file di output
              set term win; replot
              `

              In questo caso non dovresti avere problemi con l’escaping del carattere ‘$’.
              Ovviamente dovrai includere il contenuto del file “pippo.tex” in un ambiente opportuno; figure ad esempio.

              In genere utilizzo anche degli script che fanno uso di awk e sed per postprocessare l’output in formato pstricks di Gnuplot per ottenere un aspetto migliore.
              Fammi sapere se il semplice esempio fornito sopra ti basta.

              Ciao,

              Agostino

            • #17949
              Stemby
              Partecipante
                Up
                0
                Down
                ::


                Mmmmm, grazie dell’indicazione, non avevo mai sentito parlare di PSTricks, grazie per avermelo fatto conoscere. Da quello che ho letto però si tratta in sostanza di macro per PostScript: immagino quindi che non sia compatibile con il mio lavoro, che è compilato con PDFLaTeX. E’ così?

              • #17950
                Up
                0
                Down
                ::

                Mmmmm, grazie dell’indicazione, non avevo mai sentito parlare di PSTricks, grazie per avermelo fatto conoscere. Da quello che ho letto però si tratta in sostanza di macro per PostScript: immagino quindi che non sia compatibile con il mio lavoro, che è compilato con PDFLaTeX. E’ così?

                Quando c’è questo vincolo io di solito creo i miei grafici con pstricks ugualmente.
                Creo ciascun grafico in un documento a parte, monopagina, con \pagestyle{empty}.
                Poi con ghastview salvo l’immagine del plot sia in eps che in pdf.
                Infine Inserisco il pdf nel documento principale dopo averne estratto il bounding box.
                con “ebb”.

                Ciao,
                Agostino

              • #17951
                Stemby
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Alla fine non ho scelto l’output in LaTeX, perché non sono riuscito a sistemare il problema del posizionamento corretto delle scritte. Peccato, perché avere i font tutti uguali ed uniformi era una bella cosa.

                  Se potesse interessare a qualcuno, ecco tutti i passaggi che ho seguito.

                    1) Download dati grezzi (file .xls, maledetti…)
                    2) Apertura del file con OOCalc (siano lodati gli sviluppatori di OOo…)
                    3) Formattazione della colonna contenente le date come “data” (fare attenzione a scegliere il formato GG/MM/AAAA, con l’anno di 4 cifre)
                    4) Salvataggio della pagina in formato CSV, con “TAB” come separatore di campo
                    5) Lancio con Gnuplot di questo script:
                    `
                    # greggio.plt
                    #
                    # File originale:
                    # http://en.wikipedia.org/wiki/Image:US_first-class_postage_stamp_rates.svg

                    # Modificato da Carlo Stemberger. Ultima modifica: 05-02-2007

                    # Titolo
                    #set title “Prezzo del petrolio”

                    # Modifiche all'asse “x”
                    set xlabel ” ”
                    set xdata time
                    set timefmt “%d/%m/%Y” ### formato dati input ###
                    set format x “%Y”
                    set xrange [“15/5/1987″:”1/2/2008”]
                    set xtics rotate #('1/1/1880', '1/1/1890', '1/1/1900', '1/1/1910', '1/1/1920', '1/1/1930', '1/1/1940', '1/1/1950', '1/1/1960', '1/1/1970', '1/1/1980', '1/1/1990', '1/1/2000', '1/1/2010')

                    # Modifiche all'asse “y”
                    set ylabel “Prezzo (Dollari al barile)”
                    set format y “%.2f” ### normale ###
                    #set format y “\\$%.2f” ### per LaTeX (il “$”, altrimenti, fa casino) ###
                    set yrange [0:100]

                    # Legenda
                    # unset key ### toglila ###
                    set key top left ### in alto a sinistra ###

                    # Griglia
                    set grid

                    # Disegna!
                    #plot “prezzo_greggio.csv” using 1:2 title 'Cushing' with lines#, \
                    # “prezzo_greggio.csv” using 1:3 title 'Brent' w lines
                    plot “prezzo_greggio.csv” using 1:3 title 'Brent' with lines

                    # Guarda il risultato:
                    pause -1 ” Premere per proseguire”

                    # Output file

                    # TeX
                    #set output “greggio.tex”
                    #set terminal latex
                    #replot

                    # SVG
                    set terminal svg #size 600 500
                    set output “greggio.svg”
                    replot

                    # EPS
                    #set terminal post eps
                    #set output “greggio.eps”
                    #replot
                    `
                    6) Apertura del file SVG con GIMP
                    7) Conversione in JPEG
                    8) LaTeX <--- Lo smiley non era intenzionale, però è cascato a fagiolo :) [/ul] Probabilmente si può fare meglio (es: mantenere il formato vettoriale), ma già così è molto soddisfacente (ed è a colori!). Quando/se un giorno avrò un po' di tempo testerò altre vie. Notte Carlo

                  • #17952
                    Up
                    0
                    Down
                    ::


                    Forse arrivo un po’ in ritardo 😳 , ma visto che dici di voler provare altre vie in futuro ti suggerisco il terminale epslatex, non preoccuparti per il nome basta convertire il file eps in pdf e puoi usarlo anche con pdflatex.

                    Ciao
                    Matteo

                  • #17953
                    Stemby
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Grazie, prima o poi proverò. Per ora ho migliorato un po’ il risultato così:

                        a) Nella sezione “Output file” dello script commentare tutto e aggiungere queste righe:
                        `
                        # EPS a colori
                        set terminal postscript eps color
                        set output “greggio.eps”
                        replot
                        `

                        b) Sostituzioni dei punti 6) e 7) con questo:

                        6 e 7) Conversione del file .eps con epstopdf

                      In questo modo si ottiene un file a colori ma vettoriale, e utilizzabile direttamente con pdflatex.

                      Non ha ancora i font LaTeX, ma non ho il tempo per fare molte prove. Valuterò in futuro e vi farò conoscere gli sviluppi.

                      Saluti

                      Carlo

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

                  Go to top