%%
%% This is file `toptesi.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% toptesi.dtx  (with options: `topsty')
%%   ______________________________________________________
%%   The TOPtesi bundle
%%   Copyright (C) 1989-2025 Claudio Beccari
%%   All rights reserved
%% 
%%   License information appended
%% 
\NeedsTeXFormat{LaTeX2e}[2018/01/01]
\ProvidesPackage{toptesi}[%
2025-01-15 v.6.4.07
Extension for toptesi.cls]


\def\TRON{\tracingcommands \tw@ \tracingmacros \tw@}
\def\TROFF{\tracingcommands\z@ \tracingmacros \z@}
\let\TROF\TROFF

\newif\ifevenboxes \evenboxesfalse
\newif\if@utoretitolo \@utoretitolofalse
\newif\if@ldstyle \@ldstylefalse
\newif\if@xivpt \@xivptfalse
\newif\iflibro \librofalse
\newif\ifT@Pfrontespizio \T@Pfrontespiziofalse
\newif\ifTOPfront \TOPfronttrue
\newif\ifScuDo \ScuDofalse
\newif\ifmonografia\monografiafalse
\newif\iftriennale\monografiafalse
\newif\ifmagistrale\magistralefalse
\newif\ifdottorato\dottoratofalse
\newif\ifsecondaria\secondariafalse
\newif\ifcustom\customfalse
\newif\ifTOPnumerazioneromana\TOPnumerazioneromanafalse
\newif\ifTOPnocenterfolio \TOPnocenterfoliofalse
\newif\ifTOPnocenterhead \TOPnocenterheadfalse
\newif\ifTOPfolioinhead \TOPfolioinheadfalse
\newlength\T@Pbinding
\def\setbindingcorrection#1{\T@Pbinding=#1}
\newif\if@binding \@bindingfalse
\newif\ifchapterbibliography \chapterbibliographyfalse
\newif\ifclassica \classicafalse

\IfPackageLoadedF{xkeyval}{\RequirePackage{xkeyval}}
\IfPackageLoadedF{scrextend}{\RequirePackage{scrextend}}
\IfPackageLoadedF{iftex}{\RequirePackage{iftex}}
\IfPackageLoadedF{xspace}{\RequirePackage{xspace}}
\IfPackageLoadedF{xparse}{\RequirePackage{xparse}}

