[Risolto] Alcune domande: layout prima pagina

  • Creatore
    Topic
  • #54045
    Up
    0
    Down
    ::


    Sto preparando un documento che deve avere una prima pagina con un layout diverso da tutte le altre pagine. Ho quindi preparato due layouts, uno globale
    `\definelayout[key=value,…]`
    e quello per la sola prima pagina
    `\definelayout[firstpage][key=value,…]`
    Il flusso del testo scritto inizia sulla prima pagina e continua senza interruzione sulle altre pagine, per cui non mi sembra adatta una soluzione con \definemakeup, e neanche posso implementare il comando \page. Ora, come faccio a impostare il documento in modo che il layout della sola prima pagina sia in modo automatico diverso da quello di tutte le altre pagine?

    [edit 28/12/2010 18:33]

    faccio presente che alla pagina del wiki http://wiki.contextgarden.net/FO_Page_Layout è presente una probabile soluzione a questo problema, solo che sembra non funzionare:

    In order to define different physical dimensions for your first page, use “1” as your first option:

    \definelayout[1][
    topspace=.5in, % the space at the very top of the page
    backspace=2in, % the space in the gutter
    header=2in, % the space for headers
    footer=2in, % the space for footers
    leftmargin=1in, % the space for margin notes
    rightmargin=1.5in, % the space for right margin notes
    width=3in, % the width of the body text
    height=7in % the height of the body text
    ]

    il codice di esempio potrebbe essere:
    `\definelayout[1][
    topspace=.5in,
    backspace=2in,
    header=2in,
    footer=2in,
    leftmargin=1in,
    rightmargin=1.5in,
    width=3in,
    height=7in]
    \definelayout[
    topspace=.2in,
    backspace=4in,
    header=4in,
    footer=4in,
    leftmargin=2in,
    rightmargin=3in,
    width=1in,
    height=3.5in]
    \starttext
    \setuplayout
    \showframe
    \dorecurse{20}{\input dawkins \par \input knuth \par}
    \stoptext`

    un rapido test dimostra che il codice appena citato non funziona.

    Qualche suggerimento?

    Grazie, ciao.

    P.S.: lo stesso sistema viene suggerito su GetFo.org al paragrafo “Changing Layouts for First, Odd and Even Pages”, ma i risultati sembrano essere ugualmente negativi.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #54046
      Up
      0
      Down
      ::


      non saprei proprio, il codice
      `\definelayout[1][
      backspace=30mm,
      cutspace=40mm,
      width=middle,
      ]

      \definelayout[even][
      backspace=35mm,
      cutspace=35mm,
      width=middle,
      ]

      \definelayout[odd][
      backspace=40mm,
      cutspace=30mm,
      width=middle,
      ]

      \setuplayout

      \starttext
      \showframe
      \dorecurse{20}{\input dawkins \par \input knuth \par}
      \stoptext`

      sembra funzionare bene, forse dipende dalle opzioni..

    • #54047
      Up
      0
      Down
      ::

      non saprei proprio, il codice
      `\definelayout[1][
      backspace=30mm,
      cutspace=40mm,
      width=middle,
      ]

      \definelayout[even][
      backspace=35mm,
      cutspace=35mm,
      width=middle,
      ]

      \definelayout[odd][
      backspace=40mm,
      cutspace=30mm,
      width=middle,
      ]

      \setuplayout

      \starttext
      \showframe
      \dorecurse{20}{\input dawkins \par \input knuth \par}
      \stoptext`

      sembra funzionare bene, forse dipende dalle opzioni..

      Riporto il codice da te proposto. Ho solo esagerato le proporzioni, per meglio visualizzare il risultato.
      `\definelayout[1][
      backspace=6cm,
      cutspace=6cm,
      width=middle,
      ]

      \definelayout[even][
      backspace=3cm,
      cutspace=3cm,
      width=middle,
      ]

      \definelayout[odd][
      backspace=1cm,
      cutspace=1cm,
      width=middle,
      ]

      \setuplayout

      \starttext
      \showframe
      \dorecurse{20}{\input dawkins \par \input knuth \par}
      \stoptext`

      Effettivamente funziona come ci si aspetta, tranne una curiosa distribuzione del testo che per il momento lascio fuori dalla discussione.

      Lo stesso codice, però modificato nel senso indicato nel primo post:
      `
      \definelayout[1][
      backspace=6cm,
      cutspace=6cm,
      width=middle,
      ]

      %\definelayout[even][
      % backspace=3cm,
      % cutspace=3cm,
      % width=middle,
      %]

      \definelayout[
      backspace=1cm,
      cutspace=1cm,
      width=middle,
      ]

      \setuplayout

      \starttext
      \showframe
      \dorecurse{20}{\input dawkins \par \input knuth \par}
      \stoptext`

      Ho commentato il layout delle pagine “even” e ho reso globale il terzo layout. Non funziona più.

      Ho visto che lo stesso problema è stato posto diverse volte su internet, e l’unica soluzione proposta è la seguente:

      `\definelayout[firstpage][% layout per la sola prima pagina
      backspace=6cm,
      cutspace=6cm,
      width=middle,
      ]

      \definelayout[% layout globale
      backspace=1cm,
      cutspace=1cm,
      width=middle,
      ]

      \starttext
      \showframe
      \setuplayout[firstpage] % setup esplicito
      \input dawkins
      \page % esplicito cambio di pagina
      \setuplayout % esplicito setup globale
      \input knuth
      \stoptext`
      ma così non serve: il layout deve modificarsi automaticamente al cambio di pagina, e non necessitare di un esplicito setuplayout.

      Ho la sensazione che una eventuale soluzione a questo problema passi solo per una codifica a livello di plain, oppure per l’aggiunta di una apposita opzione al comando \definelayout da parte di Pragma.

      Grazie per l’interessamento. Se ti vengono delle idee fammelo sapere.

    • #54048
      Up
      0
      Down
      ::


      Aggiungo un post solo per far presente che ho scoperto che la soluzione
      `\definelayout[1][key=value, …]`
      per definire il layout della prima pagina è supportata nientemeno che da Hans Hagen (sulla mailing list)

      >
      > … , is there any way to change the layout for the first page?
      >
      > \definelayout[first] [….
      >

      \definelayout[1][…]

      Credo quindi che la si possa considerare la soluzione “ufficiale”. A parte il fatto che a me non funziona. Ma sicuramente sbaglio io qualcosa. Chi ha ha qualche idea mi faccia sapere, grazie.

    • #54049
      Up
      0
      Down
      ::


      Sulla mailing list Vianney le Clément ha fornito una soluzione funzionante:

      `\setuplayout[% default layout for all the pages
      backspace=1cm,
      width=middle]

      \definelayout[1][% set this layout on the first page
      backspace=6cm]

      \definelayout[2][reset] % reset to the default layout starting from the second page

      \starttext
      \showframe
      \dorecurse{20}{\input dawkins \par \input knuth \par}
      \stoptext`

      Ciao.

      Sam Qasbah

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

Go to top