Allineare formula matematica con foto

  • Creatore
    Topic
  • #112065
    Up
    0
    Down
    ::


    Ciao a tutti ragazzi!! Vorrei provare ad allineare una formula, in questo caso un sistema con una foto. Ho provato con i vari ambienti eqnarray ed align ma niente, mi da questo problema che metto in allegato, non sono proprio allineati, come posso risolvere?? Grazie a tutti e copio il mio tentativo:
    `
    \documentclass [a4paper,12pt,openany]{book}
    \pdfpagewidth\paperwidth
    \pdfpageheight\paperheight
    \usepackage[italian]{babel}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage{amsmath}
    \usepackage{accents}
    \usepackage{graphicx}
    \usepackage[footnotesize, normal]{caption}
    \usepackage{amsmath,amssymb}
    \usepackage{framed}
    \usepackage{float}
    \usepackage{mathtools}
    \usepackage{fancyhdr}
    \usepackage{microtype}
    \usepackage{cancel}

    %Il campo di spostamenti consistenti con le ipotesi è:
    %\begin{align*}
    %\begin{cases}
    %u(x,y,z)=u^o+z\phi_x(x,y)\\
    %v(x,y,z)=v^o+z\phi_y(x,y)\\
    %w(x,y,z)=w^o+z\phi_z(x,y)
    %\end{cases} & \includegraphics[scale=.8]{4126.jpg}
    %\end{align*}
    `

    [attachment=1987]screen.jpg[/attachment]

    P.S. ho commentato il tutto perché scrivendolo senza commenti qua nel forum appare direttamente come in Tex e non so fare altrimenti:lol: 😆

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #112066
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Ti do due soluzioni con il codice seguente`% !TEX encoding = UTF-8 Unicode
        % !TEX TS-program = pdflatex
        \documentclass [a4paper,12pt,openany]{book}\errorcontextlines=10
        \pdfpagewidth\paperwidth
        \pdfpageheight\paperheight
        \usepackage[italian]{babel}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage{lmodern}
        \usepackage{amsmath,amssymb}
        \usepackage{mathtools}
        \usepackage{accents}
        \usepackage[footnotesize, normal]{caption}
        \usepackage{graphicx}
        \usepackage{framed}
        \usepackage{float}
        \usepackage{fancyhdr}
        \usepackage{cancel}
        \usepackage{microtype}

        \dimendef\largh=256 \largh=0.475\textwidth

        \begin{document}
        Il campo di spostamenti consistenti con le ipotesi è:
        \begin{equation}
        \begin{tabular}{cc}
        \parbox{\largh}{$\displaystyle
        \begin{cases}
        u(x,y,z)=u^o+z\phi_x(x,y)\\
        v(x,y,z)=v^o+z\phi_y(x,y)\\
        w(x,y,z)=w^o+z\phi_z(x,y)
        \end{cases}
        $}
        &
        \parbox{\largh}{\includegraphics[width=\largh]{logopolito}}
        \end{tabular}
        \end{equation}
        \vspace{5cm}

        Altra versione:
        %
        \begin{equation}
        \begin{cases}
        u(x,y,z)=u^o+z\phi_x(x,y)\\
        v(x,y,z)=v^o+z\phi_y(x,y) &
        \text{\unitlength=\largh
        \picture(1,0)\put(0,0){\makebox(0,0)[cl]%
        {\includegraphics[width=\largh]{logopolito}}}%
        \endpicture
        }\\
        w(x,y,z)=w^o+z\phi_z(x,y)
        \end{cases}
        \end{equation}

        \end{document}`La seconda mi piace di più.

        Nota che non avendo tu allegato una figura qualsiasi al tuo messaggio ho usato il logo del Politecnico, perché non avevo voglia di cercare un qualunque pacchetto contenente immagini a caso.

        Un’altra volta cerca di allegare un esmepio minimo compilabile; qualcoosa che contenga il minimo per replicare il tuo problema ma che un frequentatore del foru pocca copiare, incollare e compilare direttamente. Senza dover inventarsi che cosa aggiungere al tuo codice.

        penso comunque che tu abbia notato che il tuo esempio carica amsmath due volte.

      • #112067
        Up
        0
        Down
        ::


        Grazie mille!! Si in effetti non avevo mai notato di aver caricato il pacchetto due volte, ne rimuovo subito uno!!
        Sarà fatto per la prossima volta in effetti non ho pensato a questo fatto dell’immagine!!
        Userò la seconda versione che per me è di più facile comprensione 😀 😀 Grazie mille ancora

      • #112068
        Up
        0
        Down
        ::


        Ci sono tanti modi. Ecco un suggerimento per un’altra possibilità:
        `
        \documentclass[a4paper]{article}
        \usepackage[T1]{fontenc}
        % \usepackage[utf8]{inputenc} % non lo uso nei codici affissi in Internet
        \usepackage[italian]{babel}
        \usepackage{amsmath}
        \usepackage{graphicx}

        % Il pacchetto seguente semplifica la generazione di Esempi Minimi Compilabili
        % (= Minimal Working Examples, MWE) come il presente; **non** deve essere usato
        % in un documento reale.
        \usepackage{mwe}

        \begin{document}

        Testo che precede l'equazione.
        \begin{equation}
        \left\{
        \begin{aligned}
        u(x,y,z) &= u^o+z\phi_x(x,y)\\
        v(x,y,z) &= v^o+z\phi_y(x,y)\\
        w(x,y,z) &= w^o+z\phi_z(x,y)
        \end{aligned}
        \right.
        \qquad\qquad
        \begin{gathered}
        \includegraphics[scale=.2]{image}
        \end{gathered}
        \end{equation}
        Testo che segue l'equazione.

        \end{document}
        `
        Nota, fra le altre cose, che ho rimpiazzato il tuo costrutto`\begin{cases}

        \end{cases}`che, a quel che ho capito, tu usavi al solo scopo di avere la parentesi graffa sulla sinistra, con`\left\{
        \begin{aligned}

        \end{aligned}
        \right.`costrutto che, oltre a fornire la graffa, permette anche di allineare le tre equazioni in corrispondenza del segni di uguaglianza.

        Aggiunta

        Si noterà che il codice precedente non allinea perfettamente l’asse mediano della foto con quello delle formule. Si può migliorare questo aspetto usando direttamente un paio di comandi primitivi del TeX:
        `
        \documentclass[a4paper]{article}
        \usepackage[T1]{fontenc}
        % \usepackage[utf8]{inputenc} % non lo uso nei codici affissi in Internet
        \usepackage[italian]{babel}
        \usepackage{amsmath}
        \usepackage{graphicx}

        % Il pacchetto seguente semplifica la generazione di Esempi Minimi Compilabili
        % (= Minimal Working Examples, MWE) come il presente; **non** deve essere usato
        % in un documento reale.
        \usepackage{mwe}

        \begin{document}

        Testo che precede l'equazione.
        \begin{equation}
        \left\{
        \begin{alignedat}{2}
        u(x,y,z) &= u^o&&+z\phi_x(x,y)\\
        v(x,y,z) &= v^o&&+z\phi_y(x,y)\\
        w(x,y,z) &= w^o&&+z\phi_z(x,y)
        \end{alignedat}
        \right.
        % \qquad\qquad % decommentare una volta constatato il perfetto allineamento
        \vcenter{\hbox{\includegraphics[scale=.2]{image}}}
        \end{equation}
        Testo che segue l'equazione.

        \end{document}
        `
        Si noti che ho soppresso, commentandolo, lo spazio orizzontale di separazione tra le equazioni e la «foto», per facilitare la constatazione del fatto che ora l’allineamento è perfetto: dopo averlo constatato, raccomando di ricordarsi di ripristinare lo spazio originale! 🙂

        Ho colto l’occasione anche per mostrare come è possibile allineare verticalmente le formule di sinistra sia in corrispondenza dei segni uguale che dei segni più.

        Ciao.


        Gustavo

      • #112069
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Sono sempre fonte di apprendimento le tue soluzioni; grazie Gustavo.

          Tuttavia volevo segnalarti che \vcenter e \parbox (senza opzione di allineamento) fanno al stessa cosa; ma per il lettore \parbox potrebbe essere meno misterioso di \vcenter; né dell’uno né dell’altro si parla nelle nostre guide, tranne forse nella guida tematica tradotta in italiano dell’appendice C del manuale di Lamport (Il LaTeX Reference Manual commentato), mentre \vcenter di solito si trova documentato solo nel TeXbook

          Commento: Qualche tempo fa era apparsa la notizia che come attività di rieducazione in carcere, c’era un gruppo che si occupava della traduzione in italiano del TeXbook; non so che fine abbia fatto questo progetto. Ma si potrebbe rilanciare l’idea fra i frequentatori del forum…

        • #112070
          Up
          0
          Down
          ::


          Grazie mille ancora!! Visto che ci sono colgo l’occasione per togliermi un dubbio, quando uso l’ambiente \underbrace{.}_{.} di solito accade che quando la scritta da mettere sotto la formula, ovvero nelle seconde parentesi graffe del comando è più lunga del termine da descrivere la formula si deforma, esempio:
          a+b+c+\underbrace{d}_{termine espansivo}=0

          Questo è un esempio abbastanza esagerato, ma è per far capire bene il problema, il termine “d” in questo caso si separa dal resto della formula perchè la frase sotto che la descrive è troppo lunga. Potrei con il comando \vcenter o \parbox in qualche modo, visto che ho provato ma non riesco a farlo andare, a far si che la parola o le parole sotto non siano più larghe del termine o dei termini da descrivere, quindi anche andando a capo?
          So di non essermi spiegato benissimo, spero riusciate a capirmi, nel caso provo con degli esempi più pratici. Grazie mille.

        • #112071
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Mi pare che il pacchetto mathtools risolva il tuo problema; leggi la documentazione dando da terminale il comando texdoc mathtools

          • #112072
            Up
            0
            Down
            ::


            Provvedo subito grazie mille!!

          • #112073
            Up
            0
            Down
            ::

            OldClaudio” post=112407[…] volevo segnalarti che \vcenter e \parbox (senza opzione di allineamento) fanno al stessa cosa; ma per il lettore \parbox potrebbe essere meno misterioso di \vcenter […]

            Be’, certo… lo sapevo! 😉 Il punto è che qui uso un trucco che è intrinsecamente di basso livello, il quale consiste non tanto nell’uso di [tt]\vcenter[/tt] (o di [tt]\parbox[/tt], che, come dice @OldClaudio, sarebbe fondamentalmente la stessa cosa), quanto piuttosto nel racchiudere il comando [tt]\includegraphics[/tt] dentro la primitiva [tt]\hbox[/tt] (e qui [tt]\mbox[/tt], o [tt]\makebox[/tt], non sarebbero affatto la stessa cosa!), in modo che venga eseguito in modo orizzontale ristretto. Bisogna per forza conoscere il comportamento di basso livello del TeX per capire la differenza che ciò comporta, e che risiede nel fatto che la scatola verticale prodotta da [tt]\vcenter[/tt] (o da [tt]\parbox[/tt]) avrà giusto giusto la larghezza della figura inserita, indipendentemente dal valore che il parametro [tt]\hsize[/tt] ha dentro tale scatola verticale. Insomma, visto che il trucco è intrinsecamente di basso livello, mi è sembrato più onesto (per così dire) scriverlo interamente come tale. Si ricordi anche che il comando [tt]\parbox[/tt] richiede un argomento obbligatorio nel quale va specificata la larghezza/giustezza della scatola verticale che esso deve costruire; e mi sembrava che indicare una larghezza fittizia, come, per esempio, [tt]0pt[/tt], per poi avvalermi del fatto che essa sarebbe stata di fatto ignorata, avrebbe finito col confondere ancora di più le idee ai «non iniziati»… 😉 Invece, leggendo [tt]\vcenter[/tt] essi capiscono subito che si tratta di un «incantesimo misterioso»! 🙂

            OldClaudio” post=112407[…]
            Commento: Qualche tempo fa era apparsa la notizia che come attività di rieducazione in carcere, c’era un gruppo che si occupava della traduzione in italiano del TeXbook; non so che fine abbia fatto questo progetto. Ma si potrebbe rilanciare l’idea fra i frequentatori del forum…

            I carcerati hanno forse il problema di trovare modi per occupare il proprio tempo, che molti in questo forum, invece, non hanno affatto! Che strano, però: carcerati appassionati di tipografia e di scienza dei calcolatori…!

            Per quanto riguarda il problema di [tt]\underbrace[/tt], effettivamente i comandi di cui si parla nella sezione 3.1.1 del manuale del pacchetto mathtools, già suggeriti da @OldClaudio, potrebbero essere d’aiuto. Mi sembra però che @Ricky994 chiedesse un’altra cosa. Tuttavia, è cattiva prassi trattare due domande diverse nello stesso filone di discussione: meglio che @Ricky994 apra un nuovo filone per porre — magari un po’ più chiaramente 🙂 — la sua nuova domanda.

            Ciao.


            Gustavo

          • #112074
            Up
            0
            Down
            ::

            letteracdp” post=112413

            […] volevo segnalarti che \vcenter e \parbox (senza opzione di allineamento) fanno al stessa cosa; ma per il lettore \parbox potrebbe essere meno misterioso di \vcenter […]

            Be’, certo… lo sapevo! 😉 Il punto è che qui uso un trucco che è intrinsecamente di basso livello, il quale consiste non tanto nell’uso di [tt]\vcenter[/tt] (o di [tt]\parbox[/tt], che, come dice @OldClaudio, sarebbe fondamentalmente la stessa cosa), quanto piuttosto nel racchiudere il comando [tt]\includegraphics[/tt] dentro la primitiva [tt]\hbox[/tt] (e qui [tt]\mbox[/tt], o [tt]\makebox[/tt], non sarebbero affatto la stessa cosa!), in modo che venga eseguito in modo orizzontale ristretto. Bisogna per forza conoscere il comportamento di basso livello del TeX per capire la differenza che ciò comporta, e che risiede nel fatto che la scatola verticale prodotta da [tt]\vcenter[/tt] (o da [tt]\parbox[/tt]) avrà giusto giusto la larghezza della figura inserita, indipendentemente dal valore che il parametro [tt]\hsize[/tt] ha dentro tale scatola verticale. Insomma, visto che il trucco è intrinsecamente di basso livello, mi è sembrato più onesto (per così dire) scriverlo interamente come tale. Si ricordi anche che il comando [tt]\parbox[/tt] richiede un argomento obbligatorio nel quale va specificata la larghezza/giustezza della scatola verticale che esso deve costruire; e mi sembrava che indicare una larghezza fittizia, come, per esempio, [tt]0pt[/tt], per poi avvalermi del fatto che essa sarebbe stata di fatto ignorata, avrebbe finito col confondere ancora di più le idee ai «non iniziati»… 😉 Invece, leggendo [tt]\vcenter[/tt] essi capiscono subito che si tratta di un «incantesimo misterioso»! 🙂

            OldClaudio” post=112407[…]
            Commento: Qualche tempo fa era apparsa la notizia che come attività di rieducazione in carcere, c’era un gruppo che si occupava della traduzione in italiano del TeXbook; non so che fine abbia fatto questo progetto. Ma si potrebbe rilanciare l’idea fra i frequentatori del forum…

            I carcerati hanno forse il problema di trovare modi per occupare il proprio tempo, che molti in questo forum, invece, non hanno affatto! Che strano, però: carcerati appassionati di tipografia e di scienza dei calcolatori…!

            Per quanto riguarda il problema di [tt]\underbrace[/tt], effettivamente i comandi di cui si parla nella sezione 3.1.1 del manuale del pacchetto mathtools, già suggeriti da @OldClaudio, potrebbero essere d’aiuto. Mi sembra però che @Ricky994 chiedesse un’altra cosa. Tuttavia, è cattiva prassi trattare due domande diverse nello stesso filone di discussione: meglio che @Ricky994 apra un nuovo filone per porre — magari un po’ più chiaramente 🙂 — la sua nuova domanda.

            Ciao.


            Gustavo

            Provo a risolvere dalla sezione 3.1.1 del manuale del pacchetto mathtools, se trovo ancora difficoltà aprirò un nuovo post grazie ancora 🙂

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

        Go to top