Immagine contornata da testo e inscatolamento

  • Creatore
    Topic
  • #54072
    Up
    0
    Down
    ::


    Buongiorno. Volevo comporre con LaTeX il mio database cinematografico ho elaborato un modello di report in cui inserire il mio record da ripetere poi per tutti i record.

    Quello che vorrei è una immagine in alto a sinistra con accanto del testo che però non è una semplice sequenza di parole (come un periodo) ma informazioni da allineare a destra e a sinistra.

    Quello che ho ottenuto con un primo tentativo è:
    `
    \noindent
    \makebox{%
    \raisebox{2 ex}{\parbox[t][]{0.3\textwidth}{%
    \includegraphics[width=0.3\textwidth]{\immagine}
    }}
    \parbox[t][][t]{0.7\textwidth}{%
    {\large\textsc{\titolo}}\\ \normalsize
    Regia: \regia \hfill Disco: \disco\\
    Anno: \anno \hfill Genere: \genere \hfill \classificazione\\
    Attori: \attori\\
    \vfill
    }%
    }
    \\ \vspace*{1 ex} \\
    Trama:
    {\footnotesize \trama}
    \vspace*{2.5 ex}\par
    `
    dove al posto dei vari \titolo, \anno, \attori, … ci sono i testi del record che variano di volta in volta (per l’implementazione, in fase di rifinitura vedi questo post).

    Tuttavia l’elenco degli attori, insieme a tutto il resto, pur essendo più lungo dell’immagine, non si riallargava a riga completa (giustamente per il codice scritto).

    Ho provato allora:
    `
    \makebox{
    \begin{wrapfloat}{figure}{L}{0pt}
    \includegraphics[width=0.3\textwidth]{\immagine}
    \end{wrapfloat}
    {\large\textsc{\titolo}}\\ \normalsize
    Regia: \regia \hfill Disco: \disco\\
    Anno: \anno \hfill Genere: \genere \hfill \classificazione\\
    Attori: \attori\\
    \vfill
    }
    \vspace*{1 ex} \\
    Trama:
    {\footnotesize \trama}
    \vspace*{2.5 ex}\par `
    (Mi sembra, non ho il testo sotto mano ma la struttura era questa). Tuttavia anche così non andava. Il testo della trama rientrava per qualche riga per poi riallargarsi, cosa che non dovrebbe fare in quanto la figura è “finita” molto prima ed è oltretutto inserita in una scatola.

    L’uso della scatola inoltre deriva dal fatto che vorrei fare un report lungo con anche tutte le trame e uno più corto con solo le “scatole” di testa che però non vanno assolutamente divise al loro interno.

    Spero di avervi dato tutti gli elementi per una diagnosi. Aspetto il vostro responso.
    Grazie a tutti e Buon Capodanno.
    Davide

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #54073
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Certo che wrapfloat dentro una scatola perde tutto il suo valore.

        wrapfloat prende le misure del suo contenuto e poi configura il capoverso adiacente affinché un certo numero di righe rientri in modo da lasciare posto alla figura. Se è dentro una scatola come fa a vedere il capoverso adiacente?

        Inoltre quell’ a capo indicato con
        `
        \\
        \vfill
        `
        grida vendetta \vfill, ammesso che lo esegua a che cosa serve? per riempire di colla verticale infinitamente estensibile uno spazio “illimitato”, che poi comprende tutta la pagina?

        Nella prima versione che cosa fa quel \parbox indicato con
        `
        \parbox[t][][t]{0.7\textwidth}{%
        {\large\textsc{\titolo}}\\ \normalsize
        `
        dove il terzo codice facoltativo serve per centrare il suo contenuto nell’altezza non specificata della scatola generata da \parbox? (bisognerebbe specificarla con il secondo argomento facoltativo).

        D’accordo, il primo esempio non poteva fare quello che volevi, se non per comporre quelle piccole cose dove l’immagine è affiancata da poche righe e poi a piena pagina seguirà la trama composta fuori da ogni scatola ma come capoverso normale, Il secondo esempio non può funzionare a causa di \makebox.

        Un’altra domanda: a cosa serve la dichiarazione \normalsize, quanto l’effetto di \large è già terminato dentro il suo gruppo nella riga precedente?

        Ovviamente nessuno ti vieta di scrivere costruzioni complesse, anzi, è un bene saperle scrivere; le si mette dentro certe macro e poi non ci si pensa più, perché si usa solo la macro; ma per scrivere costruzioni complesse bisogna sapere quello che si fa e che cosa fa ogni comando che si usa, quindi bisogna leggere nel dettaglio la documentazione, e all’occorrenza bisogna cercare di scoprirne i misteri reconditi andandone a esaminare il codice nel nucleo di LaTeX o nei pacchetti che definiscono quei comandi.

        Bisogna anche sapere analizzare il problema di programmazione da affrontare, sapendo che non esiste mai una sola soluzione; bisogna esaminarne diverse, analizzarne pregi e difetti, versatilità, possibilità di essere usate i situazioni analoghe ma diverse.

        Prova a prendere l’abitudine di commentarti il codice con brevi frasi che ti descrivono quello che subito dopo rendi un forma di codice; non avere paura a interrompere il codice con frasi di commento; ogni volta che scrivi i commenti ti rendi conto se quello che scrivi ha senso, se quello che stai per codificare corrisponde a quello che hai scritto, eccetera. Vedrai che questo ti aiuta a evitare gli errori che hai commesso, ma, più costruttivamente, ti aiuta a scrivere codice più pulito, probabilmente più efficiente e, specialmente, corretto.

        Non avvilirti: riprovaci!

      • #54074
        Up
        0
        Down
        ::


        Nella scatola non c’è solo la figura ma anche il testo che lo contorna. In realtà non mi serve un oggetto flottante (infatti nel primo tentativo non lo è) ma solo una immagine contornata da testo e ho trovato solo questo ambiente per farlo.

        Anche a me stupiva il \normalsize ma nelle prove che avevo fatto avevo dovuto metterlo.

        E mi sembra di avere fatto anche delle prove con il \parbox da te segnalato e di essere giunto a quella soluzione per prove ed errori pur leggendo una guida.

        Proverò a casa e speriamo bene.
        Ciao Davide

    Visualizzazione 1 filone di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top