Probema con eso-pic

  • Creatore
    Topic
  • #6883
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Carissimi, ho un sorgente di questo tipo.

      `\documentclass[a4paper,11pt,draft]{book}

      \usepackage[ansinew]{inputenc}
      \usepackage[italian]{babel}
      \usepackage[binding=1cm]{layaureo}
      \usepackage{graphicx}
      \usepackage{eso-pic}

      \newcommand\BackgroundPicture{
      \put(0,0){
      \parbox[\paperheight]{\paperwidth}{
      \vfill
      \centering
      \includegraphics[width=\textwidth]{immagine}
      \vfill
      }}}

      \begin{document}

      \begin{titlepage}
      \AddToShipoutPicture*{\BackgroundPicture}%
      \null\vfill
      \begin{sffamily}
      \begin{center}
      \begin{Large}
      \uppercase{Immanuel Kant}
      \end{Large}

      \vspace{2cm}

      \begin{Huge}
      \uppercase{Prolegomeni}\\
      \uppercase{ad ogni metafisica futura}\\
      \uppercase{che voglia presentarsi}\\
      \uppercase{come mito}\\
      \end{Huge}

      \vspace{8cm}

      \begin{large}
      K\”onigsberg, 1770
      \end{large}
      \end{center}
      \end{sffamily}
      \null\vfill
      \end{titlepage}

      \end{document}`

      C’è un modo di dire a eso-pic “centrami l’immagine rispetto al testo“?

      Provo a spiegarmi meglio. A me non interessa che l’immagine di sfondo sia centrata rispetto alla pagina (pagina = foglio A4) visto che il testo in effetti non lo è (il margine sinistro e quello destro, per esempio, non sono uguali, per effetto della classe book + la rilegatura di LayAureo). Vorrei che l’immagine fosse invece centrata rispetto al testo (come quando accade con \includegraphics all’interno del documento).

      Scusate per l’ermetismo.

      Grazie, Lorenzo

    Visualizzazione 13 filoni di risposte
    • Autore
      Risposte
      • #6884
        Up
        0
        Down
        ::


        In questo topic spiegavano come centrarla rispetto al testo oppure rispetto alla pagina
        http://www.guit.sssup.it/phpBB2/viewtopic.php?t=938&highlight=addtoshipoutpicture

        Per centrarla rispetto al corpo del testo:
        `
        \AddToShipoutPicture*{%
        \put(\LenToUnit{.5\textwidth}, \LenToUnit{.5\textheight}){\includegraphics}%
        }`
        oppure, se vuoi centrare l’immagine rispetto alla pagina, c’è l’apposito comando.

      • #6885
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::


          Grazie per la risposta, Gloria…

          E’ che quando c’è da comporre un frontespizio vado in tilt, devo essere allergico…

          LaTeX mi ha abituato troppo bene, fa tutto (divinamente) lui: quando devo prendermi delle responsabilità nel fare delle scelte grafiche, è crisi…

          Ciao, Lorenzo

        • #6886
          Up
          0
          Down
          ::


          purtroppo è un’esigenza che sento anche io. tanto da aver pensato di creare una raccolta di stili già pronti, ma un frontespizio è spesso assolutamente personalizzabile e quindi è bastante utopico pensare ad una soluzione pronta per l’uso.
          in ogni cas ti puoi ispirare qui:
          http://zoonek.free.fr/LaTeX/LaTeX_samples_title/0.html
          ciao
          f

        • #6887
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::


            Per Fabiano.
            Il link che mi hai suggerito è ottimo… ma se tu decidessi di fare un pacchetto di frontespizi già bell’e pronti sarei il primo della lista a farne uso… Fra l’altro, penso che, per l’utente finale, usare comandi “di basso livello” del tipo:
            `\vspace{1cm}`
            o
            `\bigskip`
            o anche
            `\begin{Large} testo \end{Large}`
            come si fa di solito nell’ambiente titlepage, vada contro la filosofia stessa di LaTeX. D’altra parte, IMHO il frontespizio che si ottiene con \maketitle (per la classe book) è inaccettabilmente spartano e inutilizzabile per quasi tutte le esigenze “reali”.

            Per Gloria (e tutti gli altri…)
            La soluzione al problema con eso-pic data nel thread cui fai riferimento purtroppo non funziona.
            Prova a compilare:
            `\documentclass[a4paper,11pt]{book}

            \usepackage[ansinew]{inputenc}
            \usepackage[italian]{babel}
            \usepackage{graphicx}
            \usepackage[binding=1cm]{layaureo}
            \usepackage{eso-pic}

            \begin{document}

            \begin{titlepage}%
            \AddToShipoutPicture*{%
            \put(\LenToUnit{.5\textwidth}, \LenToUnit{.5\textheight}){\includegraphics{immagine}}%
            }
            \null \vfill%
            \begin{sffamily}
            \begin{center}

            \begin{Large}
            \uppercase{Blah Blah}
            \end{Large}

            \vspace{2cm}

            \begin{Huge}
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \end{Huge}

            \vspace{6cm}

            \begin{large}
            Blah Blah Blah
            \end{large}

            \end{center}
            \end{sffamily}
            \null \vfill
            \end{titlepage}

            \end{document}`
            e vedrai.

            Ho dato un’occhiata alla guida di eso-pic, ma non ne vengo a capo… 🙄

            Grazie amticipate a chi vorrà suggerirmi il codice adeguato…
            Lorenzo

          • #6888
            Up
            0
            Down
            ::


            Ottimo sito …
            Il frontespizio della mia tesi l’avevo realizzato usando \vspace \center e comandi dello stesso tipo … in effetti va un po’ contro la filosofia LaTex.
            Un pacchetto di frontespizi sarebbe molto utile … ma non ne è stato creato nessuno in passato?

          • #6889
            Up
            0
            Down
            ::

            Per Gloria (e tutti gli altri…)
            La soluzione al problema con eso-pic data nel thread cui fai riferimento purtroppo non funziona.
            Prova a compilare:
            `\documentclass[a4paper,11pt]{book}

            \usepackage[ansinew]{inputenc}
            \usepackage[italian]{babel}
            \usepackage{graphicx}
            \usepackage[binding=1cm]{layaureo}
            \usepackage{eso-pic}

            \begin{document}

            \begin{titlepage}%
            \AddToShipoutPicture*{%
            \put(\LenToUnit{.5\textwidth}, \LenToUnit{.5\textheight}){\includegraphics{immagine}}%
            }
            \null \vfill%
            \begin{sffamily}
            \begin{center}

            \begin{Large}
            \uppercase{Blah Blah}
            \end{Large}

            \vspace{2cm}

            \begin{Huge}
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \uppercase{Blah Blah Blah Blah Blah}\\
            \end{Huge}

            \vspace{6cm}

            \begin{large}
            Blah Blah Blah
            \end{large}

            \end{center}
            \end{sffamily}
            \null \vfill
            \end{titlepage}

            \end{document}`e vedrai.

            Non stai tenendo conto del margine della rilegatura, bisognerebbe entrare in layaureo per capire come mai.`\newdimen{\mydim}
            \setlength{\mydim}{\textwidth+1cm} % occorre anche \usepackage{calc}
            \begin{titlepage}%
            \AddToShipoutPicture*{%
            \put(\LenToUnit{.5\mydim}, \LenToUnit{.5\textheight}){\includegraphics{immagine}}%
            }
            \vspace*{\fill}
            \centering
            \sffamily

            \vspace*{\fill}
            \end{titlepage}`Noterai che ho eliminato l’inesistente ambiente sffamily, come devi eliminare i “Large” eccetera. Anche il “center” non serve.

            Ciao
            Enrico

          • #6890
            lorenzo.pantieri
            Partecipante
              Up
              0
              Down
              ::


              Ciao Enrico, innanzitutto grazie per la risposta e per i tuoi suggerimenti, sempre graditissimi e preziosi. 😀

              Purtroppo, però, a me il problema della mancata centratura dell’immagine rispetto al testo rimane. Questo codice, che ho riscritto tenendo conto dei tuoi consigli, a me non funziona:
              `\documentclass[a4paper,11pt]{book}

              \usepackage[ansinew]{inputenc}
              \usepackage[italian]{babel}
              \usepackage{graphicx}
              \usepackage[binding=1cm]{layaureo}
              \usepackage{calc}
              \usepackage{eso-pic}

              \newdimen{\mydim}
              \setlength{\mydim}{\textwidth+1cm}

              \begin{document}
              \begin{titlepage}
              \AddToShipoutPicture*{%
              \put(\LenToUnit{.5\mydim},\LenToUnit{.5\textheight}){\includegraphics{immagine}}%
              }%
              \vspace*{\fill}\centering\sffamily

              {\Large\uppercase{Blah Blah}}

              \vspace{2cm}

              {\Huge%
              \uppercase{Blah Blah Blah Blah Blah}\\
              \uppercase{Blah Blah Blah Blah Blah}\\
              \uppercase{Blah Blah Blah Blah Blah}\\
              \uppercase{Blah Blah Blah Blah Blah}\\}

              \vspace{6cm}

              {\large Blah Blah Blah}
              \vspace*{\fill}
              \end{titlepage}
              \end{document}`

              Sulla (per me, decisamente ermetica) guida di eso-pic, noto che c’è un comando `\AtTextCenter`, dal nome promettente, così definito:
              `\newcommand\AtTextCenter[1]{\AtTextUpperLeft{%
              put(0,\LenToUnit{.5\textwidth},\LenToUnit{-.5\textheight}){#1}}}`
              Il segno meno nella seconda coordinata di put centra qualcosa? Ho provato e ri-provato a pasticciare sul tuo codice, ma non ci ho tirato fuori il classico ragno dal calssico buco. 😥

              Grazie per l’attenzione e la paziente disponibilità.
              Lorenzo

            • #6891
              Up
              0
              Down
              ::

              Ciao Enrico, innanzitutto grazie per la risposta e per i tuoi suggerimenti, sempre graditissimi e preziosi. 😀

              Purtroppo, però, a me il problema della mancata centratura dell’immagine rispetto al testo rimane. Questo codice, che ho riscritto tenendo conto dei tuoi consigli, a me non funziona:
              `\newdimen{\mydim}
              \setlength{\mydim}{\textwidth+1cm}
              \AddToShipoutPicture*{%
              \put(\LenToUnit{.5\mydim},\LenToUnit{.5\textheight}){\includegraphics{immagine}}%
              }%`

              Partivamo entrambi da un presupposto sbagliato.
              `\setlength{\mydim}{.5\textwidth+\oddsidemargin+1in+\hoffset}
              \AddToShipoutPicture*{%
              \put(\LenToUnit{\mydim},\LenToUnit{.5\textheight}){\textbullet}%
              }`
              mette un pallino esattamente dove volevi tu. Il problema poi è di spostare la figura in modo che il punto di riferimento sia al centro. Ci vogliono un po’ di calcoli facili, tenendo conto che il punto di riferimento usuale è in basso a sinistra.
              Non sono sicuro del posizionamento verticale, però. Ma si dovrebbe sistemare allo stesso modo.
              Ciao
              Enrico

            • #6892
              ev
              Partecipante
                Up
                0
                Down
                ::

                Il problema poi è di spostare la figura in modo che il punto di riferimento sia al centro.

                Io cercherei di aggirare il problema inserendo la figura in una scatola 0x0:`\setlength{\mydim}{.5\textwidth+\oddsidemargin+1in+\hoffset}
                \AddToShipoutPicture*{%
                \put(\LenToUnit{\mydim},\LenToUnit{.5\textheight}){%
                \makebox(0, 0){\includegraphics{imm}}%
                }%
                }`Magari il posizionamento non è perfetto, ma se non usi il righello, secondo me sembra centrata.

              • #6893
                lorenzo.pantieri
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Scusate se insisto, ma questa storia mi sta facendo perdere il sonno… 😡
                  Soprattutto, ho l’impressione che ci sia qualcosa che ci sfugge…

                  Ricapitolando, ho un frontespizio la cui parte testuale è resa perfettamente da:
                  `\documentclass[a4paper,11pt]{book}

                  \usepackage[ansinew]{inputenc}
                  \usepackage[italian]{babel}
                  \usepackage{graphicx}
                  \usepackage[binding=1cm]{layaureo}

                  \begin{document}
                  \begin{titlepage}
                  \vspace*{\fill}\centering\sffamily%
                  %
                  {\Large\uppercase{Blah Blah}}

                  \vspace{2cm}

                  {\Huge%
                  \uppercase{Blah Blah Blah Blah Blah}\\%
                  \uppercase{Blah Blah Blah Blah Blah}\\%
                  \uppercase{Blah Blah Blah Blah Blah}\\%
                  \uppercase{Blah Blah Blah Blah Blah}\\}%

                  \vspace{6cm}%

                  {\large Blah Blah Blah}\vspace*{\fill}
                  \end{titlepage}
                  \end{document}`

                  Vorrei sovrapporci un’immagine come sfondo: da sola, posso ottenerla, perfettamente, così:

                  `\documentclass[a4paper,11pt]{book}

                  \usepackage[ansinew]{inputenc}
                  \usepackage[italian]{babel}
                  \usepackage{graphicx}
                  \usepackage[binding=1cm]{layaureo}

                  \begin{document}
                  \begin{titlepage}
                  \vspace*{\fill}\centering%
                  \includegraphics[width=\textwidth]{immagine}%
                  \vspace*{\fill}
                  \end{titlepage}
                  \end{document}`

                  Non posso credere che la soluzione sia stampare fisicamente le due pagine una dopo l’altra, ma sullo stesso foglio di carta!! 😯

                  Fino ad ora, solo in questo caso sono riuscito ad ottenere – alla perfezione – il risultato che ho in mente.

                  Di più: possibile che sia necessario un pacchetto per dire a LaTeX una cosa così “semplice” come “stampami queste due pagine su una stessa pagina”?

                  Scusatemi, ma a volte LaTeX ha la capacità di scatenare istinti paranoicamente perfezionisti…

                  Lorenzo

                • #6894
                  ev
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Domanda: ma ci hai almeno provato? Non voglio fare il saccente o l’attaccabrighe, ma usando una scatola 0x0 e direttamente \AtTextCenter (che tu dici non funzionare), a me viene tutto alla perfezione, con e senza binding=1cm:
                    `\documentclass[a4paper,11pt]{book}

                    \usepackage[ansinew]{inputenc}
                    \usepackage[italian]{babel}
                    \usepackage{eso-pic, graphicx}
                    \usepackage[binding=1cm]{layaureo}

                    \AddToShipoutPicture*{%
                    \AtTextCenter{%
                    \makebox(0, 0){%
                    \includegraphics[width=\textwidth]{immagine}%
                    }%
                    }%
                    }

                    \begin{document}
                    \begin{titlepage}
                    \vspace*{\fill}\centering\sffamily%
                    %
                    {\Large\uppercase{Blah Blah}}

                    \vspace{2cm}

                    {\Huge%
                    \uppercase{Blah Blah Blah Blah Blah}\\%
                    \uppercase{Blah Blah Blah Blah Blah}\\%
                    \uppercase{Blah Blah Blah Blah Blah}\\%
                    \uppercase{Blah Blah Blah Blah Blah}\\}%

                    % Tanto per riempire tutto \textwidth e controllare empiricamente la
                    % centratura dell'immagine!
                    a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
                    a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
                    a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
                    a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
                    a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

                    \vspace{6cm}%

                    {\large Blah Blah Blah}\vspace*{\fill}
                    \end{titlepage}
                    \end{document}`
                    Provare per credere (e se vuoi, c’è pure il risultato in PDF qui, almeno temporaneamente).

                  • #6895
                    lorenzo.pantieri
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Ciao Emanuele, non sei né saccente né attaccabrighe, ci mancherebbe! Anzi, ti manifesto la mia più sincera ammirazione per la tua competenza, gli impagabili consigli e la pazienza!

                      Ciò detto, c’è ancora un problemino da risolvere. Adesso l’immagine è perfettamente centrata in orizzontale, ma in verticale resta una minuscola differenza. Questa differenza è quasi invisibile nel pdf che porti ad esempio, e secondo me dipende dal fatto che l’immagine di sfondo (a proposito: bellissima!) è piuttosto “irregolare”. Se però devi inserire un logo a forma di disco (come devo fare io) la minuscola, ma fastidiosa differenza (circa due, tre millimetri) si nota.

                      Più precisamente, se faccio un solitario
                      `\begin{titlepage}
                      \vspace*{\fill}\centering%
                      \includegraphics[width=\textwidth]{immagine}%
                      \vspace*{\fill}
                      \end{titlepage}`
                      e sovrappongo fisicamente con il testo, la centratura in verticale è perfetta, mentre con il tuo codice l’immagine di sfondo viene inserita da LaTeX un pochino (qualche mm) più in alto di quello che si “dovrebbe” (mentre il testo rimane al suo posto).

                      P.S. Per favore, saresti così gentile da indicarmi il link dell’immagine di GuIT che hai usato come sfondo per il tuo pdf???

                      Grazie di tutto!

                      Lorenzo

                    • #6896
                      ev
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        Adesso l’immagine è perfettamente centrata in orizzontale, ma in verticale resta una minuscola differenza.

                        Accipicchia! Hai ragione… sarà la febbre, ma non me ne ero accorto. Ignoro se ci sia uno spazio di troppo quando sistemi la figura a mano oppure se vengano calcolate male le misure da eso-pic. Al posto di quella scatola 0x0 mettici una scatola 0x-12:
                        `\AddToShipoutPicture*{%
                        \AtTextCenter{%
                        \makebox(0, -12){%
                        \includegraphics[width=\textwidth]{immagine}%
                        }%
                        }%
                        }`
                        Sarebbe interessante capire il motivo alla base della discrepanza…

                        P.S. Per favore, saresti così gentile da indicarmi il link dell’immagine di GuIT che hai usato come sfondo per il tuo pdf???

                        Non c’è alcun link perché non è disponibile on-line: l’ho realizzata ex-novo per GuIT usando ConTeXt quando ho rifatto il poster, il volantino, i badge, etc.; ora è tutta roba di GuIT, quindi dovresti chiedere al Presindentissimo 😉

                        Mi piglio un’aspirina e torno a letto… Buon GuITmeeting a tutti.

                      • #6897
                        lorenzo.pantieri
                        Partecipante
                          Up
                          0
                          Down
                          ::

                          Ignoro se ci sia uno spazio di troppo quando sistemi la figura a mano oppure se vengano calcolate male le misure da eso-pic. Sarebbe interessante capire il motivo alla base della discrepanza…

                          La soluzione che proponi funziona egregiamente: grazie! Comunque anch’io sono curioso di capire il motivo della discrepanza: a naso, darei la “colpa” ad eso-pic.

                          Non c’è alcun link perché non è disponibile on-line: l’ho realizzata ex-novo per GuIT usando ConTeXt quando ho rifatto il poster, il volantino, i badge, etc.; ora è tutta roba di GuIT, quindi dovresti chiedere al Presindentissimo 😉

                          Glielo chiederò senz’altro! 😉 Intanto, complimenti per lo splendido lavoro!

                          Mi piglio un’aspirina e torno a letto… Buon GuITmeeting a tutti.

                          Auguri di pronta guarigione e buon GuIT meeting anche a te.

                          Grazie ancora,
                          Lorenzo

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

                      Go to top