Seconda approssimazione: ora funziona anche la prefazione.
`\documentclass[a4paper]{book}
\usepackage[italian]{babel}
\usepackage{etoolbox}
\usepackage{indentfirst}
\usepackage{titlesec,itnumpar}
%%% Intestazioni dei capitoli
\titleformat{name=\chapter}[display]
{\filcenter}
{\Large\MakeUppercase{\chaptertitlename\ \ordinalem{chapter}.}}
{1.5pc}
{\large\MakeUppercaseDot}
[{\makebox[4em]{\hrulefill}}]
\newcommand{\MakeUppercaseDot}[1]{\MakeUppercase{#1}.}
\titleformat{name=\chapter,numberless}[display]
{\filcenter}
{}
{0pt}
{\Large\MakeUppercase}
[{\makebox[4em]{\hrulefill}}]
\makeatletter
%%% Teniamo memoria del rientro
\AtBeginDocument{\edef\keep@parindent{\the\parindent}}
%%% Impostiamo a zero il rientro globale nell'indice
\preto\tableofcontents{\begingroup\setlength\parindent\z@}
\appto\tableofcontents{\endgroup}
%%% Aggiungiamo qualcosa a \frontmatter e \mainmatter
\appto\frontmatter{\addtocontents{toc}{\let\protect\l@chapter\protect\l@chapterfront}}
\appto\mainmatter{\addtocontents{toc}{\let\protect\l@chapter\protect\l@chaptermain}}
%%% Un condizionale per aggiungere i trattini
\newif\if@firstPara
%%% Definiamo \keep@page in modo che LaTeX ne conosca sempre una definizione
\let\keep@page\relax
%%% Definiamo l'effetto di \l@Para:
% se è seguito da un altro \l@Para aggiungiamo una sezione,
% altrimenti finiamo la composizione del capitolo
\newcommand{\l@Para}[1]{%
\@ifnextchar\l@Para{\add@Para{#1}}{\add@Para{#1}\done@chapter}}
%%% Definiamo \l@chapterfront (occorre qualcos'altro se si adopera hyperref)
\newcommand{\l@chapterfront}[2]{%
\textsc{#1}\leaders\hbox to 1em{\hss.\hss}\hfill
Pag.\makebox[2em][r]{\textsc{#2}}%
\par\addvspace{2\bigskipamount}}
%%% Definiamo \l@chaptermain (occorre qualcos'altro se si adopera hyperref)
% 1. teniamo in mente il numero di pagina
% 2. cominciamo una minipage larga come la giustezza meno 2em
% 3. nella minipage reimpostiamo il rientro al valore usuale
% 4. ridefiniamo localmente \numberline in modo che componga l'intestazione:
% a. prima riga “Capitolo
% b. seconda riga in caratteri lineari neri
% 5. impostiamo a vero il condizionale
\newcommand{\l@chaptermain}[2]{%
\def\keep@page{#2}%
\filbreak\begin{minipage}{\dimexpr\textwidth-2em\relax}
\parindent\keep@parindent
\def\numberline##1{%
\textsc{\chaptername}\ \MakeUppercase{\romannumeral##1}.%
\\[\medskipamount]
\sffamily\bfseries}
\begin{center}
#1.
\end{center}
\par\@firstParatrue}
%%% Definiamo l'aggiunta di paragrafi
% 1. se siamo alla prima, impostiamo il condizionale a falso
% 2. altrimenti aggiungiamo il punto di chiusura e il trattino
% 3. scriviamo il titolo del paragrafo
\def\add@Para#1{\if@firstPara\@firstParafalse\else.~—\ \fi#1}
%%% Definiamo la chiusura del capitolo nell'indice
% 1. puntini fino ad arrivare a fine riga, ma con Pag.
% 2. una box di dimensione nulla che contiene una box
% di dimensione 2em dove scriviamo il numero di pagina
% che così sporgerà
\def\done@chapter{\leaders\hbox to 1em{\hss.\hss}\hfill
Pag.\makebox[0pt][l]{\makebox[2em][r]{\keep@page}}\end{minipage}%
\par\addvspace{2\bigskipamount}}
%%% Un contatore legato ai capitoli
\newcounter{Para}[chapter]
%%% Il comando \Para per iniziare un paragrafo
% 1. Chiudiamo il capoverso e facciamo scattare il contatore
% 2. Scriviamo la corretta annotazione per l'indice
% 3. Scriviamo il numero in carattere lineare nero
\newcommand{\Para}[1]{\par\refstepcounter{Para}
\addtocontents{toc}{\protect\l@Para{#1}}\textsf{\bfseries\arabic{Para}.}\ \ignorespaces}
\makeatother
%%% FINE
\usepackage{lipsum}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Prefazione}
\lipsum
\mainmatter
\chapter{Nozioni preliminari}
\Para{Dispersione della luce}\lipsum[1]
\Para{Rifrazione e sue leggi}\lipsum[2]
\Para{Decomposizione e ricomposizione della luce solare}\lipsum[3]
\Para{Spettro}\lipsum[4]
\chapter{Classificazione dei colori}
\Para{Cerchio cromatico di Chevreul}\lipsum[5]
\Para{Posizione occupata dai diversi colori puri nello spettro}\lipsum[6]
\end{document}`
La differenza è che ora i capitoli nel \frontmatter appaiono in modo diverso nell’indice da quelli del \mainmatter.
Ciao
Enrico