\subsection «inline» nella TOC (simile a paralist)

  • Creatore
    Topic
  • #42270
    Up
    0
    Down
    ::


    Ciao a tutti,
    vorrei personalizzare l’indice di un documento che sto scrivendo, basato sulla classe book con qualche piccola modifica.

    Vorrei fare in modo che ciascuna voce relativa all’ultimo livello di sezionamento ad essere inserito nell’indice, ovvero \subsection, anziché comparire su una riga a sé stante, venga collocata insieme alle altre voci contigue (purché «figlie» della stessa \section) su un’unica riga.

    Mi rendo conto di non essermi spiegato benissimo, quindi faccio un esempio: di seguito è illustrato il risultato standard che si ottiene con book e \tableofcontents:

    `1 Capitolo 3
    1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
    1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
    1.2.1 Prima sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 4
    1.2.2 Seconda sottosezione. . . . . . . . . . . . . . . . . . . . . . . 4
    1.2.3 Terza sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 4
    1.2.4 Quarta sottosezione . . . . . . . . . . . . . . . . . . . . . . . 5
    1.2.5 Quinta sottosezione . . . . . . . . . . . . . . . . . . . . . . . 5
    1.2.6 Sesta sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 5
    1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6`
    Il risultato che vorrei ottenere io è invece il seguente:

    `1 Capitolo 3
    1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
    1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
    1.2.1 Prima sottosezione [4] 1.2.2 Seconda sottosezione [4] 1.2.3 Terza
    sottosezione [4] 1.2.4 Quarta sottosezione [5] 1.2.5 Quinta sottosezione
    [5] 1.2.6 Sesta sottosezione [5]
    1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6`
    Visivamente potrebbe essere simile all’indice illustrato nella documentazione del pacchetto microtype, più o meno. Quanto ho illustrato qui sopra è un po’ diverso, perché tiene traccia anche del numero associato alla \subsection (es. «1.2.3»), ma più o meno è simile.

    Non ho idea di come poter arrivare a questo risultato. Non so se si possa fare qualcosa a mano oppure se serva un pacchetto. Ho provato a dare un’occhiata alla documentazione di tocloft, ma non ho cavato un ragno dal buco. Ho cercato anche sul forum ma non ho trovato nulla.

    Qualcuno può aiutarmi?

    Grazie e a presto.

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

      Ciao a tutti,
      vorrei personalizzare l’indice di un documento che sto scrivendo, basato sulla classe book con qualche piccola modifica.

      Vorrei fare in modo che ciascuna voce relativa all’ultimo livello di sezionamento ad essere inserito nell’indice, ovvero \subsection, anziché comparire su una riga a sé stante, venga collocata insieme alle altre voci contigue (purché «figlie» della stessa \section) su un’unica riga.

      Mi rendo conto di non essermi spiegato benissimo, quindi faccio un esempio: di seguito è illustrato il risultato standard che si ottiene con book e \tableofcontents:

      `1 Capitolo 3
      1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
      1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
      1.2.1 Prima sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 4
      1.2.2 Seconda sottosezione. . . . . . . . . . . . . . . . . . . . . . . 4
      1.2.3 Terza sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 4
      1.2.4 Quarta sottosezione . . . . . . . . . . . . . . . . . . . . . . . 5
      1.2.5 Quinta sottosezione . . . . . . . . . . . . . . . . . . . . . . . 5
      1.2.6 Sesta sottosezione. . . . . . . . . . . . . . . . . . . . . . . . 5
      1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6`
      Il risultato che vorrei ottenere io è invece il seguente:

      `1 Capitolo 3
      1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
      1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
      1.2.1 Prima sottosezione [4] 1.2.2 Seconda sottosezione [4] 1.2.3 Terza
      sottosezione [4] 1.2.4 Quarta sottosezione [5] 1.2.5 Quinta sottosezione
      [5] 1.2.6 Sesta sottosezione [5]
      1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6`
      Visivamente potrebbe essere simile all’indice illustrato nella documentazione del pacchetto microtype, più o meno. Quanto ho illustrato qui sopra è un po’ diverso, perché tiene traccia anche del numero associato alla \subsection (es. «1.2.3»), ma più o meno è simile.

      Non ho idea di come poter arrivare a questo risultato. Non so se si possa fare qualcosa a mano oppure se serva un pacchetto. Ho provato a dare un’occhiata alla documentazione di tocloft, ma non ho cavato un ragno dal buco. Ho cercato anche sul forum ma non ho trovato nulla.

      Qualcuno può aiutarmi?

      Grazie e a presto.

      `\usepackage{titletoc}
      \titlecontents*{subsection}[3.8em]
      {\small}
      {\thecontentslabel.~}
      {}
      {~[\thecontentspage]}
      [\quad][]`
      Ciao
      Enrico

    • #42272
      Up
      0
      Down
      ::


      Molte grazie, il tuo intervento mi ha risparmiato moltissimi giorni di ricerca.

      Ci sono però ancora due problemi, uno grave e uno meno grave:

      1. il «paragrafo» che contiene le \subsection «sborda» dalla «linea verticale» (inesistente) che collega idealmente i puntini più a destra di ciascuna riga relativa ad una \section, come cerco di illustrare qui di seguito:
        `1 Capitolo 3
        1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
        1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
        1.2.1 Prima sottosezione [4] 1.2.2 Seconda sottosezione [4] 1.2.3 Terza <--- sottosezione [4] 1.2.4 Quarta sottosezione [5] 1.2.5 Quinta sottosezione <--- [5] 1.2.6 Sesta sottosezione [5] 1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6` Vorrei evitare questo comportamento in modo da ottenere un risultato simile al seguente `1 Capitolo 3 1.1 Prima sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Seconda sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Prima sottosezione [4] 1.2.2 Seconda sottosezione [4] 1.2.3 Terza sottosezione [4] 1.2.4 Quarta sottosezione [5] 1.2.5 Quinta sottosezione [5] 1.2.6 Sesta sottosezione [5] 1.3 Terza sezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6` mediante un'istruzione ad alto livello che simuli un \rightskip per il solo «paragrafo» delle \subsection. Dalla documentazione di titletoc scopro che esiste il comando \contentsmargin, utilizzabile sia nella forma \contentsmargin{right} sia nella forma \contentsmargin[correction]{right}. Non capisco però dove inserirlo.

      2. è possibile impedire la cesura del contenuto delle subsection (es. «Seconda sottosezione»), mediante \mbox, o forse meglio ancora \raggedright, o non è il caso?

      Grazie e a presto.

    • #42273
      Up
      0
      Down
      ::

      1. il «paragrafo» che contiene le \subsection «sborda» dalla «linea verticale» (inesistente) che collega idealmente i puntini più a destra di ciascuna riga relativa ad una \section […] Vorrei evitare questo comportamento […] mediante un’istruzione […] che simuli \rightskip . Dalla documentazione di titletoc scopro che esiste il comando \contentsmargin. Non capisco però dove inserirlo.

      Chiedo scusa, andava in [] (spero di avere scelto la forma giusta):
      `\usepackage{titletoc}
      \titlecontents*{subsection}[3.8em]
      {\small}
      {\thecontentslabel.~}
      {}
      {~[\thecontentspage]}
      [\quad][\contentsmargin{3em}] <---` Rimane ancora da risolvere il secondo problema, meno grave del precedente:

      2. è possibile impedire la cesura del contenuto delle subsection (es. «Seconda sottosezione»), mediante \mbox, o forse meglio ancora \raggedright, o non è il caso?

      Grazie e a presto.

    • #42274
      Up
      0
      Down
      ::

      Rimane ancora da risolvere il secondo problema, meno grave del precedente:

      2. è possibile impedire la cesura del contenuto delle subsection (es. «Seconda sottosezione»), mediante \mbox, o forse meglio ancora \raggedright, o non è il caso?

      Non credo che si possa, né che sia molto sensato. Ma io ho una soluzione migliore: non mettere le sezioni di secondo livello nell’indice. 🙂

      Ciao
      Enrico

    • #42275
      Up
      0
      Down
      ::

      Non credo che si possa, né che sia molto sensato.

      Capisco. L’ho chiesto semplicemente perché consultando la documentazione di microtype, ho notato l’assenza di cesure nelle \subsection «inline» contenute nell’indice (che poi in realtà erano \subsubsection…), ma può darsi che ciò sia successo solo per caso.

      Mi sono letto la documentazione di titletoc alla ricerca di un’opzione «explicit», simile a quella presente nel suo «fratello» titlesec, in modo da poter scrivere una cosa del tipo \mbox{#1}, ma quest’opzione non esiste.

      Comunque, non mi interessa approfondire ulteriormente la questione; va bene così, grazie.

      Ma io ho una soluzione migliore: non mettere le sezioni di secondo livello nell’indice. 🙂

      Intendi dire con un
      `\setcounter{tocdepth}{2}`
      In effetti, ho dato un’occhiata anche alla tua introtex, e devo dire che un indice fatto in quel modo viene veramente bene. Il fatto è che ho molte subsection, e grazie alla loro inclusione nell’indice mi è facile navigare rapidamente nel documento (in questo momento, in cui esso esiste esclusivamente in formato elettronico, quindi presumo che in formato cartaceo l’esigenza potrebbe sentirsi anche di più…).

      Ci penserò. Proverò a riorganizzare il testo, eventualmente portando il contenuto ad un livello di sezionamento maggiore, e deciderò alla fine del lavoro quale soluzione adottare.

      Grazie e a presto.

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

Go to top