Problema con asymptote

  • Creatore
    Topic
  • #25043
    Up
    0
    Down
    ::


    Salve a tutti;
    ho un problema con asymptote… ringrazio chiunque ne sappia qualcosa e mi voglia aiutare.
    Dunque, il mio problema è questo: mi è stato consigliato su questo stesso forum di usare asymptote per fare un disegno. Sono andato sul sito di asymptote, ho scaricato, nessun errore, installo, installazione ok. Mi appresto a fare il mio primo disegno, una semplicissima spirale seguendo il consiglio prezioso di uno dei membri di questo forum (dove avevo già postato, anche se in un altra sezione, per sapere come disegnarla e ottenendo il consiglio di usare asymptote). Scrivo il preambolo:

    \documentclass[12pt,a4paper]{report}

    \usepackage{graphicx}
    \usepackage{asymptote}
    \usepackage{color}
    \usepackage{pict2e}

    \begin{document}

    e poi all’interno del file scrivo

    \begin{asy}
    comandi (copiati da un sito autorevole e quindi ok)
    \end{asy}

    e compilo

    pdflatex nomefile
    asy nome file

    e qui il prompt di ms dos mi tuona: “asy non è riconosciuto come programma interno o esterno, un programma eseguibile o un file batch”. Provo e riprovo, niente. Allora copio tutto il contenuto della cartella di asymptote dentro la mia cartella dei file latex e rilancio il comando. Il file viene compilato lentissimamente, ma ottengo la mia spirale, e posto con gioia sul forum che ce l’ho fatta. Poi ho pensato dii mettere anche gli assi cartesiani alla mia spirale, e COPIO il comando per gli assi da un sito internet. Compilo e il risultato è tutto sballato; la mia spirale è tutta spostata in un angolo, degli assi nemmeno una traccia, ci sono lettere che fluttuano nel nulla. Penso di aver sbagliato qualcosa, vado su un altro sito e copio pari pari il testo di questa immagine:

    compilo il mio file e ottengo questo

    (le dimensioni sono diverse per causa mia), oppure se cerco di disegnare questo (ripeto: COPIANDO PARI PARI DAL SITO)

    ottengo

    Allora penso di aver sbagliato qualcosa nell’installazione di asymptote, disinstallo e reinstallo. Niente, sempre uguale, e la storia si ripete sempre identica quando cerco di inserire gli assi o qualcosa di affine all’interno di un file latex, sia un immagine 2D o 3D. Compilando però il file FUORI da latex, cioè scrivendo i comnadi di asymptote con un editor, salvando il file e poi facendolo compilare direttamente da asymptote, ottenendo un file EPS, il risultato è perfettamente identico a quello che dovrei ottenere. Mi sono documentato, ma non mi sembra (ma sono pronto ad essere eventualmente contraddetto) di aver tralasciato qualche pacchetto importante o qualche opzione nel preambolo di latex… inoltre non mi convince molto il fatto di dover copiare tutto il contenuto della cartella di asymptote all’interno della mia cartella dei file latex. Inoltre a mio parere è veramente troppo lento (con un immagine 3D ho dovuto fermare io la compilazione dopo 20 minuti, ed il mio computer, per quanto non nuovissimo, non è COSI’ lento). Cosa è andato storto? Io uso windows xp e la versione più aggiornata di latex ed asymptote, ho eseguito da pochissimo l’update di miktex e, ripeto, asymptote funziona benissimo fuori da latex (e latex funziona benissimo senza asymptote) producendo ottimi file eps che visualizzo con ghostscript, e anche in maniera relativamente veloce.
    Se qualcuno vorrà aiutarmi, lo ringrazio.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #25044
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::


        Per prima cosa occorre settare il path per il binario asy affinché quest’ultimo possa essere lanciato da qualsiasi punto del file system in cui ci si trova in console.

        Poi, controllerei la sequenza di compilazione, occorre infatti procedere con tre compilazioni nel seguente ordine:`pdflatex latexusage
        asy latexusage
        pdflatex latexusage`
        come indicato a pag. 83 del manuale (cap. 6 LaTeX usage).

        Se ancora permane il problema della traslazione del testo, proverei a rimuovere il caricamento di ogni pacchetto lavorando su un file sorgente di test.

        Il disegno della spirale l’avevo verificato sotto Linux (dove asymptote si installa molto facilmente dai repository), compilando nell’editor Kile dove comodamente si possono dare i comandi di compilazione nella finestra Konsole.

        Consulta anche
        http://www.dse.nl/~dario/projects/asylatex/asylatex.pdf

        Ciao.

      • #25045
        Up
        0
        Down
        ::


        Innanzittutto ti ringrazio, perchè eri tu che mi hai aiutato le altre volte con asymptote e ora corri di nuovo in mio soccorso! 😀
        Per quanto riguarda i 3 comandi di compilazione, non mi sono effettivamente spiegato bene: io quella sequenza la scrivo completa per compilare (altrimenti non otterrei nemmeno il risultato sbagliato); quando ho scritto il precedente messaggio, mi sono fermato alla seconda istruzione per sottolineare il problema di “asy non è riconosciuto etc.”, ma non è che abitualmente mi fermo li! Ti do atto che in effetti su questo non mi ero espresso bene e chiedo scusa.
        Per il resto, temo non aver capito tanto bene a cosa fai riferimento, io di termini tecnici del computer me ne intendo poco… cosa intendi con “settare il path per il binario asy “?
        Per quanto riguarda il tuo consiglio di rimuovere un pacchetto alla volta per non far traslare il testo, l’ho già fatto, mi sono dimenticato di dirlo prima, ed è stato tutto vano.
        Il sito che mi consigli l’ho già visualizzato ed è stato utile per scrivere il preambolo, infatti è da lì che ho tratto le prime informazioni sul preambolo di asymptote, però ad una successiva consultazione non ha aggiunto nulla di nuovo a quello che avevo capito la prima volta.
        Sinceramente, la cosa che mi sembra più adatta al mio caso è la prima, quella di settare il path, anche perchè visto che asymptote funziona benissimo se non richiamato da latex, credo che il problema sia di quest’ultimo e non del buon asymptote. Ti sarò veramente grato se vorrai spiegarmi bene, per cortesia, cosa intendi con “settare il path”.
        Grazie

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


          Guarda, ho compiuto i seguenti passi in MiKTeX 2.6 sotto win XP pervenendo al risultato corretto:

          1 – scaricare ed installare il file asymptote-1.43-setup.exe dalla pagina di download http://asymptote.sourceforge.net/;

          2 – Copiare il file Asymptote.sty da C:\Programmi\Asymptote a C:\Programmi\MiKTeX 2.6\tex\latex\asymptote (questa stessa cartella nell’albero di MiKTeX va prima creata);

          3 – Avviare il refresh del File Name Database di MiKTeX (Start -> Programmi -> MiKTeX 2.6 -> Settings nel dialogo MiKTeX Options, scheda General, fare click sul bottone “Refresh FNDB”);

          4 – settare il path per asy.exe (click destro su Risorse del computer, nel dialogo Proprietà di Sistema alla scheda Avanzate, click sul bottone in basso “Variabili d’ambiente”. Nell’elenco in basso delle variabili di sistema selezionare la variabile path, dare un Modifica con l’opposito pulsante e nella casella di testo “Valore variabile” aggiungere in fondo alla stringa già presente un punto e virgola seguito dalla stringa “;C:\Programmi\Asymptote” chiudere tutto con OK);

          5 – Preparare un sorgente ed eseguire la tripla compilazione.

          NB. i percorsi possono differire per la singola installazione su win.

          Notare anche che la seconda compilazione con cui si attiva asy.exe, può essere fatta semplicemente con un doppio click sul file nomesorgente.asy generato dalla prima compilazione in LaTeX.

          Spero di esserti stato d’aiuto e che il problema si risolva.
          Roberto.

          Esempio con l’uso di TeXnicCenter:
          1 creare il file testasy.tex contentente:
          `\documentclass[10pt]{article}
          \usepackage{graphicx}
          \usepackage{asymptote}
          \begin{document}
          \begin{figure}
          \centering
          \begin{asy}
          size (3cm, 0);
          draw (N–S, Arrows);
          draw (W–E, Arrows);
          label (“$N$”, N, N);
          label (“$S$”, S, S);
          label (“$E$”, E, E);
          label (“$W$”, W, W);
          \end{asy}
          \caption{Cardinal directions}
          \label{fig:notinline}
          \end{figure}
          \end{document}`

          2 – compilare in TeXnicCenter con CTRL + F7
          3 – fare doppio click sul file testasy.asy appena creato
          4 – ricompilare in TeXnicCenter e visualizzare il risultato con CTRL + Maiusc + F5

        • #25047
          Up
          0
          Down
          ::


          Innanzittutto millemila grazie per avermi spiegato tutta la trafila! 😀
          Dunque, quasi funziona, nel senso seguente: io ho fatto tutto, continua a dirmi che “asy non è un programma riconosciuto etc” però seguendo il consiglio di cliccare 2 volte sul file di estensione .asy me lo fa, e questo va bene. Ho copiato il testo che mi hai allegato tu, ho salvato in testasy.tex, poi nel prompt di ms dos pdflatex testasy.tex tutto ok. clicco 2 volte su testasy.asy e lui mi produce un file EPS di nome “testasy.1” e che quindi con l’estensione diventa “testasy.1.eps” ed è questo che mi da problemi adesso, perchè poi quando faccio pdflatex testasy.tex mi dice che l’estensione “1.eps” non è riconosciuta come valida… e se provo a rinominare il file testasy.1 levando il .1 compila ma il documento che ottengo è senza immagine! 👿
          Sto per mettermi a piangere…

        • #25048
          Up
          0
          Down
          ::


          doverosa correzione: con

          pdflatex testasy.tex

          non ne vuole sapere, con

          latex testasy.tex

          invece funziona… la domanda ora è: coma passo da dvi a pdf? questa dovrebbe essere facile…
          grazie ancora infinite!

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

            Innanzittutto millemila grazie per avermi spiegato tutta la trafila! 😀
            Dunque, quasi funziona, nel senso seguente: io ho fatto tutto, continua a dirmi che “asy non è un programma riconosciuto etc” però seguendo il consiglio di cliccare 2 volte sul file di estensione .asy me lo fa, e questo va bene. Ho copiato il testo che mi hai allegato tu, ho salvato in testasy.tex, poi nel prompt di ms dos pdflatex testasy.tex tutto ok. clicco 2 volte su testasy.asy e lui mi produce un file EPS di nome “testasy.1” e che quindi con l’estensione diventa “testasy.1.eps” ed è questo che mi da problemi adesso, perchè poi quando faccio pdflatex testasy.tex mi dice che l’estensione “1.eps” non è riconosciuta come valida… e se provo a rinominare il file testasy.1 levando il .1 compila ma il documento che ottengo è senza immagine! 👿
            Sto per mettermi a piangere…

            Non è possibile utilizzare pdflatex perchè quest’ultimo non supporta l’EPS.

            La soluzione è quindi di indicare ad asy di produrre il pdf “testasy_1.pdf”.
            Ma questo (a meno di istruzioni diverse nel file di configurazione leggi manuale) è implicito con il compilatore scelto:

            Cancella tutti i file di compilazione e di output lasciando solo il sorgente. A questo punto si lancia la prima compilazione: con “latex testasy” viene prodotto un file dvi e predisposto asy per la produzione dell’eps.

            Se invece compili con “pdflatex testasy” verrà prodotto tutto in pdf.
            Provare per credere.

            Prova anche questo: Start -> Esegui -> cmd INVIO
            Nella finestra di console digita asy -h INVIO
            se produce la schermata della sfilza delle opzioni è tutto a posto, altrimenti controlla il percorso effettivo dell’eseguibile asy.exe e che sia tutto correttamente inserito nella variabile d’ambiente path di windows.

            Ovvero non dovrebbe apparire la scritta:
            `”asy” non è riconosciuto come comando interno o esterno,
            un programma eseguibile o un file batch.`
            Ciao.

          • #25050
            Up
            0
            Down
            ::


            Ho verificato che accetti il comando asy -h, vengono fuori tutte le opzioni del caso, ok.
            Adesso funziona, nel senso che mi accetta il comando asy (cioè non mi dice che non è riconosciuto, ne tanto meno mi costringe ad infilargli nella cartella tutti i file di asymptote), ma mi da come output un eps benchè io abbia scritto pdflatex testasy, e non solo, mi da come output solo l’ultima immagine in ordine di apparizione nel sorgente., e poi mi dice che non riesce a metterla dentro quando gli dico pdflatex testasy

            Ti ringrazio comunque di tutto, soprattutto della tua pazienza, se ne hai abbastanza ti capisco, dillo pure e la finiamo qui, non voglio certamente farti impazzire.

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

              Ho verificato che accetti il comando asy -h, vengono fuori tutte le opzioni del caso, ok.
              Adesso funziona, nel senso che mi accetta il comando asy (cioè non mi dice che non è riconosciuto, ne tanto meno mi costringe ad infilargli nella cartella tutti i file di asymptote), ma mi da come output un eps benchè io abbia scritto pdflatex testasy, e non solo, mi da come output solo l’ultima immagine in ordine di apparizione nel sorgente., e poi mi dice che non riesce a metterla dentro quando gli dico pdflatex testasy

              Ti ringrazio comunque di tutto, soprattutto della tua pazienza, se ne hai abbastanza ti capisco, dillo pure e la finiamo qui, non voglio certamente farti impazzire.

              E’ vero, gli errori da te riscontrati gli ho ottenuti anch’io, lanciando asy con l’estensione del file .tex (i tre errori sul carattere \ ecc).
              Bè poco male, vorrà dire che non la scriveremo (tutto fila liscio se si omette il .tex).

              Ok.
              Per quanto riguarda la produzione del file eps anziché pdf, non saprei cosa suggerirti.
              Proprio adesso ho correttamente compilato sotto Linux e tutto funziona correttamente.
              Prova a controllare se nella cartella di Asymptote c’è il file di configurazione con qualcosa tipo output=”eps”.

              Per il resto, cerco solo di aiutarti per quello che posso e non “di averne abbastanza”, altrimenti manco lo frequentavo il forum 😉 .

              Mi ricordo una volta che non riuscivo a costruire un file jar (un java archive). Sono impazzito per un intero giorno, fino a scoprire il motivo del perchè non funzionava.
              Sono sicuro che riuscirai a trovare l’inghippo.

              Roberto.

            • #25052
              Up
              0
              Down
              ::


              Ok ti ringrazio per la fiducia… anche io non mi arrendo (quasi) mai su queste cose, in qualche modo mi ingegnerò. grazie mille di tutto!
              Ciao

            • #25053
              Up
              0
              Down
              ::


              Vi posto la mia esperienza. Io uso texmaker, quindi i comandi strani (non pdflatex e latex intendo) li mando con la command window. Faccio:
              `pdflatex file.tex
              asy file.asy
              pdflatex file.tex
              pdflatex file.tex`
              E ottieni le figure in PDF, mentre se fai
              `latex file.tex
              asy file.asy
              latex file.tex
              latex file.tex`
              ottieni le stesse figure in eps.

              E’ vero, gli errori da te riscontrati LI ho ottenuti anch’io, lanciando asy con l’estensione del file .tex (i tre errori sul carattere \ ecc).
              Bè poco male, vorrà dire che non la scriveremo (tutto fila liscio se si omette il .tex).

              Questo succede perché quando TeX vede l’ambiente asy, crea un file che si chiama con lo stesso nome del file principale, ma ha estensione asy…
              Cercalo nella cartella principale del documento che lo trovi. Se lo apri con un qualsiasi blocco note scopri che dentro lì ci sono le istruzioni per fare le immagini, con anche il riferimento per il compilatore che stai usando. Ecco un esempio di quello che trovi:
              `access settings;
              if(!settings.multipleView)
              settings.batchView=false;
              settings.tex=”pdflatex”;

              // Beginning of Asymptote Figure 1
              eval(quote{
              defaultfilename='File_1';`
              Come vedi, io ho chiesto la compilazione con pdflatex del file che si chiama File… e lui mi restituisce l’immagine File_1.pdf…
              Se avessi fatto latex file.tex, nel file file.asy avrei avuto settings.tex=”latex”

              Al limite se hai il file eps, e non ti crea da solo il pdf… lo puoi fare tu con “epstopdf file.eps”, e sei a posto.
              Sulla guida di asymptote (for the manual type help) alla sezione 2.4 ti spiega come configurare asymptote per far in modo che “veda” gosthscript con il quale converte da eps a pdf.

              Spero di essere stato chiaro in questa contorta spiegazione,

              Buona serata!

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

          Go to top