Testo a sinistra e grafico a destra

  • Creatore
    Topic
  • #17679
    Up
    0
    Down
    ::


    Salve a tutti,
    devo mettere del testo a sinistra della pagina e, a destra un grafico.
    Girando su questo forum sono riuscito a trovare degli esempi, e, assemblando il tutto, sono riuscito ad ottenere quello che volevo!
    Il problema, è che il codice è un po’ “incasinato” (secondo me), e mi sembra impossibile che non ci sia un modo più semplice per fare quello che voglio io.
    Il codice che ho fatto è:
    `\makebox[\textwidth]{%
    \setbox0=\vbox{\hbox{
    \parbox{0.5\textwidth}{
    $f~~\R \rightarrow \R,~~f_{(x)}=x^2$\\
    $f$ è \emph{suriettiva} se e solo se $Im(f)=y$\\
    $Im(f)=[0,\infty)$\\
    $f$ non è suriettiva perchè $-1 \not\in f$\\
    per renderla \emph{suriettiva}:\\
    $\overline{f}~~\R \rightarrow [0, +\infty),~~\overline{f}_{(x)}=x^2$\\
    $f$ non è \emph{iniettiva} poichè $f_{(1)}=f{(-1)}$\\
    per renderla \emph{inettiva}:\\
    $f^*~~[0, +\infty) \rightarrow [0, +\infty)$
    }
    }}%
    \copy0
    \hfil
    \vbox to\ht0 {
    \hbox{
    \parbox{0.5\textwidth}{
    \flushright
    \includegraphics{plot1.eps}
    }
    }
    }%
    }`
    I requisiti minimi è che la larghezza totale sia tutta la pagina e che la larghezza delle due colonne sia del 50% ognuna. Inoltre, l’allineamento verticale deve essere in alto.
    Grazie a tutti per i consigli che saprete darmi,
    Niccolò

