Problema con le testatine nella classe book

  • Creatore
    Topic
  • #107912
    Up
    0
    Down
    ::


    Salve a tutti.
    Sono nuovo all’uso di LaTeX, ma bene o male sono quasi arrivato a conclusione della tesi di laurea.
    A questo punto vorrei abbellire un po’ la pagina con delle semplici testatine, per cui ho cercato di documentarmi un minimo grazie al manuale del pacchetto fancyhdr.
    Questo mi suggerisce, per ottenere il layout predefinito nella classe book, il seguente codice da inserire nel preambolo:

    `\pagestyle{fancy}
    \fancyhead[LE,RO]{\slshape \rightmark}
    \fancyhead[LO,RE]{\slshape \leftmark}
    \fancyfoot[C]{\thepage}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0pt}
    `

    Bene, l’ho fatto e ottengo solo la linea decorativa in alto. Niente nome capitolo, paragrafo e numero di pagina.

    Molto probabilmente mi sto perdendo in un bicchier d’acqua, ma cercando nel forum non ho trovato altri casi simili al mio.

    Allego il preambolo, nella speranza che qualcuno sappia consigliarmi.

    `\documentclass[a4paper,12pt,twoside,openright]{book}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[greek,english,italian]{babel}
    \usepackage{url}
    \usepackage{lipsum}
    \usepackage{csquotes}

    \usepackage[swapnames,normal]{frontespizio}

    \usepackage{geometry}
    \geometry{a4paper,bottom=3cm,heightrounded}

    \usepackage{graphicx}
    \usepackage{layout}
    \usepackage{subfig}

    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhead[LE,RO]{\slshape \rightmark}
    \fancyhead[LO,RE]{\slshape \leftmark}
    \fancyfoot[C]{\thepage}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0pt}

    \newcommand{\fncyblank}{\fancyhf{}}
    \newenvironment{abstract}{\cleardoublepage\fncyblank\null\vfill\begin{center}\bfseries\abstractname\end{center}}{\vfill\null}

    \usepackage{indentfirst}

    \usepackage{amsmath}
    \usepackage{amssymb}
    \usepackage{bm}
    \usepackage{siunitx}
    \usepackage{numprint}
    \usepackage{mathtools}

    \usepackage{appendix}

    \usepackage{booktabs}
    \usepackage{multirow}

    \usepackage{rotating}

    \usepackage[pdfauthor={Alberto}, pdftitle={Tesi Alberto},colorlinks=false]{hyperref}
    \usepackage{bookmark}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{document}

    corpo del documento`

    Vi ringrazio in anticipo per l’attenzione.

    Alberto

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #107913
      Up
      0
      Down
      ::


      Ma scusa, non ti sei accorto che hai definito l’ambiente [tt]abstract[/tt] in modo tale da “svuotare” le testatine? Infatti dici:
      `
      \newcommand{\fncyblank}{\fancyhf{}}
      \newenvironment{abstract}{\cleardoublepage\fncyblank\null\vfill\begin{center}\bfseries\abstractname\end{center}}{\vfill\null}
      `
      Facendo così, le testatine rimangono vuote (perché esegui [tt]\fancyhf{}[/tt]) dal momento in cui usi l’ambiente [tt]abstract[/tt] in poi. Quel che hai veramente intenzione di dire tu non è [tt]\fancyblank[/tt], bensì [tt]\thispagestyle{empty}[/tt].

      Ciao.


      Gustavo

    • #107914
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Benvenuto nel forum.

        Il tuo problema sembra dipendere dal fatto che hai definito un comando \fancyblank che azzera tutte le specificazioni per le testatine.
        Avresti dovuto definirlo come uno stile di pagina, per esempio \pagestyle{fancyblank}{…}. Del resto questa nuova definizione è solo una duplicazione dello stile empty, già definito da latex+book.

        Con questa definizione potresti definire l’ambiente abstract con un codice più chiaro`\newenvironment{abstract}{% Apertura
        \cleardoublepage
        \pagestyle{plain}
        \thispagestyle(empty}
        \vspace*{\stretch{0.5}}
        \begin{center}\bfseries\abstractname\end{center}%
        }{% Chiusura
        \vspace*{\stretch{1}\newpage
        }`
        Se l’abstract è più lungo di una pagina, la prima non ha né testatina né piedino, ma le pagine successive hanno il numero di pagina nel piedino, con la testatina vuota (stile plain), finito l’abstract lo stile delle pagine ridiventa quello che hai definito tu, cioè lo stile fancy (che d’altra parte avresti potuto ignorare, visto che quella è la definizione equivalente a quella di book con lo stile di pagina headings). Il comando \stretch{valore} serve per mettere uno spazio elastico infinito di “forza” pari al numero specificato \vspace*{\stretch{1}} fa quello che fai tu con \null\vfill, ma se vuoi collocare un breve abstract non al centro della pagina, ma un poco più in alto, allora giocando con i “valori” puoi spostare l’abstract più in alto o più in basso, come ho fatto io. Se l’abstarct dura più pagine, nella prima pagina esso comincia in alto mentre nell’ultima pagina lo spazio rimanente dopo la sua ultima riga viene riempito di spazio elastico.

        Ma è difficile dirti di più, perché non mostri come inserisci i capitoli, come specifichi lo stile delle pagine dopo \begin{document} eccetera.

        Poi riguarda il tuo preambolo; ci sono troppi pacchetti, alcuni dei quali spesso sconsigliati in questo forum; prendi l’abitudine di caricare solo i pacchetti che ti sono veramente necessari, non caricare pacchetti perché “non si sa mai, potrebbe servire”; meno pacchetti carichi, minori probabilità hai di scontrarti con incompatibilità fra pacchetti. Tra l’altro specifichi la codifica dei font con T1, e questo va bene, ma non specifichi quali font vettoriali vuoi usare se hai una installazione completa, per esmepio TeXLive, non dovresti avere problemi, ma se hai TeXLive/Debian di base o MiKTeX basic è possibile che i font di default codificati T1 siano solo gli European Modern bitmapped, e il risultato della composizione sarebbe un po’ scadente; Nel visulaizzatore del file composto ingrandisci di 10 volte: se i contorni dei font sono pesantemente seghettati, non stai usando font vettoriali, ma font bitmapped — no good, no good.

      • #107915
        Up
        0
        Down
        ::


        Stavo preparandoti un esempio compilabile quando ho visto l’ottima risposta di @OldClaudio, il quale, parlando di abstract più lungo di una pagina, mi ha fatto venire in mente una cosa (anzi, due 😉 ):

        `
        \documentclass[a4paper]{book}
        \usepackage[T1]{fontenc}
        \usepackage[english]{babel} % si` da poter usare “\abstractname”
        \usepackage{fancyhdr}
        % \usepackage{emptypage} % tu non l'hai messo, ma lo raccomando
        \usepackage{blindtext}
        \usepackage{hyperref}
        \usepackage{bookmark}

        \fancyhf{} % meglio precisare!
        % Troppa roba!
        % \fancyhead[LE,RO]{\slshape \rightmark}
        % \fancyhead[LO,RE]{\slshape \leftmark}
        %
        % Meglio cosi`, direi:
        \fancyhead[LE]{\slshape \leftmark}
        \fancyhead[RO]{\slshape \rightmark}
        \fancyfoot[C]{\thepage}
        \renewcommand{\headrulewidth}{0.4pt}
        \renewcommand{\footrulewidth}{0pt}

        \newenvironment*{abstract}{%
        \cleardoublepage
        \pagestyle{plain}%
        \thispagestyle{empty}%
        \vspace*{\fill}%
        \begingroup
        \centering\bfseries
        \abstractname
        \par\nobreak\vspace{\topsep}%
        \endgroup
        }{%
        \vfill
        \cleardoublepage % discutibile: usare invece “\newpage”?
        }

        \title{Gnus of the World}
        \author{A.~U.~Thor}

        \begin{document}

        \maketitle

        \begin{abstract}
        In this book we speak of big animals that live in Africa.
        \blindtext

        % Decommentando la riga seguente l'abstract viene di due pagine:
        % \Blindtext
        \end{abstract}

        \pagestyle{fancy}

        \tableofcontents

        \Blinddocument

        \end{document}
        `

        Perché non si può usare l’ambiente [tt]center[/tt], almeno così com’è? Be’, prova a rimetterlo e capirai… 😉

        Aggiunta: Ricorda, però, che la classe book non definisce [tt]\abstractname[/tt] (proprio perché non definisce nemmeno l’ambiente [tt]abstract[/tt]): a te funziona solo perché hai caricato babel, e io ho lasciato questo tacón (parola gergale avallata da una Grande Autorità 🙂 ), visto che, in fondo, mi sembra passabile…

        Ciao.


        Gustavo

      • #107916
        Up
        0
        Down
        ::


        Grazie mille a entrambi, mi avete risolto il problema, anche grazie agli esempi di codice che mi avete fornito.

        Gustavo, devo confessare che mesi fa ho copiato le due righe di codice per creare l’ambiente abstract, senza riflettere per nulla su quello che stavo compilando. Ti ringrazio per il suggerimento nell’”aggiunta” finale. Ma come potrei risolvere il problema se non con il “tacón” del pacchetto babel?

        OldClaudio, nel mio caso l’abstract occupa metà pagina, quindi non ho grossi problemi, ma faccio tesoro dei tuoi consigli. Per quanto riguarda i pacchetti, hai ragione sul fatto che sono molti, ma li ho caricati man mano che la loro necessità mi si presentava. Tra l’altro, ho fatto la prova dell’ingrandimento nel file composto e i contorni dei caratteri mi sembrano belli lisci. Probabilmente perchè uso la distribuzione MiKTEX?

        Ciao.

        Alberto

      • #107917
        Up
        0
        Down
        ::

        Albert_91″ post=108031[…] Ti ringrazio per il suggerimento nell’”aggiunta” finale. Ma come potrei risolvere il problema se non con il “tacón” del pacchetto babel?

        […]

        Be’, i casi sono due:

        1. o stai usando babel perché usi lingue diverse dall’inglese, e in questo caso puoi tranquillamente lasciare le cose come stanno, ché va benissimo così;
        2. oppure non stai usando babel perché il tuo documento è tutto in inglese, e in tal caso puoi tranquillamente scrivere la parola «Abstract» come literal string.

        OldClaudio” post=108029[…] se hai TeXLive/Debian di base o MiKTeX basic è possibile che i font di default codificati T1 siano solo gli European Modern bitmapped […]

        No, non ci credo! Davvero? A quel che ricordo, nemmeno OzTeX versione 5 era così antiquato! 😆

        Ciao.


        Gustavo

      • #107918
        Up
        0
        Down
        ::


        Si, sto usando Babel perchè scrivo in italiano.

        Ciao.

        Alberto

      • #107919
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::

          OldClaudio wrote:
          […] se hai TeXLive/Debian di base o MiKTeX basic è possibile che i font di default codificati T1 siano solo gli European Modern bitmapped […]

          No, non ci credo! Davvero? A quel che ricordo, nemmeno OzTeX versione 5 era così antiquato!

          No, Gustavo, non è una questione di obsolescenza o antichità; è che le versioni basic di TeXLive/Debian e di MiKTeX, contengono veramente il minimo indispensabile e i circa 60 MiB necessari per installare i font CM-Super, che forniscono i font CM in codifica T1 e in forma vettoriale, non fanno parte delle loro installazioni basic. Le loro installazioni full, invece li contengono.

          Per @Albert_91:
          Invece dei CM-Super, io preferisco di gran lunga usare i Latin Modern si usano invocando o il pacchetto lmodern oppure il pacchetto lm-cfr.
          Entrambi usano i font Latin Modern, definendoli però in modo che siano scalabili con continuità a tratti. Il pacchetto lm-cfr oltre a questo usa dei font virtuali tali da poter accedere ai font Latin Modern, specificando alcune opzioni (assenti dal pacchetto più semplice lmodern) che permettono di usare famiglie, serie e forme che fanno parte della collezione, ma che non sono accessibili con il pacchetto più semplice. Grazie alla scalabilità continua, sia pure a tratti, nel file pdf compilato i font occupano meno spazio, perché se ne caricano di meno.

          Alcuni di noi, non io, non apprezzano la scalabilità continua, sia pure a tratti, ed è possibile che tu riceva su questo filone risposte a questo mio messaggio che ti spiegano perché e percome la scalabilità continua sia da evitare.

          Gustavo: tacón è veneto; il veneto fa parte delle lingue con substrato celtico come il piemontese, in cui si scrive tacon, ma si pronuncia più chiuso, come tacùn. Il significato è il medesimo. ma credo che entrambi siano capiti nello stesso modo da tutti coloro che parlano italiano.

          @Albert_91:
          Se scrivi in italiano, a che cosa ti serve invocare fra le opzioni di babel l’inglese, ma soprattutto il greco? Chiamare questa lingua, senza averne bisogno, vuol dire creare delle possibili noie al funzionamento di hyperref; io ci sono passato e ho risolto il problema, ma non si tratta di una operazione semplice per niente. Se ti è necessario scrivere qualche parola in greco, usa il pacchetto textalpha adatto allo scopo, ma che non invoca la lingua greca, ma solo l’alfabeto greco con le rispettive LICR (LaTeX Internal Character Representation) per gestire i diacritici.

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

      Go to top