Problemi creazione ambiente

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 5 mesi fa da DMW.
  • Creatore
    Topic
  • #13812
    DMW
      Up
      0
      Down
      ::


      Salve,

      Ho un problema con la creazione di un ambiente. Sto cercando, per prendere più confidenza con le box, di ricreare l’ambiente del libro digital typography using latex (pag. 66)

      `
      \newenvironment{myQuote}[2]%
      {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
      {\end{list}}

      ……………. %posso anche creare un ambiente con newenvironment
      \setbox0=\hbox{\includegraphics[width=2.8cm]{fig.pdf}}
      \dimen0=\ht0 \advance\dimen0 by \medskipamount
      \hrule\noindent\includegraphics[width=2.8cm]{fig.pdf}\vspace{-\dimen0}
      \begin{myQuote}{\wd0}{0cm}
      the text … bla bla bla … the text the text … bla bla bla …
      \end{myQuote}\par\smallskip
      \hrule`

      Se il testo dentro myQuote è lungo, non ci sono problemi. Il problema sorge quando il testo è poco e quindi il secondo \hrule va a sovrapporsi alla figura. Inoltre ho creato un nuovo ambiente quote per non avere problemi in caso di testo su più pagine. Infatti l’ambiente a pag.66 del libro occupa 3 pagine.

      Ciao

      Andrea

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #13813
        Up
        0
        Down
        ::

        Salve,

        Ho un problema con la creazione di un ambiente. Sto cercando, per prendere più confidenza con le box, di ricreare l’ambiente del libro digital typography using latex (pag. 66)
        `\newenvironment{myQuote}[2]%
        {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
        {\end{list}}

        ……………. %posso anche creare un ambiente con newenvironment
        \setbox0=\hbox{\includegraphics[width=2.8cm]{fig.pdf}}
        \dimen0=\ht0 \advance\dimen0 by \medskipamount
        \hrule\noindent\includegraphics[width=2.8cm]{fig.pdf}\vspace{-\dimen0}
        \begin{myQuote}{\wd0}{0cm}
        the text … bla bla bla … the text the text … bla bla bla …
        \end{myQuote}\par\smallskip
        \hrule`

        Se il testo dentro myQuote è lungo, non ci sono problemi. Il problema sorge quando il testo è poco e quindi il secondo \hrule va a sovrapporsi alla figura. Inoltre ho creato un nuovo ambiente quote per non avere problemi in caso di testo su più pagine. Infatti l’ambiente a pag.66 del libro occupa 3 pagine.

        Per uniformità tutti gli ambienti di questo tipo dovrebbero avere lo stesso rientro dal margine sinistro, direi. Ma è facile modificare l’ambiente che ti propongo per tenere conto di ampiezze variabili della figura.

        `\newbox\hquotebox
        \newdimen\hquoteminht

        \newenvironment{hquote}[1]
        {\par\addvspace{\medskipamount}\hrule\par\nobreak
        \setbox0=\hbox{\includegraphics[width=2.8cm]{#1}}%
        \hquoteminht=\ht0 \advance\hquoteminht\baselineskip
        \advance\hquoteminht\topsep
        \setbox\hquotebox\vbox\bgroup % comincia una scatola
        \list{}{\leftmargin3cm \labelwidth3cm \labelsep0pt}
        \item[\hbox to 0pt{\hss\vbox to 0pt{\box0 \vss}\hskip2mm}]\ignorespaces}
        {\endlist\egroup % finisce la scatola
        \ifdim\ht\hquotebox<\hquoteminht \vbox to\hquoteminht{\unvbox\hquotebox\vfill} \else \unvbox\hquotebox \fi \nobreak\hrule\addvspace{\medskipamount}}` L'ambiente hquote ha un argomento: il nome del file grafico. 1. entro in modo verticale e aggiungo una spaziatura; compongo la linea orizzontale e impedisco il cambio pagina 2. misuro l'altezza della figura da inserire e aumento questa dimensione di una tolleranza (=\baselineskip) e dello spazio che list inserisce alla fine dell'ambiente (\topsep); memorizzo questa dimensione per dopo 3. comincio a comporre l'ambiente in una mia scatola (\setbox\hquotebox=\vbox\bgroup); la chiusura della scatola sarà nella parte finale dell'ambiente 4. inizio un list, con \leftmargin di 3cm e inserisco nell'etichetta la figura, ma con dimensioni verticali nulle 5. dopo \ignorespaces comincia il testo dell'ambiente 6. a \end{hquote} finisco list e chiudo la scatola che adesso devo misurare 7. se l'altezza di questa scatola è minore di quella della figura (aumentata di quanto si deve), ne costruisco una dell'altezza giusta che compongo 8. se l'altezza della scatola è sufficiente, la smonto e la passo alla composizione 9. impedisco un cambio pagina, aggiungo la riga orizzontale e una spaziatura Se però uno di questi ambienti comincia verso un cambio pagina, rischi di avere problemi. Si dovrebbe fare un controllo su quanto spazio si ha a disposizione, roba lunga e noiosa; si guarda in fase di impaginazione finale. Ciao Enrico [nota: ho modificato \labelwidth e \labelsep]

      • #13814
        DMW
          Up
          0
          Down
          ::


          benissimo, ottima spiegazione, così imparo qualcosa.

          Grazie

          Andrea

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

      Go to top