Eliminare sillabazione nei titoli di sezione e nel toc

  • Creatore
    Topic
  • #70886
    Up
    0
    Down
    ::


    Buongiorno a tutti.

    Come da oggetto mi piacerebbe capire come fare ad eliminare la sillabazione delle parole all’interno dell’indice dei contenuti e nei titoli di sezione \section{} all’interno del testo; ho provato a cercare in internet ma sono riuscito a trovare solo soluzioni che eliminano del tutto la sillabazione nell’intero documento.

    Utilizzo babel.

    Grazie anticipatamente per l’aiuto.

Visualizzazione 18 filoni di risposte
  • Autore
    Risposte
    • #70887
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Se usi una versione recente del motore di composizione puoi ridefinire il comando \section (e i suoi subalterni) in modo che per scrivere il titolo usino la “lingua” nohyphenation; puoi accertartene leggendo le prime righe del file log del tuo documento; nelle prime righe c’è l’elenco delle lingue le cui regole di sillabazione sono già inserite nel formato; quindi una cosa come \foreighlanguage{nohyphenation{Titolo del paragrafo} messo come argomento di \section dovrebbe risolverti il problema; ovviamente puoi sempre definirti una macro che avvolga il titolo da non dividere in sillabe dentro a tutta quella espressione.

        Alternativamente puoi usare \raggedright che ti manda a capo il titolo del paragrafo prima di avere raggiunto la giustezza del testo.

        Da me la lingua nohyphenation è la numero 2; volendo potrei selezionare quella lingua scrivendo semplicemente \section{{\language=2 Titolo del paragrafo}}.

        Se non disponi della “lingua” nohyphenation, puoi sempre specificare un numero di lingua che non corrsiponda a nessuna lingua, per esempio \language=255

      • #70888
        Up
        0
        Down
        ::


        Ti ringrazio molto, Claudio; seguendo le tue istruzioni ho controllato il file di log e ho impostato \section{{\language=2 Titolo della sezione}} e funziona perfettamente, sia nel testo sia nella TOC.

        Sarebbe utile, a mio modestissimo parere, che questa funzionalità fosse inserita di default o comunque resa disponibile come opzione automatica, poiché andare ora a ridefinire con questa notazione tutti i titoli di sezione, sottosezione e paragrafo, in un documento di 230 pagine, non è proprio agevolissimo 🙂

      • #70889
        Up
        0
        Down
        ::


        Inoltre, verificavo, che talvolta i titoli non sillabati eccedono lo spazio canonico della pagina; non c’è un modo semplicemente per mandare a capo la parola?

      • #70890
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Sì, con \raggesright: esempio:
          `
          \section{\raggedright Titolo lunghissimo di una sezione logorroica che deve sicuramente venire composto su più righ anche nell'indice generale}
          `
          Magari metti un \protect davanti a \raggedright.

          Se non vuoi ridefinire tutti i titolo delle sezioni, copiati nel tuo preambolo dal file di classe e/o dal file late.ltx, e poi modificalo, il comando \@secdef in modo che di default componga tutti i titoli correnti a bandiera allineata a sinistra (\raggedright).

          nel tuo preambolo ricordati di far precedere il tratto di codice copiato e modificato da \makeatletter, altrimenti il carattere @ ti produce errori.

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

            r.falcone” post=70165Sarebbe utile, a mio modestissimo parere, che questa funzionalità fosse inserita di default […].

            Non sono d’accordo, non ne vedo il motivo.

            In ogni caso, sono per avere titoli di sezione il più corti possibile (l’ideale è averli su una riga sola): così si evitano un sacco di problemi di impaginazione (indice, testatine, testo). Si può fare quasi sempre. Per esempio:
            http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf

            Ciao,
            L.

          • #70892
            Up
            0
            Down
            ::

            OldClaudio” post=70179Sì, con \raggesright: esempio:

            Se non vuoi ridefinire tutti i titolo delle sezioni, copiati nel tuo preambolo dal file di classe e/o dal file late.ltx, e poi modificalo, il comando \@secdef in modo che di default componga tutti i titoli correnti a bandiera allineata a sinistra (\raggedright).

            Ti ringrazio Claudio ma non sono riuscito a trovare questo snippet di codice; tuttavia nel file “arsclassica.sty” ho trovato il punto di definizione del layout e ho inserito \raggedright:
            ` \titleformat{\section}
            {\raggedright\normalfont\Large\sffamily}`

            Questa soluzione fa il suo dovere nel corpo del testo ma nella TOC vedo ancora la sillabazione… Pazienza! 😉

          • #70893
            Up
            0
            Down
            ::

            lorenzo.pantieri” post=70182
            Non sono d’accordo, non ne vedo il motivo.

            In ogni caso, sono per avere titoli di sezione il più corti possibile (l’ideale è averli su una riga sola): così si evitano un sacco di problemi di impaginazione (indice, testatine, testo). Si può fare quasi sempre.
            L.

            Ti ringrazio Lorenzo, ma il punto è che ci sono frasi che contengono sigle o riferimenti che non è possibile eliminare o sintetizzare; sono del parere che in questi casi potrebbe essere utile un opzione che regolasse la questione.
            Inoltre nel mio caso anche questa frase: “Identità collettive nei luoghi della memoria”, che non mi sembra così logorroica, va su due righe, sillabando orrendamente (anche se giustamente)”memoria” in “memor-“, “ia”.

          • #70894
            Up
            0
            Down
            ::

            r.falcone” post=70184

            Non sono d’accordo, non ne vedo il motivo.

            In ogni caso, sono per avere titoli di sezione il più corti possibile (l’ideale è averli su una riga sola): così si evitano un sacco di problemi di impaginazione (indice, testatine, testo). Si può fare quasi sempre.
            L.

            Ti ringrazio Lorenzo, ma il punto è che ci sono frasi che contengono sigle o riferimenti che non è possibile eliminare o sintetizzare; sono del parere che in questi casi potrebbe essere utile un opzione che regolasse la questione.
            Inoltre nel mio caso anche questa frase: “Identità collettive nei luoghi della memoria”, che non mi sembra così logorroica, va su due righe, sillabando orrendamente (anche se giustamente)”memoria” in “memor-“, “ia”.

            Ti va a capo con “memor-ia”? Spolvero la sfera di cristallo e ti dico che stai usando MiKTeX versione 2.8 o precedente. Oppure TeX Live 2009/Debian su un sistema GNU/Linux e non hai installato il pacchetto specifico per l’italiano.

            Nel primo caso aggiorna alla 2.9; nel secondo hai due scelte: installare il pacchetto specifico, che trovi con Synaptic o metodi analoghi, oppure installare la TeX Live 2011 http://profs.scienze.univr.it/~gregorio/texlive-ubuntu.pdf%5B/code%5D. Prometto che domani aggiorno a 2011, ma non c’è quasi alcuna differenza, basta cambiare tutti i 2010 in 2011.

            Per ottenere la composizione a bandiera dei titoli, senza sillabazione,
            `\usepackage{sectsty}
            \allsectionsfont{\raggedright]`

          • #70895
            Up
            0
            Down
            ::

            egreg9″ post=70185
            Ti va a capo con “memor-ia”? Spolvero la sfera di cristallo e ti dico che stai usando MiKTeX versione 2.8 o precedente. Oppure TeX Live 2009/Debian su un sistema GNU/Linux e non hai installato il pacchetto specifico per l’italiano.

            Nel primo caso aggiorna alla 2.9; nel secondo hai due scelte: installare il pacchetto specifico, che trovi con Synaptic o metodi analoghi, oppure installare la TeX Live 2011 http://profs.scienze.univr.it/~gregorio/texlive-ubuntu.pdf%5B/code%5D. Prometto che domani aggiorno a 2011, ma non c’è quasi alcuna differenza, basta cambiare tutti i 2010 in 2011.

            Per ottenere la composizione a bandiera dei titoli, senza sillabazione,
            `\usepackage{sectsty}
            \allsectionsfont{\raggedright]`

            In realtà utilizzo Tex Live 2011 su Mac; ho provato ad inserire il codice suggerito ma ottengo errore in fase di compilazione.

          • #70896
            Up
            0
            Down
            ::

            r.falcone” post=70186In realtà utilizzo Tex Live 2011 su Mac; ho provato ad inserire il codice suggerito ma ottengo errore in fase di compilazione.

            Be’, allora commetti due errori: non dai l’istruzione [tt]\usepackage[italian]{babel}[/tt] (la questione di “memor-ia”) e non presenti un esempio minimo del problema (sarebbe opportuno dire quali errori, dato che, come hai visto, la sfera di cristallo non funziona benissimo).

            Ciao
            Enrico

          • #70897
            Up
            0
            Down
            ::

            egreg9″ post=70187

            In realtà utilizzo Tex Live 2011 su Mac; ho provato ad inserire il codice suggerito ma ottengo errore in fase di compilazione.

            Be’, allora commetti due errori: non dai l’istruzione [tt]\usepackage[italian]{babel}[/tt] (la questione di “memor-ia”) e non presenti un esempio minimo del problema (sarebbe opportuno dire quali errori, dato che, come hai visto, la sfera di cristallo non funziona benissimo)

            Nel main è sempre stato presente `\usepackage[english,italian]{babel}`
            Per quanto riguarda l’esempio minimo del problema non saprei come essere più esaustivo: nei titoli di sezione che vanno su due righe è presente una sillbazione che vorrei evitare, come nel caso di \section{Dinamiche di fruizione di un contesto musale}, sillabato in “conte-“, “sto museale”.

          • #70898
            Up
            0
            Down
            ::

            r.falcone” post=70188Nel main è sempre stato presente `\usepackage[english,italian]{babel}`

            Allora non è possibile che tu ottenga una sillabazione “memor-ia”.

            r.falcone” post=70188Per quanto riguarda l’esempio minimo del problema non saprei come essere più esaustivo: nei titoli di sezione che vanno su due righe è presente una sillbazione che vorrei evitare, come nel caso di \section{Dinamiche di fruizione di un contesto musale}, sillabato in “conte-“, “sto museale”.

            Scrivi che con il codice suggerito hai errori di compilazione. Quali? Questo documento non ne produce.
            `\documentclass[a4paper]{book}
            \usepackage[T1]{fontenc}
            \usepackage[italian]{babel}
            \usepackage{sectsty}
            \allsectionsfont{\raggedright}
            \begin{document}
            \mainmatter
            \chapter{A}
            \section{Dinamiche di fruizione di un contesto museale}
            \end{document}`
            Ciao
            Enrico

          • #70899
            Up
            0
            Down
            ::

            egreg9″ post=70189

            Nel main è sempre stato presente `\usepackage[english,italian]{babel}`

            Allora non è possibile che tu ottenga una sillabazione “memor-ia”.

            Hai perfettamente ragione; volevo riportare quella frase a mò di esempio ma è errata; invece \section{Dinamiche di fruizione di un contesto musale} è corretta.

            Scrivi che con il codice suggerito hai errori di compilazione. Quali? Questo documento non ne produce.

            Ho inserito il richiamo al pacchetto \{sectsy} appena dopo il richiamo a {babel} e questa volta non ho ottenuto errori di compilazione; tuttavia non sortisce alcun effetto: persiste la sillabazione nei titoli di sezione.

          • #70900
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              orrendamente (anche se giustamente)”memoria” in “memor-“, “ia”

              Posso essere d’accordo con te che memor-ia sa orrendo, ma non sono d’accordo sull’ (anche se giustamente); anzi, nemmeno in inglese ti eseguirebbe quella sillabazione, perché in inglese LaTeX vuole che l’ultimo moncone di parola contenga almeno tre lettere.

              SCHERZIAMO? 😈 😈 😈

              Senti: memor-ia salta fuori perché in qualche momento hai messo \selectlanguage{english} e poi ti sei dimenticato di ripristinare l’italiano. Se invece ha diviso in memo-ria, la divisione è giusta, ma a te pare orrenda. Anche a me pare orrenda, ed è per questo che \raggedright risolve il tuo problema.

              Invece non c’è niente da scherzare su “conte-sto museale”, che è diviso correttamente in italiano e non è affatto orrendo, perché dopo la cesura va a capo anche con un’altra parola. Se non ti va, \raggedright, come già detto risolve il tuo problema.

              Quello snippet di codice, caso mai ti servisse, si trova in book.cls ed è:
              `
              \newcommand\section{\@startsection {section}{1}{\z@}%
              {-3.5ex \@plus -1ex \@minus -.2ex}%
              {2.3ex \@plus.2ex}%
              {\normalfont\Large\bfseries}}
              `
              e basta aggiungere \raggedright subito dopo \bfseries; ma se non usi la classe book, guarda nella classe che usi e negli eventuali pacchetti che aggiungi; comunque quanto ti è stato suggerito è molto più comodo.

              Invece per l’indice o te la cavi con tocloft.sty, oppure copi lo snipped di codice che si trova nel file latex.ltx:
              `
              \def\@sect#1#2#3#4#5#6[#7]#8{%
              \ifnum #2>\c@secnumdepth
              \let\@svsec\@empty
              \else
              \refstepcounter{#1}%
              \protected@edef\@svsec{\@seccntformat{#1}\relax}%
              \fi
              \@tempskipa #5\relax
              \ifdim \@tempskipa>\z@
              \begingroup
              #6{%
              \@hangfrom{\hskip #3\relax\@svsec}%
              \interlinepenalty \@M #8\@@par}%
              \endgroup
              \csname #1mark\endcsname{#7}%
              \addcontentsline{toc}{#1}{%
              \ifnum #2>\c@secnumdepth \else
              \protect\numberline{\csname the#1\endcsname}%
              \fi
              #7}%
              \else
              \def\@svsechd{%
              #6{\hskip #3\relax
              \@svsec #8}%
              \csname #1mark\endcsname{#7}%
              \addcontentsline{toc}{#1}{%
              \ifnum #2>\c@secnumdepth \else
              \protect\numberline{\csname the#1\endcsname}%
              \fi
              #7}}%
              \fi
              \@xsect{#5}}
              `
              e aggiungi \raggedright nei due punti in cui c’è scritto #7 (prima di #7).

              probabilmente esistono modi più semplici, come quelli di usare i pacchetti giusti, ma quanto ti ho detto nel precedente messaggio e in questo funziona; basta saper trovare dove sono i file che contengono le definizioni e poi puoi correggere tutto quello che ti pare come vuoi tu. Non sai dove siano i file che ti ho indicato? Too bad! Esamina meglio il tuo disco. Quando l’avrai esaminato bene scoprirai che è una miniera di informazioni, che tutto è documentato nelle apposite cartelle e tutto è accessibile. Non è tempo perso, specialmente con il sistema TeX.

            • #70901
              Up
              0
              Down
              ::

              r.falcone” post=70190

              [quote=”r.falcone” post=70188]Nel main è sempre stato presente `\usepackage[english,italian]{babel}`

              Allora non è possibile che tu ottenga una sillabazione “memor-ia”.

              Hai perfettamente ragione; volevo riportare quella frase a mò di esempio ma è errata; invece \section{Dinamiche di fruizione di un contesto musale} è corretta.

              Scrivi che con il codice suggerito hai errori di compilazione. Quali? Questo documento non ne produce.

              Ho inserito il richiamo al pacchetto \{sectsy} appena dopo il richiamo a {babel} e questa volta non ho ottenuto errori di compilazione; tuttavia non sortisce alcun effetto: persiste la sillabazione nei titoli di sezione.[/quote]
              Non è affatto chiaro quello che hai fatto. Occorre il forcipe per farti scrivere un po’ di codice? 🙂

              Ciao
              Enrico

            • #70902
              Up
              0
              Down
              ::

              orrendamente (anche se giustamente)”memoria” in “memor-“, “ia”

              In realtà ho commesso un peccato veniale, “memoria” viene sillabato correttamente, al contrario di altre parole.

              Quello snippet di codice, caso mai ti servisse, si trova in book.cls ed è:

              Grazie mille per l’aiuto, Claudio, ho risolto inserendo il “\raggedright” direttamente nella definizione del layout all’interno di “arsclassica.sty”; presumo si ottenga il medesimo risultato della tua soluzione.

              Quando l’avrai esaminato bene scoprirai che è una miniera di informazioni, che tutto è documentato nelle apposite cartelle e tutto è accessibile. Non è tempo perso, specialmente con il sistema TeX.

              Sicuramente, non ho dubbi, grazie per il tip! 🙂

            • #70903
              Up
              0
              Down
              ::

              egreg9″ post=70193
              Non è affatto chiaro quello che hai fatto. Occorre il forcipe per farti scrivere un po’ di codice? 🙂

              No, no, per carità, ecco il codice del mio main 😀

              `
              \documentclass[11pt,a4paper,oneside,openany,titlepage,fleqn,%
              headinclude,footinclude,BCOR5mm,%
              numbers=noenddot,cleardoublepage=empty,%
              tablecaptionabove]{scrreprt}

              \usepackage[english,italian]{babel}
              \usepackage{sectsty}
              \allsectionsfont{\raggedright]
              \usepackage[utf8]{inputenc}
              \usepackage[T1]{fontenc}
              \usepackage[suftesi]{frontespizio}
              \usepackage[final]{microtype}
              \usepackage{amsmath,amssymb,amsthm}
              \usepackage{varioref}
              \usepackage[style=philosophy-modern,hyperref,backref,square,natbib,ibidtracker=false]{biblatex}
              \usepackage[tight,italian]{minitoc}
              \usepackage{wrapfig}
              \usepackage{chngpage}
              \usepackage{chngcntr}
              \counterwithout{footnote}{chapter}
              \usepackage{calc}
              \usepackage{mflogo}
              \usepackage{caption,listings,graphicx,subfig}
              \usepackage{multicol}
              \usepackage{makeidx}
              \usepackage{xspace}
              \usepackage{mparhack}
              \usepackage{fixltx2e}
              \usepackage{relsize}
              \usepackage{lettrine}
              \usepackage{lipsum}
              \usepackage{acronym}
              \usepackage[eulerchapternumbers,subfig,beramono,eulermath,pdfspacing,listings,parts]{classicthesis}
              \usepackage{guit}
              \usepackage{pdfpages}

              \usepackage{arsclassica}
              \input{arsclassica-bob-preamble}

              \hypersetup{hidelinks} %commentare per la versione a schermo

              \begin{document}
              \pagenumbering{Roman}
              \pagestyle{plain}
              %******************************************************************
              % Materiale iniziale
              %******************************************************************
              \includepdf{copertina}\clearpage

              \input{corpus/frontespizio}\clearpage

              \input{corpus/quarta}\clearpage
              \input{corpus/dedica}\clearpage
              \input{corpus/citazione}\clearpage
              \input{corpus/ringraziamenti}\clearpage
              \input{corpus/dichiarazione}\clearpage
              %\input{corpus/prefazione}\clearpage
              \insertblankpage
              \pagestyle{scrheadings}\clearpage
              \input{corpus/indice-contenuti}\clearpage
              \insertblankpage
              \input{corpus/titolo}\clearpage
              \input{corpus/abstract}\clearpage
              %******************************************************************
              % Capitoli
              %******************************************************************
              \pagenumbering{arabic}
              \cleardoublepage

              \input{capitoli/introduzione}

              \adjustmtc

              \includepdf{separatore-1}\clearpage
              \part{Contesto culturale}
              \input{capitoli/1}\clearpage
              \input{capitoli/2}\clearpage

              \includepdf{separatore-2}\clearpage
              \part{Ambito tecnologico}
              \input{capitoli/3}\clearpage
              \input{capitoli/4}\clearpage

              \includepdf{separatore-3}\clearpage
              \part{Scenario applicativo}
              \input{capitoli/5}\clearpage
              \input{capitoli/6}\clearpage
              \input{capitoli/7}\clearpage

              % *****************************************************************
              % Materiale finale
              %******************************************************************
              \clearpage
              \includepdf{separatore-4}\clearpage
              \part{Appendice}
              \input{capitoli/a}\clearpage
              \input{corpus/bibliografia}\clearpage
              \input{corpus/sitografia}\clearpage
              \input{corpus/colophon}\clearpage
              \input{corpus/finale}\clearpage
              \end{document}\vspace*{0\baselineskip}
              `

            • #70904
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::

                In realtà ho commesso un peccato veniale, “memoria” viene sillabato correttamente, al contrario di altre parole.

                Se hai trovato delle parole italiane sillabate scorrettamente devi farlo sapere a me, perché sono io quello che cura i pattern per la lingua italiana.:cool:

                Please, l’elenco; grazie!:wink:

                In 20 anni circa di funzionamento dei pattern per la lingua italiana mi è stato segnalato un solo errore; alcuni altri li ho trovati io, ma in 20 anni avrò corretto tre o quattro pattern. Perciò non sono assolutamente sicuro che i pattern che ho creato siano infallibili, ma senza il feedback degli utenti non posso trovare da solo gli errori di sillabazione possibili in tutte le parole italiane che sembra ammontino a un milione e mezzo circa. :mrgreen:

              • #70905
                Up
                0
                Down
                ::

                r.falcone” post=70225

                Non è affatto chiaro quello che hai fatto. Occorre il forcipe per farti scrivere un po’ di codice? 🙂

                No, no, per carità, ecco il codice del mio main 😀

                `
                \documentclass[11pt,a4paper,oneside,openany,titlepage,fleqn,%
                headinclude,footinclude,BCOR5mm,%
                numbers=noenddot,cleardoublepage=empty,%
                tablecaptionabove]{scrreprt}

                \usepackage[english,italian]{babel}
                \usepackage{sectsty}
                \allsectionsfont{\raggedright]
                \usepackage[utf8]{inputenc}
                \usepackage[T1]{fontenc}
                \usepackage[suftesi]{frontespizio}
                \usepackage[final]{microtype}
                \usepackage{amsmath,amssymb,amsthm}
                \usepackage{varioref}
                \usepackage[style=philosophy-modern,hyperref,backref,square,natbib,ibidtracker=false]{biblatex}
                \usepackage[tight,italian]{minitoc}
                \usepackage{wrapfig}
                \usepackage{chngpage}
                \usepackage{chngcntr}
                \counterwithout{footnote}{chapter}
                \usepackage{calc}
                \usepackage{mflogo}
                \usepackage{caption,listings,graphicx,subfig}
                \usepackage{multicol}
                \usepackage{makeidx}
                \usepackage{xspace}
                \usepackage{mparhack}
                \usepackage{fixltx2e}
                \usepackage{relsize}
                \usepackage{lettrine}
                \usepackage{lipsum}
                \usepackage{acronym}
                \usepackage[eulerchapternumbers,subfig,beramono,eulermath,pdfspacing,listings,parts]{classicthesis}
                \usepackage{guit}
                \usepackage{pdfpages}

                \usepackage{arsclassica}
                \input{arsclassica-bob-preamble}

                \hypersetup{hidelinks} %commentare per la versione a schermo`

                Oh, finalmente! Be’, certo che non può funzionare. Se avessi detto nel primo messaggio che usi scrreprt e arsclassica forse l’aiuto sarebbe arrivato prima.

                Risposta semplice: non se ne parla nemmeno. Occorre praticamente modificare il codice di arsclassica dalla riga 80 alla riga 122.

                Lo stile di arsclassica è fatto per titoli corti.

                Ciao
                Enrico

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

            Go to top