Gestire le immagini .eps – problemi con le proporzioni

  • Creatore
    Topic
  • #79212
    Up
    0
    Down
    ::


    Buonasera, sto cercando di venire a capo di alcuni problemi che affliggono la resa grafica della mia tesi.
    Uno di questi è come gestire le immagini .eps
    Nella fattispecie ho parecchi grafici da inserire e vorrei che i bordi di ognuno di questi (sono tutti rettangoli) avessero le stesse dimensioni.
    Il problema è che le immagini generate in eps tramite MatLab hanno proporzioni diverse, quindi anche lavorando con il bounding box averle della stessa dimensione nell’impaginazione sembra impossibile.
    C’è un modo per “Lavorare” su queste immagini più direttamente?
    Un’idea sarebbe quella di assegnare una dimensione fissa agli assi x,y che compongono il grafico (ricordo che sono rettangoli, quindi assegnando ad ogni lato una dimensione uguale verrebbero tutti uguali). però non ho idea di come…
    Altrimenti un’altra idea sarebbe di porre il bounding box proprio a “contatto” con i bordi dei grafici, in questo modo assegnando larghezza e altezza dell’immagine in latex la resa dovrebbe essere corretta.
    Qualcuno ha delle idee?

    Ringrazio fin d’ora chiunque saprà aiutarmi!
    Edoardo

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #79213
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Primo: non lavorare con le immagini eps. Matlab può esportare in pdf e alla peggio devi eseguire a mano il programmino pdfcrop per scontornare quanto Matlab ti produce. Se anche Matlab non ne fosse capace, qualunque versione recente di pdfLaTeX o di XeLaTeX è in grado di gestire le immagini eps, perché eventualmente lancia automaticamente in background il convertitore eps2pdf per trasformarle in pdf e le smargina correttamente a filo del loro contenuto in modo che abbiano il bounding box corretto.

        Secondo: certo che con le opzioni di \includegaphics puoi fissare sia la larghezza che l’altezza di ogni immagine, e in particolare le puoi fissare tutte uguali; ma così facendo, se i fattori di scala risultano diversi in verticale e in orizzontale, l’immagine si deforma; per dei grafici non dovrebbe essere una inconveniente importante, ma si deformano anche le eventuali scritte contenute nei grafici, cosicché sembrano composte con font diversi e la cosa non è bella per niente.

        Vedi dunque che gli inconvenienti ci sono e e non sono da poco. Certamente sarebbe più bello se questi grafici fossero tutti delle stesse dimensioni, ma non è obbligatorio; l’unico caso in cui cercherei di ottenere questa uguaglianza sarebbe se dovessi mettere dei grafici affiancati. Non me ne preoccuperei negli altri casi.

        Non ti so dire come fare in Matlab a fare uscire i grafici delle stesse dimensioni, perché se dovessi fare dei grafici li farei con TikZ e/o pgfplots; ma queste sono questioni di preferenze personali.

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

          ned112″ post=78309Buonasera, sto cercando di venire a capo di alcuni problemi che affliggono la resa grafica della mia tesi.
          Uno di questi è come gestire le immagini .eps
          Nella fattispecie ho parecchi grafici da inserire e vorrei che i bordi di ognuno di questi (sono tutti rettangoli) avessero le stesse dimensioni.
          Il problema è che le immagini generate in eps tramite MatLab hanno proporzioni diverse, quindi anche lavorando con il bounding box averle della stessa dimensione nell’impaginazione sembra impossibile.
          C’è un modo per “Lavorare” su queste immagini più direttamente?
          Un’idea sarebbe quella di assegnare una dimensione fissa agli assi x,y che compongono il grafico (ricordo che sono rettangoli, quindi assegnando ad ogni lato una dimensione uguale verrebbero tutti uguali). però non ho idea di come…
          Altrimenti un’altra idea sarebbe di porre il bounding box proprio a “contatto” con i bordi dei grafici, in questo modo assegnando larghezza e altezza dell’immagine in latex la resa dovrebbe essere corretta.
          Qualcuno ha delle idee?

          Ringrazio fin d’ora chiunque saprà aiutarmi!
          Edoardo

          Se hai tempo i grafici potresti farli con pgfplots (un pacchetto LaTeX) ottenendo una serie di vantaggi, tra cui la qualità dei grafici in relazione con il resto del documento.

          Oltre a quello che ti ha detto Claudio, aggiungo che il tuo problema sembra limitarsi alla sfera di Matlab e non di LaTeX: eps o pdf alla fine in LaTeX puoi farne qualsiasi cosa: scalare, assegnare dimensioni assolute, ruotare, rifilare bordi eccetera, ma io non ho capito quale sia esattamente il tuo problema (forse perché non lavoro da tempo con Matlab).
          Quello che ho inteso è che tu volendo i grafici delle stesse dimensioni, applichi un cabiamento di scala di volta in volta diverso per ogni grafico e quindi gli spessori delle linee non sono sempre uguali. Se è questo il problema, o lo risolvi in Matlab, o lasci le dimensioni originali dei grafici (che non mi sembra sbagliato), oppure ricrei i grafici con pgfplots.
          R.

        • #79215
          Up
          0
          Down
          ::


          Mhm, allora provo a spiegarmi meglio
          I grafici generati da Matlab non hanno le stesse proporzioni, non tutti almeno… quindi anche scalando/ridimensionando non riesco a farli diventare uguali… o meglio… magari ci riesco, ma devo andare a tentativi… cambiando di volta in volta il bounding box a mano nel file .eps e poi lavorando su dimensioni dell’immagine nella riga di chiamata nel testo. Vorrei evitare perchè il tempo è poco ormai.
          Avere un programma più “interattivo” potrebbe essermi utile…

          Poi pdf2latex che è?? Cioè io ce l’ho… ma quando lo chiamo dopo aver fatto la compilazione mi da errore (Unknown graphics extension)… l’unico modo di compilare usando questi eps è il visualizzatore Dvi. Da quando ho cominciato a usare sti eps l’unico modo per visualizzare è il Dvi, PDF non mi funziona più per l’errore di cui sopra. Ho TeXmakerX 2.1 non so se dovrei aggiornare qualcosa. Forse MikTex, forse installare qualche pacchetto…

          Pdfcrop come funzia? E’ pratico?

          Per i grafici farli con programmi diversi da Matlab è molto difficile… stiamo parlando di array con 20000 dati… non di disegni. Tikz sembra fichissimo, ma mi pare complicato e il tempo comincia a stringere.

        • #79216
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Da quello che dici sembrerebbe che tu abbia una distribuzione TeX molto datata e che le tue abitodini ad usare questi rpogrammi sono legate a tradizioni di molti anni fa. Niente di male, ma… Perché andare in giro con una Fiat Balilla, quando si può andare in giro con una macchina moderna?

            Scommetto che al tua distribuzione TeX è una MiKTeX 2.5 o 2.6, oggi la più recente, che per altro è in giro da un due o tre anni è la 2.9/
            Texmaker non viene aggiornato da un anno ma la sua versione è 3.5.

            pdflatex è in giro forse da una quindicina di anni, sicuramente una decina.

            teTeX ha cessato di esistere, almeno come distribuzione dal 2005.

            Se pdflatex ce l’hai ma ti da errore quando cerchi di includere una figura eps, vuol dire che abbastanza antecedente al 2010; oggi il formato dvi non lo usa più nessuno.

            Allora il tuo problema immediato è aggiornare la tua distribuzione; e qui noi consigliamo semrpe di installare TeX Live, il cui programma di installazione si scarica da CTAN l’archivio completo del sistema TeX e se cerchi in rete con il tuo motore preferito usando la parola texlive lo trovi subito. Avendo una macchina Windows, che spero non sia troppo datata, ma abbia almeno il processore a 32 bit e un sistema operativo almeno WinXP, e disponendo di un collegamento internet abbastanza veloce, dovresti cavartela in una oretta. Ti viene installato anche l’editore TeXworks, multipiattaforma; se sei abituato a TeXmaker, la schermata ti parrà minimalista, ma è un ottimo editor con il visualizzatore PDF integrato con il quale puoi fare la ricerca diretta e inversa. Se vuoi mantenere Texmakr scaricati l’ultima versione 3.5, anche quello ha il visualizzatore PDF integrato adatto per la ricerca diretta e inversa.

            Dopo di che, con la distribuzione nuova installata dovresti disporre da finestra di comandi dello script per pdfcrop che con i file pdf ti fa automaticamente quello che con i file eps fai a mano.

            Se non ti importa che le figure siano deformate, definisciti due lunghezze, diciamo figlarg e \figalt, assegna loro dei valori e usa sempre wuelli nel comando \includegraphics; se vui creati una macro del tipo \mettificgura che accetti solo il nome del file, ma che dentro passi questo nome a \includegraphics nel quale hai già specificato una volta per tutte l’opzione [ width=\figlarg, height=\figalt ]. In questo modo eviti di doverlo specificare ogni volta; le macro servono proprio per questi scopi.

            Non dare al colpa a me se poi le figure scalte con fattori di scala diversi in orizzontale e in verticale non ti piacciono più; volevi un’idea? te l’ho data, ma il risultato a me non piacerebbe. Però è solo una questione di gusti persoanli.

          • #79217
            Up
            0
            Down
            ::


            Ciao, intanto grazie delle info.
            Allora ho Win7-Intel i7 etc con MikTex 2.9. Sto facendo l’aggiornamento dei pacchetti e Aggiorno TeXMakerX (fa parte di TeXstudio) alla 2.4 che è la più recente trovata. In pratica aggiorno il programma che ho già. Credo sia diverso da TeXmaker di cui ho trovato la 3.5.

            Come funziona pdfcrop?
            Se questo scontorna le immagini da solo è già qualcosa… almeno poi gli assegno una larghezza fissa e un’altezza fissa e le proporzioni tornano da sole.
            Alla fine posso sempre risalvare i grafici di MatLab in Pdf… tanto ho gli originali in .fig che è il formato MatLab.
            A questo punto usare pdfcrop mi sembra la cosa migliore, ma come lo faccio?

            PS:
            Ho usato il pacchetto epstopdf e facendo manualmente Latex->PStoPdf->Visualizza Pdf mi visualizza tutto, cioè non mi da errori di compilazione.
            Passando per il Dvi o facendo semplicemente Build mi da ancora i problemi con gli .eps

          • #79218
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Con texdoc pdfcrop dato dal prompt dei comandi, anche con MiKTeX dovresti poter leggere la documentazione del programma’ la cosa più semplice è dare il comando dal prompt dei comandi cosi: [tt]pdfcrop file.pdf[/tt], ma se ci metti qualche opzione come ti è stato suggerito, come per esempio un margine di unpt tra la figura e il ritaglio, è meglio; non puoi fissare le dimensioni, che io sappia, [erché lo scopo delo smarginare è quello di togliere completamente i margii attorno alle figure, non di toglierne solo una parte; se vuoi toglierne solo una parte devi usare le opzioni trim e viewport di \includegraphics; documentazione in texdoc grfguide.

              ULTIMO AVVISO: NON USARE PIÙ LATEX, MA SEMPRE PDFLATEX; NON DEVI PIÙ USARE IL FORMATO DVI.

            • #79219
              Up
              0
              Down
              ::


              Io userei volentieri PdfLaTeX la se lo “chiamo” mi dice: Unknown graphics extension: .eps. \includegraphics[scale=0.6]{Immagini/Grafico}
              Naturalmente per ogni immagine che ho dice lo stesso…

              Manca un pacchetto?? Un supporto?? Uso laTex non perché lo ami o per scelta… quello che ho indicato è l’unico metodo che compila… (Ho MikTex 2.9 e l’ultimo TeXStudio 2.9) L’unicaa cosa che mi viene in mente è un pacchetto mancante nel preambolo che allego di sotto:

              `
              \usepackage{algorithmicx}
              \usepackage{algorithm}
              \usepackage{algpseudocode}
              \usepackage{amsmath}
              \usepackage{textcomp}
              \usepackage{epstopdf}
              \usepackage{graphicx}
              \DeclareGraphicsExtensions{.eps,.pdf}
              \usepackage{listings}
              \lstset{language=C++,showtabs=false,basicstyle=\scriptsize,showstringspaces=false,frame=lines,tabsize=1}
              \lstnewenvironment{MatlabEnv}[1][]
              {\lstset{language=Matlab,showtabs=false,basicstyle=\scriptsize,showstringspaces=false,frame=lines,tabsize=1,#1}}{}

              `

              L’unico problema che mi pare potrei avere è quell’opzione –enable-write18 di cui si parla in giro per MikTeX. Però onestamente NON so di che si tratti ed in giro per i forum vedo letto che è un’opzione pericolosa da abilitare. In più non so bene dove dovrei inserirla su TeXstudio…:-?

              Pdfcrop cercherò di capire come usarlo. Ma al momento i pdf prodotti da MatLab sono inutilizzabili… i grafici vanno fuori dai bordi del foglio, vedo solo una porzione del grafico. 😐 😕 Non so se non lo vedo ma sia nel file e ritagliandolo venga bene.

            • #79220
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Devi aggiornare MiKTeX 2.9 ma non è una questione di pacchetti, bensi una questione di programmi.

                Io butterei a mare MiKTeX 2.9, nonostante le benemerenze di questa gloriosa distribuzione; ma oggettivamente ho usato MiKTeX forse per 15 anni, ma da quando non uso più macchine Windows non so più come si faccia ad aggiornare solo i programmi.
                Io installerei TeXLive 2012 completa; il programma di installazione lo trovi seguendo le indicazioni scritte nell’Arte di scrivere con LaTeX

                Data al vecchiaia del tuo MiKTeX 2.9 (non che sia vecchio in assoluto, ma potresti non avere aggiornato i programmi da quando l’hai installato 3 annia fa) potresti mancare anche di pdfcrop, e potresti mancare di un interpete perl per Windows, quindi se anche l’avessi non potresti usare pdfcrop per mancanza dell’interprete perl. Caso mai cerca in rete. Ma la soluzione è quella di installare TeXLive 2012 che sulle macchine Windows installa anche un interprete perl, ridotto ma funzionante.

                Se hai gview (l’interfaccia grafica per ghostscript) e naturalmente hai anche ghostscript (che è alla base anche di epstopdf) puoi scontornare i file eps e salvarli in formato pdf in un colpo solo.

                Ma il tuo problema, da quel che descrivi, è solo e soltanto un problema di contorni bianchi, magari l’intera pagina A4 su cui sono stati salvati da Matlab. È quindi urgente che tu riesca a scontornare.

                Esisterebbe anche la possibilità di usare le opzioni trim e viewport di \includegraphics, ma è difficile specificare le coordinate della finestra di cui non vuoi stampare l’esterno. Possibile, ma lentissimo.

              • #79221
                Up
                0
                Down
                ::


                Alla fine ho rispolto producendo tutti i grafici perfetti in MatLab e scontornandoli con PDF Cropper un applicativo free molto comodo con intergaccia grafica e si appoggia su GhostScript e .NET 3.5. pdfcrop mi dava problemi, sarà MiKTeX o altro.
                Sfortunatamente ci sono file eps a cui non posso rinunciare non avendoli in altro formato(epstopdf fa una traduzione orrida)… quindi compilo in XeLaTeX e fila tutto liscio.

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

            Go to top