Classe/pacchetto per testi di legge/normativi

  • Creatore
    Topic
  • #134037
    GuITstaff
    Amministratore del forum
      Up
      0
      Down
      ::

      Buongiorno,
      Negli ultimi tempi ho dovuto aggiornarmi su diversi testi di legge/normativi. Mentre lo facevo, con mia grande sorpresa, ho notato che non c’è nessuna classe italiana dedicata alla redazione di atti normativi. Ho provato a creare qualche macro per abbozzare un tempalte da utilizzare per la loro creazione. Allego quanto fatto finora, sperando che qualcuno voglia implementare/contribuire/sviluppare questo tentativo, rendendo il tutto più “professionale”:

      [code]
      % !TEX TS-program = pdflatex
      % !TEX encoding = UTF-8 Unicode
      % !TEX spellcheck = it_IT

      \documentclass[11pt,a4paper]{book}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}
      \usepackage{titlesec}
      \usepackage{lipsum}
      \usepackage{microtype}
      \usepackage{xparse}

      \setcounter{secnumdepth}{6}

      \addto\captionsitalian{\renewcommand\partname{Libro}}
      \newcommand\partlabel{\Roman{part}}
      \renewcommand*\thepart{\partlabel}

      \addto\captionsitalian{\renewcommand\chaptername{Titolo}}
      \newcommand\chapterlabel{\Roman{chapter}}
      \renewcommand*\thechapter{\chapterlabel}
      \titleformat{\chapter}{\normalfont\huge\centering}{\chaptername~\chapterlabel}{1em}{}

      \newcommand\sectionname{Capo}
      \newcommand\sectionlabel{\Roman{section}}
      \renewcommand*\thesection{\sectionlabel}
      \titleformat{\section}{\normalfont\Large\centering}{\sectionname~\sectionlabel}{1em}{}

      \newcommand\subsectionname{Sezione}
      \newcommand\subsectionlabel{\Roman{subsection}}
      \renewcommand*\thesubsection{\subsectionlabel}
      \titleformat{\subsection}{\normalfont\large\centering}{\subsectionname~\subsectionlabel}{1em}{}

      \newcommand\subsubsectionname{Articolo}
      \newcommand\subsubsectionlabel{\arabic{subsubsection}}
      \counterwithout{subsubsection}{subsection}
      \renewcommand*\thesubsubsection{art.\,\subsubsectionlabel}
      \titleformat{\subsubsection}[display]{\normalfont\normalsize\centering}{\subsubsectionname~\subsubsectionlabel}{0pt}{\itshape}

      \newcommand\paragraphname{Comma}
      \newcommand\paragraphlabel{\arabic{paragraph}.}
      \renewcommand*\theparagraph{c.\,\paragraphlabel}
      %\renewcommand*\theparagraph{\thesubsubsection\space c.\,\arabic{paragraph}}
      \titleformat{\paragraph}[runin]{\normalfont\normalsize}{\paragraphlabel}{1ex}{}
      \titlespacing*{\paragraph}{0em}{0.1ex plus 0.05ex minus 0.05ex}{1ex}

      \newcounter{articoloecomma}
      \renewcommand*\thearticoloecomma{\thesubsubsection\space\theparagraph}

      \NewDocumentCommand\comma{O{\relax} m O{\relax}}{
      \let\oldparagraphlabel\paragraphlabel
      \if#1\relax
      \else
      \renewcommand*\paragraphlabel{#1.}
      \addtocounter{paragraph}{-1}
      \fi
      \paragraph{#2}
      \if#3\relax
      \else
      \label{#3}
      \refstepcounter{articoloecomma}
      \label{a+c:#3}
      \fi
      \let\paragraphlabel\oldparagraphlabel
      }

      \NewDocumentCommand\articolo{O{\relax} m O{\relax}}{
      \let\oldsubsubsectionlabel\subsubsectionlabel
      \if#1\relax
      \else
      \renewcommand*\subsubsectionlabel{#1}
      \addtocounter{subsubsection}{-1}
      \fi
      \subsubsection{#2}
      \if#3\relax
      \else
      \label{#3}
      \fi
      \let\subsubsectionlabel\oldsubsubsectionlabel
      }

      \NewDocumentCommand\sezione{O{\relax} m O{\relax}}{
      \let\oldsubsectionlabel\subsectionlabel
      \if#1\relax
      \else
      \renewcommand*\subsectionlabel{#1}
      \addtocounter{subsection}{-1}
      \fi
      \subsection{#2}
      \if#3\relax
      \else
      \label{#3}
      \fi
      \let\subsectionlabel\oldsubsectionlabel
      }

      \NewDocumentCommand\capo{O{\relax} m O{\relax}}{
      \let\oldsectionlabel\sectionlabel
      \if#1\relax
      \else
      \renewcommand*\sectionlabel{#1}
      \addtocounter{section}{-1}
      \fi
      \section{#2}
      \if#3\relax
      \else
      \label{#3}
      \fi
      \let\sectionlabel\oldsectionlabel
      }

      \NewDocumentCommand\titolo{O{\relax} m O{\relax}}{
      \let\oldchapterlabel\chapterlabel
      \if#1\relax
      \else
      \renewcommand*\chapterlabel{#1}
      \addtocounter{chapter}{-1}
      \fi
      \chapter{#2}
      \if#3\relax
      \else
      \label{#3}
      \fi
      \let\chapterlabel\oldchapterlabel
      }

      \NewDocumentCommand\libro{O{\relax} m O{\relax}}{
      \let\oldpartlabel\partlabel
      \if#1\relax
      \else
      \renewcommand*\partlabel{#1}
      \addtocounter{part}{-1}
      \fi
      \part{#2}
      \if#3\relax
      \else
      \label{#3}
      \fi
      \let\partlabel\oldpartlabel
      }

      \begin{document}

      \libro{Titolo del libro}
      \titolo{titolo del titolo}
      \capo{titolo del capo}
      \sezione{titolo della sezione}

      \articolo{Rubrica dell’articolo}[art1]
      \comma{\lipsum[1][1-2]}[comma1.1]
      \comma[1-bis]{\lipsum[1]}[comma1.2]
      \comma{Scrivo il terzo, che però è il secondo!}[comma1.3]

      \articolo{Seconda rubrica}\label{art2}
      \comma{In accordo ad \ref{art1}}
      \comma{In accordo a \ref{comma1.1}}
      \comma{In accordo a \ref{a+c:comma1.2}}

      \end{document}
      [/code]

    Visualizzazione 10 filoni di risposte
    • Autore
      Risposte
      • #134038
        GuITstaff
        Amministratore del forum
          Up
          0
          Down
          ::

          Personalmente lo guarderò con molto interesse, anche se sono totalmente fuori dal mondo legale,
          Ti segnalo, però una cosa che forse non fa al caso tuo, ma che è interessante, credo, anche per te. In Ars 35 è sto pubblicato un articolo Intitolato Composizione di atti giudiziari utilizzando LATEX, di Federico Gallo. Parla di come comporre scrivendo in “legalese”, quello speciale gergo che riguarda giudici e avvocati e che soddisfa pienamente alle tradizioni legalesi italiane.
          Puoi scaricare Ars35 dalla sezione ArsTeXnica di questo Forum, tenendo conto che i fascicoli con più di un anno sono scaricabili da chiunque; Per te è più semplice oerché sei un socio del GuIT, ma trattandosi di un fascicolo di oltre un anno, non hai bisogno di usare le credenziali dei soci.
          Vedrai che, anche se non è esattamente ciò che cercavi, ti può essere molto utile.

        • #134061
          GuITstaff
          Amministratore del forum
            Up
            0
            Down
            ::

            Bellissima idea. In effetti da avvocato non ho mai pensato alla parte redazionale delle norme, che attiene alla sfera del legislatore, preoccupandomi solo della redazione degli atti. La questione mi ha incuriosito e ho provato a lavorarci, partendo dal codice iniziale postato qui.
            L’ho commentato in inglese/italiano perchè, notoriamente, gli avocati non sono tra le categorie più “poliglotte” della nostra società 🙄
            Le principali differenze rispetto alla versione iniziale sono queste:
            – trasformazione del progetto da semplice documento di test a vera classe .cls, basata su book;
            – separazione tra logica interna e interfaccia utente, così da poter richiamare la struttura normativa con comandi dedicati;
            – introduzione di una gerarchia semantica completa:
            \libro
            \titolo
            \capo
            \sezione
            \articolo
            \comma
            – gestione uniforme della numerazione automatica e manuale;
            – centralizzazione dei nomi strutturali (“Libro”, “Titolo”, “Articolo”, ecc.) per facilitarne eventuali modifiche future;
            – miglior controllo dei contatori e delle dipendenze tra livelli;
            – separazione più pulita tra valore del contatore e rappresentazione tipografica;
            – introduzione di comandi dedicati ai riferimenti incrociati (articolo, comma, articolo+comma);
            – aggiunta di ambienti accessori come preambolo e relazione illustrativa;
            – definizione di liste normative dedicate (lettere, numeri);
            – organizzazione interna del codice in blocchi commentati per facilitarne la manutenzione.

            Uno degli obiettivi che ho cercato di seguire è stato evitare duplicazioni di codice, così da mantenere la classe più compatta e facilmente estendibile.

            Avrei pensato a diverse implementazioni che potrebbero essere inserite, tipiche della tecnica legislativa:

            • gestione dei metadati dell’atto (tipo, titolo, numero, data, autorità emanante) con generazione automatica del frontespizio;
            • disposizioni finali tipizzate, tramite comandi dedicati per entrata in vigore, abrogazioni e norme transitorie;
            • sistema di riferimenti normativi più raffinato, con richiamo automatico di articoli e commi in forma abbreviata o estesa;
            • miglioramento degli elenchi multilivello, per riprodurre più fedelmente la struttura normativa;
            • articoli senza rubrica e commi non numerati, utili in particolari contesti redazionali;
            • ambiente dedicato agli allegati, con numerazione autonoma e riferimenti interni;
            • possibile indice separato dei soli articoli;
            • modalità “bozza”, con note redazionali e strumenti utili in fase di drafting;
            • modalità “testo coordinato”, per distinguere testo vigente, abrogato e novellato tramite output differenti.

            Ecco il codice che finora funziona:
            [code]% attinormativi.cls
            %
            % LaTeX class for Italian normative acts.
            % Classe LaTeX per atti normativi italiani.
            %
            % Version: 0.2

            \NeedsTeXFormat{LaTeX2e}
            \ProvidesClass{attinormativi}[2026/04/26 v0.2 Classe per atti normativi italiani]

            % ————————————————————————–
            % Class options / Opzioni della classe
            % ————————————————————————–

            % Forward unknown options to book.
            % Inoltra le opzioni non riconosciute a book.
            \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
            \ProcessOptions\relax

            \LoadClass{book}

            % ————————————————————————–
            % Required packages / Pacchetti richiesti
            % ————————————————————————–

            \RequirePackage[T1]{fontenc}
            \RequirePackage[utf8]{inputenc}
            \RequirePackage[italian]{babel}
            \RequirePackage{microtype}
            \RequirePackage{xparse}
            \RequirePackage{titlesec}
            \RequirePackage{chngcntr}
            \RequirePackage{enumitem}
            \RequirePackage{hyperref}

            % ————————————————————————–
            % Numbering depth / Profondità di numerazione
            % ————————————————————————–

            \setcounter{secnumdepth}{6}
            \setcounter{tocdepth}{6}

            % ————————————————————————–
            % Hyperlinks / Collegamenti
            % ————————————————————————–

            % Keep links active but visually neutral.
            % Mantiene i link attivi ma graficamente neutri.
            \hypersetup{
            colorlinks=true,
            linkcolor=black,
            citecolor=black,
            urlcolor=black,
            pdfborder={0 0 0}
            }

            % ————————————————————————–
            % Structural names / Nomi strutturali
            % ————————————————————————–

            \newcommand*{\ANLibroName}{Libro}
            \newcommand*{\ANTitoloName}{Titolo}
            \newcommand*{\ANCapoName}{Capo}
            \newcommand*{\ANSezioneName}{Sezione}
            \newcommand*{\ANArticoloName}{Articolo}
            \newcommand*{\ANCommaName}{Comma}

            % Map book captions to normative terminology.
            % Adatta le denominazioni di book alla terminologia normativa.
            \addto\captionsitalian{%
            \renewcommand*{\partname}{\ANLibroName}%
            \renewcommand*{\chaptername}{\ANTitoloName}%
            }

            % ————————————————————————–
            % Counters / Contatori
            % ————————————————————————–

            % Main structural levels use Roman numerals.
            % I livelli strutturali principali usano numeri romani.
            \renewcommand*{\thepart}{\Roman{part}}
            \renewcommand*{\thechapter}{\Roman{chapter}}
            \renewcommand*{\thesection}{\Roman{section}}
            \renewcommand*{\thesubsection}{\Roman{subsection}}

            % Articles are numbered independently from sections.
            % Gli articoli sono numerati indipendentemente dalle sezioni.
            \counterwithout{subsubsection}{subsection}
            \renewcommand*{\thesubsubsection}{\arabic{subsubsection}}

            % Paragraphs implement commi and reset at each article.
            % I paragraph implementano i commi e si azzerano a ogni articolo.
            \counterwithin*{paragraph}{subsubsection}
            \renewcommand*{\theparagraph}{\arabic{paragraph}}

            % Auxiliary counter for article+comma references.
            % Contatore ausiliario per i riferimenti articolo+comma.
            \newcounter{articoloecomma}
            \renewcommand*{\thearticoloecomma}{art.~\thesubsubsection, c.~\theparagraph}

            % ————————————————————————–
            % Heading formats / Formati dei titoli
            % ————————————————————————–

            \titleformat{\part}[display]
            {\normalfont\Huge\bfseries\centering}
            {\ANLibroName~\thepart}
            {1ex}
            {}

            \titleformat{\chapter}[display]
            {\normalfont\huge\bfseries\centering}
            {\ANTitoloName~\thechapter}
            {1ex}
            {}

            \titleformat{\section}[display]
            {\normalfont\Large\bfseries\centering}
            {\ANCapoName~\thesection}
            {1ex}
            {}

            \titleformat{\subsection}[display]
            {\normalfont\large\bfseries\centering}
            {\ANSezioneName~\thesubsection}
            {1ex}
            {}

            \titleformat{\subsubsection}[display]
            {\normalfont\normalsize\bfseries\centering}
            {\ANArticoloName~\thesubsubsection}
            {0.5ex}
            {\itshape}

            \titleformat{\paragraph}[runin]
            {\normalfont\normalsize}
            {\theparagraph.}
            {0.75em}
            {}

            % ————————————————————————–
            % Heading spacing / Spaziature dei titoli
            % ————————————————————————–

            \titlespacing*{\part}{0pt}{0pt}{4ex}
            \titlespacing*{\chapter}{0pt}{2ex plus 1ex minus .2ex}{3ex}
            \titlespacing*{\section}{0pt}{2.5ex plus 1ex minus .2ex}{1.5ex}
            \titlespacing*{\subsection}{0pt}{2ex plus 1ex minus .2ex}{1ex}
            \titlespacing*{\subsubsection}{0pt}{2ex plus 1ex minus .2ex}{1ex}
            \titlespacing*{\paragraph}{0pt}{0.6ex plus .2ex minus .1ex}{0.75em}

            % ————————————————————————–
            % Cross references / Riferimenti incrociati
            % ————————————————————————–

            \newcommand*{\artref}[1]{art.~\ref{#1}}
            \newcommand*{\commaref}[1]{comma~\ref{#1}}
            \newcommand*{\artcommaref}[1]{\ref{a+c:#1}}

            % ————————————————————————–
            % Internal helpers / Comandi interni
            % ————————————————————————–

            % Automatic sectioning dispatcher.
            % Dispatcher per sezioni a numerazione automatica.
            \NewDocumentCommand{\ANsectionauto}{m m o}{%
            #1{#2}%
            \IfNoValueF{#3}{\label{#3}}%
            }

            % Manual-number sectioning dispatcher.
            % Dispatcher per sezioni a numerazione manuale.
            \NewDocumentCommand{\ANsectionmanual}{m m m m o}{%
            \begingroup
            \expandafter\renewcommand\csname the#2\endcsname{#3}%
            #1{#4}%
            \IfNoValueF{#5}{\label{#5}}%
            \endgroup
            }

            % ————————————————————————–
            % Public structural commands / Comandi strutturali pubblici
            % ————————————————————————–

            \NewDocumentCommand{\libro}{o m o}{%
            \IfNoValueTF{#1}
            {\ANsectionauto{\part}{#2}[#3]}
            {\ANsectionmanual{\part}{part}{#1}{#2}[#3]}%
            }

            \NewDocumentCommand{\titolo}{o m o}{%
            \IfNoValueTF{#1}
            {\ANsectionauto{\chapter}{#2}[#3]}
            {\ANsectionmanual{\chapter}{chapter}{#1}{#2}[#3]}%
            }

            \NewDocumentCommand{\capo}{o m o}{%
            \IfNoValueTF{#1}
            {\ANsectionauto{\section}{#2}[#3]}
            {\ANsectionmanual{\section}{section}{#1}{#2}[#3]}%
            }

            \NewDocumentCommand{\sezione}{o m o}{%
            \IfNoValueTF{#1}
            {\ANsectionauto{\subsection}{#2}[#3]}
            {\ANsectionmanual{\subsection}{subsection}{#1}{#2}[#3]}%
            }

            \NewDocumentCommand{\articolo}{o m o}{%
            \IfNoValueTF{#1}
            {\ANsectionauto{\subsubsection}{#2}[#3]}
            {\ANsectionmanual{\subsubsection}{subsubsection}{#1}{#2}[#3]}%
            }

            % ————————————————————————–
            % Commi / Commi
            % ————————————————————————–

            % A comma is implemented as a run-in paragraph.
            % Il comma è implementato come paragraph run-in.
            \NewDocumentCommand{\comma}{o +m o}{%
            \IfNoValueTF{#1}
            {%
            \paragraph{}#2\par
            \IfNoValueF{#3}{%
            \label{#3}%
            \refstepcounter{articoloecomma}%
            \label{a+c:#3}%
            }%
            }
            {%
            \begingroup
            \renewcommand*{\theparagraph}{#1}%
            \paragraph{}#2\par
            \IfNoValueF{#3}{%
            \label{#3}%
            \refstepcounter{articoloecomma}%
            \label{a+c:#3}%
            }%
            \endgroup
            }%
            }

            % ————————————————————————–
            % Lists / Liste
            % ————————————————————————–

            \newlist{lettere}{enumerate}{1}
            \setlist[lettere]{
            label=\alph*),
            ref=\alph*),
            leftmargin=2.5em,
            itemsep=0.2ex,
            topsep=0.5ex
            }

            \newlist{numeri}{enumerate}{1}
            \setlist[numeri]{
            label=\arabic*),
            ref=\arabic*),
            leftmargin=2.5em,
            itemsep=0.2ex,
            topsep=0.5ex
            }

            % ————————————————————————–
            % Support environments / Ambienti di servizio
            % ————————————————————————–

            \NewDocumentEnvironment{preambolo}{+b}
            {\chapter*{Preambolo}\addcontentsline{toc}{chapter}{Preambolo}#1}
            {}

            \NewDocumentEnvironment{relazione}{+b}
            {\chapter*{Relazione illustrativa}\addcontentsline{toc}{chapter}{Relazione illustrativa}#1}
            {}

            \endinput[/code]

          • #134062
            GuITstaff
            Amministratore del forum
              Up
              0
              Down
              ::

              In aggiunta, posto sotto il codice di test della versione e che uso per provare le varie modifiche che vengono fatte.

              Chiaramente nel richiamo della classe [code]\documentclass[11pt,a4paper]{../cls/attinormativi}[/code] dovrete indicare il punto corretto dove avete inserito il file attinormativi.cls. Io ho fatto una cartella \classenormativa e al suo interno una cartella \cls e una cartella \test all’interno della quale ho inserito il file test.txt. Pertanto “../cls/attinormativi” è il percorso da fare per trovare il file attinormativi.cls. Se il file .cls e .txt si trovano sulla stessa cartella non sarà necessario indicare il percorso.

              [code]
              \documentclass[11pt,a4paper]{../cls/attinormativi}
              \begin{document}
              \tableofcontents

              % TEST LIVELLI GERARCHICI
              \libro{Libro primo}
              \titolo{Titolo primo}
              \capo{Capo primo}
              \sezione{Sezione prima}

              % TEST ARTICOLI NORMALI
              \articolo{Oggetto}[art1]
              \comma{Primo comma}[c1]
              \comma{Secondo comma}[c2]

              % TEST COMMI BIS
              \comma[2-bis]{Comma bis}[c2bis]

              % TEST NUOVO ARTICOLO
              \articolo{Definizioni}[art2]
              \comma{Definizione generale}

              % TEST RIFERIMENTI
              \comma{Richiamo all’\artref{art1}.}
              \comma{Richiamo a \artcommaref{c2bis}.}

              % TEST ELENCHI
              \articolo{Elenco requisiti}
              \comma{Sono richiesti:}

              \begin{lettere}
              \item requisito uno;
              \item requisito due;
              \item requisito tre.
              \end{lettere}

              % TEST ELENCHI ANNIDATI
              \comma{Ulteriori ipotesi:}

              \begin{lettere}
              \item categoria principale:
              \begin{numeri}
              \item sottocategoria;
              \item seconda sottocategoria.
              \end{numeri}
              \end{lettere}

              % TEST LIVELLI SUPERIORI
              \capo{Secondo capo}
              \articolo{Nuovo articolo}
              \comma{Verifica reset numerazioni.}

              \end{document}[/code]

            • #134111
              GuITstaff
              Amministratore del forum
                Up
                0
                Down
                ::

                Mi sono messo di buona lena e ne ho approfittato per approfondire la costruzione delle classi.
                Credo di aver creato qualcosa che assomiglia a una classe e mi piacerebbe caricarla su Ctan.

                Tuttavia siccome l’idea è venuta a Mattiaca vorrei condividere la paternità della classe con lui/lei e anche condividere i progressi fatti nel codice.

                Esiste un modo per mettermi in contatto direttamente con lui?

                Grazie.

              • #134112
                GuITstaff
                Amministratore del forum
                  Up
                  0
                  Down
                  ::

                  Per metterti in contatto con Mattiaca e nello stesso tempo rispettare la privacy, chiedi al presidente del GuIt, Massimiliano Dominici (essendo presidente non può fruire della privacy 🙂 ) nonché curatore/impaginatore di ArsTecnica e massimo controllore/manutentore di questo sito. Io non ho questo potere.

                  Invece come direttore provvisorio di Arsetcnica ti chiedo di scrivere su questo argomento un bell’articolo per Ars; deadline per inviare l’articolo la fine di agosto di ogni anno, ma ti incoraggio a farlo quest’anno. Non sono molti quelli che scrivono su questi argomenti. Trovi la classe per scrivere articoli per Ars nella sezione ArsTeXnica di questo forum. Vi trovi anche la documentazione bilingue su come usare la classe.

                  Parlando invece del codice sul quale stai lavorando ricordati che per caricare il tuo lavoro su CTAN, devi seguire delle norme precise spiegate nell’apposito sito di CTAN. Ma avendo una lunga esperienza in merito, ti dico in due parole che cosa devi inviare a CTAN: un file zippato in stile PC (Windows); se usi una piattaforma diversa come un Mac o un Linux, ti consiglio di scaricare l’App gratuita YemuZIP dalla rete. funziona benissimo, almeno sul mio Mac; prima di salvare il file zip, verifica che sia selezionato il quadratino per salvare in modalità PC e tu abbia scelto la cartella dove salvare il file zippato.

                  Questo file zip deve contenere solo i file sorgente dei vari pacchetti, i relativi pdf, e uno o più README.txt file che specificano i modo di installare, la licenza, la data, l’autore, e simili.
                  Nota bene i file sorgente sono file in formato .dtx (documented TeX file) e per crearli devi usare il file di classe ltxdoc.cls, che hai già nell’installazione del tuo TeX Live sul tuo calcolatore. Il file deve contenere prima una sezione che serve per estrarre solo il codice senza la sua documentazione e la seconda parte serve per produrre il sorgente commentato avvolto dalla classe ltxdoc.cls.

                  Non è banale creare un file .dtx; puoi averne un’idea leggendoti la guida tematica specifica contenuta nella sezione Documentazione di questo forum: IntroCreaClassi.pdf; contiene in fondo non pochi esempi d’uso di ltxdoc.cls e ti consiglio vivamente di studiarti bene quegli esempi, perché capendone la logica, comporre il file .dtx della tua classe diventa quasi banale. I commenti che ci scrivi dentro sono utili per te e per eventuali lettori del corrispondente file PDF che contiene il comenti intercalati al codice.

                  Se non ti va di commentare tutto il codice in inglese, scrivi almeno un preambolo in inglese e il resto in italiano visto che la sua utilità probabilmente serve solo a utenti italiani; ma almeno chi è curioso e non è italiano riesce a capire di che cosa si tratta.

                  Il sito di CTAN richiede che tu carichi il file usando una opportuna schermata, dove fra le altre cose puoi scrivere in inglese un breve abstract. Nonostante queste formalità ti garantisco che è frustrante aprire con texdoc la documentazione di pacchetti dal nome interessante, e scoprire che essa è scritta solo in cinese o in arabo; non ho nulla in contrario, ma non conosco che pochissime lingue e fra queste non c’è né il cinese né l’arabo 🙁

                  Buon lavoro per Ars e per CTAN

                • #134113
                  GuITstaff
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::

                    Perfetto. Mi hai dato un sacco di informazioni utili.
                    In effetti ho creato il file .cls, un manuale in italiano e uno in inglese, un file readme con un abstract in italiano e uno in inglese e anche un file di esempi, ma andando sul sito CTAN ho visto che richiedono il file .dtx ed ero in difficoltà. Adesso mi metto a studiare le fonti che mi hai suggerito.
                    Ho già scritto un articolo su Ars in merito alla redazione degli atti giuridici e, se ritieni che la cosa sia interessante anche per la redazione di atto normativi, regolamenti etc. mi metto volentieri a scrivere un articolo descrivendo la classe. Potrebbe essere utile per chi si accinge a scrivere regolamenti, regole di condotta, vademecum, etc.

                    Non so se posso approfittare della tua esperienza girandoti il file .cls per capire se si tratta di un lavoro presentabile; è la prima volta che mi cimento, quindi non ho alcuna esperienza, pur avendo letto parecchio (naturalmente partendo da “Introduzione alla creazione di file di classe” e soprattutto studiato i lavori di altri per capirne la logica). Tra l’altro mi sono venute già alcune idee per svilupparla ulteriormente, ma per ora vorrei lavorare sul caricamento su Ctan e la questione del file .dtx è quella che mi mette più in difficoltà.

                    Per il contatto con Mattiaca spero che torni nel forum e legga il mio post, così da superare il problema privacy. In ogni caso scriverò a Dominici. Credo sia doveroso dare la paternità della classe anche a Mattiaca.

                    Grazie ancora. A presto.

                  • #134114
                    GuITstaff
                    Amministratore del forum
                      Up
                      0
                      Down
                      ::

                      Se leggi Ars, via nella sezione ArseTeXnica di questo forum e hai a disposizione tutti i fascicoli in PDF; Dominici ha scritto, talvolta insieme a Pignalberi degli articoli, Nella firma disolito stampata alla fine dell’articolo c’è anche l’indirizzo Email.

                    • #134115
                      GuITstaff
                      Amministratore del forum
                        Up
                        0
                        Down
                        ::

                        Ciao, non credo di avere le competenze né la costanza per sviluppare un progetto informatico del genere. Se vuoi citarmi tra i contributori per me va bene.

                      • #134116
                        GuITstaff
                        Amministratore del forum
                          Up
                          0
                          Down
                          ::

                          Anch’io, un paio di anni fa, mi ero cimentato per uno stile [tt]biblatex[/tt] riguardante materiale giuridico (soprattutto per citare la giurisprudenza). Avevo anche creato un repository privato, con l’idea di renderlo pubblico e pubblicare la prima release su [tt]ctan[/tt]. Purtroppo ero partito col piede sbagliato e mi sono trascinato alcuni problemi di difficile gestione (riguardavano il modello dei dati – datamodel – di alcuni campi).
                          Guarderò anch’io con interesse questo progetto, magari mi spronerà a rimettere mano al mio lavoro…

                        • #134117
                          GuITstaff
                          Amministratore del forum
                            Up
                            0
                            Down
                            ::

                            Anch’io, un paio di anni fa, mi ero cimentato per uno stile [tt]biblatex[/tt] riguardante materiale giuridico (soprattutto per citare la giurisprudenza). Avevo anche creato un [i]repository[/i] privato, con l’idea di renderlo pubblico e pubblicare la prima [i]release[/i] su [tt]ctan[/tt]. Purtroppo ero partito col piede sbagliato e mi sono trascinato alcuni problemi di difficile gestione (riguardavano il modello dei dati – [i]datamodel[/i] – di alcuni campi).
                            Guarderò anch’io con interesse questo progetto, magari mi spronerà a rimettere mano al mio lavoro…

                            A questo proposito segnalo il pacchetto biblatex-accursius di Francesco Contini, presente nella distribuzione Texlive https://ctan.org/pkg/biblatex-accursius che si occupa della citazione di giurisprudenza e bibliografia per i testi giuridici italiani.

                          • #134442
                            Federico Gallo
                            Partecipante
                              Up
                              0
                              Down
                              ::

                              Per chi volesse dare un’occhiata, il lavoro è terminato con la pubblicazione della classe “attinormativi”.

                              É stata inserita in texlive (ma non la vedo in Miktex).

                              Qui il link a Ctan: https://ctan.org/pkg/attinormativi

                              • Questa risposta è stata modificata 1 mese, 1 settimana fa da Federico Gallo.
                              • Questa risposta è stata modificata 1 mese, 1 settimana fa da Federico Gallo.
                          Visualizzazione 10 filoni di risposte
                          • Devi essere connesso per rispondere a questo topic.

                          Go to top