\DeclareOptionX{cucitura}[7mm]{\setlength\T@Pbinding{#1}\@bindingtrue}
\DeclareOptionX{corpo}[10pt]{\unless\ifdim#1<\@xivpt\p@\@xivpttrue\fi
   \changefontsizes{#1}}
\DeclareOptionX{chapterbib}[true]{\chapterbibliographtrue}
\DeclareOptionX{evenboxes}[true]{\evenboxestrue}
\DeclareOptionX{libro}[true]{\librotrue}
\DeclareOptionX{stile}[standard]{\setkeys{toptesi}{stile=#1}}
\define@choicekey{toptesi}{stile}[\val\nr]{standard,classica,trieste}{%
    \ifcase\nr
       \typeout{valore=\number\nr}\classicafalse
    \or
       \typeout{valore=\number\nr}\classicatrue
    \or
       \typeout{valore=\number\nr}\classicatrue
    \else
       \typeout{valore=\number\nr}\classicafalse
    \fi}
\DeclareOptionX{autoretitolo}[true]{\ifclassica\@utoretitolotrue\fi}
\DeclareOptionX{oldstyle}[true]{\ifclassica\@ldstyletrue\fi}
\DeclareOptionX{nocenterfolio}[true]%
  {\unless\ifclassica\TOPnocenterfoliotrue\fi}
\DeclareOptionX{nocenterhead}[true]%
  {\unless\ifclassica\TOPnocenterheadtrue\fi}
\DeclareOptionX{folioinhead}[true]{\unless\ifclassica\TOPfolioinheadtrue\fi}
\DeclareOptionX{pdfa}{\PackageWarning{toptesi}{%
    ***********************************************\MessageBreak%
    Option pdfa ignored.\MessageBreak%
    Read documentation toptesi-it-*.pdf,\MessageBreak%
    because package pdfx has changed\MessageBreak%
    ***********************************************\MessageBreak%
    }}

\DeclareOptionX{numerazioneromana}[true]{\TOPnumerazioneromanatrue}

\newcommand\NoValidTipo[1]{%
\PackageError{toptesi}{Option value `#1' not defined\MessageBreak
}{Type `X' to exit and check your input}}

\DeclareOptionX{tipotesi}[topfront]{%
  \ifstrequal{#1}{frontespizio}{\TOPfrontfalse\T@Pfrontespiziotrue
    \AtEndOfPackage{\RequirePackage{frontespizio}}%
    }{%
    \ifstrequal{#1}{topfront}{\TOPfronttrue\T@Pfrontespiziofalse
      \AtEndOfPackage{\RequirePackage{topfront}}%
    }{%
      \TOPfrontfalse\T@Pfrontespiziofalse
        \ifstrequal{#1}{custom}{\relax}{%
          \ifstrequal{#1}{triennale}{%
             \def\TPT@tipo{toptesi-monografia}% opz: monografia
          }{\ifstrequal{#1}{secondaria}{% opz: secondaria
             \edef\TPT@tipo{toptesi-sss}%
            }{%
             \edef\TPT@tipo{toptesi-#1}% opz: triennale,
            }%                         % magistrale, dottorale
          }%
          \AtEndOfPackage{%
            \IfFileExists{\TPT@tipo.sty}%
              {\RequirePackage{\TPT@tipo}}{\NoValidTipo{#1}}%
          }%
        }% opz: custom
      }% opz: topfront
    }% opz: frontespizio
  }
\ProcessOptionsX*

\RequirePackage{graphicx}
\RequirePackage{etoolbox}
\newcommand*\ifempty[1]{\edef\@tempA{#1}%
\ifx\@tempA\@empty\expandafter\@firstoftwo
  \else\expandafter\@secondoftwo\fi}
\newlength\interno
\normalsize% necessary to have the correct value for \baselineskip
\textheight=\paperwidth
\setlength{\textheight}{%
\dimexpr\textheight*\baselineskip/\baselineskip+\topskip}
\iflibro
  \unless\if@xivpt
    \textwidth=\dimexpr0.70711\paperwidth\relax
    \setlength\interno{\dimexpr\paperwidth/8}
    \footskip=1.5\baselineskip
  \else
    \textwidth=\dimexpr0.79549875\paperwidth\relax
      \setlength\interno{\dimexpr\paperwidth/9}
      \footskip=2\baselineskip
  \fi
\else
  \unless\if@xivpt
    \textwidth=\dimexpr0.70711\paperwidth\relax
    \setlength\interno{\dimexpr\paperwidth/6}
    \footskip=1.5\baselineskip
  \else
    \textwidth=\dimexpr0.79549875\paperwidth\relax
      \setlength\interno{\dimexpr\paperwidth/7}
      \footskip=2\baselineskip
  \fi
\fi

\iflibro
  \interno=\dimexpr\paperwidth-\textwidth\relax
  \oddsidemargin=0.414214\interno\relax
  \evensidemargin=\dimexpr\paperwidth-\textwidth-\oddsidemargin\relax
\else
  \oddsidemargin=\dimexpr(\paperwidth-\textwidth)/2\relax
  \evensidemargin=\oddsidemargin
\fi
\marginparwidth=\dimexpr\evensidemargin-2.5\marginparsep
\oddsidemargin=\dimexpr\oddsidemargin-1in\relax
\evensidemargin=\dimexpr\evensidemargin-1in\relax
\AtBeginDocument{%
\if@binding
 \PackageInfo{TOPtesi}{Margin width recalculation}
 \PackageInfo{TOPtesi}{Before:\MessageBreak
 oddsidemargin\space\space \the\oddsidemargin\MessageBreak
 evensidemargin\space \the\evensidemargin}
 \advance\oddsidemargin \T@Pbinding
 \advance\evensidemargin -\T@Pbinding
 \advance\marginparwidth -\T@Pbinding
 \PackageInfo{TOPtesi}{After:\MessageBreak
 oddsidemargin\space\space \the\oddsidemargin\MessageBreak
 evensidemargin\space \the\evensidemargin}
\fi}

\def\lapagina{\thepage}
\mark{{}{}}
\newbox\@intesta
\def\ps@plain{\let\@mkboth\@gobbletwo
\let\@oddhead\@empty\let\@evenhead\@empty%
\if@twoside
  \ifTOPnocenterfolio
    \def\@oddfoot{\makebox[\textwidth][r]{\scshape\lapagina}}
    \def\@evenfoot{\makebox[\textwidth][l]{\scshape\lapagina}}
  \else
    \def\@oddfoot{\makebox[\textwidth][c]{\scshape\lapagina}}%
    \def\@evenfoot{\makebox[\textwidth][c]{\scshape\lapagina}}%
  \fi
\else
  \ifTOPnocenterfolio
    \def\@oddfoot{\makebox[\textwidth][r]{\scshape\lapagina}}%
    \let\@evenfoot\@oddfoot
  \else
  \def\@oddfoot{\makebox[\textwidth][c]{\scshape\lapagina}}%
  \let\@evenfoot\@oddfoot
  \fi
\fi
}

\if@twoside % two side
 \def\ps@headings{\let\@mkboth\markboth% autoretitolo
 \let\@oddhead\@empty\let\@evenhead\@empty
 \unless\ifTOPfolioinhead % folio in head
   \ifTOPnocenterfolio
     \def\@oddfoot{\makebox[\textwidth][r]{\scshape\lapagina}}
     \def\@evenfoot{\makebox[\textwidth][l]{\scshape\lapagina}}
   \else
     \def\@oddfoot{\makebox[\textwidth][c]{\scshape\lapagina}}
     \def\@evenfoot{\makebox[\textwidth][c]{\scshape\lapagina}}
   \fi
   \def\@oddhead{\setbox\@intesta\hbox{\footnotesize\slshape
        \rightmark}%
   \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
   \ifTOPnocenterhead
     \underline{\makebox[\textwidth][r]{\footnotesize\slshape
        \strut\rightmark}}%
   \else
     \underline{\makebox[\textwidth][c]{\footnotesize\slshape
        \strut\rightmark}}%
   \fi}%
   \def\@evenhead{\setbox\@intesta\hbox{\footnotesize\slshape
        \rightmark}%
   \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi%
   \ifTOPnocenterhead
     \underline{\makebox[\textwidth][r]{\footnotesize\slshape
        \strut\leftmark}}%
   \else
     \underline{\makebox[\textwidth][c]{\footnotesize\slshape
        \strut\leftmark}}%
   \fi}%
 \else % folio in foot
   \let\@oddfoot\@empty\let\@evenfoot\@empty
   \def\@oddhead{\setbox\@intesta\hbox{\footnotesize\slshape
        \rightmark}%
   \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi%
   \ifTOPnocenterhead
     \underline{\makebox[\textwidth][r]{\footnotesize\slshape
        \strut\rightmark}}\rlap{\quad\scshape\lapagina}%
   \else
     \underline{\makebox[\textwidth][c]{\footnotesize\slshape
        \strut\rightmark}}\rlap{\quad\scshape\lapagina}%
   \fi}
   \def\@evenhead{\setbox\@intesta\hbox{\footnotesize\slshape
        \rightmark}%
   \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
   \ifTOPnocenterhead
     \underline{\llap{\scshape\lapagina\quad}%
     \makebox[\textwidth][l]{\footnotesize\slshape\strut\rightmark}}%
   \else
     \underline{\llap{\scshape\lapagina\quad}%
     \makebox[\textwidth][c]{\footnotesize\slshape\strut\rightmark}}%
   \fi}
 \fi
 \def\chaptermark##1{\markboth{\thechapter\ -- ##1}{\thechapter\ -- ##1}}
 \def\sectionmark##1{\markright{\ifnum\c@secnumdepth>\z@
 \thesection\ -- \fi ##1}}%
 }
\else% oneside
 \def\ps@headings{%
 \let\@mkboth\markboth\let\@oddhead\@empty\let\@evenhead\@empty
    \let\@oddfoot\@empty\let\@evenfoot\@empty
   \def\@evenfoot{}\def\@evenhead{}%
 \unless\ifTOPfolioinhead % folio in head
   \ifTOPnocenterfolio
     \def\@oddfoot{\makebox[\textwidth][r]{\scshape\lapagina}}
   \else
     \def\@oddfoot{\makebox[\textwidth][c]{\scshape\lapagina}}
   \fi
   \def\@oddhead{%
     \setbox\@intesta\hbox{\footnotesize\slshape
          \rightmark}%
     \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
     \ifTOPnocenterhead
       \underline{\makebox[\textwidth][r]{\footnotesize\slshape
          \strut\rightmark}}%
     \else
       \underline{\makebox[\textwidth][c]{\footnotesize\slshape
          \strut\rightmark}}%
     \fi
   }%
 \else % folio in foot
    \let\@oddfoot\@empty\let\@evenfoot\@empty
   \def\@oddhead{\setbox\@intesta\hbox{\footnotesize\slshape
        \rightmark}%
   \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
   \ifTOPnocenterhead
     \underline{\makebox[\textwidth][r]{\footnotesize\slshape
        \strut\rightmark}}\makebox[\z@][l]{\enspace\scshape\lapagina}%
   \else
     \underline{\makebox[\textwidth][c]{\footnotesize\slshape
        \strut\rightmark}}\makebox[\z@][l]{\enspace\scshape\lapagina}%
   \fi}
 \fi
 \def\chaptermark##1{\markright{\thechapter\ -- ##1}}%
 }
\fi

\def\headWarn#1{\PackageWarning{toptesi}{%
*******************************************\MessageBreak
   THE HEADING IS TOO LONG\MessageBreak
   Use the optional argument of command \string#1\MessageBreak
   See the LaTeX Handbook (1994) on section C.4.1\MessageBreak
*******************************************\MessageBreak}}
\renewcommand\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak
      \hb@xt@\@pnumwidth{\hss\ifPDFTeX\normalfont\fi\scshape{#2}}\par
      \penalty\@highpenalty
    \endgroup
  \fi}

\newif\iffigurespage
\newif\iftablespage
\newif\ifnumeriromani
\newif\if@mainmatter
\newif\iffrontmatter
\def\frontmatter{\clearpage\ps@plain\@mainmatterfalse
  \ifTOPnumerazioneromana\numeriromanitrue\fi
  \frontmattertrue\@openrightfalse\c@secnumdepth=-2\relax
}

\def\mainmatter{\@mainmattertrue
\if@twoside\@openrighttrue\fi
  \ifTOPnumerazioneromana\numeriromanifalse\fi
  \frontmatterfalse
  \c@secnumdepth=2
  \clearpage\ps@headings
  \ifTOPnumerazioneromana\pagenumbering{arabic}\fi
}
\newcommand\backmatter{\cleardoublepage[empty]%
\@mainmatterfalse
\setcounter{secnumdepth}{-1}\if@twoside\@openrightfalse\fi}

\AtBeginDocument{%
  \ifTOPnumerazioneromana\pagenumbering{roman}\fi\frontmatter
}
\figurespagefalse
\tablespagefalse

\let\ps@blank\ps@plain
\newcommand*\blankpagestyle[1]{%
   \expandafter\let\expandafter\ps@blank\csname ps@#1\endcsname}
\renewcommand\cleardoublepage[1][blank]{\clearpage
\unless\ifodd\value{page}
   \if@twoside
      \if@openright
         \null\thispagestyle{#1}\clearpage
   \fi\fi\fi}

\def\sommario{%
 \iffrontmatter\else\frontmattertrue\fi
 \chapter*{\summaryname}}
\let\summary\sommario

\def\ringraziamenti{%
 \iffrontmatter\else\frontmattertrue\fi
 \chapter*{\acknowledgename}}
\let\acknowledgements\ringraziamenti

\newenvironment{pdfxmetadata}{%
\VerbatimOut{\jobname.xmpdata}}{\endVerbatimOut}

\newcount\TOPsecnumdepth
\newif\iftoc

\RenewDocumentCommand{\chapter}{s O{#4} O{#2} m O{plain}}{%
  \if@openright\cleardoublepage
    \else\clearpage\fi
  \thispagestyle{#5}%
  \global\@topnum\z@
  \@afterindentfalse
\IfBooleanTF{#1}{%
  \TOPsecnumdepth=\c@secnumdepth
  \c@secnumdepth=-3\relax
  \tocfalse
}{%
  \iffrontmatter\mainmatter\fi
  \toctrue
}%
  \ifnum \c@secnumdepth >\m@ne
    \if@mainmatter % where \if@mainmatter is defined
                   % (e.g. book.cls, toptesi.cls)
      \refstepcounter{chapter}%
      \typeout{\@chapapp\space\thechapter.}%
      \iftoc
        \addcontentsline{toc}{chapter}{%
          \protect\numberline{\thechapter}#2}%
      \else %
        \addcontentsline{toc}{chapter}{#2}%
      \fi
    \else % When \mainmatter is not defined (e.g.report.cls)
      \refstepcounter{chapter}%
      \typeout{\@chapapp\space\thechapter.}%
      \iftoc
        \addcontentsline{toc}{chapter}{%
          \protect\numberline{\thechapter}#2}%
      \else %
        \addcontentsline{toc}{chapter}{#2}%
      \fi
    \fi
  \fi
  \markboth{#3}{#3}% No \MakeUppercase
  \iftoc
    \addtocontents{lof}%
      {\protect\addvspace{10\p@}}%
    \addtocontents{lot}%
      {\protect\addvspace{10\p@}}%
  \fi
  \if@twocolumn
    \@topnewpage[\@makechapterhead{#4}]%
  \else
    \@makechapterhead{#4}%
    \@afterheading
  \fi
  \IfBooleanTF{#1}{\c@secnumdepth=\TOPsecnumdepth}{}%
}

\RenewDocumentCommand\part{s O{#3} m}{\iffrontmatter\mainmatter\fi
\if@openright \cleardoublepage \else \clearpage \fi
\thispagestyle{plain}\if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \null \vfil \IfBooleanTF{#1}{\@spart{#3}}{\@part[#2]{#3}}}
\def\@part[#1]#2{\iffrontmatter\mainmatter\fi
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}%
    {\centering
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \partname\nobreakspace\thepart
       \par
       \vskip 20\p@
     \fi
     \Huge \bfseries #2\par}%
    \@endpart}
\renewcommand\tableofcontents{%
 \chapter*{\contentsname}%
 \@starttoc{toc}%
 \clearpage
 \if@restonecol\twocolumn\fi
    }

\providecommand\phantomsection{}% in case \hyperref was not loaded

\renewcommand\listoffigures{%
    \phantomsection
    \chapter*{\listfigurename}%
    \addcontentsline{toc}{chapter}{\listfigurename}
    \@starttoc{lof}%
    \clearpage
    \if@restonecol\twocolumn\fi
    }

\renewcommand\listoftables{%
    \phantomsection
    \chapter*{\listtablename}%
    \addcontentsline{toc}{chapter}{\listtablename}
    \@starttoc{lot}%
    \clearpage
    \if@restonecol\twocolumn\fi
    }
\NewDocumentCommand\indici{O{plain}}{%
 \iffrontmatter\else\frontmattertrue\fi
 \pagestyle{#1}%
        \tableofcontents
        \iftablespage
                {\addvspace{10pt}
                \let\saveaddvspace=\addvspace
                \def\addvspace##1{}
                \listoftables
                \let\addvspace=\saveaddvspace}
        \fi
        \iffigurespage%
                {\addvspace{10pt}
                \let\saveaddvspace=\addvspace
                \def\addvspace##1{}
                \listoffigures
                \let\addvspace=\saveaddvspace}
        \fi
\ifbool{@twoside}{\cleardoublepage[empty]}{}}
\let\allcontents\indici

\onecolumn
\if@twoside
    \unless\ifScuDo
        \flushbottom
    \else
        \raggedbottom
    \fi
\else
    \ifx\@xivpt\f@size
        \raggedbottom
    \else
        \flushbottom
    \fi
\fi
\brokenpenalty=10000
\def\interlinea#1{\linespread{#1}\selectfont}
\def\endinterlinea{\par}
\def\@floatboxreset{%
        \reset@font
        \linespread{1}%
        \normalsize
        \@setminipage
}
\def\fps@figure{htb} \def\fps@table{htb}
\setcounter{topnumber}{2}
\def\topfraction{1}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.5}
\setcounter{totalnumber}{2}
\def\textfraction{0}
\def\floatpagefraction{0}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{1}
\def\dblfloatpagefraction{0}

\AtBeginDocument{\@ifpackageloaded{caption}{}{%
\providecommand\captionsetup{}\renewcommand\captionsetup[2][]{}%
\providecommand\captionof[1]{\def\@captype{#1}\caption}

\let\originalcaption\caption
\newdimen\captionwidth
\newdimen\fullwidth
\if@twocolumn\fullwidth=\columnwidth\else\fullwidth=\textwidth\fi
\belowcaptionskip=\abovecaptionskip
\long\def\@makecaption#1#2{%
   \begingroup
   \small \parskip\z@ \parindent\z@
   \finalhyphendemerits 100000\relax
   \linespread{0.95}\selectfont
   \vskip \abovecaptionskip
   \ifdim\hsize<\fullwidth \captionwidth=\hsize\else
   \captionwidth=\dimexpr\hsize-3em\fi
   \setbox0 \hbox{\ifblank{#1}{}{#1.\quad}#2}%
   \ifdim\wd0>\hsize
      \setbox1 \vbox{\hsize=\captionwidth
      \unhbox0\par\global\setbox2\lastbox}%
      \setbox2\hbox{\unhbox2}%
      \ifdim\wd2<0.333333\captionwidth
         \count255=\ht1 \advance\count255 \dp1
         \divide\count255\baselineskip
         \advance\count255\@ne
         \@tempdima=\wd2
         \advance\@tempdima \count255\captionwidth
         \advance\@tempdima 0.5\captionwidth
         \advance \count255\@ne
         \divide \@tempdima \count255
         \captionwidth=\@tempdima
         \setbox0 \vbox{\hsize\captionwidth
         #1.\quad#2}
      \else
         \setbox2\hbox to\captionwidth{\unhbox2 \hfill}%
         \setbox0\vbox{\unvbox1\box2}%
      \fi
   \fi
   \makebox[\hsize]{\box0}%
   \vskip \belowcaptionskip
   \endgroup
}}}


\newdimen\SDcaptionwidth
\newdimen\SDfigurewidth
\newdimen\SDlinewidth
\newbox\SDfigbox \setbox\SDfigbox\hbox{}%
\newbox\SDcapbox \setbox\SDcapbox\hbox{}%
\newcounter{SDpage}%
\newcounter{NumberSD} \setcounter{NumberSD}{0}
\providecommand*\theNumberSD{\value{NumberSD}}
\newif\ifNumberFloat \NumberFloattrue
\NewDocumentCommand\captionSD{s O{} m}{%
  \IfBooleanTF{#1}%
    {%
     \@makecaption{}{#3}%
    }{%
      \ifempty{#2}%
        {%
          \originalcaption{#3}%
        }{%
          \originalcaption[#2]{#3}%
        }%
    }%
}

\DeclareDocumentEnvironment{SDbox}{ G{} s O{0.5} }{%------OPENING
\NumberFloattrue
\ifempty{#1}%
   {\NumberFloatfalse}%
   {\def\@captype{#1}}%
\IfBooleanTF{#2}%
  {\SDlinewidth=\dimexpr\textwidth+0.8\marginparwidth}%
  {\SDlinewidth=\textwidth}%
\SDcaptionwidth=#3\SDlinewidth
\ifdim\SDcaptionwidth<0.3\SDlinewidth
  \SDcaptionwidth=0.3\SDlinewidth
\fi
\ifdim\SDcaptionwidth>0.7\SDlinewidth
  \SDcaptionwidth=0.7\SDlinewidth
\fi
\SDfigurewidth=\dimexpr\SDlinewidth-\SDcaptionwidth\relax
\SDcaptionwidth=\dimexpr\SDcaptionwidth-\columnsep\relax
\SDfigurewidth=\dimexpr\SDfigurewidth-\columnsep\relax
}{%---------------------------------------------------CLOSING
  {\ifcsdef{r@\@tempSD}%
      {%
         \edef\@tempD{r@\@tempSD}%
         \edef\@tempD{\expandafter\csuse\expandafter{\@tempD}}%
         \edef\@tempD{\@tempD}%
         \IfPackageLoadedTF{hyperref}%
           {%
             \edef\@tempD{\noexpand\@secondoffive\@tempD}%
           }%
           {%
             \edef\@tempD{\noexpand\@secondoftwo\@tempD}%
           }%
         \edef\@tempD{\@tempD}%
         \setcounter{SDpage}{\@tempD}%
      }%
      {%
         \setcounter{SDpage}{\thepage}%
      }%
  }%
\ifbool{@twoside}%
  {%
    \ifnumodd{\value{SDpage}}%
      {%
        \makebox[\textwidth][l]{\makebox[\SDlinewidth]{%
          \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}%
      }{%
        \makebox[\textwidth][r]{\makebox[\SDlinewidth]{%
          \usebox{\SDcapbox}\hfill\usebox{\SDfigbox}}}%
      }%
  }{%
    \makebox[\textwidth][l]{\makebox[\SDlinewidth]{%
      \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}%
  }
}
\NewDocumentCommand\SDcaption{ O{} m  G{} }{%
  \notbool{NumberFloat}%
    {%
      \stepcounter{NumberSD}%
      \edef\@tempSD{SD\the\c@NumberSD}%
      \begin{lrbox}{\SDcapbox}%
        \parbox[t]{\SDcaptionwidth}%
        {%
          \captionSD*{#2}\relax
          \expandafter\label\expandafter{\@tempSD}%
        }%
      \end{lrbox}%
    }%
    {%
      \ifempty{#3}%
        {%
          \NumberFloatfalse
          \stepcounter{NumberSD}%
          \edef\@tempSD{SD\the\c@NumberSD}%
          \begin{lrbox}{\SDcapbox}%
            \parbox[t]{\SDcaptionwidth}%
            {%
              \captionSD*{#2}\relax
              \expandafter\label\expandafter{\@tempSD}%
            }%
          \end{lrbox}%
        }{%
          \begin{lrbox}{\SDcapbox}%
            \parbox[t]{\SDcaptionwidth}%
            {%
               \captionSD[#1]{#2}\label{#3}\gdef\@tempSD{#3}%
            }%
          \end{lrbox}%
      }%
    }%
}
\newcommand\SDimage[1]{%
   \setbox0\hbox{M}\dimen0\ht0\relax
   \begin{lrbox}{\SDfigbox}\parbox[t]{\SDfigurewidth}{#1}\end{lrbox}%
   \dimen2\dimexpr\ht\SDfigbox+\dimen0\relax
   \setbox\SDfigbox\hbox{\raisebox{-\dimen2}{\box\SDfigbox}}%
}
\let\SDtabular\SDimage
\newcommand\goodpagebreak[1][4]{\ifvmode
\unless\ifdim\dimexpr\pagegoal-\pagetotal>#1\baselineskip\newpage\fi
\else\ifhmode\vadjust{\newpage}\fi\fi}
\def\redef@bibitem{\def\@bibitem##1{\item\if@filesw
       \immediate\write\@auxout
       {\string\bibcite{##1}{\thechapter.\the\c@enumi}}\fi\ignorespaces}}
\def\thebibliography#1{%
 \ifchapterbibliography\section*{\bibname}\relax
    \if@twoside\markright{\bibname}\fi
    \addcontentsline{toc}{section}{\bibname}\relax
    \redef@bibitem
    \list{[\thechapter.\arabic{enumi}]}{%
    \settowidth\labelwidth{[\thechapter.#1]}\leftmargin\labelwidth
    \advance\leftmargin\labelsep\itemsep\z@ plus 1pt\parsep\z@
    \usecounter{enumi}}
 \else
    \chapter*{\bibname}\relax
    \addcontentsline{toc}{chapter}{\bibname}\relax
    \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}%
    \leftmargin\labelwidth
    \advance\leftmargin\labelsep\itemsep\z@ plus 1pt\parsep\z@
    \usecounter{enumi}}
 \fi
 \def\newblock{\hskip .11em plus .33em minus -.07em}
 \sloppy
 \sfcode`\.=1000\relax}

\let\endthebibliography=\endlist
\long\def\@footnotetext#1{\insert\footins{\linespread{1}\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
   \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
   \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}}
 \DeclareMathSymbol{\virgola}{\mathpunct}{letters}{"3B}
 \DeclareMathSymbol{\virgoladecimale}{\mathord}{letters}{"3B}
 \AtBeginDocument{\mathcode`\,=\string"8000}
 {\catcode `,=\active \gdef,{\futurelet\let@token\m@thcomma}}
\def\m@thcomma{\let\@tempB\virgola
\@tfor\@tempA:=0123456789\do{%
\expandafter\ifx\@tempA\let@token\let\@tempB\virgoladecimale
\@break@tfor\fi}\@tempB}
\catcode`\^^Z=10
\topmargin 0pt
\providecommand*\summaryname{}
\providecommand*\acknowledgename{}
\newcommand*\ExtendCaptions[3]{{%
\@ifundefined{captions#1}{%
\PackageWarning{toptesi}{%
Language option #1 not specified\MessageBreak
Skipping any redefinition\MessageBreak}%
}{%
\expandafter\let\expandafter\@tempA\csname captions#1\endcsname
 \toks0=\expandafter{\@tempA%
    \def\summaryname{#2}%
    \def\acknowledgename{#3}}%
 \expandafter\xdef\csname captions#1\endcsname{\the\toks0}%
 }}}%
\ExtendCaptions{italian}{Sommario}{Ringraziamenti}
\ExtendCaptions{english}{Summary}{Acknowledgements}
\def\italiano{\selectlanguage{italian}}%
\def\english{\selectlanguage{english}}%
\let\inglese\english
\AtBeginDocument{%
    \italiano
    \renewcommand\@chapapp{\chaptername}%
}
\AtBeginDocument{%
\unless\ifT@Pfrontespizio\ifTOPfront
       \RequirePackage{topfront}
    \fi\fi
\RequirePackage{topcoman}%
}
\ifPDFTeX
\renewcommand*\not{\mathrel{\mathchoice%
{\rlap{$\displaystyle\mkern2.5mu\mathnormal{/}$}}%
{\rlap{$\textstyle\mkern2.5mu\mathnormal{/}$}}%
{\rlap{$\scriptstyle\mkern2.5mu\mathnormal{/}$}}%
{\rlap{$\scriptscriptstyle\mkern2.5mu\mathnormal{/}$}}%
}}
\renewcommand\mapstochar{\mathrel{\mathchoice
{\displaystyle\unitlength=0.0555\fontdimen6\font
   \picture(0,0)\put(1,1.5){\linethickness{0.72\unitlength}%
   \line(0,1){6}}\endpicture}
{\textstyle\unitlength=0.0555\fontdimen6\font
   \picture(0,0)\put(1,1.5){\linethickness{0.72\unitlength}%
   \line(0,1){6}}\endpicture}
{\scriptstyle\unitlength=0.0555\fontdimen6\font
   \picture(0,0)\put(1,0.55){\linethickness{0.61\unitlength}%
   \line(0,1){5}}\endpicture}
{\scriptscriptstyle\unitlength=0.0555\fontdimen6\font
   \picture(0,0)\put(1,0.2){\linethickness{0.56\unitlength}%
   \line(0,1){4}}\endpicture}
}}\fi
\newcounter{tomo}
\newcommand*{\tomo}{\clearpage\stepcounter{tomo}\boolfalse{topTPTlogos}%
   \fr@ntespizio}
\renewcommand*{\lapagina}{%
    \ifnumeriromani
        \thepage
    \else
        \if@ldstyle
            \expandafter\oldstylenums\expandafter{\thepage}%
        \else
            \thepage
        \fi
    \fi
}
\if@utoretitolo
 \if@twoside
 \renewcommand*{\ps@headings}{\let\@mkboth\markboth%
 \def\@oddfoot{\null \hfill \textbf{\lapagina} \hfill \null}%
 \let\@evenfoot\@oddfoot
 \def\@evenhead{%
   \setbox\@intesta\hbox{\ifPDFTeX\latintext\fi
   \footnotesize\strut\textsc{%
   \@@author\ifcsvoid{@secondauthor}{\ et al.}: \@stitle}%
   }%
 \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi
 \underline{\makebox[\textwidth]{\box\@intesta}}}%
 \def\@oddhead{\ifPDFTeX\latintext\fi
   \setbox\@intesta\hbox{%
       \footnotesize\strut\textsl{\rightmark}}%
 \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi%
 \underline{\makebox[\textwidth]{\box\@intesta}}}%
 \def\chaptermark##1{\markright{\thechapter\ -- ##1}}%
 \def\sectionmark##1{}}%
 \else
 \renewcommand*{\ps@headings}{\let\@mkboth\markboth
   \def\@oddfoot{\null \hfill \textbf{\lapagina}\hfill \null}%
   \let\@evenfoot\empty\let\@evenhead\empty
   \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi
   \footnotesize\textsc{%
   \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle}}%
   \setbox\tw@\hbox{\ifPDFTeX\latintext\fi
   \footnotesize\textsl{\rightmark}}%
   \dimen@=\dimexpr2em + \wd\z@ + \wd\tw@\relax
   \unless\ifdim\dimen@<\textwidth
     \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@
     \raggedright
     \ifPDFTeX\latintext\fi
     \footnotesize\textsc{%
     \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle
     }}%
     \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@
     \raggedleft
     \ifPDFTeX\latintext\fi\footnotesize
         \textsl{\rightmark}}%
   \fi
   \setbox\@intesta\vbox to\z@{%
        \vss\hbox to\textwidth{\strut\box\z@\hfill\box\tw@}}%
   \underline{\box\@intesta}}}%
   \def\chaptermark##1{\markright{\thechapter\ -- ##1}}}
 \fi
\fi
\renewcommand\footnoterule{%
  \kern-6\p@
  \hrule\@width.4\columnwidth
  \kern5.6\p@}
\setlength\footnotesep{12\p@}
\setlength{\skip\footins}{24\p@ \@plus 4\p@ \@minus 2\p@}
\newcommand*\nota[1][\mathord{*}]{%
    \xdef\@thefnmark{\ensuremath{\m@th#1}}\@footnotemark\@footnotetext
}
\newcommand*{\NoteWhiteLine}{\par\vspace*{-.3\baselineskip}}
\newcommand*\paginavuota{\clearpage\thispagestyle{empty}\null\clearpage}
\let\emptypage\paginavuota
\newenvironment{dedica}{\clearpage
    \if@twoside
        \ifodd\c@page\else\thispagestyle{empty}\null\clearpage\fi
    \fi
    \thispagestyle{empty}%
    \list{}{\labelwidth\z@
    \leftmargin.5\textwidth
    \parindent\z@
    \raggedright\LARGE\itshape}\item[]
}{%
    \endlist\clearpage
}
\let\dedication\dedica \let\enddedication\enddedica
\newenvironment{citazioni}{%
    \clearpage\thispagestyle{empty}
    \list{}{\labelwidth\z@
    \leftmargin.5\textwidth
    \parindent\z@
    \raggedright}\item[]
}{%
    \endlist\clearpage
}
\let\wittysentences\citazioni \let\endwittysentences\endcitazioni
%% 
%% Copyright 2005-2025 Claudio Beccari
%% 
%% Distributable under the LaTeX Project Public
%% License, version 1.3c or higher (your choice).
%% The latest version of this license is at:
%% http://www.latex-project.org/lppl.txt
%% 
%% For important further details see the English or
%% the Italian documentation.
%% 
%% This work is "author-maintained"
%% 
%% This work consists of this file toptesi.dtx, a README file
%% the manifest.txt file, and the derived files:
%%     toptesi.cls,
%%     toptesi.sty,
%%     topfront.sty,
%%     topcommand.sty,
%%     toptesi-scudo.sty,
%%     toptesi.cfg,
%%     toptesi-monografia.sty,
%%     toptesi-sss.sty,
%%     toptesi-magistrale.sty,
%%     toptesi-dottorale.sty,
%% and the English documentation toptesi.pdf.
%% 
%% Furthermore the bundle contains the documentation
%% source file toptesi-it.tex and the derived file
%% toptesi-it.pdf.
%% 
%% The toptesi-example.tex source file is just an
%% example that shows how to use the various commands;
%% by commenting or uncommenting certain source lines
%% it is possible to typeset different kind of theses
%% and their front pages.
%% 
%% The topfront-example.tex source file is an example
%% of how to produce just the title page with TOPtesi
%% and the external package frontespizio.
%% 
%% The toptesi-scudo-example.tex source file is an
%% example that shows the particular features
%% available with TOPtesi, when a doctoral thesis is
%% produced for the Scuola di Dottorato (ScuDo) of
%% Politecnico di Torino.
%% 
%% The toptesi.cfg file is a sample of a local
%% configuration file that can be copied to another
%% file with different name and its copy freely
%% edited and customised.
%% 
%% The other toptesi-*.sty files are extension modules
%% for typesetting the specific thesis kinds described
%% by the suffix that replaces the asterisk.
%% 
%% By running pdflatex on toptesi.dtx the user gets
%% the class, sty and cfg files and the English
%% documentation file in PDF format.
%% 
%% The source file of the Italian documentation file
%% toptesi-it.pdf is another example of how to use
%% TOPtesi. This file toptesi-it.tex may be typeset
%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first
%% comment lines of the file for how-to information.
%% In spite of being mainly written in Italian, it
%% contains several sections in English for the
%% benefit of foreign students attending the Doctoral
%% School of Turin.
%%
%% End of file `toptesi.sty'.
