CTAN Comprehensive TeX Archive Network

Directory macros/latex/contrib/attinormativi

README.md

attinormativi

class for typesetting Italian normative acts: municipal regulations, resolutions, statutes, ordinances and similar documents.

Version 1.2 — 25 May 2026 Author: Federico Gallo <gallofede75@gmail.com> Licence: LPPL 1.3c (maintained)


Description

The attinormativi class provides a complete typographic framework for Italian normative acts. It manages the hierarchical structure typical of such documents (books, titles, chapters, sections, articles, paragraphs), the institutional title page, dedicated indexes (articles, annexes, definitions), draft mode with editorial notes, and optional integration with the cleveref package for Italian-language cross-references.

From version 1.2 onwards, the class supports the production of PDFs conforming to the PDF/UA-1 standard (ISO 14289-1) via the accessible class option, in compliance with Directive (EU) 2016/2102. This feature requires Lua and Live 2023 or later; all other engines and all other class features remain available without restrictions with pdf, and Lua.

The class is built on top of the standard book class.


Package contents

attinormativi.cls Class file attinormativi.dtx Documented source attinormativi.ins Installation file attinormativi-doc.pdf Class manual attinormativi-esempi.tex Usage example (source) attinormativi-esempi.pdf Usage example (compiled) README.md This file LEGGIMI.md Readme in Italian LICENSE Text of the LPPL 1.3c licence


Requirements

Standard features

Live 2020 or later (or equivalent MiK distribution). Supported engines: pdf, , Lua.

Required packages (all included in standard distributions): iftex, tgtermes, tgheros, tgcursor (pdf only), fontspec (/Lua only), geometry, babel (with Italian language support), microtype, xcolor, titlesec, chngcntr, enumitem, hyperref.

For pdf, inputenc and fontenc are also required; both are included in the kernel of any standard installation.

The xparse package is loaded automatically only on installations with a kernel older than 1 October 2020; on later versions it is superfluous as the corresponding commands are native.

The optional cleveref package enables automatic Italian-language formatting of cross-references.

The accessible option (PDF/UA-1)

The accessible option requires all three of the following prerequisites:

  • Lua as the typesetting engine. With pdf or , PDF/UA tagging is not fully supported by the current kernel: the class issues a \ClassWarning and automatically disables tagging; compilation continues without fatal errors but the resulting PDF is not tagged.
  • Live 2023 or later ( kernel ≥ 2023-06-01), which includes the automatic tagging framework and the tagpdf package.
  • The \DocumentMetadata declaration inserted before \documentclass in the .tex file (see the section "Usage with the accessible option" below). If \DocumentMetadata is absent, the class issues a \ClassWarning and automatically disables tagging; compilation again continues without fatal errors.

Fonts

The class uses the Gyre family, available in any standard Live or MiK installation without additional dependencies.

  • Serif: Gyre Termes (Times New Roman clone)
  • Sans-serif: Gyre Heros (Helvetica clone)
  • Monospaced: Gyre Cursor (Courier clone)

With pdf, the packages tgtermes, tgheros and tgcursor are loaded. With and Lua, the corresponding OpenType fonts are selected via fontspec.


Installation

Live and MiK (normal case)

The class is distributed via CTAN and is included in Live and MiK. If you use one of these distributions, no manual file copying is required: simply update your packages using the distribution manager.

With Live (from the terminal):

tlmgr update attinormativi

With MiK: open the MiK Console, go to «Updates» and update the attinormativi package, or run from the terminal:

miktex packages update attinormativi

Local installation for a single project

For occasional use, it is sufficient to copy attinormativi.cls into the same folder as the .tex file to be compiled, without modifying the TEXMF tree.

Regenerating from source

To regenerate attinormativi.cls from the documented source:

latex attinormativi.ins

Basic usage

\documentclass[draft, serif, simplex, 12pt]{attinormativi}

\autoritaatto{Municipality of Esempiopoli}
\tipoatto{Regulation}
\numeroatto{3}
\dataatto{17 May 2026}
\titoloatto{Regulation for the management of public spaces}
\oggettoatto{Rules governing the use and temporary concession of municipal public spaces}

\begin{document}
\frontespizioatto
\bozzainfo
\tableofcontents
\indicearticoli

\titolo{General provisions}

\articolo{Purpose and scope}[art:purpose]
\comma{This regulation governs the use of public spaces owned by
the Municipality of Esempiopoli.}

