book con pagine aventi sfondo che copre gli headings

  • Creatore
    Topic
  • #120244
    benedetto batta
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno.
      Sto cercando di realizzare una sezione di un libro che abbia le pagine tutte grigie (sfondo), dove poi posizionare delle immagini con una frase di commento.
      Lavorando, ho trovato questa soluzione:
      `
      \documentclass[10pt,a5paper]{book}
      \usepackage[T1]{fontenc} % codifica dei font
      \usepackage[utf8]{inputenc} % lettere accentate da tastiera
      \usepackage{graphicx}% immagini
      \usepackage{layouts}
      \usepackage{geometry}
      \geometry{top=3cm,bottom=1.5cm,headheight=12.3pt,headsep=17.81pt,%left=2.5cm,right=2.5cm,
      heightrounded,bindingoffset=5mm}
      % pacchetto di grafica, impostazioni e contatori
      \usepackage{tikz}
      \usetikzlibrary{decorations, decorations.text,}
      \usetikzlibrary{arrows,decorations.markings}
      \usetikzlibrary{decorations.text}
      \usetikzlibrary{shadows}

      \newcommand{\imgPage}[3]{
      \begin{tikzpicture}[remember picture, overlay]
      \node [
      fill=gray!20,
      anchor=north,
      minimum width=\paperwidth,
      minimum height=\paperheight,
      ] (box) at (current page.north) { };
      \node[general shadow={
      top color=darkgray,
      bottom color=black,
      opacity=0.9
      },
      anchor=north,
      xshift=0cm,
      yshift=-2.5cm]
      at (current page.north)
      {\includegraphics [keepaspectratio=true, scale={#1}] {#2}};
      \centering
      \draw (4.5,-15.5) node[text width=100mm, align=justify] {\normalsize \textit{{#3}}};
      \end{tikzpicture}
      \vskip 2cm
      }

      \begin{document}

      \frontmatter

      \mainmatter
      provaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprovaprova
      \newpage

      \imgPage{1.4} {fabio18.png} {testo di prova per il libro}
      \newpage

      \imgPage{.8} {fabio012.png} {testo di prova per il libro, quadro scale “fiume e castello”}
      \newpage
      prova
      \end{document}
      `

      Il nuovo comando imgPage permette di creare queste pagine grigie, inserire l’immagine stabilendo la scala, e il testo del commento.
      Probabilmente non è la soluzione più felice, anche perché c’è un problema che non riesco a risolvere, e cioè che l’immagine di fondo (il primo node) copre le informazioni di HEADER e FOOTER.
      Ora, se qualcuno avesse idee migliori, saranno bene accette, ma mi basterebbe capire come mettere l’indice di profondità all’immagine affinchè sia sotto gli Headings.

      Va da sé che il codice prodotto è minimo…

      Spero che qualcuno abbia qualche idea.

      Grazie in anticipo.

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #120245
        mattiaca
        Partecipante
          Up
          0
          Down
          ::


          Tikz è molto potente, ma non è la scelta migliore per quello che vuoi fare.
          Presumo che la tua intenzione sia quella di comporre una appendice che contiene una galleria di immagini.
          Siccome non è chiaro dal messaggio, ho provato a produrre un esempio minimo molto “grezzo”, che può essere adattato a diverse possibilità.
          Ti ricordo che per comprendere bene i comandi utilizzati in LaTex puoi consultare la documentazione di questo sito oltre che quella dei pacchetti che puoi cercare nel terminale del tuo computer con texdoc nome pacchetto.
          Ecco quel che ho pensato, che può essere certamente migliorato:
          `
          \documentclass[10pt,a5paper]{book}
          \usepackage[T1]{fontenc} % codifica dei font
          \usepackage[utf8]{inputenc} % lettere accentate da tastiera
          \usepackage{graphicx}% immagini
          \usepackage{layouts}
          \usepackage{geometry}
          \geometry{top=3cm,bottom=1.5cm,headheight=12.3pt,headsep=17.81pt,%left=2.5cm,right=2.5cm,
          heightrounded,bindingoffset=5mm}
          \usepackage[italian]{babel}
          \usepackage{mwe}
          \usepackage{lipsum}
          \usepackage{xcolor}
          \usepackage{caption}

          \begin{document}

          \lipsum
          \newpage
          \pagecolor{gray!20}
          \includegraphics[width=\textwidth]{example-image-a}
          \vfill
          \captionof{figure}{testo di prova per il libro}

          \newpage
          \includegraphics[width=\textwidth]{example-image-b}
          \vfill
          \captionof{figure}{testo di prova per il libro, quadro scale “fiume e castello”}

          \newpage
          \nopagecolor
          prova
          \end{document}
          `

        • #120246
          benedetto batta
          Partecipante
            Up
            0
            Down
            ::


            Grazie della risposta.
            Non conoscevo il comando \pagecolor. Ho scoperto che c’è un pacchetto omonimo, ma non l’hai dichiarato nel tuo esempio, e pure so che non è un comando base di LaTex; forse appartiene a Graphicz, che so si può non dichiarare. In ogni modo, a parte la tua soluzione per il colore di sfondo (molto apprezzabile), io usavo tikz soprattutto per l’ombreggiatura, che tra l’altro vorrei migliorare (ho trovato alcune soluzioni nel web, che sperimenterò), quindi modificherò il nuovo comando \imgPage semplificandolo.
            Una nota riguardante \captionof: il mio obiettivo è quello di identificare con un breve testo le immagini, e anticipare la sezione con una listoffigures modificata in modo tale da vare la possibilità di scrivere un testo aggiuntivo sotto le singole voci dell’indice.
            Al momento, ho abbozzato un codice manuale:
            `\begin{enumerate} [nosep]
            \item “Ape regina'', quadro ad olio, 1975
            \end{enumerate}
            \vspace{-.5pc}
            \setlength{\leftskip}{1.2cm}
            \emph{{\small \lipsum[1]}}
            \begin{enumerate} [resume]
            \item copia da taccuino, studio per la poesia “Dafne e Cloe''
            \item Borgogni con la figlia Erica, 1995
            \end{enumerate}
            \vspace{-.5pc}
            \setlength{\leftskip}{1.2cm}
            \emph{{\small \lipsum[1]}}`
            ma chiaramente vorrei modificare listoffigures e i relativi \caption.
            Non la vedo facilissima… al limite, manterrò l’impostazione manuale (in fondo, saranno una quindicina di figure).
            Se hai qualche idea…

          • #120247
            mattiaca
            Partecipante
              Up
              0
              Down
              ::

              Non conoscevo il comando \pagecolor. Ho scoperto che c’è un pacchetto omonimo, ma non l’hai dichiarato nel tuo esempio, e pure so che non è un comando base di LaTex; forse appartiene a Graphicz, che so si può non dichiarare.

              Pacchetto xcolor, ma anche il pacchetto pagecolor fa la stessa cosa.

              Una nota riguardante \captionof: il mio obiettivo è quello di identificare con un breve testo le immagini, e anticipare la sezione con una listoffigures modificata in modo tale da vare la possibilità di scrivere un testo aggiuntivo sotto le singole voci dell’indice.

              Non mi sembra una buona idea per chi deve leggere il tuo testo: se occorre una spiegazione alle figure, tanto vale che sia direttamente nella didascalia. Comunque questa richiesta mi ha colpito e ho tentato di esaudirla. Prova a vedere se questo esempio ti piace:

              `
              \documentclass[10pt,a5paper]{book}
              \usepackage[T1]{fontenc} % codifica dei font
              \usepackage[utf8]{inputenc} % lettere accentate da tastiera
              \usepackage{graphicx}% immagini
              \usepackage{geometry} %geometria della pagina
              \geometry{top=3cm,bottom=1.5cm,headheight=12.3pt,headsep=17.81pt,%left=2.5cm,right=2.5cm,
              heightrounded,bindingoffset=5mm}
              \usepackage[italian]{babel} %lingua
              \usepackage{mwe} % per immagini casuali
              \usepackage{xcolor} % questo pacchetto definisce i colori, tra cui anche il comando \pagecolor
              \usepackage{caption} % questo serve a personalizzare le didascalie
              \captionsetup[image]{labelfont=sf,format=hang} % cambia questa riga per modificare l'aspetto delle didascalie relative alle immagini dell'appendice.
              %le seguenti righe servono per far apparire l'etichetta “immagine'' nella didascalia. da eliminare se non interessa.
              \makeatletter
              \def\fnum@image{\imagename\nobreakspace\theimage}
              \makeatother
              \newcommand{\imagename}{Immagine} % questo è il nome dell'etichetta che compare nelle didascalie

              \usepackage{tocloft} % serve per personalizzare gli indici generali

              % Siccome penso che tutte le immagini dell'appendice vadano inserite in una lista a parte, ecco che devo creare una nuova lista di immagni apposta per questo
              \newlistof{image}{ima}{\listimagename}
              \newcommand{\listimagename}{Elenco delle Immagini} % Questa è l'intestazione della lista delle immagini
              % parametri che controllano la spaziatura delle voci dell'elenco delle immagini: vedi documentazione tocloft
              \setlength\cftimageindent{0em}
              \setlength\cftimagenumwidth{1.5em}

              \makeatletter
              %questo serve per inserire l'elenco delle immagini nell'appendice come una sezione. Se vuoi un capitolo a parte occorre eliminare le righe seguenti
              \renewcommand\listofimage{%
              \section*{\listimagename}%
              \@starttoc{ima}%
              }

              % questo serve per personalizzare la dimensione dell'immagine: modifica con \setlength ogni volta che occorre una diversa dimensione della immagine
              \newlength\wimage
              \setlength\wimage{\textwidth}
              \newlength\himage
              \setlength\himage{0.4\textheight}

              %questo serve per inserire l'immagine nell'appendice:
              \newcommand{\insertimage}[3][]{%
              \includegraphics[width=\wimage,height=\himage]{#3}\par
              \captionof{image}{#2} %didascalia
              \if {#1}\@empty\relax \else % descrizione nell'elenco delle immagini
              \addtocontents{ima}{
              \parindent=\cftimagenumwidth
              \leftskip=\cftimageindent
              \itshape\small {#1}\par
              }
              \fi
              }
              \makeatother

              \begin{document}

              \chapter*{Appendice grafica}
              \pagecolor{gray!20}
              \setlength\parindent{0pt}
              \listofimage
              \newpage

              \insertimage[L'ape vola sui fiori.] {“Ape regina'', quadro ad olio, 1975.}{example-image-a}
              \vfill
              \insertimage [Questa immagine è bella assai! \par Ciao.] {Copia da taccuino, studio per la poesia “Dafne e Cloe''.}{example-image-b}

              \newpage
              \nopagecolor
              prova
              \end{document}
              `

              Ho commentato il codice per maggior chiarezza.

            • #120248
              benedetto batta
              Partecipante
                Up
                0
                Down
                ::


                Molte grazie. Devo dire che sei stato utile e prezioso.
                La necessità di inserire la didascalia nella lista occorre perché la sola dicitura sotto le immagini non è sufficiente per le informazioni che voglio dare. Quindi, sì, è un indice alquanto atipico, perché arricchito di dati e commenti.
                Partendo dal tuo codice, sto affindando secondo le mie necessità, anche approfondendo i pacchetti utilizzati.
                Purtroppo utilizzo LaTex troppo sporadicamente. Questo è il terzo libro che edito con il software a distanza di 4 anni, e ogni volta devo recuperare le conoscenze, e soprattutto colmare le lacune.
                Ora mi resta una cosa da fare, e cioè spostare le immagini di 0,5cm (o un’altra misura che calibrerò) a DX o a SX in caso si tratti di pagina pari o dispari.
                Pensavo di usare il pacchetto pagechange, ma non so bene come applicare l’istruzione all’interno del newcommand. Al momento, il mio codice (modificato rispetto al tuo), nella parte interessata, è il seguente:
                ` \begin{tikzpicture}[remember picture, overlay]
                \node[general shadow={
                top color=darkgray,
                bottom color=black,
                opacity=0.2
                },
                anchor=north, %anchor is upper left corner of the graphic
                xshift=0cm, %shifting around
                yshift=-3cm]
                at (current page.north) %left upper corner of the page
                \checkoddpage
                \ifoddpage
                [odd]?
                \else
                [even]?
                \fi
                {\includegraphics[width=\wimage]{#3}};
                \end{tikzpicture}
                `
                Immagino che dopo il posizionamento at (current page.north) si debba attuare l’introduzione della posizione (dove ho posto l’IF): sai come fare?

                Grazie ancora.

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

            Go to top