Bug di geometry?

  • Creatore
    Topic
  • #74552
    Up
    0
    Down
    ::


    Ciao a tutti.

    Non so se è una cosa nota o sono io che sto dimenticando qualcosa, ma l’opzione lines di geometry, quando si usa xelatex, funziona nel modo corretto solo se geometry viene richiamato prima di fontspec. Se nell’esempio sottostante inverto geometry con fontspec ottengo meno righe rispetto alle 40 previste.
    `% !TEX encoding = UTF-8
    % !TEX program = xelatex

    \documentclass{book}

    \usepackage[showframe,a4paper,lines=40]{geometry}
    \usepackage{fontspec}
    \usepackage{lipsum}

    \begin{document}
    \lipsum
    \end{document}`

    Inoltre se si vuole anche regolare l’interlinea agendo con il comando \linespread, il numero di righe verrà sempre sbagliato. Indipendentemente dall’ordine dei comandi.

    Se mi confermate quanto detto mando una mail all’autore di geometry.

    Ciao ciao.
    Fra

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #74553
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        A me pare del tutto normale che geometry si comporti come tu lamenti; se chiami prima geometry esso fissa una certo \baselineskip per avere 40 righe nella gabbia, ma quando chiami fontspec carichi di default i font opentype Latin Modern (quelli di default) con che ti viene impostato il valore di \baselineskip di default con quei font, cioè 12pt con il corpo di default di 10pt. Se poi usi \linespread con un valore diverso da 1, cambi il fattore moltiplicativo di \baselineskip che ovviamente cambia ancora il numero di righe.
        Quindi per avere 40 righe devi prima chiamare fontspec, poi impostare \linespread (meglio non impostarlo affatto, ma se proprio devi…), poi chiamare geometry.

        Se non sei convinto inserisci una coppia di comandi \show\linespread e \shpwthe\baselineskip prima e dopo aver chiamato ciascuno dei pacchetti e vedrai sullo schermo i valori che queste grandezze assumono via via (ogni volta la compilazione si ferma con un punto interrogativo come se avessi commesso un errore; premi per proseguire).

        Ciao
        Claudio

      • #74554
        Up
        0
        Down
        ::


        Ciao Claudio,

        anche io avevo fatto il tuo stesso ragionamento ed è per questo che mi sono stupito!

        Vediamo con più calma la prima stranezza:
        1. Se carico geometry dopo fontspec (cosa del tutto lecita o addirittura preferibile), mi vengono 33 righe
        2. Se carico geometry prima di fontspec invece mi vengono correttamente 40 righe. Problema risolto.

        Sembra come se, dopo aver chiamato fontspec, baselineskip sia impostato a 10 pt anziché a 12 pt, come dovrebbe.
        (Ho visto questa cosa, come da te suggerito, tramite \showthe\baselineskip. Invece dato che sia \linespread che \baselinestretch sono macro, non sono riuscito a mostrare il loro valore prima e dopo le chiamate dei pacchetti… ma sono molto ignorante in materia)

        Se mettiamo in mezzo anche linespread, io sono d’accordo con te che la cosa più sensata sia caricare in ordine fontspec, linespread e poi geometry.
        Ma così facendo ottengo un numero di righe ancora inferiore se linespread è maggiore di 1 (perché l’altezza della colonna del testo è sempre la stessa). E provare tutte le permutazioni non aiuta.

        Ciao ciao.
        Fra

      • #74555
        Up
        0
        Down
        ::

        francesco.biccari” post=73683Ciao a tutti.

        Non so se è una cosa nota o sono io che sto dimenticando qualcosa, ma l’opzione lines di geometry, quando si usa xelatex, funziona nel modo corretto solo se geometry viene richiamato prima di fontspec. Se nell’esempio sottostante inverto geometry con fontspec ottengo meno righe rispetto alle 40 previste.
        `% !TEX encoding = UTF-8
        % !TEX program = xelatex

        \documentclass{book}

        \usepackage[showframe,a4paper,lines=40]{geometry}
        \usepackage{fontspec}
        \usepackage{lipsum}

        \begin{document}
        \lipsum
        \end{document}`

        Inoltre se si vuole anche regolare l’interlinea agendo con il comando \linespread, il numero di righe verrà sempre sbagliato. Indipendentemente dall’ordine dei comandi.

        Se mi confermate quanto detto mando una mail all’autore di geometry.

        Ciao ciao.
        Fra

        È un baco di fontspec, non di geometry.

        Ciao
        Enrico

      • #74556
        Up
        0
        Down
        ::


        Grazie Enrico.

        Ho notato però che anche compilando con pdflatex, non c’è modo di far funzionare l’opzione lines quando si usa linespread.
        `% !TEX encoding = UTF-8
        % !TEX program = pdflatex

        \documentclass{book}

        \linespread{1.1}
        \usepackage[showframe,a4paper,lines=40]{geometry}
        \usepackage{lipsum}

        \begin{document}

        \lipsum

        \end{document}`

      • #74557
        Up
        0
        Down
        ::

        francesco.biccari” post=73707Grazie Enrico.

        Ho notato però che anche compilando con pdflatex, non c’è modo di far funzionare l’opzione lines quando si usa linespread.
        `% !TEX encoding = UTF-8
        % !TEX program = pdflatex

        \documentclass{book}

        \linespread{1.1}
        \usepackage[showframe,a4paper,lines=40]{geometry}
        \usepackage{lipsum}

        \begin{document}

        \lipsum

        \end{document}`

        [tt]\linespread{1.1}\selectfont[/tt]

        Che tu lo dia prima o dopo è irrilevante.

        Ciao
        Enrico

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

    Go to top