Regolamenti, far ripartire il numero della sezione

  • Creatore
    Topic
  • #34762
    Up
    0
    Down
    ::


    Buongiorno a tutti. Dopo i vari tentativi illustrati qui, ho cominciato a produrre regolamenti per il mio Comune.

    Purtroppo mi sono imbattuto in un caso che non riesco a risolvere. La struttura del regolamento è questa:

    `Capo I Principi generali
    Art. 1 Oggetto
    Art. 2 Principi e criteri informatori
    Art. 3 Indirizzo politico e gestione : distinzioni
    Art. 4 Gestione delle risorse umane

    Capo II Articolazione strutturale dotazione e assetto del personale
    Art. 5 Struttura organizzativa
    Art. 6 Dotazione organica
    Art. 7 Inquadramento
    Art. 8 Disciplina delle mansioni
    Art. 9 Responsabilità del personale
    Art. 10 Formazione e aggiornamento del personale `

    I “Capi” sono chapter e gli articoli sono section. Ora è stato aggiunto un articolo bis, per cui dovrà risultare nell’indice e nel testo “Art. 1 bis Prova”. Come faccio a lavorare così pesantemente sulla numerazione delle section? È possibile?

    Utilizzo questo codice:

    `\documentclass[a4paper,12pt, oneside]{report}
    \usepackage[italian]{babel}

    \usepackage[T1]{fontenc}
    \usepackage{microtype}
    \usepackage{indentfirst}
    \usepackage{layaureo}
    \usepackage{chngcntr}
    \counterwithout{section}{chapter}
    \usepackage{titlesec}
    \usepackage{titletoc}
    \addto\captionsitalian{\renewcommand{\chaptername}{Capo}}

    %\addto\extrasitalian{%
    % \def\subsectionautorefname{Unterkapitel}%
    \renewcommand{\thesection}{Art. \arabic{section}}
    \renewcommand{\thechapter}{Capo \Roman{chapter}}

    \titlecontents{chapter}[5pc]{\addvspace{1pc}}{\contentsmargin{0pt} \bfseries\makebox[0pt][r]{\textbf{Capo}\enspace\thecontentslabel\enspace}} {\contentsmargin{0pt}}{\hfill\contentspage}[\addvspace{.5pc}]

    \titlecontents{section}[3pc]{}{\contentsmargin{0pt}\makebox[0pt][r]{\enspace\thecontentslabel\enspace}} {\contentsmargin{0pt}}{\hfill\contentspage}
    \def\thechapter{\Roman{chapter}}
    \begin{document}

    \tableofcontents
    \chapter{Principi generali}
    \label{cha:principi_generali}
    \section{Oggetto}
    \label{sec:oggetto}
    Il presente regolamento disciplina in conformità agli indirizzi generali stabiliti dallo Statuto e dal Consiglio comunale, l'ordinamento generale dei servizi e degli uffici del comune di Povegliano. Costituisce parte del regolamento anche le modalità di assunzione e requisiti di accesso delle procedure concorsuali.
    \section{Articolo Bis}
    \label{sec:prova}
    Ciao
    \end{document}`

    Grazie per ogni suggerimento

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #34763
      Up
      0
      Down
      ::

      Buongiorno a tutti. Dopo i vari tentativi illustrati qui, ho cominciato a produrre regolamenti per il mio Comune.

      Purtroppo mi sono imbattuto in un caso che non riesco a risolvere. La struttura del regolamento è questa:

      `Capo I Principi generali
      Art. 1 Oggetto
      Art. 2 Principi e criteri informatori
      Art. 3 Indirizzo politico e gestione : distinzioni
      Art. 4 Gestione delle risorse umane

      Capo II Articolazione strutturale dotazione e assetto del personale
      Art. 5 Struttura organizzativa
      Art. 6 Dotazione organica
      Art. 7 Inquadramento
      Art. 8 Disciplina delle mansioni
      Art. 9 Responsabilità del personale
      Art. 10 Formazione e aggiornamento del personale `

      I “Capi” sono chapter e gli articoli sono section. Ora è stato aggiunto un articolo bis, per cui dovrà risultare nell’indice e nel testo “Art. 1 bis Prova”. Come faccio a lavorare così pesantemente sulla numerazione delle section? È possibile?

      `\makeatletter
      \let\ltx@section\section
      \def\section{\@ifnextchar+{\section@bis}{\ltx@section}}
      \def\section@bis+#1{\begingroup
      \edef\thesection{\thesection~bis}\ltx@section{#1}\endgroup}`
      Scriverai
      `\section+{Articolo bis\label{sec:prova}}`
      Purtroppo la \label deve andare lì, ma non fa molta differenza.

      Ciao
      Enrico

    • #34764
      Up
      0
      Down
      ::


      Grazie mille, gentilissimo. La soluzione era al di sopra delle mie attuali capacità.

    • #34765
      Up
      0
      Down
      ::

      Grazie mille, gentilissimo. La soluzione era al di sopra delle mie attuali capacità.

      Siamo qui per questo, no? Già che ci sono, dopo una lunga giornata ai seggi, provo a svelare un po’ di arcani misteri.
      `\let\ltx@section\section`
      Memorizzo il significato attuale di \section in \ltx@section
      `\def\section{\@ifnextchar+{\section@bis}{\ltx@section}}`
      Ridefinisco \section in modo che guardi solo il token successivo. Se è un + verrà usato il comando \section@bis, altrimenti \ltx@section, che procederà come al solito.
      `\def\section@bis+#1{\begingroup
      \edef\thesection{\thesection~bis}\ltx@section{#1}\endgroup}`
      Qui è la parte rilevante: il comando \section@bis è ovviamente seguito da un + che viene ingoiato dalla definizione così data; poi viene letto l’argomento; si suppone che non si usi \section[Abc]{Abc def}, questo va rimarcato: se ti dovesse servire bisognerà fare un po’ di lavoro in più.

      Si apre un gruppo perché abbiamo bisogno di ridefinire \thesection; infatti lo facciamo subito con \edef che esegue l’espensione di ciò che c’è dentro le graffe; in realtà sarebbe meglio scrivere
      `\edef\thesection{\thesection\noexpand~bis}`
      ma la definizione senza \noexpand è comunque abbastanza robusta lo stesso. Quando si espande \thesection dentro la definizione, il suo valore è esattamente il numero dell’ultimo articolo. A questo punto possiamo dare \ltx@section{#1} che produce il titolo della sezione usando il valore attuale di \thesection che è “Art. x~bis” dove x è il numero dell’ultimo articolo. Chiudiamo il gruppo e procediamo.

      Ciao
      Enrico

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

Go to top