Indice con capitoli e sezioni in una stessa pagina

  • Creatore
    Topic
  • #56858
    Up
    0
    Down
    ::


    Salve a tutti,

    chiedo nuovamente aiuto per metter mano all’indice dei contenuti: avendo a che fare con un documento con molti capitoli, ciascuno dei quali con circa 4-5 sezioni, vorrei infatti che ciascun capitolo venisse riportato in indice nella medesima pagina assieme a tutte le sue sezioni; nell’indice vorrei insomma una sorta di \nopagebreak tra il generico capitolo e le relative sezioni tutte….

    L’importanza di questo artificio nasce dall’avere un indice che già esso stesso dà una sorta di quadro e sezionamento logico della materia trattata.

    Faccio comunque subito presente che faccio uso della classe scrbook e delle ridefinizioni personali
    ` \renewcommand{\cftpartleader}{\footnotesize\cftdotfill{\cftnodots}} \renewcommand{\cftpartafterpnum}{}
    \renewcommand{\cftchapleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftchapafterpnum}{}
    \renewcommand{\cftsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsecafterpnum}{}
    \renewcommand{\cftsubsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsubsecafterpnum}{}

    %\titleformat{\chapter}{\normalfont\bfseries}{\thechapter}{10pt}{} %\chaptertitlename\
    \titleformat{\section}{\normalfont\bfseries}{\thesection}{10pt}{}
    \titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{10pt}{}
    \titleformat{\subsubsection}{\normalfont\bfseries}{\thesubsubsection}{10pt}{}

    \titlecontents{part} %
    [24pt] {\vspace{2mm}\normalfont\scshape\Large} % above – formattazione generale
    {\contentslabel[\huge\thecontentslabel]{24pt}}%
    {\hspace*{-24pt}\Large}%
    {\Large} %\normalfont\cftchapleader\large\contentspage

    \titlecontents{chapter} %
    [24pt] {\vspace{2mm}\normalfont\large} %
    {\contentslabel[\normalfont\Large\thecontentslabel]{24pt}}%
    {\hspace*{-24pt}\normalfont\large}%
    {\normalfont\cftchapleader\large\contentspage}

    \titlecontents{section}
    [48pt] {\normalfont\normalsize} %
    {\contentslabel[\normalfont\normalsize\thecontentslabel]{24pt}}%
    {\hspace*{-48pt}\normalfont\normalsize}%
    {\normalfont\cftsecleader\normalsize\contentspage}

    \titlecontents{subsection} %
    [72pt] {\normalfont\footnotesize} %
    {\contentslabel[\normalfont\scriptsize\thecontentslabel]{24pt}} %
    {\hspace*{-72pt}\normalfont\scriptsize} %
    {\normalfont\cftsubsecleader\scriptsize\contentspage}
    `
    Grazie a tutti
    Ciao, e buon LaTeXing… 😀

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #56859
      Up
      0
      Down
      ::

      Salve a tutti,

      chiedo nuovamente aiuto per metter mano all’indice dei contenuti: avendo a che fare con un documento con molti capitoli, ciascuno dei quali con circa 4-5 sezioni, vorrei infatti che ciascun capitolo venisse riportato in indice nella medesima pagina assieme a tutte le sue sezioni; nell’indice vorrei insomma una sorta di \nopagebreak tra il generico capitolo e le relative sezioni tutte….

      L’importanza di questo artificio nasce dall’avere un indice che già esso stesso dà una sorta di quadro e sezionamento logico della materia trattata.

      Faccio comunque subito presente che faccio uso della classe scrbook e delle ridefinizioni personali
      ` \renewcommand{\cftpartleader}{\footnotesize\cftdotfill{\cftnodots}} \renewcommand{\cftpartafterpnum}{}
      \renewcommand{\cftchapleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftchapafterpnum}{}
      \renewcommand{\cftsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsecafterpnum}{}
      \renewcommand{\cftsubsecleader}{\footnotesize\cftdotfill{3\cftdot}} \renewcommand{\cftsubsecafterpnum}{}

      %\titleformat{\chapter}{\normalfont\bfseries}{\thechapter}{10pt}{} %\chaptertitlename\
      \titleformat{\section}{\normalfont\bfseries}{\thesection}{10pt}{}
      \titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{10pt}{}
      \titleformat{\subsubsection}{\normalfont\bfseries}{\thesubsubsection}{10pt}{}

      \titlecontents{part} %
      [24pt] {\vspace{2mm}\normalfont\scshape\Large} % above – formattazione generale
      {\contentslabel[\huge\thecontentslabel]{24pt}}%
      {\hspace*{-24pt}\Large}%
      {\Large} %\normalfont\cftchapleader\large\contentspage

      \titlecontents{chapter} %
      [24pt] {\vspace{2mm}\normalfont\large} %
      {\contentslabel[\normalfont\Large\thecontentslabel]{24pt}}%
      {\hspace*{-24pt}\normalfont\large}%
      {\normalfont\cftchapleader\large\contentspage}

      \titlecontents{section}
      [48pt] {\normalfont\normalsize} %
      {\contentslabel[\normalfont\normalsize\thecontentslabel]{24pt}}%
      {\hspace*{-48pt}\normalfont\normalsize}%
      {\normalfont\cftsecleader\normalsize\contentspage}

      \titlecontents{subsection} %
      [72pt] {\normalfont\footnotesize} %
      {\contentslabel[\normalfont\scriptsize\thecontentslabel]{24pt}} %
      {\hspace*{-72pt}\normalfont\scriptsize} %
      {\normalfont\cftsubsecleader\scriptsize\contentspage}
      `
      Grazie a tutti
      Ciao, e buon LaTeXing… 😀

      Metterei davanti a ciascun comando \chapter
      `\addtocontents{toc}{\protect\filbreak}}`
      Prova dunque a fare così, la modifica è facilmente annullabile:
      `\usepackage{etoolbox}
      \preto\chapter{\addtocontents{toc}{\protect\filbreak}}}`
      e vedi se ti soddisfa.

      Ciao
      Enrico

    • #56860
      Up
      0
      Down
      ::


      Gregorio, ovvero un pozzo di sapienza… 😀

      Grazie infinite, i capitoli funzionano alla grande…. con i nuovi assetti nel toc ho però adesso il problema che i part non conservano più il titolo del primo capitolo della parte vicino… ho provato quindi, dualmente a quanto fatto per i chapter, a porre \preto\part{\addtocontents{toc}{\protect\filbreak}}
      però senza alcun risultato…

      L’ultimo aiuto, per favore.

    • #56861
      Up
      0
      Down
      ::

      Gregorio, ovvero un pozzo di sapienza… 😀

      Grazie infinite, i capitoli funzionano alla grande…. con i nuovi assetti nel toc ho però adesso il problema che i part non conservano più il titolo del primo capitolo della parte vicino… ho provato quindi, dualmente a quanto fatto per i chapter, a porre \preto\part{\addtocontents{toc}{\protect\filbreak}}
      però senza alcun risultato…

      L’ultimo aiuto, per favore.

      No, così non può andare. Non avevo pensato alle parti ed è chiaro che vuoi il titolo di una parte sempre vicino al primo capitolo che segue. Occorre qualcosa di più complicato:
      `\usepackage{etoolbox}
      \newif\ifnotnewpart
      \preto\part{%
      \addtocontents{toc}{\protect\filbreak\protect\notnewpartfalse}}
      \preto\chapter{%
      \addtocontents{toc}{\protect\ifnotnewpart\protect\filbreak
      \protect\fi\protect\notnewparttrue}}`

      L’idea è di mettere \filbreak davanti alle parti, ma non davanti al primo capitolo subito dopo. Perciò definisco un condizionale che risulta falso quando si compone una parte nell’indice; il capitolo emette un \filbreak solo se il condizionale è vero, ma comunque lo rende vero, così con il capitolo successivo siamo a posto. Anche \tableofcontents emetterà un \filbreak, ma siccome il condizionale è inizialmente falso non succede niente (non succederebbe nulla in ogni caso, perché quel \filbreak sta molto in alto sulla pagina).

      Aggiungo una cosa: quel codice che mostri nel primo messaggio è più o meno irrilevante; ma manca l’elenco dei pacchetti necessari per compilarlo.

      Ciao
      Enrico

    • #56862
      Up
      0
      Down
      ::


      Enrico, tutto funziona egregiamente… un sentito ringraziamento… adesso il mio indice è perfetto…. manca solamente migliorare il contenuto del documento, ma per quello non credo vi sia un comando latex 😉 Alla prossima, ed ancora grazie

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

Go to top