Un indice ‘strano’

  • Creatore
    Topic
  • #120516
    Up
    0
    Down
    ::


    Cari Amici,
    pongo prima la questione, poi, poche considerazioni di carattere generale.
    La questione è:
    si può generare un indice (table of contents) nel quale il numero della pagina, che scorre a sinistra, precede il titolo del capitolo /sezione … etc., che scorre a destra?
    Per esempio:
    23 Capitolo 2

    140 Capitolo 10

    Ho aggiustato l’indice secondo le indicazioni dell’editore con tocloft e sono riuscito in tutto, tranne in questa specifica che a me, appunto, appare inconsueta, ma non male, esteticamente.

    E ora, fuori dal Topic, un ennesimo ringraziamento per tutto il lavoro che fate. A quanti postano domande apparentemente banali (e spesso ricevono risposte ‘ruvide’) vorrei dire, da principiante qual sono: con LaTeX si può fare veramente qualsiasi cosa non sia del tutto contraria alle buone regole dell’arte tipografica: è vero. Bisogna avere molta pazienza e leggere e studiare molto: gli strumenti ci sono, anche troppi.
    Come diceva Eco, non importa che tu non sappia, se sai dove cercare.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #120517
      samiel
      Partecipante
        Up
        0
        Down
        ::


        intendi una cosa del genere?
        Io ho personalizzato titoli e indice col codice che segue:
        `\usepackage{titlesec}

        \renewcommand{\thechapter}{\scshape\roman{chapter}}
        \renewcommand\thesection{\arabic{section}}

        \titleformat{\chapter}[display]
        {\normalfont\fontsize{11}{12}\selectfont}
        {\scshape\thechapter}
        {0pt}
        {}
        \titleformat{\section}
        {\normalfont\fontsize{11}{12}\selectfont}
        {\thesection}
        {1em}
        {}
        \titleformat{\subsection}
        {\normalfont\fontsize{11}{12}\selectfont\itshape}
        {}
        {1em}
        {}

        \titlespacing{\chapter}
        {0pt}{0pt}{3cm}

        \usepackage{etoc}

        \makeatletter
        \etocsetstyle{chapter}
        {\@afterindenttrue}
        {\addvspace{2ex}\leavevmode\leftskip 0cm\relax}
        {\ifShowPage % conditional deciding the display or not of the page number
        \llap{\makebox[1.5cm][r]{\mdseries\etocpage}\hspace{.5cm}}%
        \fi
        \normalsize\makebox[1cm][r]{\etocnumber\phantom{.}}\hspace{10pt}%
        \parbox[t]{\dimexpr\linewidth-1cm-27pt\relax}{\etocname\par}\hfill\par
        }
        {}
        \makeatother

        \etocsetstyle{section}
        {}
        {\leavevmode\leftskip 0cm\relax}
        {\llap{\makebox[1.5cm][r]{\mdseries\etocpage}\hspace{.5cm}}%
        \normalsize\makebox[1cm][r]{\etocnumber.}\hspace{10pt}%
        \parbox[t]{\dimexpr\linewidth-1cm-27pt\relax}{\etocname\par}\hfill\par
        }
        {}

        \newif\ifShowPage

        \usepackage{titletoc}
        \titlecontents*{subsection}
        [3.525em]
        {\footnotesize}
        {}
        {}
        {,~\thecontentspage}
        [~–~]
        []

        \titleformat{\subsection}
        {\normalfont\fontsize{11pt}{12pt}\selectfont\itshape}{\phantom{\thesection}}{1em}{}`
        Puoi lavorare su questo codice per arrivare al risultato che desideri.

        m

        Attachments:
        You must be logged in to view attached files.
      • #120518
        Up
        0
        Down
        ::


        Grazie Samiel!
        non conoscevo etoc.
        Ci lavoro un po’ su e poi vi faccio sapere.
        A presto.
        Riccardo

      • #120519
        Up
        0
        Down
        ::


        … come promesso, inserisco la soluzione che ho trovato, studiando etoc.
        Si avvicina molto al layout che mi è stato chiesto di imitare, ma i numeri di pagina sono allineati a sinistra, anziché a destra.
        Questi numeri, come vedrete leggendo il codice, sono contenuti in un parbox e non ho trovato, nella guida latex2e_reference il modo di allinearli a destra, il che renderebbe la pagina più ordinata.

        Ho cercato di emendare il codice da tutto ciò che non è strettamente necessario a generare l’indice. Ma dato che dovevo simulare due colonne e vari casi, lo troverete sicuramente prolisso. In realtà voglio sperare che titoli lunghi non ce ne siano, ma ho preferito provare anche questa condizione.

        La soluzione è semplice e forse inutilmente ripetitiva, ma è quanto riseco a fare.
        Ogni suggerimento ulteriore sarà gradito.

        `
        %%%% P R E A M B O L O %%%%%%%%%%%%%%%%%%%%%
        %%%% FORMATO
        \documentclass[10pt,onecolumn]{book}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[polutonikogreek,italian]{babel}

        \usepackage{microtype}

        \usepackage{calc}
        \usepackage[paperwidth=18cm, paperheight=23.5cm, inner=25.6mm, outer=25.6mm, top=28.3mm, headsep=14.3mm, bottom=23.3mm, onecolumn,]{geometry}
        \linespread{1}%gestisce l'interlinea

        %%%% CROCINI DI STAMPA (FRAME)
        \usepackage[a4,frame,center,pdftex]{crop}

        %%%% ELENCHI
        \usepackage[inline]{enumitem}
        \setlist{labelsep=*, leftmargin=0.4cm, noitemsep, topsep=0pt}
        \renewcommand\labelitemi{\normalfont \textendash}

        \usepackage{color}
        \definecolor{valeriared}{cmyk}{0,0.95,1,0.30}

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %INDICI con ETOC
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        \usepackage[titles]{etoc}

        \etocmulticolstyle[2]{}

        \etocmulticolstyle{\noindent\color{valeriared}\fontfamily{phv}\fontseries{b}\fontsize{20}{20}\selectfont\MakeUppercase{Indice}\vspace{53mm}}

        \etocsetstyle{part}
        {\begin{description}}
        {\color{valeriared}\fontfamily{phv}\fontseries{b}\fontsize{12}{12}\selectfont\item{}\hspace{8mm}\etocnumber \hspace{6mm} \etocname{}}
        {\vspace{5mm}\par}
        {\end{description}}

        \etocsetstyle{chapter}
        {\begin{description}

        }
        {\vspace{12pt}\color{valeriared}\fontfamily{phv}\fontseries{b}\fontsize{8}{8}\selectfont\item{\parbox[t]{5mm}{\etocpage}}\hspace{6mm}\parbox[r]{45mm}{\etocnumber. \etocname}{}}
        {\par }
        {\end{description}}

        \etocsetstyle{section}
        {\begin{description}

        }
        {\vspace{4pt}\color{black}\fontfamily{phv}\fontseries{m}\fontsize{8}{8}\selectfont\item{\parbox[t]{5mm}{\etocpage}}\hspace{6mm}\parbox[r]{45mm}{\etocname}{}}
        {\par }
        {\end{description}}

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        \usepackage{lipsum}

        \begin{document}

        \frontmatter
        \tableofcontents
        \clearpage

        \mainmatter
        %premessa
        \onecolumn
        \part{Teoria}
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo a}
        \lipsum[1-5]
        \section{Un paragrafo b}
        \lipsum[1-5]
        \section{Un paragrafo c}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo breve}
        \lipsum[1-5]
        \section{Un paragrafo con titolo breve}
        \lipsum[1-5]
        \chapter{Un capitolo con titolo molto molto lungo}
        \lipsum[1-5]
        \section{Un paragrafo con molto molto lungo}
        \lipsum[1-5]
        \backmatter

        \end{document}
        `

      • #120520
        Up
        0
        Down
        ::


        … un perfezionamento:

        [code]
        \item{\parbox[t][][t]{8pt}{\raggedleft \etocpage}}
        [\code]

        così va meglio.
        resta il fatto che il numero di pagina, in caso di titoli su due righe, sta al centro dell’altezza del paragrafo e non al top come vorrei.
        I parametri che ho aggiunto a \parbox non sembrano efficaci.

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

    Go to top