Cornice in ogni pagina

  • Creatore
    Topic
  • #70322
    Up
    0
    Down
    ::


    Salve a tutti.
    Sto provando a scrivere una piccola brochure e vorrei che intorno a ogni pagina ci fosse una cornice rossa che abbia larghezza \textwidth e lunghezza fissata all’inizio, con spessore 1pt.
    Questa cornice deve esserci in tutte le pagine, lasciando la possibilità di scrivere al di sotto di essa.
    All’interno di essa ci dovrebbe entrare un ambiente multicol.

    Domanda: esiste un pacchetto per fare ciò?

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #70323
      GKT
      Partecipante
        Up
        0
        Down
        ::

        Memnarch” post=69565Salve a tutti.
        Sto provando a scrivere una piccola brochure e vorrei che intorno a ogni pagina ci fosse una cornice rossa che abbia larghezza \textwidth e lunghezza fissata all’inizio, con spessore 1pt.
        Questa cornice deve esserci in tutte le pagine, lasciando la possibilità di scrivere al di sotto di essa.
        All’interno di essa ci dovrebbe entrare un ambiente multicol.

        Domanda: esiste un pacchetto per fare ciò?

        Benvenuto nel forum!

        Prova con il pacchetto fancybox: il manuale mostra un esempio che fa al caso tuo.
        In caso non riuscissi a ottenere quello che cerchi, riporta sul forum un esempio minimo compilabile o un frammento del tuo codice.

        Lorenzo

      • #70324
        Up
        0
        Down
        ::


        Il codice del preambolo è questo:
        `\documentclass[a5paper]{article}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}

        \usepackage{fancybox}
        \usepackage{xcolor}
        \usepackage[grid]{multicol}
        \usepackage{textcomp}
        \usepackage{pifont}
        \usepackage[italian]{babel}
        \usepackage{syntonly}
        \usepackage{indentfirst}
        \usepackage{amsmath}
        \usepackage{amssymb}
        \usepackage{booktabs}
        \usepackage{color}

        \bfseries

        \setlength\columnseprule{0,4pt}
        \renewcommand{\columnseprulecolor}{\color{red}}

        \newcommand{\woR}{\mathrel{\text{R\llap{/}}}}
        \newcommand{\woV}{\mathrel{\text{\rlap{V}/}}}

        \begin{document}
        `

        (Se ci sono pacchetti ridondanti, ditelo!)

        Sto provando ad usare fancybox, e per fare la cornice rossa conosco solo il comando \fcolorbox.
        All’interno di \fcolorbox annido \makebox, ma a questo punto non so come fare per inserire al suo interno l’ambiente multicols.
        Suggerimenti?

      • #70325
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          multiocols richiede di poter andare in modo verticale, quindi al posto di \makebox usa una minipage dentro alla quale metti multicols.

        • #70326
          Up
          0
          Down
          ::


          Ho risolto!

          Praticamente, poiché mi serviva una cornice vuota da “sovrapporre” ad ogni pagina (che già ha contenuto proprio), ho usato:

          `
          \fancyput*(0pt,8pt){\fcolorbox{red}{white}{\makebox[270pt][c]{\raisebox{230pt}[0pt][470pt]{}}}}
          `

          Ora si tratta soltanto di aggiustarmi i parametri nel modo migliore… Grazie infinite!

          Ma avrei un’altra domanda: come posso fare per rendere la cornice perfettamente simmetrica?
          Cioè, diciamo che vorrei che la distanza dal bordo destro del foglio sia uguale a quella dal bordo sinistro, come posso fare?

          A proposito, ho già provato ad annidare multicols in minipage, ma non riusciva mai a compilare… forse c’è qualche opzione da inserire?

        • #70327
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Mah, avrai commesso qualche errore sintattico; a me la cornice rossa viene benissimo con \fcolorbox:
            `
            % nel preambolo metti:
            \usepackage{xcolor,multicol}
            % per scriver il teto casuale di questo esempio aggiungi anche
            \usepagage[lipsum}

            % quando vuoi incorniciare la scatola dentro al documento usa:

            \noindent{%
            \fboxrule=1pt
            \fboxsep=6pt
            \fcolorbox{red}{white}{%
            \begin{minipage}{\dimexpr\textwidth -2\fboxrule-2\fboxsep}
            \vspace*{-4pt}
            \begin{multicols}{2}
            % testo a caso
            \lipsum[1-2]
            \end{multicols}
            \end{minipage}}}
            `

            Per mettere la scatola fra margini uguali bisogna che i margini siano uguali; dipende dal disegno della pagina; ma come ho costruito io la scatola incorniciata, dopo la scatola puoi proseguire con testo a una colonna che avrà la stessa giustezza e gli stessi margini della scatola incorniciata.

            se Invece tuo vuoi scrivere quel che ti pare a una o a due colonne, e poi sovrapporgli una cornice rossa, la strada che ahi indicato nel tuo messaggio ti obbliga a cercare ogni volta le proporzioni giuste e la posizione giusta del rettangolo rosso e non puoi crearti nessun automatismo (potresti ma non ne vale la pena perché ci sarebbero da fare delle grosse macro complicate).

            Poi se vuoi puoi crearti un ambiente che fa tutto da solo e non devi ogni volta specificare quella miriade di specificazioni che ho messo nel mio esempio:
            `
            % nel preambolo definisci un nuovo ambiente cornicerossa
            \newenvironment{cornicerossa}{%
            \fboxsep=6pt\fboxrule=1pt
            \setbox0\hbox\bgroup
            \begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule}%
            \vspace*{\dimexpr.5ex-\fboxsep}
            \begin{multicols}{2}
            }{%
            \end{multicols}\end{minipage}\egroup
            \noindent\fcolorbox{red}{yellow!20!white}{\box0}\par
            }
            `
            dove, tanto per cambiare, invece dello sfondo bianco ho messo un giallino chiaro chiaro, sfruttando la sintassi dei colori offerta dal pacchetto xcolor (da NON usare assieme a color –nel tuo preambolo li carichi entrambi) e poi nel testo scrivi:
            `
            \begin{cornicerossa}
            \lipsum[3-4]
            \end{cornicerossa}
            `
            e come vedi la cosa è molto più semplice.

            Nota bene: se tu dovessi usare cornici che possono interrompersi a fine pagina per riprendere alla pagina successiva, bisogna fare in un altro modo e probabilmente senza le due colonne.

            Esercizio: Come definire un ambiente “cornicecolorata” che oltre al testo contenga anche i colori della cornice e dello sfondo come parametri che possono essere specificati di volta in volta?

          • #70328
            Up
            0
            Down
            ::


            Grazie OldGlaudio!

            Il nuovo ambiente mi ha risolto molti problemi.
            Anche se molto di ciò che c’è scritto nella definizione di “cornicerossa” non riesco a capirlo, mi accontento di fare copia-incolla!

            Ho notato, però, che multicol ha qualche problema ad allineare le ultime righe delle colonne. Si può fare qualcosa?

            Inoltre, pensavo se fosse possibile, nella definizione del nuovo ambiente, definire una altezza standard della cornice, da mantenere in tutte le pagine.
            Cioè, in poche parole, vorrei una perfetta simmetria: due pagine messe l’una sull’altra devono avere le cornici che coincidono.

          • #70329
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              a me non risulta che multicols abbia problema a bilanciare le colonne.

              Per la cornice di dimensioni fisse, si può fare; il contenuto (le due colonne) probabilmente non riempie la cornice quindi occorre che il blocco delle due colonne sia allineato in alto, al centro, in basso?

              Ora devo scappare; per ora accontentati di quello che hai, è possibile che in giornata ti possa accontentare, sebbene se studiassi la sintassi dell’ambiente minipage, probabilmente ci riusciresti da solo. Non ti preoccupare, te lo farò io ma devi aspettare questa sera.

            • #70330
              Up
              0
              Down
              ::


              Claudio, ti ringrazio per l’aiuto che mi offri, ma non sono il tipo che aspetta la pappetta pronta e basta.
              Quindi, in questi giorni troverò un po’ di tempo per leggermi la sintassi di minipage e poi posto una soluzione (se ci riesco).

              Suppongo che questo forum debba essere uno stimolo per cercare le soluzioni ai problemi… e lo è!

            • #70331
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Memnarch, mi hai preceduto di un soffio ma sicocme il compito io l’ho fatto ti mando la soluzione:
                `
                \newenvironment{cornicerossa}[1][0.6\textheight]{%
                \fboxsep=6pt\fboxrule=1pt
                \clearpage
                \setbox0\hbox\bgroup
                \begin{minipage}[t][#1][t]{\dimexpr\textwidth-2\fboxsep-2\fboxrule}%

                \vspace*{\dimexpr.5ex-\fboxsep}
                \begin{multicols}{2}
                }{%
                \end{multicols}\end{minipage}\egroup
                \noindent\fcolorbox{red}{yellow!20!white}{\box0}\par
                }
                `
                come vedi l’ambiente minipage è preceduto da un \clearpage perché se la cornice deve apparire in testa alla pagina, è bene che la cornice rossa vada in testa alla pagina.

                L’ambiente cornice rossa accetta un argomento opzionale il cui valore di default è 0.6\textwidth; se apri l’ambiente senza specificare l’altezza che vuoi, usa quell’altezza; naturalmente a livello di definizione dell’ambiente puoi cambiare il valore 0.6 con qualunque altro valore inferiore all’unità. se poi apri l’ambiente specificando nell’argomento opzionale, diciamo 0.8\textwidth oppure 80mm, o quel che ti pare, ma è sempre meglio riferirsi a una frazione di pagina, oppure ad un multiplo intero di righe, per esempio 20\baselineskip, allora la cornice uscirà di quell’altezza. Volendo dentro l’ambiente si potrebbero fare dei calcoli per aggiustare finemente l’altezza della cornice in modo da tenere conto sia dello spessore della cornice e dealla sua distanza dal contenuto.

                A livello di definizione dell’ambiente non toccare #1 nel secondo argomento opzionale; puoi toccare i due codici di posizionamento; il primo indica l’allineamento dell’intera cornice; io ho scelto t (top) ma è relativamente poco importante, perché la cornice va in testa alla pagina; mentre per il secondo ho scelto la posizione del testo dentro alla cornice e l’ho scelto spinto tutto verso il top; però se ci metti c il testo viene centrato; io non ci metterei b per appoggiarlo a fondo della cornice.

                Tutto il resto come vedi è come prima. Le prossime modifiche le fai da solo, così come ti proponevi di fare, OK? 🙂

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

            Go to top