Ambiente che modifica i margini in twoside

  • Creatore
    Topic
  • #17229
    DMW
      Up
      0
      Down
      ::


      Ho una piccola domanda da fare.

      In vari topic ho usato il seguente ambiente :
      `
      \newenvironment{myQuote}[2]%
      {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
      {\end{list}}
      `

      Ora vi voglio chiedere se è possibile creare un ambiente simile al precedente e che faccia questo:
      facciamo finta che dentro l’ambiente myQuote ci sia un testo più lungo di una pagina o a cavallo tra due, io vorrei che i margini siano invertirti al cambio pagina, un po’ come fa l’opzione twoside.
      Esempio
      `\documentclass[a4paper,twoside]{article}
      \usepackage[T1]{fontenc}
      \usepackage[latin1]{inputenc}
      \usepackage{lipsum}
      \newenvironment{myQuote}[2]%
      {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
      {\end{list}}
      \begin{document}
      \lipsum[1]

      \begin{myQuote}{.5cm}{1cm}
      \lipsum
      \end{myQuote}

      \lipsum[4]
      \end{document} `

      io voglio, a pag.1, il margine sinistro di 0.5cm e quello destro di 1cm, mentre a pag.2 li voglio invertiti cioè 0.5 a destra e 1cm a sinistra.

      Ciao

      Andrea

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

        Ho una piccola domanda da fare.

        In vari topic ho usato il seguente ambiente :
        `
        \newenvironment{myQuote}[2]%
        {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
        {\end{list}}
        `

        Ora vi voglio chiedere se è possibile creare un ambiente simile al precedente e che faccia questo:
        facciamo finta che dentro l’ambiente myQuote ci sia un testo più lungo di una pagina o a cavallo tra due, io vorrei che i margini siano invertirti al cambio pagina, un po’ come fa l’opzione twoside.
        Esempio
        `\documentclass[a4paper,twoside]{article}
        \usepackage[T1]{fontenc}
        \usepackage[latin1]{inputenc}
        \usepackage{lipsum}
        \newenvironment{myQuote}[2]%
        {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
        {\end{list}}
        \begin{document}
        \lipsum[1]

        \begin{myQuote}{.5cm}{1cm}
        \lipsum
        \end{myQuote}

        \lipsum[4]
        \end{document} `

        io voglio, a pag.1, il margine sinistro di 0.5cm e quello destro di 1cm, mentre a pag.2 li voglio invertiti cioè 0.5 a destra e 1cm a sinistra.

        Come certo sai, TeX prima compone i capoversi, poi li suddivide fra le pagine. Perciò quello che cerchi di fare non si può ottenere con un ambiente di quel tipo, ma solo agendo sulla routine di output. E mi pare un compito da far tremare i polsi.

        Ciao
        Enrico

      • #17231
        DMW
          Up
          0
          Down
          ::

          Ho una piccola domanda da fare.

          In vari topic ho usato il seguente ambiente :
          `
          \newenvironment{myQuote}[2]%
          {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
          {\end{list}}
          `

          Ora vi voglio chiedere se è possibile creare un ambiente simile al precedente e che faccia questo:
          facciamo finta che dentro l’ambiente myQuote ci sia un testo più lungo di una pagina o a cavallo tra due, io vorrei che i margini siano invertirti al cambio pagina, un po’ come fa l’opzione twoside.
          Esempio
          `\documentclass[a4paper,twoside]{article}
          \usepackage[T1]{fontenc}
          \usepackage[latin1]{inputenc}
          \usepackage{lipsum}
          \newenvironment{myQuote}[2]%
          {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{}}%
          {\end{list}}
          \begin{document}
          \lipsum[1]

          \begin{myQuote}{.5cm}{1cm}
          \lipsum
          \end{myQuote}

          \lipsum[4]
          \end{document} `

          io voglio, a pag.1, il margine sinistro di 0.5cm e quello destro di 1cm, mentre a pag.2 li voglio invertiti cioè 0.5 a destra e 1cm a sinistra.

          Come certo sai, TeX prima compone i capoversi, poi li suddivide fra le pagine. Perciò quello che cerchi di fare non si può ottenere con un ambiente di quel tipo, ma solo agendo sulla routine di output. E mi pare un compito da far tremare i polsi.

          Ciao
          Enrico

          Per questo ho postato. 😀

          Dove lo trovo il codice di questa routine?

          Ciao

          Andrea

        • #17232
          Up
          0
          Down
          ::


          Come certo sai, TeX prima compone i capoversi, poi li suddivide fra le pagine. Perciò quello che cerchi di fare non si può ottenere con un ambiente di quel tipo, ma solo agendo sulla routine di output. E mi pare un compito da far tremare i polsi.

          Per questo ho postato. 😀

          Dove lo trovo il codice di questa routine?

          Ehm, la prima cosa da fare è studiarsi il capitolo 23 del TeXbook (e quindi anche i primi 22). Poi studiare le circa 50 pagine ricavate dai sorgenti di LaTeX che descrivono la routine di output impiegata. Quindi mettersi lì e studiare il meccanismo per far interagire la routine di output generale con quella particolare valida nel tuo ambiente.

          Forse non avevi ben chiaro che cosa sia la routine di output, vero? 😀

          Cito dall’appendice D del TeXbook:

          8. Communication with output routines. It would be possible to write an entire book about TeX output routines; but the present appendix is already too long, so it will suffice to mention only one or two sneaky tricks that a person might not readily think of. (Appendix E gives some less sneaky examples.)

          Ciao
          Enrico

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

      Go to top