\entrataInVigore{This regulation enters into force on the day
following its publication on the official online notice board.}

\end{document}

The complete documentation is available in attinormativi-doc.pdf. Usage examples are in attinormativi-esempi.pdf.


Usage with the accessible option

To produce a PDF/UA-1 compliant PDF, add the \DocumentMetadata declaration before \documentclass and include the accessible option:

\DocumentMetadata{
  pdfversion  = 1.7,
  pdfstandard = UA-1,
  lang        = it-IT,
}
\documentclass[accessible]{attinormativi}

The standard class options (bozza, serif, sansserif, simplex, duplex, margin options) are all compatible with accessible.

The conformance of the resulting PDF can be verified with PAC 2024 (PDF Accessibility Checker, free, Windows) or with Adobe Acrobat Pro (Tools → Accessibility → Full Check).


Class options

Option Description
bozza Draft mode: editorial notes become visible
accessible PDF/UA-1 structural tagging — Lua + Live 2023+ only
serif Gyre Termes — all engines (default)
sansserif Gyre Heros — all engines
simplex Single-sided layout (default); alias: oneside
duplex Double-sided layout with asymmetric margins; alias: twoside
left=<dim> Overrides the left margin (default: 35 mm)
right=<dim> Overrides the right margin (default: 30 mm)
top=<dim> Overrides the top margin (default: 25 mm)
bottom=<dim> Overrides the bottom margin (default: 25 mm)

Compilation workflow

Standard workflow (all engines)

At least two compilation passes are needed to populate all indexes correctly. Replace lualatex with pdflatex or xelatex according to the engine of your choice:

lualatex document.tex
makeindex -s gind.ist document.idx
makeindex -s gglo.ist -o document.gls document.glo
lualatex document.tex
lualatex document.tex

Workflow with the accessible option (Lua only)

With the accessible option active, compilation must use Lua exclusively. Running makeindex for the secondary indexes (.art, .alg, .dfn) is not required, as they are updated automatically:

lualatex document.tex
lualatex document.tex
lualatex document.tex

Corrupted auxiliary files

If compilation is interrupted abnormally, the .aux file may be truncated and the subsequent compilation will produce the error:

File ended while scanning use of \@writefile

The solution is to delete all auxiliary files (.aux, .toc, .idx, .glo, .art, .alg, .dfn, .out) and start again from scratch.


Licence

This work may be distributed and/or modified under the conditions of the Project Public License, either version 1.3c or (at your option) any later version.

https://www.latex-project.org/lppl.txt

This work has the LPPL maintenance status maintained. The Current Maintainer is Federico Gallo <gallofede75@gmail.com>.


Version history

v1.2 (25 May 2026) Migration of fonts from the Latin Modern family to the Gyre family: Gyre Termes (serif), Gyre Heros (sans-serif), Gyre Cursor (monospaced). With pdf the packages tgtermes, tgheros and tgcursor are loaded; with and Lua the corresponding OpenType fonts are selected via fontspec. Added accessible option for PDF/UA-1 structural tagging via tagpdf and the kernel tagging framework (requires Lua + Live 2023+). Structured tagging of the title page (roles Title and P), paragraphs (role P), normative lists (role OL), the definizioni environment (roles DL/DT/DD), the preambolo and relazione environments (role Sect), annexes (roles Sect/Caption) and secondary indexes (role TOC). Editorial notes are marked as Artifact. The structural hierarchy \libro\articolo is mapped to heading roles H1H5.

v1.1 (17 May 2026) First stable release with Latin Modern fonts, duplex option, customisable margin options, \maketitle alias, cleveref support with Italian names, and various typographic corrections.

v1.0 (8 May 2026) First public release.

Download the contents of this package in one zip archive (314.6k).

attinormativi – A complete typographic framework for Italian normative acts

The attinormativi class provides a complete typographic framework for Italian normative acts. It manages the hierarchical structure typical of such documents (books, titles, chapters, sections, articles, paragraphs), the institutional title page, dedicated indexes (articles, annexes, definitions), a draft mode with editorial notes, and optional integration with the cleveref package for Italian-language cross-references. The class is built on top of the standard book class and is compatible with pdf, , and Lua.

Packageattinormativi
Version1.2 2026-05-25
LicensesThe Project Public License 1.3c
Copyright2026 Federico Gallo
MaintainerFederico Gallo
Contained inTeX Live as attinormativi
TopicsLegal
Italian
Title page
Class
...
Guest Book Sitemap Contact Contact Author