Abbassare di un livello le sezioni

  • Creatore
    Topic
  • #16364
    Up
    0
    Down
    ::


    Salve a tutti,
    mi chiedevo se esiste il modo di abbassare di un livello le sezioni di un documento. Ovvero portare i chapter a part, section a chapter, subsection a section ecc… semplicemente scrivendo qualcosa nel preambolo, sfruttando qualche cosa a me oscuro (il massimo che riesco a fare di “simile” è abbassare il livello di indicizzazione). Mi potrebbe servire per vedere velocemente quali dei due documenti è migliore, se quello senza parti o con parti.

    Ovviamente se è una cosa complessa oppure ritenuta brutta, ritiro la domanda. 😉

    Grazie,
    Marco.

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #16365
      Up
      0
      Down
      ::

      Salve a tutti,
      mi chiedevo se esiste il modo di abbassare di un livello le sezioni di un documento. Ovvero portare i chapter a part, section a chapter, subsection a section ecc… semplicemente scrivendo qualcosa nel preambolo, sfruttando qualche cosa a me oscuro (il massimo che riesco a fare di “simile” è abbassare il livello di indicizzazione). Mi potrebbe servire per vedere velocemente quali dei due documenti è migliore, se quello senza parti o con parti.

      Ovviamente se è una cosa complessa oppure ritenuta brutta, ritiro la domanda. 😉

      `\let\subsubsection\subsection
      \let\subsection\section
      \let\section\chapter
      \let\chapter\part`
      Ha l’effetto di trasformare in \part anche il capitolo dell’indice, ma per un esperimento può andare. Tieni però conto che più di tre parti, a mio parere, sono da evitare.

      Perché funziona? Perché \let\xxx\yyy rende \xxx equivalente al significato attuale di \yyy e \xxx non viene modificato da eventuali ridefinizioni di \yyy.

      Ciao
      Enrico

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


        `\renewcommand{\part}{\chapter}
        \renewcommand{\chapter}{\section}
        \renewcommand{\section}{\subsection}
        \renewcommand{\subsection}{\subsubsection}`
        Avevo pensato a questo, ma non funziona. Pensavo che LaTeX interpretasse i comandi riga per riga: con la prima ridefinisco \part come \chapter (senza toccare \chapter), con la
        seconda ridefinisco \chapter come \section (senza toccare \section), … ma evidentemente sbaglio. 😳

        Ciao,
        L.

      • #16367
        Up
        0
        Down
        ::

        `\renewcommand{\part}{\chapter}
        \renewcommand{\chapter}{\section}
        \renewcommand{\section}{\subsection}
        \renewcommand{\subsection}{\subsubsection}`
        Avevo pensato a questo, ma non funziona. Pensavo che LaTeX interpretasse i comandi riga per riga: con la prima ridefinisco \part come \chapter (senza toccare \chapter), con la
        seconda ridefinisco \chapter come \section (senza toccare \section), … ma evidentemente sbaglio. 😳

        L’idea era a rovescio: far diventare \part i \chapter. Ma questo modo non può funzionare comunque: appena TeX incontra \part, esegue questa sequenza di espansioni:
        `\part -> \chapter -> \section -> \subsection -> \subsubsection -> …`
        dove i puntini stanno per l’espansione di \subsubsection come definita dalla classe. Lo stesso accade con \chapter eccetera. L’unico effetto che ottieni è di rendere tutti i comandi di sezione uguali a \subsubsection!

        Ciò che desideri si ottiene con \let. Come vedi dall’altro mio messaggio, per abbassare il livello (da \subsubsection a \subsection e così via) devi partire dal più alto verso il più basso. Per alzare il livello (da \part a \chapter e così via) devi andare a rovescio:
        `\let\part\chapter
        \let\chapter\section
        …`
        C’è una grande differenza fra \let e \def (che è il comando primitivo usato da \renewcommand):
        `\def\zzz{Lorenzo}
        \let\xxx\zzz
        \def\yyy{\zzz}`
        potrebbero sembrare equivalenti. Ma non lo sono: se infatti diamo in seguito
        `\def\zzz{Ciao}`
        la sequenza di comandi
        `\yyy\ \xxx`
        viene espansa in “Ciao Lorenzo”. La ridefinizione di \zzz influisce sull’espansione di \yyy; non su quella di \xxx, il cui significato è congelato su quello di \zzz al momento dell’assegnazione \let.

        Ciao
        Enrico

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


          Ti ringrazio Enrico per la spiegazione, come sempre chiara ed impeccabile.

          Un salutone,
          Lorenzo

        • #16369
          Up
          0
          Down
          ::


          Grazie mille a tutti! saranno solo due le parti comunque. Perchè attualmente sono solo due capitoli abbastanza corposi e quindi volevo vedere il risultato utilizzando le parti.

          Grazie ancora, troppo forti!

          Marco.

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

      Go to top