Meccanismo di creazione di testatine e indice generale nei file

  • Creatore
    Topic
  • #116020
    mattiaca
    Partecipante
      Up
      0
      Down
      ::



      So che i comandi di sezionamento utilizzano l’argomento facoltativo per mandarne il contenuto alle testatine e all’indice generale.
      So che se si usa un sezionamento asteriscato il comando di sezionamento non manda l’argomento né all’indice né alle testatine.
      Allora mi sono posto la domanda seguente: c’è un modo semplice per mandare i sezionamenti NON numerati alle testatine e all’indice in modo AUTOMATICO?

      Ho spulciato la documentazione e ne ho ricavato le seguenti informazioni:

      1. si usa \frontmatter, \mainmatter, \backmatter. Controindicazione: il comando modifica soltanto i capitoli e non anche i sezionamenti più piccoli che restano numerati. Inoltre vengono modificate le numerazioni delle pagine e ciò può non essere desiderato.
      2. si modifica in vari punti la profondità della numerazione dei sezionamenti con \setcounter{secnumdepth}. Controindicazione: Se si modifica il contatore in diversi punti e compaiono sia capitoli numerati sia capitoli non numerati, i titoli numerati non sono allineati correttamente con quelli non numerati nell’indice generale.

      Riguardo al punto due ho fatto ricorso a quanto è scritto nella documentazione che dice di utilizzare il codice:
      `
      \protect\numberline{}{titolo della sezione}
      `
      per mandare il corretto allineamento all’indice. Però questo “sballa” le testatine.

      Quindi la domanda finale è: bisogna fare ricorso ai comandi asteriscati e ricorrere a comandi specifici per l’indice e le testatine, oppure si può fare qualcosa di diverso?
      Vi mando un esempio minimo compatibile:

      `
      \documentclass[a4paper,openright,10pt]{book}

      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}
      \usepackage{lmodern}
      %\usepackage{}

      \begin{document}

      \tableofcontents

      %\frontmatter
      \setcounter{secnumdepth}{-2}
      %\pagenumbering{arabic}
      \chapter[\protect\numberline{}{capitolo zero}]{capitolo uno}
      testo
      \newpage

      \section[\protect\numberline{}{sezione uno}]{sezione uno}
      testo
      \newpage
      \section[\protect\numberline{}{sezione due}]{sezione due}
      testo
      \newpage
      \section[sezione tre]{sezione tre}
      testo
      \newpage
      testo
      \newpage

      %\mainmatter
      \setcounter{secnumdepth}{2}
      \chapter{capitolo uno}
      testo
      \newpage

      \section{sezione uno}
      testo
      \newpage
      \section{sezione due}
      testo
      \newpage

      %\backmatter
      \setcounter{secnumdepth}{-2}
      \chapter{capitolo due}
      testo
      \newpage

      \section{sezione uno}
      testo
      \newpage
      \section{sezione due}
      testo
      \newpage

      \end{document}
      `


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


          Il modo automatico non c’è, perché normalmente i capitoli con le loro sottosezioni, tutti non numerati, si mettono solo nella front matter e nella back matter. Se nella main matter si mette qualcosa che richiede un’impaginazione come quella iniziale di un capitolo, si usa \chapter* e le (improbabili) sezioni con \section*. Ovviamante questi sezionamenti non numerati “non sono degni” dell’indice, ma sono degni di eventuali testatine Questa è la normalità.

          Dunque, se si vuole fare in automatico quello che non è normale, lo si può fare definendo nuove macro, per esempio`\newcommand\capitolo[2][]{%
          \chapter*{#2}\ifblank{#1}%
          {\addcontensline{toc}{chapter}{\protect\numberline{}#2}\markboth{#2}{#2}}%
          {\addcontentsline{toc}{chapter{\protect\numberline{}#1}\markboth{#1}{#1}}%
          }
          \newcommand\sezione[2][]{%
          \section*{#2}\ifblank{#1}%
          {\addcontentsline{toc}{section}{\protext\numberline{}#2}\markright{#2}}%
          {\addcontentsline{toc}{section}{\protext\numberline{}#1}\markright{#1}}%
          }
          `Il comando \ifblank è definito nel pacchetto etoolbox, da caricare nel preambolo.

          Quindi, usando \capitolo e \sezione tutto quello che sarebbe da fare a mano vien fatto automaticamente.

          [PS] Controlla le graffe, perché ho scritto il codice a titolo di esempio (autoesplicativo) e non l’ho collaudato.

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

      Go to top