numero di righe variabile nelle pagine

  • Creatore
    Topic
  • #87257
    Up
    0
    Down
    ::


    Buona sera a tutti,
    Scusatemi ma c’è una questione che non riesco a
    spiegarmi.
    Sto impaginando un romanzo e utilizzo il pacchetto
    geometry con l’opzione lines per l’altezza del testo.
    Sapreste spiegarmi come mai alcune pagine contengono
    meno righe di quelle indicate? Io non riesco a spiegarmelo,
    nel testo non ci sono formule o altri oggetti, solo testo.
    Ho anche modificato (con titlesec) la formattazione dei
    capitoli in modo che occupassero un numero intero di righe
    ma ogni tanto (abbastanza spesso) nelle pagine mancano
    anche tre righe.
    La questione mi interessa anche perché viene aggiunto
    dello spazio tra i capoversi, e nei discorsi diretti (molti hanno
    capoversi di una riga) la cosa è un po’ fastidiosa.

    Grazie

Visualizzazione 17 filoni di risposte
  • Autore
    Risposte
    • #87258
      franen
      Partecipante
        Up
        0
        Down
        ::


        Qualche giorno fa si paralva di questo problema e del pacchetto grid, che tenta di risolverlo. Purtroppo anche con documenti contententi solo testo LaTeX non riesce (vuole) a usare lo stesso numero di righe in tutte le pagine. I tuoi problemi potrebbero derivare per esempio dal tentativo di eliminare righe orfane o vedove.
        In questi casi il pacchetto grid riesce a lavorare efficacemente.

        Fran

      • #87259
        Up
        0
        Down
        ::

        lolamai” post=86656Buona sera a tutti,
        Scusatemi ma c’è una questione che non riesco a
        spiegarmi.
        Sto impaginando un romanzo e utilizzo il pacchetto
        geometry con l’opzione lines per l’altezza del testo.
        Sapreste spiegarmi come mai alcune pagine contengono
        meno righe di quelle indicate? Io non riesco a spiegarmelo,
        nel testo non ci sono formule o altri oggetti, solo testo.
        Ho anche modificato (con titlesec) la formattazione dei
        capitoli in modo che occupassero un numero intero di righe
        ma ogni tanto (abbastanza spesso) nelle pagine mancano
        anche tre righe.
        La questione mi interessa anche perché viene aggiunto
        dello spazio tra i capoversi, e nei discorsi diretti (molti hanno
        capoversi di una riga) la cosa è un po’ fastidiosa.

        Senza un esempio è difficile dire, ma direi che il problema sono proprio righe vedove o orfane.

        Per esperimento, prova ad aggiungere nel tuo preambolo
        `\makeatletter
        \addto\extrasitalian{\clubpenalty0 \@clubpenalty\clubpenalty \widowpenalty0 }
        \makeatother`
        Sto supponendo che tu usi babel per l’italiano. Altrimenti la riga
        `\clubpenalty0 \widowpenalty0`
        avrà lo stesso effetto.

        In questo modo le righe orfane o vedove non verranno trattate in modo speciale.

        Ciao
        Enrico

      • #87260
        Up
        0
        Down
        ::


        Grazie per le dritte!
        Però non funzionano un granché.
        Grid ogni tanto fa proprio le pagine più corte
        e anche il codice di egreg9 non risolve.
        Certo che alle volte è proprio cocciuto!

      • #87261
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Puoi sempre seguire quanto indicato nela Guda GuIT nel cpaitolo dove si descrive al formazione delle pagine; si possono mettere i comandi per tracciare e per non tracciare le pagine con meno righe (almeno una, e poi si può leggere nel file .log che cosa ha fatto epr comporre quella pagina; lettura poco piacevole, ma ogni riga del tracciato mostra larghezza, altezza e profondità della pagina, quanto manca alal fine e, specialmente alla fine mostra le breuttezze (i costi) che is hanno a terminare la pagina lì, piuttosto che là.

          Non è detto che scopri il motivo di quel comportamento, ma onestamente a me è successo solo per evitare orfane e vedove (le vedove in particolare sono fastidiose e sono quelle che maggiormente provocano quel tipo di problmea).

          \alla fine di un capoverso di una di quelle pagine con meno righe puoi provare a mettere un comando \enlargethispage*{,spazio>}; in condizioni normali lo spazio dovrebbe essere espresso come multiplo intero (piccolo, 1 o 2) dell’avanzamento di riga \baselineskip; ma nel tuo caso potrebbe bastare di meno.

          Per modificare globalmente le penalità per le righe orfane e le righe vedove, io mi sentirei più tranquillo a mettere le definizioni di Enrico all’inzio del documento, piuttosto che nel preambolo, perché l’opzione italian di babel fa cose strane (colpa mia) con le penalità per le orfane o le vedove.

        • #87262
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Puoi sempre seguire quanto indicato nela Guda GuIT nel capitolo dove si descrive al formazione delle pagine; si possono mettere i comandi per tracciare e per non tracciare le pagine con meno righe (almeno una, e poi si può leggere nel file .log che cosa ha fatto per comporre quella pagina; lettura poco piacevole, ma ogni riga del tracciato mostra larghezza, altezza e profondità della pagina, quanto manca alal fine e, specialmente alla fine mostra le bruttezze (i costi) che is hanno a terminare la pagina lì, piuttosto che là.

            Non è detto che scopri il motivo di quel comportamento, ma onestamente a me è successo solo per evitare orfane e vedove (le vedove in particolare sono fastidiose e sono quelle che maggiormente provocano quel tipo di problema).

            \alla fine di un capoverso di una di quelle pagine con meno righe puoi provare a mettere un comando \enlargethispage*{,spazio>}; in condizioni normali lo spazio dovrebbe essere espresso come multiplo intero (piccolo, 1 o 2) dell’avanzamento di riga \baselineskip; ma nel tuo caso potrebbe bastare di meno.

            Per modificare globalmente le penalità per le righe orfane e le righe vedove, io mi sentirei più tranquillo a mettere le definizioni di Enrico all’inizio del documento, piuttosto che nel preambolo, perché l’opzione italian di babel fa cose strane (colpa mia) con le penalità per le orfane o le vedove.

          • #87263
            Up
            0
            Down
            ::


            Ho capito!
            Cioè non ho capito perché ma ho capito qual è
            il problema.
            M sembrava strano che facesse una cosa così brutta
            di proposito, e che dovessi andare a vedere come divideva
            le pagine, allora ho pensato che dipendesse da come ho
            inserito il testo, e mi sembra di aver risolto.
            Le varie “battute” dei discorsi diretti sono precedute dalla
            lineetta — e mi sembrava di aver letto che dovessero essere
            separate dalla parola seguente da uno spazio sottile, siccome
            nel mio testo alle volte le lineette servono anche a chiudere le
            “battute” ho sostituito la lineetta — con \,—\, perché mi
            era sembrato che \, all’inizio frase venisse ignorato e quindi
            lo spazio sottile comparisse solo quando necessario.
            Evidentemente questa cosa ha degli effetti collaterali,
            ho tolto gli spazi sottili e ora tutto è a posto, ora sembra un testo
            scritto con LaTeX.

            Grazie infinite e scusate se vi ho fatto arrovellare per
            un mio errore

          • #87264
            Up
            0
            Down
            ::


            Scusate se insisto, ma mi è venuta in mente una cosa.
            Mi sembra che il mio problema derivi dallo spazio
            elastico tra i periodi. Ebbene, se questo spazio lo
            eliminassi? Non è nemmeno difficile farlo.
            Anche perchè capisco che sia necessario nei documenti
            in cui ci sono testi in display, figure, etc… Ma nel mio
            caso a cosa serve? Eventuali vedove o orfani li gestirò
            poi io.
            Siccome la mia non è certo la pensata del secolo, se non
            me l’avete consigliato evidentemente non è una soluzione
            appropriata. Mi spieghereste perché

            Grazie

          • #87265
            Up
            0
            Down
            ::

            lolamai” post=86740Scusate se insisto, ma mi è venuta in mente una cosa.
            Mi sembra che il mio problema derivi dallo spazio
            elastico tra i periodi. Ebbene, se questo spazio lo
            eliminassi? Non è nemmeno difficile farlo.
            Anche perchè capisco che sia necessario nei documenti
            in cui ci sono testi in display, figure, etc… Ma nel mio
            caso a cosa serve? Eventuali vedove o orfani li gestirò
            poi io.
            Siccome la mia non è certo la pensata del secolo, se non
            me l’avete consigliato evidentemente non è una soluzione
            appropriata. Mi spieghereste perché

            Grazie

            Il valore normale di [tt]\parskip[/tt] è di [tt]0pt plus 0.1pt[/tt], quindi di certo non aggiunge spazio se non ce n’è bisogno. Se hai impostato un valore diverso, sei la causa del tuo stesso male.

            Senza un esempio di come imposti il tuo libro è impossibile dire di più.

            Ciao
            Enrico

          • #87266
            Up
            0
            Down
            ::


            Posto un esempio, ho messo del testo a caso, l’istruzione
            che o usato per assegnare un valore a parskip è subito prima
            dell’inizio del documento.

            Comunque non è così importante, non si tratta di un testo
            particolarmente serio, più che altro ero incuriosito dalla
            possibilità di modificare parskip e mi chiedevo che effetti comportasse.

            Comunque grazie mille per la disponibilità!!!

            `

            \documentclass[a5paper, 11pt, twoside]{book}
            \usepackage[italian]{babel}
            \usepackage{graphicx}
            \usepackage{textcomp}
            \usepackage{microtype}
            \usepackage[utf8]{inputenc}
            \usepackage{lettrine}
            \usepackage{calc}
            \usepackage{MnSymbol}
            \usepackage[osf]{MinionPro}
            \usepackage[T1]{fontenc}
            \usepackage[marginratio=1000:1618, bindingoffset=3mm, lines=35, width=58ex, a5paper]{geometry}

            \usepackage{indentfirst}
            \usepackage{emptypage}
            \usepackage{afterpage}
            \usepackage{changepage}
            \usepackage{color}
            \definecolor{grigio}{gray}{0.70}
            \usepackage{lipsum}
            \setlength{\parindent}{1.5ex}

            %Aggiusta l'apostrofo di MinionPro
            \makeatletter
            \catcode`\'=12
            \def\qu@te{'}
            \catcode`'=\active
            \begingroup
            \obeylines\obeyspaces%
            \gdef\@resetactivechars{%
            \def^^M{\@activechar@info{EOL}\space}%
            \def {\@activechar@info{space}\space}%
            }%
            \endgroup
            \providecommand{\texorpdfstring}{\@firstoftwo}
            \protected\def'{\texorpdfstring{\active@quote}{\qu@te}}
            \def\active@quote{\relax
            \ifmmode
            \expandafter^\expandafter\bgroup\expandafter\prim@s
            \else
            \expandafter\futurelet\expandafter\@let@token\expandafter\qu@t@
            \fi}
            \def\qu@t@{%
            \ifx'\@let@token
            \qu@te\qu@te\expandafter\@gobble
            \else
            {}\qu@te{}\penalty\@M\hskip\expandafter\z@skip
            \fi}
            \scantokens\expandafter{%
            \expandafter\def\expandafter\pr@m@s\expandafter{\pr@m@s}}
            \makeatother
            % Finisce qua.

            \usepackage{fancyhdr}
            \pagestyle{fancy}

            \fancyheadoffset[LE,RO]{5\marginparsep}
            \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
            \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
            \fancyhf{}
            \fancyhead[LE,RO]{\vspace*{2.3cm}{\scalebox{1}{\mbox{\color{grigio}\Huge\thechapter}}}}

            \renewcommand{\headrulewidth}{0pt}
            \fancyfoot[RO,LE]{\thepage}

            \usepackage{titlesec}

            \titleformat{\chapter}[display]
            {}
            {\textsc{\chaptertitlename~\thechapter}}
            {0pt}
            {\Large}

            \titlespacing{\chapter}{0pt}{\baselineskip}{2\baselineskip}%[ right ]

            %\setlength{\parskip}{0pt}

            \begin{document}

            % \makeatletter
            % \addto\extrasitalian{\clubpenalty0 \@clubpenalty\clubpenalty \widowpenalty0 }
            % \makeatother

            \frenchspacing

            \frontmatter

            \thispagestyle{empty}

            \afterpage{\thispagestyle{empty}}

            \noindent
            {\large {Lorem ipsum}}

            \bigskip

            {\itshape

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            }

            \mainmatter

            \chapter{}

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            \,—\,Lorem ipsum dolor sit amet, consectetur adipisicing elit.

            \,—\,Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

            \,—\,Ut enim ad minim veniam, quis nostrud exercitation ullamco.

            \,—\,Laboris nisi ut aliquip ex ea commodo consequat.

            Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

            Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
            \,—\,Lorem ipsum dolor sit amet, consectetur adipisicing elit.

            \,—\,Lorem ipsum dolor sit amet, consectetur adipisicing elit.

            \,—\,Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

            \,—\,Ut enim ad minim veniam, quis nostrud exercitation ullamco.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

            Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

            \,—\,Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            \,—\,Lorem ipsum dolor sit amet.

            \,—\,Consectetur adipisicing elit.

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.

            \end{document}

            `

          • #87267
            Up
            0
            Down
            ::


            Ci ho messo un po’ a notarlo. 🙁

            Il problema sono i
            `\,—\,`
            a inizio capoverso. Se aggiungi [tt]\leavevmode[/tt], cioè
            `\leavevmode\,—\,`
            (ammesso che davvero tu voglia lo spazio sottile) il problema sparirà.

            Naturalmente dovrai anche mettere a posto lo spazio dopo l’intestazione di capitolo, perché così com’è non occupa un numero intero di righe. Ora lo spazio verticale che occupa è 42.28pt, mentre ti occorre 11+2*13.6 = 38.2 oppure 11+3*13.6=51.8. Siccome dai [tt]2\baselineskip[/tt] come spazio sotto, direi che
            `\titlespacing{\chapter}{0pt}{\baselineskip}{23.12pt}`
            sia quello che fa per te. Perché 11 all’inizio? È lo spazio verticale assegnato alla prima riga della pagina, mentre 13.6 è l’avanzamento di riga.

            Rimane solo una pagina non perfetta ed è la prima, per lo stesso motivo: usi un cambio di corpo e non hai cura che il tutto occupi un numero intero di righe. Aggiungi uno spazio flessibile.

            Per il numero di capitolo nel margine esterno, direi che
            `\fancyhf{}
            \fancyhead[LE,RO]{%
            \parbox[t][0pt]{0pt}{%
            \vspace{2.3cm}
            \makebox[0pt]{\color{grigio}\Huge\thechapter}%
            }%
            }`
            è leggermente meglio. Aggiungi anche [tt]headheight=13.6pt[/tt] alle impostazioni di geometry.

            Ciao
            Enrico

          • #87268
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Ho compilato il tuo esempio con Lorem ipsum, ma togliendo i Minion Pro, perché io non ne dispongo; quindi ho compilato con i font di default con l’encoding T1, vale a dire, sostanzialmente i CM-super; Non vanno d’accordo con \lettrine, ma non è importante visto che nell’esempio non avevi usato questo comando. Forse \lettrine va bene con i Minion Pro, ma con i font del sistema TeX andrebbero bene i Latin Modern.

              Con i font di default il tuo esempio funziona alla perfezione senza Bisogno di annullare l’espansione di \parskip; devo dire che non è molto lungo e magari con un testo più lungo potrebbe manifestarsi quello che dici; potrebbe darsi che con i Minion Pro \lettrine faccia sporgere un poco in alto o in basso il capolettera, per cui di fatto il motore di composizione è costretto a introdurre gli spazi verticali corrispondenti a \lineskip, per cui le righe non restano sulla griglia; se vuoi nel tuo testo prova a impostare \lineskiplimit=\maxdimen, in questo modo quel po’ di interlinea in più che il programma inserisce per evitare l’interferenza delle righe adiacenti viene evitato e questo porterebbe di fatto solo alla possibile interferenza degli ascendenti dei capolettera con i discendenti della riga precedente.

              Ovviamente la prima pagina ha due righe in meno perché il testo è finito, e dopo comincia un nuovo capitolo non perché sia stata inserita spaziatura elastica in più. Se vuoi puoi aggiungere in coda al testo della prima pagina, senza lasciare righe vuote [tt]\looseness=1]; questo allunga l’ultimo capoverso di una riga, se ci riesce, cioè se non vengono violate le regole di tolleranza dell’algoritmo di formazione dei capoversi. Nel caso di Lorem ipsum l’ultimo capoverso è troppo corpo perché il comando \looseness faccia effetto, Tuttavia con capoversi più lunghi talvolta il trucchetto funziona.

            • #87269
              Up
              0
              Down
              ::

              OldClaudio” post=86752Ho compilato il tuo esempio con Lorem ipsum, ma togliendo i Minion Pro, perché io non ne dispongo; quindi ho compilato con i font di default con l’encoding T1, vale a dire, sostanzialmente i CM-super; Non vanno d’accordo con \lettrine, ma non è importante visto che nell’esempio non avevi usato questo comando. Forse \lettrine va bene con i Minion Pro, ma con i font del sistema TeX andrebbero bene i Latin Modern.

              Con i font di default il tuo esempio funziona alla perfezione senza Bisogno di annullare l’espansione di \parskip; devo dire che non è molto lungo e magari con un testo più lungo potrebbe manifestarsi quello che dici; potrebbe darsi che con i Minion Pro \lettrine faccia sporgere un poco in alto o in basso il capolettera, per cui di fatto il motore di composizione è costretto a introdurre gli spazi verticali corrispondenti a \lineskip, per cui le righe non restano sulla griglia; se vuoi nel tuo testo prova a impostare \lineskiplimit=\maxdimen, in questo modo quel po’ di interlinea in più che il programma inserisce per evitare l’interferenza delle righe adiacenti viene evitato e questo porterebbe di fatto solo alla possibile interferenza degli ascendenti dei capolettera con i discendenti della riga precedente.

              Ovviamente la prima pagina ha due righe in meno perché il testo è finito, e dopo comincia un nuovo capitolo non perché sia stata inserita spaziatura elastica in più. Se vuoi puoi aggiungere in coda al testo della prima pagina, senza lasciare righe vuote [tt]\looseness=1]; questo allunga l’ultimo capoverso di una riga, se ci riesce, cioè se non vengono violate le regole di tolleranza dell’algoritmo di formazione dei capoversi. Nel caso di Lorem ipsum l’ultimo capoverso è troppo corpo perché il comando \looseness faccia effetto, Tuttavia con capoversi più lunghi talvolta il trucchetto funziona.

              L’espansione di [tt]\,[/tt] è, fuori dal modo matematico, [tt]\thinspace[/tt] che a sua volta diventa
              `\kern0.16667em`
              La conseguenza è che [tt]\,[/tt] non dà inizio a un capoverso, ma inserisce la crenatura in modo verticale. 😯 E quindi si ha uno spazio di troppo che non permette di inserire il previsto numero di righe nella pagina.

              Ciao
              Enrico

            • #87270
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::

                L’espansione di \, è, fuori dal modo matematico, \thinspace che a sua volta diventa

                \kern0.16667em

                La conseguenza è che \, non dà inizio a un capoverso, ma inserisce la crenatura in modo verticale. E quindi si ha uno spazio di troppo che non permette di inserire il previsto numero di righe nella pagina.

                Già, lo vedo, e vedo che la piccola allungabillità di \parskip fa il suo mestiere per portare il testo ala fine della gabbia.

                Allora @Iolamai si riferiva al numero rotale delle righe, non al fatto che le righe erano di meno perché l’ultima riga non era flush bottom. Capisco che ho frainteso; se non avessi guardato il fondo della pagina me ne sarei accorto anch’io. Ma hai fatto bene a ricordarmelo. Grazie

                Claudio

              • #87271
                Up
                0
                Down
                ::


                Ricapitolando, mi sembra d’aver capito che:
                1 – ho sbagliato qualcosa per la spaziatura dei capitoli;
                2 – lo spazio sottile \, all’inizio di un periodo viene
                considerato come spazio verticale (forse) perché è un
                comando per la matematica e per questo non veniva
                aggiunto al rientro del capoverso;
                3 – lettrine potrebbe dare problemi col minion pro;
                4 – se mi vengono in mente cose strane per le testatine
                e meglio che le chiuda dentro delle scatole.

                Facendo le cose per bene non serve modificare parskip.

                Grazie mille, siete stati molto gentili e precisi

              • #87272
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  @Iolamai, credo, con il mio fraintendimento, di aver confuso le acque, e te ne chiedo scusa.

                  1) lo spazio fra le intestazioni dei capitoli e l’inizio del testo ci vuole ed è meglio che sia elastico; comunque quelo sazio toglie un certo numero di righe alla pagina, ma non puoi farci niente, perché ci vuole, foss’anche una sola riga baianca.

                  2) lo spazio sottile \, non obbliga al passaggio al modo orizzontale quando viene usato in modo testo; non lo chiamerei un errore di LaTeX, piuttosto una “particolarità”; serve per mettere uno sazio fine fra la cosa che c’è prima e la cosa che viene dopo, quindi è logico che se questo fosse l’uso costante, farebbe il suo mestiere sempre nello stesso modo; se tu definissi non il comando \, che viene usato anche dentro altri comandi, per cui ridefinendolo potresti creare pasticci, ma una cosa come \tratto nel modo seguente:`\newcommand\tratto{\hskip 0.1666em—\,}`e usassi \tratto invece di scrivere \,—\,, il fatto di comi,ciare con un comando valido solo in modo orizzontale, ti fa passare in modo orizzontale; a inizio riga lo spazio di 0.1666em sparisce come tutti gli spazi a inizio riga, mentre rimane quando quello spazio è preceduto da, per esempio, una parola.

                  3) il fatto che Minion Pro possa dare dei problemi con \lettrine è una mia ipotesi dovuta solo al fatto che non avendo quel font non ne conosco le caratteristiche; probabilmente è campata per aria.

                  4) È meglio che non ti vengano in mente cose strane per le testatine, ma se proprio vuoi metterci qualcosa più alto o più profondo di una riga, allora è meglio che questo qualcosa si inscatolato in una scatola che lo faccia apparire come alto come gli scendenti del font che usi e profondo come i relativi discendenti. In caso contrario, cioè se questo qualcosa non ha dimensioni strane, non hai bisogno di scatole. Nel caso che il qualcosa sia un po’ troppo alto, ti appare un warning nel file .log, quindi puoi sempre provvedere a posteriori.

                  Ciao e ri-scusa la confusione che ho creato.
                  Claudio

                • #87273
                  Up
                  0
                  Down
                  ::


                  Direi che non c’è proprio niente di cui scusarsi
                  casomani sono io che devo ringraziare.
                  Anche perché un po’ mi sento in colpa, tutta la
                  questione è nata dal fatto che sto impaginando
                  un testo già scritto dove le lineette (tante) sono
                  tutte sbagliate, e le ho fatte sostituire in automatico.
                  E’ per questo che c’è lo spazio sottile da tutte e due
                  le parti, perché non posso sapere a priori se la
                  parola a cui si riferisce segue o precede la lineetta.
                  Se avessi fatto tutte le sostituzioni a mano non
                  ci sarebbe stato nessun problema.
                  Di buono c’è che grazie a voi ho imparato qualcosa
                  di nuovo! Grazie ancora!

                • #87274
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Vorrei essere sicuro che tu abbia notato la differenza nel risultato quando si usa [tt]\kern 0.1666em[/tt] rispetto a quando si usa [tt]\hskip 0.1666em[/tt].

                    Nel primo caso \kern non distingue fra modo di composizione verticale o orizzontale e inserisce lo spazio nel modo in cui si trova, uno spazio verticale se il programma sta operando in modo verticale o uno spazio orizzontale se invece il programma sta operando in modo orizzontale. \hskip invece inserisce uno spazio orizzontale e, se il programma sta operando in modo verticale, \hskip lo obbliga a passare in modo orizzontale. Ci sono anche altre differenze, che puoi approfondire nel TeXbook, ma per quel che riguarda il tuo caso questo è quello che conta.

                  • #87275
                    Up
                    0
                    Down
                    ::


                    Ho fatto le prove,
                    con hskip lo spazio viene aggiunto sempre in orizzontale,
                    con kern dipende.
                    Grazie ancora

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

                Go to top