GnuPlot e Latex

  • Creatore
    Topic
  • #109916
    Up
    0
    Down
    ::


    Buongiorno a tutti, ho un problema a compilare questo codice (e’ solo un esempio di che mi serve per un qualcosa piu’ complicato)

    Spoiler

    `\documentclass{article}
    \usepackage{pgfplots}

    \begin{document}
    \begin{tikzpicture}[scale=1.0]
    \begin{axis}%%[domain=-10000:10000, no markers,ultra thick]
    %
    \addplot[domain=-10000:10000, no markers,green,ultra thick] gnuplot{14*x – x^2};
    %
    \end{axis}
    \end{tikzpicture}

    \end{document}`

    nella pagina dicevano di compilare con “pdflatex -shell-escape” ma non saprei proprio dove mettere mano

    grazie mille

Visualizzazione 26 filoni di risposte
  • Autore
    Risposte
    • #109917
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Apri un terminale e scirvici dentro pdflatex -shell-escape miofile; premi invio e vedi che cosa capita nel terminale; quando nel terminale vedi che c’è scritto (alla fine) Output written to miofile.pdf il lavoro è finito e puoi visulaizzare il PDF ottenuto che dovrebbe contenere il grafico; se non lo contiene, gli errori che si sono verificati sono di diverso genere, a cominciare dal fatto che non hai installato gnuplot, al fatto che ti trovi su una macchina che non accetta -shell-escape, e a tanti altri possibili motivi che scopri leggendo i file .log; per ora non è possibile dirti altro.

        PS: tanto per renderti e rendermi conto del problema, ho salvato il tuo file minimo compilabile con nome PdflatexGnuplot.tex e hao lanciato pdflatex tramite il solito bottone dell’editor; è venuto fuori il messaggio di usare -shell-escape; nel mio editor ho un altro bottone per lanciare pdflatex con -shell-escape; cliccatolo, è venuto fuori di nuovo il messaggio di usare -shell-escape; siccome il mio bottone è configurato epr lo shell escape, ho pensato di non disporre di gnuplot sul mio portatile; ho controllato scrivendo nel terminale il comando gnuplot -h e mi risponde che gnuplot è un comando sconosciuto; ne ho dedotto che non dispongo di gnuplot sul mip portatile.
        Allora ho cercato in rete e ho trovato il sito da cui scaricare la fatidica tar.ball, con cui vengono distribuiti molti programmai da instalalre da sorgente; l’ho scaricata, l’ho decompressa, ho eseguito le tere semplici operazioni per controllarne il corretto funzionamento ed ho eseguito da amministratore il comando per installare fra il miei programmi eseguibili.
        Rilanciata la compilazione di PdflatexGnuplot.tex cliccando il bottone giusto, abilitato oer lo shell escape, dopo pochi secondi ho ottenuto il risultato, un arco di parabola col vertice in alto disegnata in verde.
        Quindi il tuo codice non ha erorri; se non vedi il risultato probabilmente non hai gnuplot installato.
        Se lavori con una macchina Windows le cose che devi fare sono probabilmente diverse da quelle molto semplici che ho dovuto fare io, ma leggi con attenzione le istruzioni incluse nella tar.ball e seguile con il massimo scrupolo.

      • #109918
        Up
        0
        Down
        ::


        hey ciao, lavoro con una macchina windows del dipartimento, e all’interno di essa gia’ c’e’ gnuplot ma l’errore che mi da’ e’ questo

        Spoiler

        Package pgfplots Error: Sorry, the gnuplot-result file ‘untitled-1.pgf-plot.t
        able’ could not be found. Maybe you need to enable the shell-escape feature? Fo
        r pdflatex, this is ‘>> pdflatex -shell-escape’. You can also invoke ‘>> gnuplo
        t .gnuplot’ manually on the respective gnuplot file..

        See the pgfplots package documentation for explanation.
        Type H for immediate help.

        l.8 …ers,green,ultra thick] gnuplot{14*x – x^2};

      • #109919
        Up
        0
        Down
        ::


        Forse se dici con che editor stai lavorando, qualcuno ti spiegherà come impostare la compilazione con l’opzione -shell-escape.

        Ciao

        Marco

      • #109920
        Up
        0
        Down
        ::


        ah si scusa pensavo di averlo detto prima, comunque sto lavorando con texworks

        ma in ogni modo l’opzione -shell-escape l’ho impostata, ma per quel codice mi da’ quell’errore e non so perche’ :\

      • #109921
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Ciao.
          Apri una shell e fai questa prova:`$ gnuplot –help`
          Se ottieni un messaggio che il comando non esiste, allora hai problemi di configurazione/installazione.

          In Linux ottengo questo messaggio:
          `$ gnuplot –help
          Usage: gnuplot [OPTION] … [FILE]
          for X11 options see 'help X11->command-line-options'
          -V, –version
          -h, –help
          -p –persist
          -d –default-settings
          -c scriptfile ARG1 ARG2 …
          -e “command1; command2; …”
          gnuplot 5.0 patchlevel 3
          `
          Bye
          R.

        • #109922
          Up
          0
          Down
          ::


          Fai la verifica che ti suggerisce Roberto. Se ottieni un messaggio come il suo , vuol dire che gnuplot è installato.
          Allora verifica che l’opzione di TexWorks -shell-escape sia la prima (più in alto) nella lista di argomenti, diversamente tirala su di livello con le frecce verdi. Non so perché ma anche a me non funzionava finché non ho fatto così.

          Marco

          [attachment=1857]texworks.png[/attachment]

          Attachments:
          You must be logged in to view attached files.
        • #109923
          Up
          0
          Down
          ::


          gnuplot è installato e le cose nel terminale le avevo scritte come hai fatto tu, però mi dà sempre la stesso errore :\

        • #109924
          Up
          0
          Down
          ::


          Mi spiace ma non posso che confermare le tue difficoltà.
          Mentre su Ubuntu sono riuscito a fare funzionare tutto, su Windows con Miktex non c’è verso.
          Facendo un po’ di ricerche online ho letto che la questione è stata sollevata diverse volte, ma nessuna delle indicazioni fornite mi ha aiutato a risolvere il problema.

          Marco

        • #109925
          Up
          0
          Down
          ::

          kaka101189″ post=110163gnuplot è installato e le cose nel terminale le avevo scritte come hai fatto tu, però mi dà sempre la stesso errore :\

          Provo a buttare là un’ipotesi forse peregrina, anche perché non ho la più pallida idea di come funzionino le cose sotto Windows: non è che per caso tu credi di compilare con l’opzione [tt]–shell-escape[/tt], ma in realtà quella che viene inviata a [tt]pdftex[/tt] è solo [tt]–restricted-shell-escape[/tt]?

          Ciao.


          Gustavo

        • #109926
          Up
          0
          Down
          ::


          Non uso TeX su windows da anni, ma se non ricordo male l’opzione per miktex è -enable-write18 e non -shell-escape.

          Ciao
          Matteo

        • #109927
          Up
          0
          Down
          ::

          matteo.l” post=110172Non uso TeX su windows da anni, ma se non ricordo male l’opzione per miktex è -enable-write18 e non -shell-escape.

          Ciao
          Matteo

          buongiorno, grazie per il vostro aiuto, le sto provando in tutte le versioni ma sembra che texworks mi stia facendo la super cazzola perchè anche ogni volta che compilo mi dice sempre alla fine

          Spoiler

          Maybe you need to enable the shell-escape feature? For pdf
          latex, this is ‘>> pdflatex -shell-escape’. You can also invoke ‘>> gnuplot .gnuplot’ manually on the respective gnuplot file..

        • #109928
          Up
          0
          Down
          ::


          Sfortunatamente anche io ho sempre avuto questo problema con gnuplot, l’ho installato e non sono mai riuscito a compilare nulla. Ricordo che qualcuno mi aveva detto di controllare il path.
          Mi sento comunque di farti presente che anche con pgfplots riesci a graficare, senza dover usare programmi esterni, certo a volte questo rallenta un po’ la compilazione, ma il risultato è comunque perfetto. L’unico inconveniente che potresti avere è dato dai contour plot.

        • #109929
          Up
          0
          Down
          ::


          che palle…ieri un mio amico con linux l’ha fatto in due secondi :\ ma sarebbe possibile farlo con overleaf?

        • #109930
          Up
          0
          Down
          ::


          Non ne ho idea, ma fai una foto alla formula e pubblicala qui vediamo che si può fare.

        • #109931
          Up
          0
          Down
          ::


          Senti, fai una prova senza gnuplot vediamo se ti compila così:

          `\documentclass{article}
          \usepackage{pgfplots}

          \begin{document}
          \begin{tikzpicture}[scale=1.0]
          \begin{axis}%%[domain=-10000:10000, no markers,ultra thick]
          %
          \addplot[domain=-10000:10000, no markers,green,ultra thick] gnuplot{14*x – x^2};
          %
          \end{axis}
          \end{tikzpicture}

          \end{document}`

        • #109932
          Up
          0
          Down
          ::


          Fai una prova senza usare gnuplot:

          `\documentclass{article}
          \usepackage{tikz}
          \usepackage{pgfplots}
          \usepackage{textcomp}
          \begin{document}
          \begin{tikzpicture}[scale=1.0]
          \begin{axis}%%[domain=-10000:10000, no markers,ultra thick]
          %
          \addplot[domain=-10000:10000, no markers,green,ultra thick] {14*x – x^2};
          %
          \end{axis}
          \end{tikzpicture}
          \end{document}`

        • #109933
          Up
          0
          Down
          ::


          dovrei rappresentare delle funzioni di bessel, ma principalmente m’interessava cercare di farlo in quella maniera, perchè così avreiavuto una libertà e abilità di creazione maggiore… è un po’ una sola che con windows ci siano così tanti problemi

        • #109934
          Up
          0
          Down
          ::

          marco_stara” post=110191Fai una prova senza usare gnuplot:

          `\documentclass{article}
          \usepackage{tikz}
          \usepackage{pgfplots}
          \usepackage{textcomp}
          \begin{document}
          \begin{tikzpicture}[scale=1.0]
          \begin{axis}%%[domain=-10000:10000, no markers,ultra thick]
          %
          \addplot[domain=-10000:10000, no markers,green,ultra thick] {14*x – x^2};
          %
          \end{axis}
          \end{tikzpicture}
          \end{document}`

          su overleaf funziona senza che io gli dica, o specifichi nulla… quando scoprirò come risolverlo anche su una scatola windows munita vi terrò aggiornati ^^

        • #109935
          Up
          0
          Down
          ::


          OK, in bocca al lupo!

        • #109936
          Up
          0
          Down
          ::


          crepi

        • #109937
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            No, TeXworks funziona perfettamente; non dare la colpa a TeXworks; le impostazioni che ti ha mostrato Marco, sono corrette. Ho installato TeXworks sul mio Mac, le ho inserite nella configurazione, ho lanciato la compilazione del tuo esempio e TeXworks non ha battuto ciglio, producendo il disegno della parabola verde con il vertice in alto.

            Ma se sei su Windows e ha installato il sistema TeX con MikTeX, quello è il tuo guaio.

            Hai due possibilità (con un certo numero di varianti):
            1) smonti MikTeX e monti TeXLive; Per TeXworsk non ci sono problemi; al massimo visto che ora sarebbe impostato epr cercare i programmi da eseguire in certe cartelle, devi attivare i settings per fargli capire che TeXLive ha altri percorsi
            2.a) rimani con MikTeX, ma provvedi a manotogli dal tuo codice LaTeX tutto quello che riguarda gnuplot e metti solo in \ingludegraphics con il nome del tuo file pdf. A parte imposti il file sorgente per gnuplot, o procedi interattivamente, e gli fai comporre il disegno come una cosa a se stante che non abbia nulla a che vedere con quel che ne vuoi fare dopo; esegui gnuplot e ti ritrovi con il file pdf con il tuo grafico; lo scontorni e lo importi; se non riesci a scontornarlo lasciandogli le caratteristiche vettoriali, specifica i dati di un viewport o di trim e usa \includegraphics* (con l’asterisco)
            2.b) puoi sempre agire in modo simile, scandendo un disegno già fatto del tuo grafico e lo importi come una normale figura.
            2.c) lasci perdere gnuplot e disegni il tuo grafico con le funzionalità di pngplots.

            Io fossi in te, seguirei l’opzione 1); se però hai MikTeX su una macchina non tua non lo puoi fare.

            Sul Mac e sulle macchine Linux non si hanno problemi perché non possono usare MikTeX che è disponibile solo per Windows.

          • #109938
            Up
            0
            Down
            ::


            Ho installato Miktex, texworks e gnuplot su una macchina virtuale windows e sono riuscito a produrre il grafico dell’esempio, aggiungendo un nuovo strumento di processo a texworks che passa l’opzione -enable-write18 a pdflatex, come si può vedere nell’immagine allegata.

            Ciao
            Matteo

          • #109939
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Matteo, hai fatto benissimo a presentare un esempio reale con MikTeX; ritiro quanto ho detto a proposito di MikTeX, perché non disponendo né di una macchina reale Windows, né di una macchina virtuale, non potevo fare l’esperimento io stesso.

              D’altra parte al configurazione che hai dato a TeXworks è la stessa che ho usato io sul mio Mac, e che ha indicato Marco sul suo Linux/Ubuntu. Quindi il problema di kaka101189 non è MikTeX, ma è dipende da come ha impostato lo strumento di composizione su TeXworks.

            • #109940
              Up
              0
              Down
              ::


              Ora su Windows 8.1 funziona anche a me, sia che usi “-shell-escape” che “enable-write18”; pare non ci siano differenze.
              Penso che il fattore decisivo sia stato quello di inserire il percorso di gnuplot nella variabile d’ambiente PATH.

              Marco

            • #109941
              Up
              0
              Down
              ::

              marco_stara” post=110219
              Penso che il fattore decisivo sia stato quello di inserire il percorso di gnuplot nella variabile d’ambiente PATH.

              Marco

              Come si fa a inserire il percorso? Dove va inserito?

            • #109942
              Up
              0
              Down
              ::


              La PATH è una cosiddetta “Variabile d’ambiente del sistema” che contiene tutti i percorsi dove il sistema operativo (in questo caso Windows) cerca gli eseguibili. Diversamente, anche se questi sono presenti nel disco, i programmi che effettuano le chiamate rischiano di non trovarli. Ora, io mi sono accorto che il percorso contenente la directory in cui è installato gnuplot non era presente nella PATH semplicemente perché, digitando al prompt dei comandi: gnuplot -help, il sistema operativo mi rispondeva che gnuplot per lui era un programma sconosciuto. Ne ho avuto conferma digitando, sempre al prompt: echo %PATH%
              in risposta a questo comando ottenevo una lunga serie di percorsi, separati da un punto e virgola, in cui però non c’era quello di gnuplot, che nel mio sistema Windows si trova in “C:\Program Files (x86)\gnuplot\bin”.

              Come aggiungerlo? Ho paura che per farlo tu debba essere amministratore della macchina su cui lavori.
              Se sì, in Start – Cerca, digita “variabili”, ti si propone la voce “Modifica le variabili di ambiente relative al sistema”.
              Si apre una finestra dal titolo “Proprietà del sistema” che nella scheda “Avanzate” in fondo ha il pulsante “Variabili d’ambiente…”. Fai click e nella listbox in basso “Variabili di sistema” trovi la voce Path . Modifica il valore di questa variabile, aggiungendo alla fine della stringa un punto e virgola e poi il percorso dove hai scoperto si trova gnuplot: nel mio caso come ti dicevo C:\Program Files (x86)\gnuplot\bin.
              Dai OK e a questo punto hai aggiornato la tua PATH; puoi averne conferma digitando al prompt:
              echo %PATH%
              il tuo percorso appena aggiunto dovrebbe essere l’ultimo della lista.
              Questo credo sia stato il passo decisivo che ha consentito a LaTeX di lanciare interattivamente (tramite -shell-escape) gnuplot, che prima semplicemente non trovava, pur essendo installato.

              Marco

            • #109943
              Up
              0
              Down
              ::


              Fantastico adesso funziona corretamente anche se uso gnuplot. Gentilissimo Marco, hai risolto un vecchio problema che avevo.

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

          Go to top