Orientamento orizzontale di una singola pagina con geometry

  • Creatore
    Topic
  • #114287
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti!

      In un documento interamente impostato in verticale (orientamento portrait) devo cambiare l’orientazione di una singola pagina in modalità orizzontale (landscape), per poi ritornare al verticale.

      Nella prima pagina della documentazione del pacchetto geometry si legge che ci sono dei comandi apposta: \newgeometry{…} cambia le impostazioni date nel preambolo con quelle nuove; per tornare poi alle impostazioni di default si scrive \restoregeometry.

      Questo è il mio codice:

      `\documentclass[12pt]{article}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[greek.ancient,italian]{babel}
      \newcommand{\greco}{\foreignlanguage{greek}}
      \usepackage{geometry}
      \geometry{a4paper,top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}

      \begin{document}
      Molto testo …

      \newpage
      \newgeometry{a4paper,landscape,top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}
      Poco testo …

      \newpage
      \restoregeometry
      Molto testo …
      \end{document}`

      Però non funziona, continua ad impostare la pagina in orientazione portrait. Ho anche messo dei \newpage, in modo da delimitare bene il testo che va messo nella pagina in orizzontale, ma non funziona…

      Avete delle idee? Grazie in anticipo!
      Andrea

    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #114288
        samiel
        Partecipante
          Up
          0
          Down
          ::


          prova così
          `\documentclass[12pt]{article}
          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage{geometry}
          \geometry{a4paper,top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}
          \usepackage{pdflscape}
          \usepackage{lipsum}

          \begin{document}
          \lipsum

          \newpage
          \newgeometry{top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}
          \begin{landscape}

          \lipsum[1]

          \end{landscape}

          \newpage
          \restoregeometry
          \lipsum
          \end{document}`

          m

        • #114289
          Andrea
          Partecipante
            Up
            0
            Down
            ::


            Grazie del consiglio samiel, però il tuo codice lascia il numero di pagina nella posizione “portrait”… ho allegato un’immagine che fa vedere il problema

            Poi se non sbaglio basterebbe usare i comandi che il pacchetto geometry descrive nella sua prima pagina di documentazione, ma non riesco a capire perché non funzionino…

            Andrea

            Attachments:
            You must be logged in to view attached files.
          • #114290
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Se leggi la documentazione di pdflscape vedi che è voluto; il trucco di girare la pagina riguarda solo la presentazione a schermo, mentre per la stampa la pagina viene sempre mostrata comunque in portrait, ma col contenuto girato di 90° a sinistra, ecco perché gli “ornamenti” (testatina e piedino) non vengono girati.

            • #114291
              samiel
              Partecipante
                Up
                0
                Down
                ::


                ammetto che il manuale di geometry può trarre in inganno,
                ma se compilo il tuo codice mi esce un eloquente
                `Package geometry Warning: `a4paper': not available in `\newgeometry'; skipped.
                Package geometry Warning: `landscape': not available in `\newgeometry'; skipped
                `
                Se comunque proprio vuoi ignorare il suggerimento di OldClaudio
                e produrre comunque una asimmetria nella pagina:
                `\documentclass[12pt]{article}
                \usepackage[T1]{fontenc}
                \usepackage[utf8]{inputenc}
                \usepackage[italian]{babel}
                \usepackage{geometry}
                \geometry{a4paper,top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}
                \usepackage{lscape,lipsum}
                \usepackage{etoolbox}
                \makeatletter
                \def\ifGm@preamble#1{\@firstofone}
                \appto\restoregeometry{%
                \pdfpagewidth=\paperwidth
                \pdfpageheight=\paperheight}
                \apptocmd\newgeometry{%
                \pdfpagewidth=\paperwidth
                \pdfpageheight=\paperheight}{}{}
                \makeatother

                \begin{document}
                \lipsum

                \newpage
                \newgeometry{a4paper,landscape,top=3cm,bottom=2.5cm,left=2.5cm,right=2.5cm,heightrounded}
                \lipsum[1]

                \newpage
                \restoregeometry
                \lipsum

                \end{document}`

                m

              • #114292
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Sì, infatti, basta scambiare altezza e larghezza della pagina pdf, rispetto a quelle della pagina di carta.

                  Sullo schermo viene benissimo. Il tuo codice @samiel, funziona alla parfezione, ma…

                  Prova a mandare il PDF in stampa e vedi il risultato.

                  Ecco, @anderagoo8, perché il pacchetto pdflscape funziona come ti ho detto, in modo da evitarti di girare la testa per leggere una pagina che contiene materiale girato di 90• a sinistra, ma non cambia il modo di stampare.

                  No, se vuoi stampare qualunque cosa composto con il codice di @samiel, che per lo schermo funziona benissimo, devi stampare separatamente le pagine in portrait dalle pagine in landscape, Poi se vuoi cucirle avendole assemblate un segnature, ti trovi nei guai.

                  Che io sappia non esistono stampanti né casalinghe, né professionali, che capiscano da sole se devono girare il materiale di singole pagine per farle stampare su carta presa da un cassetto diverso, o girandone il materiale a seconda del contenuto.

                  Invece se il documento che vuoi comporre è da leggere solamente a schermo, vai tranquillo con il codice di @samiel.

                • #114293
                  Andrea
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Grazie mille per le risposte!

                    Avrei solo precisazioni da chiedervi:
                    1) Se ho capito bene quanto detto finora, nel caso io debba comporre un documento che andrà stampato su carta, allora dovrei usare il primo dei due codici di samiel poiché solo così la rotazione in landscape non interessa anche gli “ornamenti di pagina”, che rimanono in “portrait”; il che secondo me va bene, perché di solito nei libri il numero di pagina e gli altri ornamenti rimangono in basso mentre la tabella è girata di 90°.
                    Se invece dovessi comporre un documento che andrà letto solo su un PC dovrei usare il secondo dei due codici, poiché solo così si girano anche gli ornamenti mettendoli in basso nella pagina in modo da poterli visulaizzare correttamente per una lettura a schermo.

                    2.1) Il codice proposto per il documento da visualizzare a schermo (ovvero il secondo proposto da samiel) necessita di cambiare alcuni parametri da inserire nel preambolo dei quali ignoro il significato (per capirci quelli che iniziano con \makeatletter\def). Ma nella documentazione di geometry, sezione 7 pagina 15, i suddetti comandi non vengono menzionati… da quanto si legge basta inserire i comandi \newgeometry e \restoregeometry e la rotazione dorebbe avvenire. Forse le istruzioni su come usare la funzione sono state scritte sulla documentazione ma il pacchetto stesso non è stato aggiornato correttamente?
                    2.2) Sempre nel secondo codice di samiel, ho notato che vengono caricati i pacchetti lscape e etoolbox. Se però provo a toglierli il risultato con cambia… Sono quindi superflui per il mio scopo?

                    Grazie ancora, gentilissimi! 🙂
                    Andrea

                  • #114294
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Sul primo punto è tutto esatto.

                      Sul secondo punto è grave che tu non sappia che cosa vuol dire \makeatletter e \def. Non puoi fare cose “strane” se non conosci nè la guida di Lamport (il papà di LaTeX) né il linguaggio nativo di TeX. Puoi avere una visione non troppo superficiale per entrambe le cose se scarichi dalla sezione Documentazione di questo la guida tematica: il LaTeX Refernce Manual commentato che è la traduzione in italiano della guida di Lamport, adeguatamente commentata e con sguardi sul linguaggio nativo.

                      Sul secondo punto il fatto di avere indicato i pacchetti lscape e etoolbox può essere legato alla permanenza di impostazioni per la creazione delle altre versioni del codice. Ora, con le versioni aggiornate di pdfLaTeX & Compny, dietro le quinte vengono caricati molti altri pacchetti non necessariamente usati per davvero (nel senso che ci sono di default, ma non necessariamente ogni utente ne sfrutta indirettamente le funzionalità). Di solito è meglio evitare di cariare pacchetti inutili, anche epr evitare errori di option clash; tutavia per una cosa così semplice come quella esposta da @samiel non ci sono problemi; d’altra parte se ne sarebbe accorto da solo perché quando si costruiscono EMC bisogna sempre collaudarli, mai inviarli senza avere controllato che facciano propio quello che si vorrebbe che facessero.:)

                    • #114295
                      Andrea
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        OldClaudio” post=114700Sul primo punto è tutto esatto.

                        Sul secondo punto è grave che tu non sappia che cosa vuol dire \makeatletter e \def. Non puoi fare cose “strane” se non conosci nè la guida di Lamport (il papà di LaTeX) né il linguaggio nativo di TeX. Puoi avere una visione non troppo superficiale per entrambe le cose se scarichi dalla sezione Documentazione di questo la guida tematica: il LaTeX Refernce Manual commentato che è la traduzione in italiano della guida di Lamport, adeguatamente commentata e con sguardi sul linguaggio nativo.

                        Sul secondo punto il fatto di avere indicato i pacchetti lscape e etoolbox può essere legato alla permanenza di impostazioni per la creazione delle altre versioni del codice. Ora, con le versioni aggiornate di pdfLaTeX & Compny, dietro le quinte vengono caricati molti altri pacchetti non necessariamente usati per davvero (nel senso che ci sono di default, ma non necessariamente ogni utente ne sfrutta indirettamente le funzionalità). Di solito è meglio evitare di cariare pacchetti inutili, anche epr evitare errori di option clash; tutavia per una cosa così semplice come quella esposta da @samiel non ci sono problemi; d’altra parte se ne sarebbe accorto da solo perché quando si costruiscono EMC bisogna sempre collaudarli, mai inviarli senza avere controllato che facciano propio quello che si vorrebbe che facessero.:)

                        Grazie ancora della risposta!

                        Se non sono troppo scocciante ti chiedo però di rispiegarmi il motivo per cui, componendo un documento che andrà visualizzato a schermo, devo per forza inserire il codice proposto da samiel benché la documentazione di geometry (sezione 7 pagina 15) non ne evidenzi la necessità: a vedere la documentazione del pacchetto, infatti, basta dare \newgeometry e \restoregeometry quando serve, e niente altro.

                        Grazie ancora e scusate il disturbo,
                        Andrea

                      • #114296
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Non ho tempo di andare a cercare il punto esatto dove nella documentazione di geometry si spiega che si possono usare tutte le impostazioni quando si definisce una nuova geometria, tranne alcune. Una è quella con la quale si definisce lo stock size. Lo stock size sono le dimensioni della carta reale sulla quale si stempa, non quelle della pagina che si vuole comporre; per esempio lo stock size potrebbe essere A4 e la pagina per cui disegnare la geometria è B5. Per le tipografie o le copisterie sono disponibili anche formati iso che hanno una S davanti, come per esempio SA3, che corrispondono ad un formato A3 da rifilare dopo la stampa e la piegatura delle segnature; quindi è un formato leggermente più grande in modo da poterne ritagliare cia con le apposite taglierine lo sfrido necessario.

                          Trovato!

                          5.2 Layout size
                          You can specify the layout area with options described in this section regardless of the paper size. The options would help to print the specified layout to a different sized paper. For example, with a4paper and layout=a5paper, the package uses ‘A5’ layout to calculate margins on ’A4’ paper. The layout size defaults to the same as the paper. The options for the layout size are available in \newgeometry, so that you can change the layout size in the middle of the document. The paper size itself can’t be changed though.

                        • #114297
                          Andrea
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Grazie!
                            Andrea

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

                        Go to top