Newenvironment per testo e immagini affiancate

  • Creatore
    Topic
  • #24142
    Up
    0
    Down
    ::


    Salve, sono al mio primo post (credo) e probabilmente è un quesito piuttosto banale; nonostante questo da solo non riesco a venirne fuori.

    Vorrei ottenere un documento con un elenco di copertine di libri e relative descrizioni, alternandoli di lato; ovvero se nel primo metto a sinistra la descrizione e a destra la copertina, nella successiva riga voglio mettera a sinistra la copertina e a destra la descrizione.

    Per affiancare testo e immagini ho banalmente usato tabular e minipage, ad esempio così:

    `
    {\Large \textit{L'eleganza del riccio} – Muriel Barbery}
    \medskip

    \begin{tabular} {rl}

    \begin{minipage}{50mm}
    \begin{center}\includegraphics{imago/barbery.eps}\end{center}
    \end{minipage}

    \begin{minipage}{110mm}
    blablablablabla
    \end{minipage}

    \end{tabular}
    `

    Però ho pensato di definire un ambiente personalizzato per non ripetere fino alla noia tutto l’ambaradan. E qui sono iniziati i dolori. Tra i parametri dovrei mettere anche il nome dell’immagine e nel caso di copertina a destra, tale parametro dovrebbe essere esplicitato nella definizione di chiusura dell’ambiente, dove, ho scoperto con mio grande rammarico, non posso usare parametri.
    Ho provato a definire un comando di apertura e uno di chiusura, ma sembra che mettere in un comando dei tag di apertura di un ambiente senza chiuderli non sia molto apprezzato da LaTeX.

    Immagino che tutto quanto stia tentando di fare sia in realtà molto semplice, ma non riesco a venirne fuori. Potete aiutarmi?

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #24143
      Up
      0
      Down
      ::

      Salve, sono al mio primo post (credo) e probabilmente è un quesito piuttosto banale; nonostante questo da solo non riesco a venirne fuori.

      Vorrei ottenere un documento con un elenco di copertine di libri e relative descrizioni, alternandoli di lato; ovvero se nel primo metto a sinistra la descrizione e a destra la copertina, nella successiva riga voglio mettera a sinistra la copertina e a destra la descrizione.

      Per affiancare testo e immagini ho banalmente usato tabular e minipage, ad esempio così:

      `
      {\Large \textit{L'eleganza del riccio} – Muriel Barbery}
      \medskip

      \begin{tabular} {rl}

      \begin{minipage}{50mm}
      \begin{center}\includegraphics{imago/barbery.eps}\end{center}
      \end{minipage}

      \begin{minipage}{110mm}
      blablablablabla
      \end{minipage}

      \end{tabular}
      `

      Però ho pensato di definire un ambiente personalizzato per non ripetere fino alla noia tutto l’ambaradan. E qui sono iniziati i dolori. Tra i parametri dovrei mettere anche il nome dell’immagine e nel caso di copertina a destra, tale parametro dovrebbe essere esplicitato nella definizione di chiusura dell’ambiente, dove, ho scoperto con mio grande rammarico, non posso usare parametri.
      Ho provato a definire un comando di apertura e uno di chiusura, ma sembra che mettere in un comando dei tag di apertura di un ambiente senza chiuderli non sia molto apprezzato da LaTeX.

      Suppongo che 5cm sia la larghezza massima delle immagini. Io userei una minipage anche per racchiudere il tutto:
      `\usepackage{calc}
      \newenvironment{imagetoleft}[3]
      {\par\bigskip\noindent\begin{minipage}{\textwidth}
      {\Large\textit{#1} — #2\par}
      \begin{minipage}{5cm}
      \centering\includegraphics{#3}
      \end{minipage}\hfill
      \begin{minipage}{\textwidth-2em-5cm}}
      {\end{minipage}\end{minipage}\par\bigskip}

      \newenvironment{imagetoright}[3]
      {\def\imagename{#3}%
      \par\bigskip\noindent\begin{minipage}{\textwidth}
      {\Large\textit{#1} — #2\par}
      \begin{minipage}{\textwidth-2em-5cm}}
      {\end{minipage}\hfill
      \begin{minipage}{5cm}
      \centering\includegraphics{\imagename}
      \end{minipage}\end{minipage}\par\bigskip}`
      Si può modificare abbastanza facilmente se desideri che il tutto sia leggermente rientrato rispetto ai margini o se vuoi aumentare lo spazio fra immagine e testo.

      Nota il trucco per usare un parametro nella parte finale dell’ambiente: definisco una macro che posso così usare al posto del parametro.
      `\begin{imagetoleft}{L'eleganza del riccio}{Muriel Barbery}{imago/barbery}
      bla bla
      \end{imagetoleft}
      \begin{imagetoright}{L'eleganza del riccio}{Muriel Barbery}{imago/barbery}
      bla bla
      \end{imagetoright}`
      Ciao
      Enrico

    • #24144
      Up
      0
      Down
      ::


      Ottimo! Non conoscevo \def e non ci sarei dunque mai arrivato.
      Ho giusto un dubbio: anche se ho provato a eliminarlo per capire la sua funzione e ne ho visto gli effetti, non mi è chiara la funzione di \hfill. Qual’è di preciso la sua funzione?

    • #24145
      Up
      0
      Down
      ::

      Ottimo! Non conoscevo \def e non ci sarei dunque mai arrivato.
      Ho giusto un dubbio: anche se ho provato a eliminarlo per capire la sua funzione e ne ho visto gli effetti, non mi è chiara la funzione di \hfill. Qual’è di preciso la sua funzione?

      “Riempi la riga”: come avrai notato, la minipage delle figure è di 5cm, l’altra della larghezza del testo normale diminuita di 5 cm e di altri 2em come separazione. Invece però di scrivere esplicitamente \hspace{2em} fra le minipage, meglio usare un comando “astratto”: se non ti vanno bene quei 2em, non occorre cambiarli in due posti, ma solo uno.

      Ciao
      Enrico

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

Go to top