Gestione diagramma con TIKZ

  • Creatore
    Topic
  • #84303
    Up
    0
    Down
    ::


    Salve a tutti,

    ho un problema sulla gestione di un diagramma realizzato con il pacchetto TIKZ.

    Funziona tutto a meraviglia ma l’insieme del diagramma viene posto a destra della pagina.

    Ho provato a dare coordinate “x” negative ma non riesco a spostare a sinistra come vorrei.

    Ci sono soluzioni?

    Allego un file di prova (uso XeLaTex)
    [attachment:1]C:\fakepath\Schema_test_finale_1.tex[/attachment]

    [attachment=642]Schema_test_finale_1.tex[/attachment]

    Grazie e saluti

    PM

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #84304
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        piemme” post=83581Salve a tutti,

        ho un problema sulla gestione di un diagramma realizzato con il pacchetto TIKZ.

        Funziona tutto a meraviglia ma l’insieme del diagramma viene posto a destra della pagina.

        Ho provato a dare coordinate “x” negative ma non riesco a spostare a sinistra come vorrei.

        Ci sono soluzioni?

        Allego un file di prova (uso XeLaTex)
        [attachment:1]C:\fakepath\Schema_test_finale_1.tex[/attachment]

        [attachment=642]Schema_test_finale_1.tex[/attachment]

        Grazie e saluti

        PM

        Ciao.
        Provo ad aiutarti spiegando come viene composta una figura grafica in TikZ.
        All’interno dell’ambiente TikZpicture vige un sistema di riferimento per l’inserimento delle coordinate. Alla fine il disegno avrà comunque delle dimensioni minime indipendenti dalla posizione utilizzata per l’origine.
        Per capirci il seguente codice pruduce la stessa pagina finale:
        `\begin{tikzpicture}
        \draw (100,100) rectangle (101,102);
        \end{tikzpicture}`
        `\begin{tikzpicture}
        \draw (0,0) rectangle (1,2);
        \end{tikzpicture}`
        Quindi i tuoi problemi di posizionamento non riguardano TikZ.
        Come inserisci la figura?
        Quello che immagino è che inserisci l’ambiente tikzpicture direttamente nel testo.
        Quindi, ti trovi come una specie di enorme carattere. TeX lo identa, e lo tratta come un capoverso.
        Prova a mettere \noindent subito prima dell’ambiente grafico.
        Comunque, in generale dovresti inserire la figura a sua volta in un ambiente figure.
        Sul codice TikZ che hai costruito, possono essere fatte ulteriori ottimizzazioni.
        Saluti.
        R.

      • #84305
        Up
        0
        Down
        ::


        Roberto ha detto bene, ma nel caso specifico le cose sono un po’ diverse. Usando classi standard (senza personalizzazione dei margini) fà conto di avere 12cm massimi disponibili per la figura; in TikZ l’unità base è il cm quindi `
        \node at (1,0){Ciao};
        ` posiziona il testo Ciao 1cm a destra rispetto all’origine. Considerata la dimensione massima (che avevo ricavato per esperienza), la parte del disegno più lontana può essere a [tt](12,0)[/tt], ma se utilizzi anche coordinate negative devi riscalare le cose: ad esempio da [tt](-2,0)[/tt] a [tt](10,0)[/tt].

        Il problema del tuo codice è che hai sforato, non intenzionalmente, ma hai sforato: infatti i nodi più distanti sono posizionati a [tt](11,20)[/tt] e [tt](-1,21)[/tt] però occorre tenere conto della dimensione stessa dei nodi (minimo 2.5cm). Ecco quindi che sporgi di 1.5cm da entrambi i lati. Quindi l’immagine non si sposta da dove è piazzata (non so perché la vedi a destra: a me va in pagina nuova addirittura).

        L’unico modo che hai per sistemare le cose senza impazzire è usare le opzioni di riscalamento: `
        \begin{tikzpicture}[scale=0.8,transform shape]
        ` dovrebbero funzionare a meraviglia: l’immagine ti apparirà nel centro esatto della pagina.

        Come diceva Roberto, puoi migliorare il codice: non perché non vada bene, ma piuttosto perché anche con copia/incolla si impazzisce a ripetere le stesse opzioni (e peggiora la lettura).

        Usa gli stili ad esempio: `
        \tikzset{stile dei nodi/.style={
        draw,
        minimum height=0.7cm,
        text width=2.5cm,
        text centered,
        font=\bfseries
        }
        }
        —–
        \node[stile dei nodi] (IS) at (11,20) {IS};
        etc
        ` Ti aiuteranno sicuramente.

        Ciao
        Claudio

      • #84306
        Up
        0
        Down
        ::


        Suggerimenti preziosi!
        Ho modificato il codice e adesso è certamente più razionale.
        La geometria della pagina l’avevo già modificata ponendo 4,5 cm margine esterno e 2,5 cm margine interno; dovrò scalare l’immagine per farla stare entro i 14 cm utili.
        Ho provato a mettere \noindent sul file di prova e funziona mentre sul file principale (con \include{filename}) non funziona. Ho provato a scriverlo esternamente con varie combinazioni ma non cambia.
        Adesso sto ricontrollando tutto nell’eventualità che mi sia sfuggita qualche inezia.
        Grazie.
        pm

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

          piemme” post=83605Suggerimenti preziosi!
          Ho modificato il codice e adesso è certamente più razionale.
          La geometria della pagina l’avevo già modificata ponendo 4,5 cm margine esterno e 2,5 cm margine interno; dovrò scalare l’immagine per farla stare entro i 14 cm utili.
          Ho provato a mettere \noindent sul file di prova e funziona mentre sul file principale (con \include{filename}) non funziona. Ho provato a scriverlo esternamente con varie combinazioni ma non cambia.
          Adesso sto ricontrollando tutto nell’eventualità che mi sia sfuggita qualche inezia.
          Grazie.
          pm

          L’inezia è che le immagini non si includono con \include ma bensì con \includegraphics del pacchetto graphicx!!!
          R.

        • #84308
          Up
          0
          Down
          ::


          Grazie per l’informazione ma anche con \includegraphics non funziona.

          A seguito dei precedenti suggerimenti, avevo posto \noindent nel mio ambiente di prova, che è un file costituito da macro tikz, e il diagramma si era posizionato in modo corretto.

          Adesso penso di avere due strade: posso generare un diagramma a se stante, quindi pdf, e poi inserirlo con \includegraphics oppure posso inserire il codice con \include, prova che ho già effettuato ma che non ha dato i risultati sperati. Per il momento ho ridotto di un 3% e il risultato è accettabile.

          Saluti.

          PM

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

            piemme” post=83637Grazie per l’informazione ma anche con \includegraphics non funziona.

            A seguito dei precedenti suggerimenti, avevo posto \noindent nel mio ambiente di prova, che è un file costituito da macro tikz, e il diagramma si era posizionato in modo corretto.

            Adesso penso di avere due strade: posso generare un diagramma a se stante, quindi pdf, e poi inserirlo con \includegraphics oppure posso inserire il codice con \include, prova che ho già effettuato ma che non ha dato i risultati sperati. Per il momento ho ridotto di un 3% e il risultato è accettabile.

            Saluti.

            PM

            Vero, però per includere codice TeX da un file si usa \input{nome_file_senza_estensione} e non \inlcude che serve per comporre i capitoli…
            Mi era parso di capire che avevi già trasformato il codice in un’immagine pdf…
            R.

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

        Go to top