Togliere il riferimento alla “sovrasezione”

  • Creatore
    Topic
  • #118215
    Up
    0
    Down
    ::


    Ciao a tutti. Continua la serie:

    Come rendere brutta la tua tesi di laurea in poche e semplici mosse!

    Oggi vi sottopongo l’ennesima richiesta (leggi: ordine) del mio relatore che, ovviamente, non riesco a implementare nel mio codice.

    Dovrei togliere dalle etichette di tutte le sezioni e sottosezioni il riferimento alla relativa “sovrasezione”, solo nel corpo del documento (non nell’indice!).

    Quindi, per esempio, dovrei vedere:

    CAPITOLO PRIMO

    NEL MEZZO DEL CAMMIN DI NOSTRA VITA

    1 Mi ritrovai per una selva oscura (sezione 1.1)
    Ché la diritta via era smarrita.
    Ahi quanto a dir qual era è cosa dura
    esta selva selvaggia e aspra e forte
    che nel pensier rinova la paura!

    2 Tant’è amara che poco è più morte (sezione 1.2)
    Ma per trattar del ben ch’i’ vi trovai,
    dirò de l’altre cose ch’i’ v’ ho scorte.

    2.1 Io non so ben ridir com’i’ v’intrai (sottosezione 1.2.1)
    Tant’era pien di sonno a quel punto
    che la verace via abbandonai.

    Grazie.

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #118216
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::



        @energy-eng
        , sei sicuro di volere andare avanti con quel relaore?

        Se non te la senti hai due possibilità:
        a) torni a Word/Writer?Pagex/ecceteraefai tutto a mano, visto che quei word processor ti permettoni di fare qualunqr obbrorio; usandoli bene si possono ottenere anche risultati pregevoli, ma per saperli usare bene, bisogna studiare tanto manuali avanzati, non basta cliccare “Help”.
        b) continui con LaTeX; ma devi fare tutto a mano:
        b.1) devi definire due comandi per comporre i nomi delle sezioni; uno senza la sopraziene, e uno completo di sovarasezione.
        b.2) intesti ongi sovarasezione, sezione, eccetera con i comandi asteriscati.
        b.3) usi a mano \markboth e/o \markright per mettere qelllo che vuoi nelle testatine
        b.e) usi \addcontsline e/o \addtocontext per mettere nell’indice quello che vuoi.

        Non vorrei essere nei tuoi panni

      • #118217
        Up
        0
        Down
        ::


        OMG 😯

        A parte gli scherzi, è probabilmente uno tra i migliori professori del mio dipartimento, quindi è una fortuna (oltre che un onore) poter essere seguito da lui.
        Purtroppo ha anche qualche difettuccio…

        Quindi mi stai dicendo che con \titleformat{\section} non riesco in alcun modo a modificare i label? Ci speravo…

      • #118218
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Forse lo puoi fare anche con titlesec, ma ne dubito; certamante ci metti di meno a definirti delle macro che facciano in un colpo solo quelle operazioni che ti ho descritto nel messaggio precedente.

        • #118219
          mattiaca
          Partecipante
            Up
            0
            Down
            ::


            Ho tentato una possibile soluzione con il pacchetto titlesec. Ti dico che la soluzione non è elegante e io non sono così esperto come altri di questo forum.
            Spero si avvicini a quello che desideri, ma tieni conto che questa soluzione NON tocca né la numerazione che compare nelle testatine né quella che compare nell’indice generale: cambia solo il numero del titolo che compare nel testo.
            Aggiungi questo al preambolo dopo aver caricato titlesec:

            `
            \newcounter{sezioneebbasta}[chapter] %nuovo contatore

            \titleformat{\section} %dobbiamo ridefinire l'etichetta delle sezioni (ma anche delle sottosezioni se sono numerate — per coerenza)
            {\normalfont\Large\bfseries} %formato default per la classe book (da cambiare secondo lo stile che usi)
            {\stepcounter{sezioneebbasta}\thesezioneebbasta} %nuova etichetta delle sezioni
            {1em}{}
            `

            e vedi quel che ottieni

          • #118220
            Up
            0
            Down
            ::


            Grazie @mattiaca.

            Ho aggiunto al tuo prezioso codice una “copia” per le sottosezioni, leggermente modificata (altrimenti mi spariva dalla sottosezione il riferimento alla sezione).

            Mi rendo conto solo adesso di aver spiegato male il problema dall’inizio: non è la “sovrasezione” che devo eliminare, ma solo il riferimento del capitolo da sezioni e sottosezioni.

            Comunque, con questo codice ho raggiunto l’obiettivo.

            `\newcounter{sez}[chapter]
            \newcounter{subsez}[section]

            \titleformat{\section}
            {\normalfont\Large\bfseries}
            {\stepcounter{sez}\thesez}
            {15pt}
            {}

            \titleformat{\subsection}
            {\normalfont\large\bfseries}
            {\stepcounter{sez-1}\thesez.\stepcounter{subsez}\thesubsez}
            {15pt}
            {}
            `

            Grazie ancora a tutti per l’aiuto.

          • #118221
            Up
            0
            Down
            ::


            Brutto per brutto:
            `
            \documentclass[a4paper]{book}
            \usepackage{etoolbox}

            \makeatletter
            \patchcmd{\@sect}
            {\protected@edef\@svsec{\@seccntformat{#1}\relax}}
            {%
            \begingroup
            \let\thechapter\@gobble
            \protected@edef\x{\endgroup\def\noexpand\@svsec{\@seccntformat{#1}\relax}}\x
            }
            {}{}
            \makeatother

            \begin{document}

            \tableofcontents

            \chapter{Nel mezzo del cammin di nostra vita}

            \section{Mi ritrovai per una selva oscura}
            Ché la diritta via era smarrita.\\
            Ahi quanto a dir qual era è cosa dura\\
            esta selva selvaggia e aspra e forte\\
            che nel pensier rinova la paura!

            \section{Tant’è amara che poco è più morte}
            Ma per trattar del ben ch’i’ vi trovai,\\
            dirò de l’altre cose ch’i’ v’ ho scorte.

            \subsection{Io non so ben ridir com’i’ v’intrai}
            Tant’era pien di sonno a quel punto\\
            che la verace via abbandonai.

            \end{document}
            `

            Come funziona? Invece di definire direttamente [tt]\@svsec[/tt] con [tt]\protected@edef[/tt], eseguo una definizione (espansa) provvisoria nella quale [tt]\thechapter[/tt] è reso equivalente a [tt]\@gobble[/tt], così si mangia il punto che segue. Il gruppo viene chiuso in modo che la ridefinizione di [tt]\thechapter[/tt] sia dimenticata.

            Naturalmente nei riferimenti incrociati il numero del capitolo ci sarà.

            Difficile capire quale sia il ragionamento dietro questa richiesta, ma…

            Ciao
            Enrico

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

        Go to top