Visualizzazione 16 filoni di risposte
  • Autore
    Risposte
    • #17680
      lorenzo.pantieri
      Partecipante
        Up
        0
        Down
        ::


        Il pacchetto wrapfloat permette di far girare del testo attorno a un grafico.

        Se le parole sono una spiegazione di quello che accade in figura, puoi però anche mettere tutto dentro la didascalia.

        Ciao,
        L.

      • #17681
        Up
        0
        Down
        ::


        Per mettere il testo su più righe in modo da non dover sempre uscire ed entrare dalla modalità matematica puoi scrivere:
        `
        \begin{align*}
        & f \approx R \rightarrow R, \approx f_{(x)}=x^2\\
        & f \text{è \emph{suriettiva} se e solo se } Im(f)=y\\
        & Im(f)=[0,\infty)\\
        & \text{f non è suriettiva perchè } -1 \not\in f\\
        & \text{per renderla \emph{suriettiva}}:\\
        & \overline{f} \approx R \rightarrow [0, +\infty), \approx \overline{f}_{(x)}=x^2\\
        & \text{f non è \emph{iniettiva} poichè } f_{(1)}=f{(-1)}\\
        & \text{per renderla \emph{inettiva}}:\\
        & f^* \approx [0, +\infty) \rightarrow [0, +\infty)
        \end{align*}`

        Ritornado al tuo problema se fossi nei tuoi panni lo risolverei con un:
        `
        \begin{minipage}{5cm}
        \begin{align*}
        & f \approx R \rightarrow R, \approx f_{(x)}=x^2\\
        & f \text{è \emph{suriettiva} se e solo se } Im(f)=y\\
        & Im(f)=[0,\infty)\\
        & \text{f non è suriettiva perchè } -1 \not\in f\\
        & \text{per renderla \emph{suriettiva}}:\\
        & \overline{f} \approx R \rightarrow [0, +\infty), \approx \overline{f}_{(x)}=x^2\\
        & \text{f non è \emph{iniettiva} poichè } f_{(1)}=f{(-1)}\\
        & \text{per renderla \emph{inettiva}:}\\
        & f^* \approx [0, +\infty) \rightarrow [0, +\infty)\\
        \end{align*}
        \end{minipage}
        \hfill
        \begin{minipage}{5cm}
        \includegraphics[width=,height=]{plot1.eps}
        \end{minipage}
        `

        In cui ho creato due piccole pagine affiancate nella pagina della stessa grandezza {5cm} e ho detto a LaTeX di gestire automaticamente la distanza tra di esse con \hfill.

        Ciao Alberto

      • #17682
        Up
        0
        Down
        ::


        Il problema non è completamente risolto, perchè ho modificato il tuo suggertimento, inserendo le due \minipage all’interno di una tabella, per sfruttare tutto lo spazio orizzontale disponibile.
        Il problema è che l’allineamento verticale è centrato, come di default. Io, invece, vorrei che l’allineamento verticale sia in alto. Cosicchè quando l’altezza del testo di sinistra è maggiore dell’altezza del grafico, il grafico rimanga in alto, e non nel mezzo rispetto al testo.
        Il codice che sto utilizzando è:
        `\begin{tabular}{lr}
        \begin{minipage}{0.5\textwidth}
        $f~~\R \rightarrow \R,~~f_{(x)}=x^2$\\
        $f$ è \emph{suriettiva} se e solo se $Im(f)=y$\\
        $Im(f)=[0,\infty)$\\
        $f$ non è suriettiva perchè $-1 \not\in f$\\
        per renderla \emph{suriettiva}:\\
        $\overline{f}~~\R \rightarrow [0, +\infty),~~\overline{f}_{(x)}=x^2$\\
        $f$ non è \emph{iniettiva} poichè $f_{(1)}=f{(-1)}$\\
        per renderla \emph{inettiva}:\\
        $f^*~~[0, +\infty) \rightarrow [0, +\infty)$
        \end{minipage} &
        \begin{minipage}{0.5\textwidth}
        \flushright
        \includegraphics{plot1.eps}~~~~~
        \end{minipage}
        \\
        \end{tabular}`
        Per il resto, funziona tutto perfettamente… Apparte quelle tilde che ho messo dopo il grafico, perchè altrimenti mi veniva troppo spostato a destra.
        Inoltre, visto che ci sono, vi chiedo anche un’altra cosa: esiste un comando apposta per fare più di uno spazio contemporaneamente (tipo 2 spazi), apparte la tilde?
        Grazie a tutti,
        Niccolò

      • #17683
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::

          esiste un comando apposta per fare più di uno spazio contemporaneamente (tipo 2 spazi), apparte la tilde?

          Il comando \, genera una spaziatura di 3/18 quad, \: di 4/18 quad, \; di 5/18 quad. I comandi \quad e \qquad producono spazi ampi. La dimensione di un \quad corrisponde all’ampiezza del carattere ‘M’ nel font corrente. Cose del tipo:
          `Seguono\ \ due spazi.`
          sono sintatticamente ammesse, ma non si fanno.

          Ciao,
          L.

        • #17684
          Up
          0
          Down
          ::


          Grazie Lorenzo per l’aiuto.
          Riguardo all’altro problema, e cioè, l’allineamento verticale, allego una immagine di come vorrei che fosse il risultato. Almeno è più chiaro…

          Come si può vedere dall’immagine, l’allineamento verticale è in alto, e la larghezza è tutta la pagina.
          Devo solo riuscire a cambiare l’allineamento verticale, e poi ce l’ho fatta!!!

        • #17685
          Up
          0
          Down
          ::

          Il problema non è completamente risolto, perchè ho modificato il tuo suggertimento, inserendo le due \minipage all’interno di una tabella, per sfruttare tutto lo spazio orizzontale disponibile.
          Il problema è che l’allineamento verticale è centrato, come di default. Io, invece, vorrei che l’allineamento verticale sia in alto. Cosicchè quando l’altezza del testo di sinistra è maggiore dell’altezza del grafico, il grafico rimanga in alto, e non nel mezzo rispetto al testo.
          Il codice che sto utilizzando è:
          `\begin{tabular}{lr}
          \begin{minipage}{0.5\textwidth}
          $f~~\R \rightarrow \R,~~f_{(x)}=x^2$\\
          $f$ è \emph{suriettiva} se e solo se $Im(f)=y$\\
          $Im(f)=[0,\infty)$\\
          $f$ non è suriettiva perchè $-1 \not\in f$\\
          per renderla \emph{suriettiva}:\\
          $\overline{f}~~\R \rightarrow [0, +\infty),~~\overline{f}_{(x)}=x^2$\\
          $f$ non è \emph{iniettiva} poichè $f_{(1)}=f{(-1)}$\\
          per renderla \emph{inettiva}:\\
          $f^*~~[0, +\infty) \rightarrow [0, +\infty)$
          \end{minipage} &
          \begin{minipage}{0.5\textwidth}
          \flushright
          \includegraphics{plot1.eps}~~~~~
          \end{minipage}
          \\
          \end{tabular}`
          Per il resto, funziona tutto perfettamente… Apparte quelle tilde che ho messo dopo il grafico, perchè altrimenti mi veniva troppo spostato a destra.

          No, non funziona perfettamente, perché ti dà di sicuro un messaggio di Overfull \hbox: infatti il risultato del tuo tabular è probabilmente 39pt maggiore della larghezza di riga.

          Inoltre il testo apparirà spostato verso destra, rispetto al margine sinistro. Infatti non hai tenuto conto degli spazi inseriti prima, tra e dopo le colonne.
          `\begin{center}
          \begin{minipage}[t]{.5\columnwidth}
          $f\colon\R \rightarrow \R$, $f(x)=x^2$

          $f$ è \emph{suriettiva} se e solo se $\im(f)=y$

          $\im(f)=[0,\infty)$

          $f$ non è suriettiva perchè $-1 \notin\im(f)$

          per renderla \emph{suriettiva}:

          $\overline{f}\colon\R \rightarrow [0, +\infty)$, $\overline{f}(x)=x^2$

          $f$ non è \emph{iniettiva} poichè $f(1)=f(-1)$

          per renderla \emph{inettiva}:

          $f^*\colon [0, +\infty) \rightarrow [0, +\infty)$
          \end{minipage}%
          \begin{minipage}[t]{0.5\columnwidth}
          \hrule height 0pt
          \raggedleft
          \includegraphics{plot1.eps}
          \hrule height 0pt
          \end{minipage}
          \end{center}`
          Nota che non si mette (x) a pedice di f, in alcun caso. Inoltre il nome della funzione si fa seguire da “:”, senza spazio prima e con spazio dopo (\colon). Ho tolto tutti i \\, perché devi abituarti a non usarlo, anche se lì potrebbero pure andarci.

          Altri piccoli errori: si usa \notin perché \not\in non dà un buon risultato. Scrivere “$-1\notin f$” non ha senso. L’operatore “Im” va definito: se carichi amsmath puoi semplicemente scrivere nel preambolo
          `\DeclareMathOperator{\im}{Im}`
          Non puoi usare come nome \Im perché c’è già quel comando.

          Ultime cose: \flushright non va usato, al suo posto va impiegata la dichiarazione \raggedleft; e non dimenticare il % dopo \end{minipage}.

          Con l’argomento opzionale [t] a minipage ottieni l’allineamento che vuoi, ma nella minipage con il grafico devi aggiungere quel trucco con “\hrule 0pt” (motivi TeXnici)

          Ciao
          Enrico

        • #17686
          Up
          0
          Down
          ::


          Grazie mille Enrico!
          Così funziona veramente bene!
          Ho creato un comando personale, perchè dovrò riutilzzare questo layout più volte, e funziona tutto alla perfezione!
          Grazie anche a tutti gli altri che mi hanno dato degli ottimi suggerimenti per risolvere questo problema!
          Grazie a tutti!
          Niccolò

        • #17687
          Up
          0
          Down
          ::

          Grazie mille Enrico!
          Così funziona veramente bene!
          Ho creato un comando personale, perchè dovrò riutilzzare questo layout più volte, e funziona tutto alla perfezione!
          Grazie anche a tutti gli altri che mi hanno dato degli ottimi suggerimenti per risolvere questo problema!
          Grazie a tutti!

          `\newcommand{\nomegrafico}{}
          \newcommand{\opzionigrafico}{}
          \newenvironment{affiancagrafico}[2][]
          {\renewcommand{\nomegrafico}{#2}%
          \renewcommand{\opzionigrafico}{#1}%
          \begin{center}\begin{minipage}[t]{0.5\columnwidth}}
          {\end{minipage}\begin{minipage}[t]{0.5\columnwidth}
          \hrule height 0pt
          \raggedleft
          \expandafter\includegraphics\expandafter[\opzionigrafico]{\nomegrafico}
          \hrule height 0pt
          \end{minipage}\end{center}}`
          Lo usi scrivendo
          `\begin{affiancagrafico}[opzioni]{file}
          testo da mettere sulla sinistra
          \end{affiancagrafico}`
          In questo modo puoi anche dare le opzioni desiderate al comando \includegraphics; per esempio potresti dover scalare il grafico con “width=.4\columnwidth”. Il tuo originale sarebbe
          `\begin{affiancagrafico}{plot1}
          $f\colon\R \rightarrow \R$, $f(x)=x^2$

          $f$ è \emph{suriettiva} se e solo se $\im(f)=y$


          \end{affiancagrafico}`
          perché non hai bisogno di dare opzioni.

          Ciao
          Enrico

        • #17688
          Up
          0
          Down
          ::


          Scusate, non trovo il sito ufficiale (né su CTAN) da dove prelevare il pacchetto wrapfloat.

        • #17689
          Up
          0
          Down
          ::


          Prova a guardare qui:
          http://tug.ctan.org/tex-archive/macros/latex/contrib/wrapfig/

          La documentazione è all’interno del file wrapfig.sty. Un pacchetto vero e proprio non so se c’è. Che sistema operativo utilizzi?

          Ciao Alberto

        • #17690
          Up
          0
          Down
          ::


          Windows. Sì, lo so, Linux è meglio, son d’accordo, però, non essendo un fenomeno con quel sistema operativo, ripiego su windows. Motivi particolari per chiederlo?

        • #17691
          Up
          0
          Down
          ::

          Windows. Sì, lo so, Linux è meglio,

          Non era per quello (anche se è vero :wink:) conoscendo il sistema su cui hai il problema ti si possono dare informazioni più precise.

          Ciao Alberto

        • #17692
          Up
          0
          Down
          ::


          Immaginavo, comunque sì MikTeX, Windows, TeXnicCenter.

          Detto questo ho or ora usato il pacchetto per la prima volta e mi embra un bel po’ da rendere più solido. E’ molto probabile che l’environment wrapfigure venga messo fuori lista, per così dire, nel conteggio delle immagini. Es. Supponiamo che la wrapfigure sia la 1.3, è probabilissimo che la 1.4 o 1.5 sia posta prima della 1.3=wrapfigure.

          inoltre con questo scemissimo codice:
          `Il lattice è un'emulsione complessa. Vi si possono trovare: alcaloidi, proteine, cellule, enzimi, idrocarburi e altre sostanze. La composizione del lattice può variare a seconda della specie o dell'individuo vegetale che lo secerne. La particolare consistenza è da attribuire alla presenza degli idrocarburi.
          Le migliori e più pregiate qualità di lattice naturale si estraggono dall'Hevea brasiliensis nelle foreste tropicali asiatiche, Malesia e Sri Lanka in particolare. Qualità di lattice naturale leggermente inferiori si estraggono anche dall'Hevea guianensis, dall'Hevea benthamiana e da altri alberi produttori di lattice.

          %IMMAGINE SINGOLA INCORNICIATA
          \begin{wrapfigure}[5]{l}[34pt]{2cm}%righe di testo al fianco, posizione (right, left, etc.), distanza dal bordo, width figura
          \includegraphics{Logo.PNG}
          \caption{Logo}
          \label{fig:Logo1p}
          \end{wrapfigure}

          Il lattice possiede straordinarie e naturali caratteristiche anallergiche e antibatteriche. È in assoluto il materiale più elastico che si conosca. Altra sua fondamentale caratteristica è la cd. “resilienza”, cioè la naturale e istantanea capacità di riassumere la forma originale quantunque sottoposto a pressione o allungamento. Per tale ragione è il miglior prodotto per produrre guanti per uso medico o materassi ergo-anatomici. Questa straordinaria capacità si riscontra solo nella pelle umana.`

          LaTeX impazzisce e mi da tre Bad Box.

        • #17693
          Up
          0
          Down
          ::


          Risolto da me. Allora:
          `\begin{wrapfloat}{figure}{l}{0pt}
          \includegraphics[height=3cm]{Logo.PNG}
          \caption{Dida.}
          \label{fig:prova}
          \end{wrapfloat}`
          Con l’accortezza di usare sto wrapfloat soltanto alll’inizio di un capoverso: per intendersi sopra \begin{wrapfloat} ci deve essere una riga vuota. Piccole accortezze. Comunque questo pacchetto devono assolutamente migliorarlo, perché è molto interessante.

        • #17694
          Up
          0
          Down
          ::


          Messaggio numero 100!

          L’unica cosa che non ho capito dell’ambiente wrapfloat è il secondo parametro.

          `\begin{wrapfloat}{figure}{l}{0pt}`

          {l} =left (o right se uno vuole)

          {0pt}=ma che distanza è?

        • #17695
          DMW
            Up
            0
            Down
            ::


            quel parametro è la larghezza della zona in cui risiede la figura. Se metti 200pt, il testo che circonda la figura rientra di 200pt. Se metti 0pt il pacchetto fa da solo.

            Può risultare utile se vuoi dare più spazio alla figura e più margini ai suoi lati. Io lascio sempre a 0pt. il parametro è utile se con una dichiarazione del genere
            `\begin{wrapfigure}[9]{l}[2cm]{4cm}
            …`

            vuoi una zona alta 9 righe, larga 4cm e che per 2 dei 4cm sporga verso il margine sinistro.
            In pratica la figura sporge per 2cm verso il margine e i per restanti 2cm rimane dentro il testo che rientra di altrettanto.

            `\usepackage{wrapfig}

            \begin{document}

            Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Disegni Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.

            \begin{wrapfigure}[9]{l}[2cm]{4cm}
            \centering
            \rule{3cm}{2cm}
            \caption{figura wrapfig}
            \end{wrapfigure}

            Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Disegni Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio. Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.Testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio testo fittizio.
            \end{document}`

            In questo caso il tuo parametro vale 4cm.

            Ciao

            Andrea

          • #17696
            Up
            0
            Down
            ::

            Messaggio numero 100!

            L’unica cosa che non ho capito dell’ambiente wrapfloat è il secondo parametro.

            `\begin{wrapfloat}{figure}{l}{0pt}`

            {l} =left (o right se uno vuole)

            {0pt}=ma che distanza è?

            Messaggio numero 2713 🙂

            La documentazione dice che se usi 0pt (o 0cm o 0), viene usata la larghezza naturale del contenuto dell’ambiente. Puoi dare un valore positivo se desideri lasciarne di più. Può essere necessario se ti serve una didascalia.

            Ciao
            Enrico

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

        Go to top