summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/toptesi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-06-25 18:39:55 +0000
committerKarl Berry <karl@freefriends.org>2006-06-25 18:39:55 +0000
commite8e9822f1b933fc2a88b18e1a07c6a8b8d338d67 (patch)
treedfb53033fec7ea5d4b371b0eba05dba757dd8a5b /Master/texmf-dist/source/latex/toptesi
parentc904103e77c3140d3ab5d95e496b216702cd8b16 (diff)
new package toptesi for european theses
git-svn-id: svn://tug.org/texlive/trunk@1724 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/toptesi')
-rw-r--r--Master/texmf-dist/source/latex/toptesi/toptesi.dtx2324
-rw-r--r--Master/texmf-dist/source/latex/toptesi/toptesi.ins113
2 files changed, 2437 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/toptesi/toptesi.dtx b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx
new file mode 100644
index 00000000000..26f7a0b27d5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx
@@ -0,0 +1,2324 @@
+% \iffalse meta-comment
+%
+% Copyright 1989--2006 Claudio Beccari
+%
+% This file is part of the TOPtesi bundle
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This file has the LPPL maintenance status "author-maintained".
+%
+% The list of all files belonging to the TOPtesi bundle is
+% given in the file `manifest.txt'.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\ProvidesFile{toptesi.dtx}[2006/04/16 v.4.03 Documented TeX file for
+the TOPtesi bundle]
+\GetFileInfo{toptesi.dtx}
+\title{The TOPtesi bundle}
+\date{\fileversion\space\filedate}
+ \author{Claudio Beccari}
+
+\begin{document}\errorcontextlines=9
+\maketitle
+ \setlength\hfuzz{20pt}
+ \DocInput{toptesi.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{2829}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \begin{abstract}
+% This file describes the TOPtesi bundle; it is a set of files designed to
+% typeset with \LaTeX\ a university final report that in Italian is generally
+% called ``tesi''; It was originally developed at the Technical University
+% of Turin (Politecnico di Torino) but it was adapted for typesetting theses in any
+% Italian university. Well\dots\ since the Erasmus student mobility is very
+% extended and many Italian students participate in the so called \textit{double degree}
+% programs; their theses, or whatever they are called in other countries,
+% may be typeset so as to comply also with the host university rules; therefore this
+% set of files has the ambition to be suited for typesetting theses in any university in the
+% world\dots
+% \end{abstract}
+%
+% \section{Introduction}
+% The TOPtesi bundle collects a certain number of files, specifically
+% \begin{itemize}
+% \item a class file \texttt{toptesi.cls} to be used as the main document class; the main
+% document may be any of a certain number of reports that in Italy
+% are called with various names: ``monografia'', ``monografia di laurea'',
+% ``tesi di laurea'', ``tesi di laurea specialistica'', ``tesi di laurea
+% magistrale'', ``tesi di dottorato'', ``dissertazione di dottorato'', and so on.
+% All these documents have in common the fact that they all conclude a period of university
+% education. Moreover since they may conclude a double degree university program, they may
+% receive foreign names such as, for example, ``Projet de fin d'\'etudes'', ``Master thesis'',
+% and the like.
+% \item An extension package \texttt{toptesi.sty} that contains most of the code
+% for the real typesetting; it might be used as an extension to the report class file,
+% although this use is discouraged.
+% \item A second extension package \texttt{topfront.sty} that contain the commands
+% and the typesetting macros for the title page; this file may be used as an
+% independent extension package to be added to, say, the report class file for typesetting
+% just the title page; this file might be used as a template for setting up the
+% title page fixed information in languages different from Italian.
+% \item A third extension package \texttt{topcomand.sty} that defines a certain number
+% of user commands suitable for typesetting technical matters.
+% \item A fourth extension package \texttt{trieste.sty} and its accompanying package option
+% \texttt{topsiz14.clo} that is used as an option by
+% \texttt{toptesi.cls} in order to define a certain number of variations required
+% for theses in humanities at the university of Trieste; these variations are not so important
+% ones, but they may be preferred also in other faculties so that the suitable option
+% comes handy also in other situations.
+% \item The logos of a certain number of Italian universities both in \texttt{.eps} and in
+% \texttt{.jpg} or \texttt{.pdf} formats; such logos are included for the user sake, but
+% the user should pay attention to use them according to the rules and limitations of
+% each university and is strongly advised to look up such regulations in each university Web
+% site.
+% \item A documentation file \texttt{toptesi-doc.pdf} written in Italian where every feature
+% is explained in detail; simpler information is given in this English documentation.
+% \end{itemize}
+%
+% The above files are complemented with a configuration file that any user may
+% personalize at will; these personalizations make it easy to configure the
+% bundle so as to make it suitable for another language; in facts the \textsf{babel}
+% package contains localizations for many languages but they refer to the standard
+% infix \LaTeX\ names and phrases and they do not cope with the thesis title page requirements.
+%
+% \section{User commands}
+% The \texttt{toptesi.cls} is basically an extension of the standard class
+% \texttt{report.cls}; It redefines the page typesetting grid, the headers and the footers,
+% and the title page layout and commands.
+% \texttt{toptesi.cls} does not set such crazy settings as ``double spaced'' text; it is
+% intended to typeset the thesis with the quality of a \LaTeX\ well typeset document, not as
+% a typewriter written one. I suppose that typewriter documents have completely vanished
+% except perhaps in the legal professions, especially in Italy where legal documents have to
+% be written on special paper produced by the State Polygraphic Institute and carrying a
+% watermark and the Republic's Seal; without a special printer it would be very difficult to
+% typeset on such a paper.
+%
+% Theses very often are full of specialized material: formulas, diagrams and pictures,
+% texts written in non latin alphabets, special symbols for philological mark-up, and the like;
+% a common typewriter would not be suitable and the quality of the contents requires professional
+% typesetting; this is why I strongly believe that instructions on typesetting styles that
+% refer to the good old times of mechanical typewriters should be banned.
+%
+% Most new commands refer themselves to the information that should be typeset in the
+% title page; some class options specify special stylistic page details; the rest is simple
+% and traditional \LaTeX\ mark-up as it is implemented in the \LaTeX\ kernel and in the
+% report document class.
+%
+% \subsection{Class options}
+% The class accepts all the options accepted by the report document class plus the ones
+% defined here:
+% \begin{description}\def\Item[#1]{\item[\texttt{#1}]}
+% \Item[chapterbib] Allows to typeset a list of references at the end
+% of each chapter and the bibliography items are numbered with a \emph{chapter.item}
+% indication.
+%
+% \Item[classica] Specifies a general modification of certain details that are
+% supposed to be more adequate in the humanities; specifically this option
+% lets old style numbers to be used for certain numerical pieces of information;
+% some variations are also introduced in the title page.
+%
+% \Item[cucitura] In two sided printing it is better to move the
+% typesetting grid towards the outer edges so as to cope with the thesis binding
+% that is generally not made by sawing a number of signatures; the outer displacement
+% is fixed to~7mm.
+%
+% \Item[14pt] Extends the normal size choice to 14 points; it is appreciated
+% in various fields of humanities, but I would discourage this use in a technical
+% thesis, where 10 point perhaps is too small, but 11 point or 12 point typesetting
+% may be adequate. It is worth mentioning that this option implements the font
+% settings in e different way from what is being done with the \texttt{extsizes} bundle of
+% classes; this is why the original \texttt{size14.clo} class option file has been renamed
+% \texttt{topsiz14.clo} so as to avoid conflicts with the \texttt{size14.clo} file belonging
+% to that bundle.
+%
+% \Item[autoretitolo] This option modifies the left handed (even numbered) pages
+% in two side typesetting; normally the even numbered headings contain
+% the chapter title, while the odd numbered ones contain the current section title.
+% If the \texttt{classica} option has been specified, then with this option it is possible to
+% have even numbered % headings contain the author's name and the thesis title, while the odd
+% numbered ones contain the chapter title. Since the thesis title might be too
+% long to fit in the header together with the author's name, the |\title| macro
+% as been modified so as to accept an optional short title, similarly to the
+% sectioning commands.
+%
+% \Item[oldstyle] Also this option works only if \texttt{classica} had already been
+% specified; it typesets several numerical data with the old style numbers.
+% \end{description}
+%
+% \subsection{Title page commands}
+% The user must specify a certain number of commands in order to have the
+% title page contain all the required information. It must be specified that
+% most of these commands may be used in the configuration file so as to avoid repeating
+% the same data for different ``reports''; well, a university student might write a
+% bachelor's ``monografia'', then a master thesis and finally a doctoral dissertation;
+% why should s/he repeat his/her name, the name of the institution, and so on?
+% all the user commands for the title page redefine default values or strings;
+% therefore if none of the required information is given, the default values and strings are
+% typeset, possibly with hilarious results\dots
+%
+% Since most users are supposed to be Italian, the user commands are mostly in Italian;
+% the following description gives their names and meanings; every command receives an argument;
+% only the command |\title| accepts an optional argument according to the usual \LaTeX\ syntax:
+% \[
+% \makebox[0pt]{%
+% \texttt{\char92}\emph{command}\relax
+% \texttt{[}\emph{opt\_arg}\texttt{]}\relax
+% \texttt{\char123}\emph{req\_arg}\texttt{\char125}\relax
+% }
+% \]
+% \begin{description}
+% \def\cs#1{\texttt{\char92#1}}
+% \def\Item[#1]{\item[\normalfont\cs{#1}]}
+% \Item[frontespizio] is the actual command that typesets the title page and this command
+% uses all the information that is passed to it by means of the following
+% commands.
+% \Item[monografia] sets the bachelor's report style and retrieves the report title
+% \Item[titolo] gets the thesis title and an optional thesis short title
+% \Item[sottotitolo] gets the thesis subtitle if any
+% \Item[materia] gets the name of the subject the thesis deals with
+% \Item[Materia] alias for \cs{materia}
+% \Item[direttore] gets the name of the Doctoral School Director
+% \Item[coordinatore] gets the name of the Doctoral School Coordinator
+% \Item[QualificaDirettore] gets the phrase that describes the director or coordinator
+% official position; by using the command \cs{direttore} the default phrase
+% ``Direttore della Scuola di Dottorato'' is printed over the ``director's'' name;
+% if \cs{coordinatore} is used the default phrase ``Coordinatore della
+% Scuola di Dottorato'' is printed instead. If neither one is applicable or a
+% description in another language is required, this macro is available for
+% specifying such position.
+% \Item[relatore] gets the name of thesis first supervisor
+% \Item[secondorelatore] gets the name of the second supervisor
+% \Item[terzorelatore] gets the name of the third supervisor; it is assumed that the number of supervisors
+% never exceeds three.
+% \Item[tutore] gets the name of the doctorate tutor; there is no difference with regards
+% to the \cs{relatore}, but the default phrase ``Tutore'' is printed over this
+% person's name.
+% \Item[TutorName] gets the phrase that describes the tutor position, possibly in a different
+% language.
+% \Item[AdvisorName] gets the string that qualifies the supervisor(s); the default string
+% is ``Relatore:'' or ``Relatori:'' for the plural; in another language
+% this command is used to define the string, say, ``Supervisors:'' if the
+% thesis has been supervised by more than one person.
+% \Item[CoAdvisorName] gets the string that qualifies the co-supervisor(s); the default string is
+% ``Correlatore:'' or ``Correlatori:'' in the plural; this command may be used to
+% define the string, say, ``Corapporteur:'' in a French Projet de fin
+% d'\'etudes.
+% \Item[candidato] gets the name of the male student
+% \Item[candidata] gets the name of the female student
+% \Item[secondocandidato] gets the name of the second male student
+% \Item[secondacandidata] gets the name of the second female student
+% \Item[terzocandidato] gets the name of the third male student
+% \Item[terzacandidata] gets the name of the third female student; most often the thesis
+% author is just one person; but there are some institutions where group
+% final works are accepted; it is assumed that the group does not contain more
+% than three authors. The specification of the gender allows the software
+% to determine the correct labeling phrase in the proper gender and proper number.
+% For different languages there might be no difference in gender but
+% there is a difference in the plural ending.
+% \Item[CandidateName] gets the string that describes the student status in a foreign language
+% or even in Italian; the default string is ``Candidato:'' (with colons)
+% adjusted to masculine, or feminine, singular or plural; with the option
+% \texttt{classica} the string becomes ``Laureato:''; in other languages
+% it is necessary to specify this string in the proper gender and number
+% \Item[sedutadilaurea] gets the date of the final exam, or presentation, or defense of the
+% thesis; if this date is omitted the default date is the current
+% month and year in Italian
+% \Item[esamedidottorato] an alias for \cs{sedutadilaurea} to be used for doctoral dissertations
+% \Item[ciclodidottorato] gets the roman numeral that specifies the doctoral cycle
+% \Item[CycleName] redefines the string that expresses the name of the doctoral cycle;
+% by default this is ``ciclo'' but this command is useful to set the
+% name in a different language.
+% \Item[corsodilaurea] gets the proper name of the degree course; the phrase that describes
+% the degree course is specified, if necessary, with the following
+% command; with this one you specify just, say, ``Electrical Engineering''
+% \Item[CorsoDiLaureaIn] gets the generic name of the degree course, for example ``Bachelor
+% Degree in''
+% \Item[TesiDiLaurea] gets the generic phrase that describes the thesis; by default it is
+% ``Tesi di Laurea''; in English one might set it to ``Master Thesis''.
+% \Item[NomeMonografia] gets the phrase that describes the bachelor's report; by default
+% it is ``Monografia di Laurea''. In some Italian universities it might
+% be called ``Tesi di Laurea'', so that the master thesis should be given
+% another qualification, for example ``Tesi di Laurea Magistrale''.
+% \Item[NomeDissertazione] gets the phrase that describes the doctoral thesis; by default it is
+% ``Tesi di Dottorato''.
+% \Item[InName] infix strings often require adjusting of the prepositions; this macro gets
+% the preposition that stands for ``in'' (the default). In German it might
+% become ``auf''
+% \Item[NomeAnnoAccademico] defines the infix string that stands for ``Academic year''.
+% This macro is
+% defined only if the option \texttt{classica} is in force; after all
+% the command |\annoaccademico| is defined only with that option.
+% \Item[logosede] specifies the name of the file that contains the university logo; no default
+% is defined; rather a warning message is issued if no name is given
+% or the file is missing, but typesetting goes on without the inclusion
+% of any logo.
+% \end{description}
+%
+% Since the infix strings are all memorized into control sequences and for each of them it
+% is possible to use a defining command, all strings can be modified at will, so that there
+% is no difficulty to localize the package in another language; this comes particularly handy for the
+% Erasmus students on double degree programs.
+%
+% As a final remark notice that the commands for typesetting the title page are contained in the package
+% \texttt{topfront.sty}, which can be used as an autonomous extension to the \texttt{report}
+% document class. One could easily typeset just the title page with a separate \TeX\ source file
+% so as to test the completeness of the commands and coherence of the configuration file or
+% for just printing the isolated title page.
+%
+% \subsection{Typesetting commands}
+% The bundle and the TOPtesi document class accept all \LaTeX\ commands provided by
+% the \LaTeX\ \texttt{kernel}, the \texttt{report} document class, and the \texttt{graphics}
+% extension package, besides those provided by the \texttt{babel} package.
+%
+% With this respect it must be underlined that the Italian and English languages are specified by
+% default, the Italian one being the default language. An initial specification of
+% |\selectlanguage{english}| sets the English language as default. Should a student typeset the thesis
+% in French, it would be necessary to specify the option \texttt{french} among the class options,
+% and so start the document by specifying |\selectlanguage{french}|. Nevertheless these
+% \texttt{babel} macros select the English or the French typesetting rules, but hyphenation
+% is activated only if the program format file has been generated with the pertinent languages.
+% While (American) English is the default and almost any distribution of the \TeX\ system
+% has many language defaults, it is more likely that French is preloaded while Italian is not.
+% The user should verify which are the default languages preloaded into the format file; this
+% information is written in the very first lines of any \texttt{.log} file generated by any
+% run of \LaTeX, \texttt{pdflatex} or even plain \TeX.
+%
+% Should the required languages be missing, the user is forced to read the distribution
+% instructions, so as to find out how to configure his/her system so as to consider the languages
+% s/he wants to work with, and finally s/he must recreate the format files and put them in
+% the proper places of the standard or the local folder tree. The user is invited to carefully
+% investigate on these fine points and to configure the system properly; it would be very
+% upsetting using fine software for producing a perfectly typeset thesis that, unfortunately,
+% has wrong hyphenation points!
+%
+% The TOPtesi bundle adds very little to the user commands; nevertheless the package
+% \texttt{topcomand.sty},
+% that is part of this bundle and is automatically loaded, defines some useful commands for
+% typesetting technical matters in such a way as to fulfill the ISO regulations.
+% Some of these commands are already defined in the \texttt{babel} Italian option, but if your thesis
+% is written in different languages it may happen that such commands are not available any more when
+% another language is selected.
+%
+% The following description specifies these particular commands.
+% \begin{description}
+% \def\Item[#1]{\item[\normalfont\texttt{\char92#1}]}
+% \Item[DeclareSlantedCapitalGreekLetters] does exactly what its name
+% means: it changes the definitions of the mathematical capital Geek
+% letters so that they are typeset in ``italics''; they are in effects taken from the math
+% italic alphabet, instead of the default roman one.
+% %
+% \Item[ensuremath] should be already defined in the \LaTeX\ kernel;
+% should one still be using an obsolete version, this command gets
+% available anyhow.
+% %
+% \Item[ohm] typesets an upright capital omega even if the capital Greek
+% letters are in italics; the good point is that |\ohm| can be used also
+% in text mode.
+% %
+% \Item[ped] inserts a subscript in upright type; the ISO regulations
+% require the use of italics for physical or mathematica quantities, and
+% upright type for whatever is not a variable, from the names of
+% functions (such as sin, cos, log, etc.), to the indices that contain
+% information on something that is not variable. This means that $V_i$
+% requires an italic index to imply that the object $V$ is the $i$-th in
+% a set, while, say, $V_{\mathrm{max}}$ indicates the maximum value of the
+% variable $V$. This command may be used both in math and in text mode.
+% %
+% \Item[ap] similarly |\ap| inserts an apex in upright type, both in math
+% and in text mode.
+% %
+% \Item[unit] sets the unit of measure close to the numerical measure by
+% insetting a non breakable thin space and by setting the units of
+% measure in upright type; this works both in math and text mode. Of
+% course it is necessary to input the |\unit| command without intervening
+% spaces in the source file; it's necessary to typeset, say,
+% |35\unit{km}| and to avoid to input \verb*+35 \unit{km}+. This command,
+% as it is defined, conflicts with the definition of the homonymous
+% command |\unit| as defined by the \texttt{units} package, but since
+% this latter package is necessarily input \emph{after}
+% \texttt{topcomand.sty} is read, the last definition is the one in
+% force, therefore if one wishes to use the \texttt{units} package s/he
+% should not encounter any inconsistencies.
+% %
+% \Item[micro] sets the decimal prefix $\mu$ in typesetting units of
+% measure.
+% %
+% \Item[gradi] sets the small circle that defines the sexagesimal
+% degrees; it may be used also for the celsius degrees by writing in the
+% source file, say, |35\unit{\gradi C}| in order to get
+% $35\,^\circ\mathrm{C}$.
+% %
+% \Item[gei] inserts the imaginary unit in upright type with the
+% ``spelling'' used by the technologists: ``j''. This command may be
+% redefined, of course, but this strange name is due to the fact that
+% nowadays the letter ``j'' in Italian is called with the English name
+% (much shorter than the traditional Italian name ``i~lunga'') and the
+% indicated spelling ``gei'' is the phonetic Italian rendering of the
+% English word. The imaginary unit is not a variable, it is an operator,
+% so that the ISO regulations require for this symbol an upright type.
+% %
+% \Item[eu] inserts the Euler number symbol ``e'' in upright type; since
+% this entity is not a variable, but it is a mathematical constant, the
+% ISO regulations require it to be written in upright type. The electron
+% charge $e$ is not upright because this physical ``constant'' is not
+% that constant\dots
+% %
+% \Item[listing] requires for its argument the name of a file and typesets it in verbatim mode;
+% this command is very useful for typesetting the listings of the programs that were written
+% for the thesis; for best results it is recommended that the source program has lines not
+% longer than 80 characters.
+% \end{description}
+%
+% All these commands are defined into the separate package \texttt{topcoman.sty}
+% that can be used as an independent extension package for any document class.
+%
+% \StopEventually{} ^^A qui si puo' mettere una bibliografia
+%
+% \section{Documented code}
+% \subsection{The class code}
+%
+% Here begins the usual machinery for stating the required \TeX\ format
+% and for sharing some code between the driver and the class part of the code, since they are
+% supposed to carry the same date and version number, besides the description string.
+% \begin{macrocode}
+%<*class>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{toptesi}%
+[2006/04/04 v.4.00.02 Class for typesetting university theses]
+% \end{macrocode}
+%
+% The class itself is very simple since it requires just the \texttt{report}
+% document class and some packages with some default options. All options
+% specified for the \texttt{toptesi} class are passed on to the \texttt{report}
+% class; the latter, on turn, is called with the \texttt{a4paper} option.
+% According to the \LaTeX\ machinery of option passing the options passed on to
+% the loaded class should be appended to the existing options, so that if \texttt{letterpaper}
+% was specified in the calling statement of \texttt{toptesi}, this last option would
+% override the default \texttt{a4paper} option. The same holds true for the other package
+% options except for the encoding name used as an option for the \texttt{inputenc} package; this % simply does not work and the package is not loaded any more as it was in the previous % versions\footnote{Thanks to Enrico Gregorio who pointed out this feature.}.
+% Similarly if another language was specified in the list of \texttt{toptesi}
+% options, this language would be appended yo the \texttt{babel} package default options
+% and would become the default language.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+\ProcessOptions\relax
+%
+\LoadClass[a4paper]{report}
+\RequirePackage[english,italian]{babel}
+\RequirePackage{toptesi}
+%
+%</class>
+% \end{macrocode}
+% \subsection{The \texttt{toptesi.sty} code}
+% The greatest part of the \texttt{toptesi} class code is saved into a separate file
+% partly for backward compatibility reasons (before version 3.x \texttt{toptesi} was just
+% an extension to the \texttt{report} class) and partly because it might be used as a standaolone
+% package, although, take notice, it might conflict with the \texttt{book} class code and certainly
+% it is incompatible with the \texttt{article} class. This package must contain its own \TeX\
+% format declaration and might have different version and subversion numbers compared to the
+% class file and the other invoked packages that are part of the same bundle.
+%
+% \begin{macrocode}
+%<*topsty>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{toptesi}%
+[2006/02/20 v. 4.00.01 Extension for toptesi.cls]%
+% \end{macrocode}
+%
+% We start with defining the debugging macros; these trace commands and macros
+% and are the usual one I use for debugging. I know the \texttt{trace} package is supposed
+% to be much better, but I am used to these ones.
+% \begin{macrocode}
+\def\TRON{\tracingcommands \tw@ \tracingmacros \tw@}
+\def\TROFF{\tracingcommands\z@ \tracingmacros \z@}
+\let\TROF\TROFF
+% \end{macrocode}
+% Now we define the specific package macros: \texttt{classica} and \texttt{trieste}
+% are identical; \texttt{trieste} is maintained for backward compatibility.
+% The option \texttt{14pt} is for choosing a normal size of 14pt; the class option
+% file \texttt{topsiz14.clo} has a name that should not conflict with other
+% similar class option packages and is in line with the other standard \texttt{size??.clo}
+% files. \texttt{chapterbib} allows to set a list of references at the end of each chapter.
+% \begin{macrocode}
+\newif\if@binding \@bindingfalse
+\newif\ifchapterbibliography \chapterbibliographyfalse
+\DeclareOption{cucitura}{\@bindingtrue}
+\DeclareOption{14pt}{\input{topsiz14.clo}}
+\DeclareOption{chapterbib}{\chapterbibliographytrue}
+\DeclareOption{trieste}{\AtEndOfPackage{\RequirePackage{trieste}}}
+\DeclareOption{classica}{\AtEndOfPackage{\RequirePackage{trieste}}}
+%
+\ProcessOptions\relax
+% \end{macrocode}
+% The \texttt{graphicx} package is loaded by default; it is required for
+% inserting the university logo; if the user forgets that this package has already been loaded
+% nothing dramatic happens, because the |\usepackage| and |\RequirePackage| macros
+% perform the necessary tests in order to avoid reloading the same packages again and again.
+% \begin{macrocode}
+\RequirePackage{graphicx}
+% \end{macrocode}
+
+% L'altezza della pagina di testo viene impostata in modo da riempire bene
+% un foglio UNI A4; in any case the typesetting grid is set to an height of 585pt
+% and is then rounded to an integer number of lines depending on the size option
+% that has been chosen. The |\topmargin|, |\headheight| and |\headsep| parameters
+% have already been set in the size class option file, so that here just a small adjustment is made.
+%
+% \begin{macrocode}
+\textheight 585pt
+\divide\textheight by \baselineskip
+\multiply\textheight by \baselineskip
+\advance\textheight by \topskip
+% \end{macrocode}
+% For the text grid width a certain reduction is made if the extra size of 14pt is chosen.
+% \begin{macrocode}
+\ifx\f@size\@xivpt
+ \textwidth=138mm
+\else
+ \textwidth=150mm
+\fi
+% \end{macrocode}
+% Because of the above adjustment the right and left margins must be recomputed;
+% in any case they must be recomputed because the default positioning of the
+% text grid is centered; only if the class option \texttt{cucitura} is specified
+% (|\if@binding| in this case is true) the text grids are moved to the outside
+% in order to leave a wider inner margin. At the same time if the text grid is moved to
+% the outside, the marginal note width must be reduced accordingly.
+% \begin{macrocode}
+\oddsidemargin=\paperwidth
+\advance\oddsidemargin -\textwidth
+\divide\oddsidemargin \tw@
+\advance\oddsidemargin -1in
+\evensidemargin=\oddsidemargin
+\marginparwidth\oddsidemargin
+\advance\marginparwidth 1in
+\advance\marginparwidth-2.5\marginparsep
+%
+\if@binding
+ \typeout{Messaggio Toptesi: Ricalcolo i margini}
+ \advance\oddsidemargin 7mm
+ \advance\evensidemargin -7mm
+ \advance\marginparwidth -7mm
+ \advance\marginparwidth -7mm
+\fi
+% \end{macrocode}
+%
+% We now establish the page style. We start by setting to ``empy'' the tokens that
+% keep the left and the right marks; we define a box so as to set the headers
+% inside this box; we redefine also the plain page styles; it is actually a leftover
+% from the previous versions when the page number was set at the foot in bold face,
+% but we leave it here without the bold face specification, so that in future versions
+% folios may be redefined in a common way with the other page styles.
+% Notice that in all page styles folios are always in the footers.
+% By letting |\lapagina| to be an alias to |\thepage| we can later on redefine |\lapagina|
+% the way we like; we actually do so with the option \texttt{classica}.
+% \begin{macrocode}
+\let\lapagina\thepage
+\mark{{}{}}
+\newbox\@intesta
+%
+\def\ps@plain{\let\@mkboth\@gobbletwo
+\def\@oddfoot{\null\hfill {{\lapagina}}\hfill \null}\def\@oddhead{}
+\def\@evenhead{}\let\@evenfoot\@oddfoot}
+% \end{macrocode}
+% Other page styles are defined in a different way according to the choice of
+% one side or two side printing. In any case the header is set without capitalization
+% as it happens in all the default document classes, and it is underlined at a fixed
+% distance from the base line. If the chapter or section heading a warning is issued
+% so as to invite the user to exploit the sectioning commands optional short argument.
+% \begin{macrocode}
+\if@twoside
+ \def\ps@headings{\let\@mkboth\markboth%
+ \def\@oddfoot{\null\hfill {{\lapagina}} \hfill\null}
+ \let\@evenfoot\@oddfoot
+ %
+ \def\@evenhead{\setbox\@intesta\hbox{\footnotesize\slshape
+ \leftmark}%
+ \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
+ \underline{\makebox[\textwidth]{\footnotesize\slshape
+ \strut\leftmark}}}%
+ \def\@oddhead{\setbox\@intesta\hbox{\footnotesize\slshape
+ \rightmark}%
+ \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi%
+ \underline{\makebox[\textwidth]{\footnotesize\slshape
+ \strut\rightmark}}}%
+ \def\chaptermark##1{\markboth{\thechapter\ -- ##1}{}}
+ \def\sectionmark##1{\markright{\ifnum\c@secnumdepth>\z@
+ \thesection\ -- \fi ##1}}}
+\else
+ \def\ps@headings{\let\@mkboth\markboth
+ \def\@oddfoot{\null \hfill {\lapagina} \hfill \null}
+ \def\@evenfoot{}
+ \def\@oddhead{\setbox\@intesta\hbox{\footnotesize\slshape
+ \rightmark}%
+ \ifdim\wd\@intesta>\textwidth \headWarn{\chapter}\fi%
+ \underline{\makebox[\textwidth]{\footnotesize\slshape
+ \strut\rightmark}}}%
+ \def\chaptermark##1{\markright{\thechapter\ -- ##1}}}
+\fi
+%
+\def\headWarn#1{\PackageWarning{toptesi}{%
+ 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}}
+% \end{macrocode}
+% The various tables of contents or figures or tables require some boolean variables to
+% be defined; in facts, although the ISO regulations require that every technical report contains
+% the list of figures and/or tables, in Italy theses rarely contain these lists; after all: is
+% a thesis a technical report? We require also some other boolean variables to handle
+% the difference between front matter and main matter; this differences are already defined
+% in the \texttt{book} document class, but not in the \texttt{report} one.
+% \begin{macrocode}
+\newif\iffigurespage
+\newif\iftablespage
+\newif\ifnumeriromani
+\newif\iffrontmatter
+% \end{macrocode}
+% The |\frontmatter| and |\mainmatter| commands are defined and at the beginning
+% of the document the default situation of front matter is established.
+% \begin{macrocode}
+\def\frontmatter{\clearpage\ps@plain\pagenumbering{roman}%
+ \numeriromanitrue\frontmattertrue}
+\def\mainmatter{\clearpage\ps@headings\pagenumbering{arabic}%
+ \numeriromanifalse\frontmatterfalse}
+\AtBeginDocument{\frontmatter}
+% \end{macrocode}
+% The main matter is automatically established with the first |\chapter| command issued by
+% the user; this means that every command that starts a section at the ``chapter'' level within
+% the front matter must be executed without an explicit call to |\chapter|.
+%
+% By default we set to false the boolean variables that control the typesetting of the
+% list of figures and the list of tables.
+% \begin{macrocode}
+\figurespagefalse
+\tablespagefalse
+% \end{macrocode}
+% We have to define the front matter sectioning names |\sommario| and |\ringraziamenti|
+% so as to remain in the front matter.
+% \begin{macrocode}
+\def\sommario{%
+ \iffrontmatter\else\frontmattertrue\fi
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \@schapter{\summaryname}%
+ \addcontentsline{toc}{chapter}{\summaryname}%
+ }
+%
+\def\ringraziamenti{%
+ \iffrontmatter\else\frontmattertrue\fi
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \@schapter{\acknowledgename}%
+ \addcontentsline{toc}{chapter}{\acknowledgename}%
+ }
+% \end{macrocode}
+% The strings |\summaryname| and |\acknowledgename| are not defined in any
+% language option to \texttt{babel}. Default definitions are given below, but the user
+% must define new names for localizing the package in a language different from
+% Italian and English.
+%
+% We have to modify the |\chpter| and |\part| commands so that as the user first issues
+% one of these commands the typesetting style is switched to the one for the main matter.
+% \begin{macrocode}
+\renewcommand\chapter{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \iffrontmatter\mainmatter\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+%
+\renewcommand\part{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \iffrontmatter\mainmatter\fi
+ \thispagestyle{empty}%
+ \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi
+ \null\vfil
+ \secdef\@part\@spart}
+% \end{macrocode}
+% At the same time we have to make sure that |\tableofcontents|,
+% |\listoftables| and |\listoffigures| do not exit from the front matter style.
+% We assume these commands are issued while in front matter, the default at the begin
+% document step, so we have to avoid to use starred or un-starred |\chapter| commands.
+% \begin{macrocode}
+\renewcommand\tableofcontents{%
+ \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \@schapter{\contentsname}%
+ \@starttoc{toc}%
+ \clearpage
+ \if@restonecol\twocolumn\fi
+ }
+\renewcommand\listoffigures{%
+ \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \@schapter{\listfigurename}
+ \@mkboth{\listfigurename}{\listfigurename}%
+ \@starttoc{lof}%
+ \clearpage
+ \if@restonecol\twocolumn\fi
+ }
+\renewcommand\listoftables{%
+ \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \@schapter{\listtablename}%
+ \@mkboth{\listtablename}{\listtablename}%
+ \@starttoc{lot}%
+ \clearpage
+ \if@restonecol\twocolumn\fi
+ }
+% \end{macrocode}
+% We need to define |\indici| that typesets the table of contents and, optionally,
+% the lists of tables and/or figures while assuring that the front matter style is used for
+% typesetting.
+% \begin{macrocode}
+\def\indici{%
+ \iffrontmatter\else\frontmattertrue\fi
+ \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
+}
+% \end{macrocode}
+%
+% Command |\onecolumn| is not actually necessary; it simply overrides the possible
+% misused option \texttt{twocolumn} in the opening document class statement;
+% no thesis should be typeset in double column.
+% \begin{macrocode}
+\onecolumn
+% \end{macrocode}
+%
+% Here come some declarations for vertical justification and for avoiding an hyphenated
+% word at the bottom of a page
+% \begin{macrocode}
+\if@twoside
+ \flushbottom
+\else
+ \ifx\@xivpt\f@size
+ \raggedbottom
+ \else
+ \flushbottom
+ \fi
+\fi
+\brokenpenalty=10000
+% \end{macrocode}
+%
+% Here comes a questionable command and/or environment; good typesetting
+% requires the baseline skip to be proportioned to the font size, generally it is some 10--20\%
+% larger than the font size. In some reasonable instances a wider or a narrower baseline skip
+% might be required; the \LaTeX\ kernel allows to use the |\linespread| command;
+% in the previous versions of this bundle a command |\interlinea| and an environment
+% \texttt{interlinea} were defined so as to allow to set the line spread factor.
+% The experience has shown that students tend to use this command so as to typeset a poor
+% and thin thesis on more pages. Well, every instrument can be judiciously or maliciously used;
+% This is one of those double sided instruments.
+% \begin{macrocode}
+\def\interlinea#1{\linespread{#1}\selectfont}
+\def\endinterlinea{\par}
+% \end{macrocode}
+% But whatever might be the current line spread factor within figures and tables we reset
+% this factor to the unit value; floating bodies do not belong to this or that section
+% of text where a different spread factor might be reasonable.
+% \begin{macrocode}
+\def \@floatboxreset {%
+ \reset@font
+ \linespread{1}%
+ \normalsize
+ \@setminipage
+}
+% \end{macrocode}
+% Since we are at it we define the floating bodies placing parameters; not only the
+% values ``here'', ``top of the page'' and ``bottom of the page'', that we set as default ones
+% leaving to the user to explicitly specify the ``page of floats'', but also the numerical and
+% geometrical parameters that control the float placements.
+% These geometrical parameters are critical and everybody has his/her own ideas of
+% what are the best values for them. According to my experience these parameters work quite well
+% but I would not suggest them for every kind of typewritten document.
+% In particular the zero value for the text fraction appears strange, but students have
+% the tendency to create large figures (more than large tables) and these tend to clog the figure queue.
+% A 100\% space for the top of page figures and a requirement of 0\% text allows large floats
+% to exit the queue provided they do not exceed the text height.
+% \begin{macrocode}
+\def\fps@figure{htb} \def\fps@table{htb}
+%
+\setcounter{topnumber}{2}
+\def\topfraction{1}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.5}
+\setcounter{totalnumber}{3}
+\def\textfraction{0}
+\def\floatpagefraction{0}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{1}
+\def\dblfloatpagefraction{0}
+% \end{macrocode}
+% One command that the default definition does not satisfy me very much is the caption command;
+% actually it is the internal |\@makecaption| macro that performs the job. The point is that
+% I prefer a narrower justified caption rather than a caption where the last line is just a short word
+% or the right segment of an hyphenated word. If one sete the |\finalhyphendemerits| counter
+% to an incredibly high value, one might succeed in avoiding hyphenation in the last word of a caption.
+% but this might lead to a very loose typesetting of the caption paragraph, especially
+% if the horizontal box that contains it hardly exceeds the caption width.
+% I initially set the caption width (a new length) to the overall text width diminished by 3em;
+% then if the caption text, inclusive of the caption type string and number, is shorter than
+% the text width it is typeset as centered text; if it exceeds the text width
+% it is set as a justified paragraph whose line with equals the established caption with;
+% but in any case the last line of the paragraph is measured and if it is shorter than one third
+% of the caption width, this width is shortened a little bit and the paragraph is set again
+% with this shortened caption width; in order to be sure that one iteration is sufficient, the shrinking
+% of the caption with must be computed according to the number of lines the paragraph occupies.
+% In order to count the number of lines the caption paragraph occupies it is necessary
+% to recall that the first line occupies a vertical space that equals |\topskip| while the
+% other lines occupy a vertical space equal to |\baselineskip|; the latter one is generally larger
+% than |\topskip| therefore the integer division of the height of the vertical box divided by the
+% |\baselineskip| is truncated to count a line less than the true value.
+% in or case if the caption doe not stay in one line, its text is typeset in a vertical box
+% with a line spread of 0.95 so as to make the caption a little more compact than the regular text
+% The baseline skip is the a little shorter than the regular one, but it should sill exceed
+% the default |\topskip|; when we first typeset the caption in a vertical box we strip off the last line
+% and we must remember the presence of this line in our arithmetics.
+% if the stripped of last line is longer that one third of the caption width,
+% then the vertical box is recomposed by restacking the individual lines, but if this last line is shorter
+% than one third of the caption width, this width is recomputed in this way: let $N-1$ be the number of lines
+% obtained with the integer division, i.e.\ one line less than those actually
+% contained in the vertical box one. Let $x$ be the initial caption width and $X_2$ the last line
+% width; let $y$ be the new caption width; then the total length of the caption of width $x$
+% is $(N)x+x_2$ and this should be distributed over $N+1$ lines; if we obtained the new
+% caption width $y$ by dividing the total length by $N+1$ we should be able to typeset
+% the whole caption with all the lines of equal length. This does not actually take place
+% because the new lines do not necessarily contain the same amount of inter word space, some words
+% might have been hyphenated in a different way, and so on. Moreover we do not want a caption that
+% barely exceeds the length of |\captionwidth| to be retyped into a two line caption with
+% is about one half of the width of the other captions. Therefore we allow for some white space in the last line
+% by computing the new caption width with the following formula
+% \[ y=\frac{(N+0,5)x + x_2}{N+1} \]
+% \begin{macrocode}
+\newdimen\captionwidth
+\long\def\@makecaption#1#2{%
+ \begingroup
+ \small \parskip\z@ \parindent\z@
+ \finalhyphendemerits 100000\relax
+ \linespread{0.95}\selectfont
+ \vskip \abovedisplayskip
+ \vskip \abovedisplayskip\captionwidth=\hsize
+ \advance\captionwidth-3em
+ \setbox0 \hbox{#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}%
+ \endgroup
+}
+% \end{macrocode}
+%
+% The option \texttt{chapterbib} requires a redefinition of the \texttt{thebibliogrpahy}
+% environment in case a separate reference list is required for every chapter.
+% The point is that for this task the reference key must contain also the
+% chapter number; the rest is simply a redefinition of the environment that behaves
+% differently according to the chosen option. In any case the bibliography goes to the
+% table of contents as a unnumbered chapter or section.
+% \begin{macrocode}
+\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
+ \@mkboth{\bibname}{\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
+% \end{macrocode}
+%
+% For what regards footnotes nothing is changed except resetting the
+% line stretch to one, in case the current value is defined differently.
+% \begin {macrocode}
+\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}}}
+% \end{macrocode}
+%
+% These last heterogeneous definitions are partly important and partly residues of
+% the good old times of MS-DOS v.3 when a Ctrl-Z character would be placed at the
+% end of files. It's a long time that version is not used, but some of old time files
+% might be still around.
+%
+% The cryptic code that redefines the comma in math mode establishes that this
+% character is a normal math character, instead of a math punctuation mark;
+% this should not be necessary with the Italian option for the \texttt{babel}
+% package and it is possible that in a future version it will be eliminated.
+%
+% |\topmargin| set to 0pt simply means that the real top margin is 25.4mm, i.e.\ one
+% inch, since the output offset is one inch by default.
+% \begin{macrocode}
+\mathcode`\,="013B
+\catcode`\^^Z=10
+\topmargin 0pt
+% \end{macrocode}
+%
+% The TOPtesi bundle contains two new chapter like sections activated with
+% the commands |\sommario| and |\ringraziamenti| respectively. The infix string that
+% stats these sections depend on the used language.
+%
+% Because of this it is necessary to extend the list of infix string definitions provided
+% the the |\captions|$\langle$\texttt{language}$\rangle$ macros provided by the
+% language description files of \texttt{babel}; for this purpose we define a macro for
+% adding new items for these two new sectioning commands. This macro receives three arguments:
+% the first is the babel language name, the second is the string for the summary name, and finally
+% the third is the string for the acknowledgements name; everything is contained within a group
+% and only the relevant captions macro is globally redefined. The token register `0' is normally
+% for scratch usage, but the fact that its values is restored upon exiting the group provides the
+% necessary protection against an involuntary reassignment to this register. At the same time
+% if a specifica language option was not specified, a warning message is issued, but compilations
+% goes on any way without the sectioning string names. For being sure no other undefined
+% error messages are issued, the |\summaryname| and |\acknowledgename| are let to |\empty|.
+% \begin{macrocode}
+\let\summaryname\empty
+\let\acknowledgename\empty
+\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}%
+ }}}%
+% \end{macrocode}
+% For Italian and English there are no problems; we provide immediately these extensions
+% by means of the newly available macro:
+% \begin{macrocode}
+\ExtendCaptions{italian}{Sommario}{Ringraziamenti}
+\ExtendCaptions{english}{Summary}{Acknowledgements}
+% \end{macrocode}
+% In facts the \texttt{babel} options for Italian and English have already been loaded by
+% default; therefore both caption macros |\captionsitalian| and |\captionsenglish| are
+% already defined and can be freely extended. For any other language the corresponding
+% language option must be entered in the class opening statement, otherwise a warning
+% is issued but compilation is not stopped. Therefore if, for example, the user wants to write the
+% thesis in Spanish, the thesis main file shall start like this:
+% \begin{verbatim}
+% \documentclass[...,spanish]{toptesi}
+% \ExtendCaptions{spanish}{Resumen}{Agradecimientos}
+% ...
+% \begin{document}
+% \selectlanguahe{spanish}
+% ...
+% \end{verbatim}
+% and the rest of the thesis will be typeset correctly in Spanish. Remember that Italian is the default
+% Language and nothing is necessary for setting up the Italian defaults. If English is desired, then
+% after |\begin{document}| is is necessary to specify the default language; for ease of use the following macros are
+% defined so they can be used instead of the lengthy \texttt{babel} command; after the beginning of the document
+% it is then possible to specify |\inglese| or |\english|, and the default language turns into English.
+% These shorthand commands can be alternated so as to switch from one language to the other; nevertheless
+% remember that there are more correct ways to switch languages with the \texttt{babel} commands without changing
+% the infix strings.
+% \begin{macrocode}
+\def\italiano{\selectlanguage{italian}}%
+\def\english{\selectlanguage{english}}%
+\let\inglese\english
+% \end{macrocode}
+% At the beginning of the document the following commands are executed; the general macro |\italiano| sets the
+% summary and the acknowledgements names in Italian, as the default language; and the |\@chapapp|
+% macro is redefined so as to agree with the default language. If a different default language is desired,
+% we recall it again, it is necessary to do the following:
+% \begin{itemize}
+% \item specify |\english| \emph{after} the |\begin{document}| statement, if English is
+% supposed to be the default language, or
+% \item specify the language name, other than Italian or English, among the class options; use
+% the |\ExtendCaptions| macro for extending the list of sectioning commands infix strings as explained above;
+% specify with |\selectlanguage| the new language as the default one \emph{after} the |\begin{document}| statement.
+% \end{itemize}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \italiano
+ \renewcommand\@chapapp{\chaptername}%
+ }
+% \end{macrocode}
+%
+% At last the subsidiary and independent packages \texttt{topcoman} and \texttt{topfront}
+% are requested for input and file input is explicitly ended.
+% \begin{macrocode}
+\RequirePackage{topfront}
+\RequirePackage{topcoman}
+%
+%</topsty>
+% \end{macrocode}
+% \subsection{The package file \texttt{toptesi.sty}}
+% This file is input by \texttt{toptesi}, version 3.x, but it can be used as an independent
+% extension package.
+%
+% It contains all the definition for the composition of just the title page
+% along the style requirements of \texttt{toptesi}, version 3.x.
+% It makes use of an optional configuration file where the user can define
+% a lot of default information and all the infix language dependent strings
+% that are peculiar to this title page.
+%
+% This file specifies that it requires the \LaTeXe\ format and identifies itself. Since the
+% package might be used to extend the performances of other classes, this package does not
+% specify any input encoding, assuming that the calling class already provided this information.
+% \begin{macrocode}
+%<*topfrn>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{topfront}[2006/04/04 v.4.00.02 Title page for TOPtesi]
+% \end{macrocode}
+%
+% The title page information depends on the type of ``thesis' that is being typeset.
+% The following commands specify the kind of information that is going to be typeset.
+% Some boolean variables are automatically set by the commands in order to change some
+% formatting depending on the kind of thesis. For languages that distinguish
+% feminine from masculine adjectives or qualifications some automatic machinery is
+% set up in order to format some infix strings in a way that copes with the singular or plural
+% forms; in particular when there is a multitude of authors (maximum three) of different gender
+% the adjectives or qualifications are set masculine plurals, while when there is just one author
+% or the authors are of the same gender the adjectives or qualifications are set according to
+% number and gender. Al this is done by setting or resetting the truth value associated to
+% the boolean variable \texttt{femminile}. The boolean variable \texttt{dottorato}
+% controls the PhD thesis format, while the other variable \texttt{laureatriennale}
+% controls the formatting of the bachelor's degree report. All other theses are treated
+% as master theses, and in all cases the appropiate infix string is typeset in the title
+% page
+% \begin{macrocode}
+\newif\iffemminile
+\newif\ifdottorato \dottoratofalse
+\newif\iflaureatriennale \laureatriennalefalse
+% \end{macrocode}
+%
+% The thesis title is specified by means of the following commands; |\monografia|,
+% the name of the bachelors degree final report, sets also the corresponding
+% boolean variables and redefines the command |\titolo| so as to avoid
+% duplications and inconsistencies; of course something could still be inconsistent
+% if the commands are given in the wrong order.
+%
+% |\titolo| accepts an optional argument, the ``short title'', more or less
+% as the standard sectioning commands; this is due to the fact that with the
+% class option \texttt{autoretitolo} the thesis title is written together
+% with the author's name in the even side headings; if the thesis full title
+% is too long it produces overfull headlines with ugly results; a short title
+% solves the inconvenience. The |\sottotitolo| command is another way
+% to maintains a short title; all the supplementary title information may be typeset in
+% the subtitle.
+% \begin{macrocode}
+\def\monografia#1{\global\laureatriennaletrue
+ \global\dottoratofalse
+ \global\def\titolo##1{\PackageWarning{toptesi}%
+ {Il titolo e' gia' stato impostato con
+ il comando \string\monografia}}%
+ \gdef\@title{#1}}
+\let\@stitle\empty
+\newcommand*{\titolo}[2][]{{\def\@tempA{#1}%
+ \ifx\@tempA\empty\gdef\@stitle{#2}\else\gdef\@stitle{#1}\fi
+ \gdef\@title{#2}}}
+\def\sottotitolo#1{\gdef\@subtitle{#1}}
+% \end{macrocode}
+%
+% The |\materia| or its alias |\Materia| are used to specify the
+% subject ot the thesis; as a silly example a set of commands that reflect
+% this subtle difference might be the following:
+% \begin{verbatim}
+% \materia{Applied Tetratricotomy}
+% \titolo{The tetratricotomy of blond hair}
+% \sottotitolo{Accurate measurements of the four fourths
+% of tetratricotomized blond hair}
+%\end{verbatim}
+% and the title page, for example, will contain something like this:\\[\bigskipamount]
+% \begin{minipage}{\textwidth}\centering
+% {\Large Master Thesis\\ in\\ Applied Tetratricotomy\par}\bigskip
+% {\huge The tetratricotomy of blond hair\par}\bigskip
+% {\large Accurate measurements of the four fourths\\
+% of tetratricotomized blond hair}
+% \end{minipage}\bigskip
+% \begin{macrocode}
+\let\@materia\empty
+\def\Materia#1{\def\@materia{#1}}\let\materia\Materia
+% \end{macrocode}
+%
+% Things get more complicated for doctoral theses; in general there is no supervisor;
+% at most if a professor is assigned to supervise or control the doctoring's work
+% this may be called in whatever mode but here we assume his name is input
+% with the command |\tutore| even if ``tutor'' does not appear as the best choice;
+% in any case in Italian ``tutore'' does not have the same meaning as the English ``tutor''.
+% Most Doctoral Schools require in place to name the School's director or coordinator
+% This is why this person's name can be introduced with |\direttore| or |\coordinatore|;
+% the actual label printed over this person name is ``Direttore'' or ``Coordinatore''
+% but it can be changed with |\QualificaDirettore|.
+% \begin{macrocode}
+\newif\ifDirettore \Direttorefalse
+\def\tutore#1{\gdef\@tutore{#1}}
+\def\direttore{\Direttoretrue\relatore}%
+\def\coordinatore{\Direttorefalse\relatore}%
+\def\QualificaDirettore#1{\gdef\@PhDdirector{#1}}
+% \end{macrocode}
+%
+% For ``normal'' theses we may have from one to three supervisors and from
+% one to three authors; not all universities accept a multitude of supervisors
+% and/or authors of the same thesis, but some do; this is why this bundle
+% accepts up to three names for each category.
+% The |\second...| commands set the plural forms of the labels printed above
+% the name lists; For the candidates there are different commands to input
+% ladies or gentlemen names; according to the masculine (ending in `o') or feminine
+% (ending in `a') commands the appropriate truth values are assigned to the
+% boolean variable \texttt{femminile} and the labels are set accordingly.
+%
+% Notice that in the case of bachelor degree final report no supervisor name is printed
+% even if one or more supervisor names are specified. This must be kept in mind in order
+% to avoid surprises in finding missing information in the title page. Further on there
+% are suggestions for circumventing this fact.
+% \begin{macrocode}
+\def\relatore#1{\gdef\@principaladviser{#1}}
+\def\secondorelatore#1{\gdef\@secondadviser{#1}}
+\def\terzorelatore#1{\gdef\@thirdadviser{#1}}
+\def\candidato#1{\gdef\@author{#1}\femminilefalse}
+\def\candidata#1{\gdef\@author{#1}\femminiletrue}
+\def\secondocandidato#1{\gdef\@secondauthor{#1}\femminilefalse}
+\def\secondacandidata#1{\gdef\@secondauthor{#1}}
+\def\terzocandidato#1{\gdef\@thirdauthor{#1}\femminilefalse}
+\def\terzacandidata#1{\gdef\@thirdauthor{#1}}
+% \end{macrocode}
+%
+% The next set of macros is used to typeset the ``date'' of the
+% thesis defense or presentation or whatever is done for the final
+% exam. The macro si sort of complicated because the input format for this
+% ``date'' may vary from a single year, to a year range, to a month and year specification
+% so that different actions must be taken; if the option \texttt{classica} is in
+% force\footnote{This option cannot be active if this extension package is used to extend
+% a document class other than \texttt{toptesi}; nevertheless if the package \texttt{trieste.sty}
+% is loaded before this package, the relevant information equivalent to \texttt{classica}
+% is fully defined and this package works as it should.} then the formatting of the ``date''
+% may be still different. This command is aliased with |\esamendidottorato| which literally means
+% ``defense of the doctoral dissertation''; nevertheless both commands refer to a simple date in
+% one of those formats.
+%
+% |\getseduta| splits the date in its two components, month and year;
+% if the argument is a single string without intervening spaces, the first one is the string
+% itself and the second is empty; this emptiness may be tested and in case the date formatting
+% is modified accordingly.
+% In particular if the string is a single spaceless one, this string is
+% assigned to |\@submitdate|; otherwise a different treatment is made according to the fact that
+% \texttt{classica} is in force; if \texttt{classica} is not in force the total string,
+% including spaces is assigned to |\@submitade|. If \texttt{classica} is in force,
+% |\s@dutaTrieste| is called with the whole string. On turn |\s@dutaTrieste| verifies
+% if the date should be typeset with old style numbers or in the usual way; in the latter case
+% the whole string is assigned to |\@submitdate|; in the former one the year part may be a
+% single year or a year range; This separation is tested by splitting the year part across
+% one dash; If the dash is present the extremes of the year range are assigned to |\1| and |\2|,
+% otherwise the year part is a single year;. If a single year is given this is simply typeset
+% with old style numbers and the appropriate commands are assigned to the |\@submitdate|
+% control sequence.. If a year range is given, this year range is also typeset with old style
+% numbers, and the dash is executed with a regular en-dash surrounded with white space.
+%
+% \begin{macrocode}
+\def\sedutadilaurea#1{\getseduta#1 !}
+\def\getseduta#1 #2!{%
+ \def\@tempA{#2}%
+ \ifx\@tempA\empty
+ \def\@submitdate{#1}%
+ \else
+ \expandafter
+ \ifx\csname StileTrieste\endcsname\relax
+ \def\@submitdate{#1 #2}%
+ \else
+ \s@dutaTrieste#1 #2!%
+ \fi
+ \fi
+}%
+\def\s@dutaTrieste#1 #2!{%
+ \if@ldstyle
+ \s@paranumeri#2-!%
+ \ifx\2\empty
+ \edef\@submitdate{\noexpand#1 \noexpand\oldstylenums{#2}}%
+ \else
+ \s@paranumeri#2!%
+ \edef\@submitdate{\noexpand#1
+ \noexpand\oldstylenums{\1} -- \noexpand\oldstylenums{\2}}%
+ \fi
+ \let\1\undefined
+ \let\2\undefined
+ \else
+ \def\@submitdate{#1 #2}%
+ \fi
+}
+\def\s@paranumeri#1-#2!{\def\1{#1}\def\2{#2}}%
+\let\esamedidottorato\sedutadilaurea
+% \end{macrocode}
+%
+% The next macros are used to assign strings to some literal information
+% to be typeset in the title page. |\ciclodidottorato| requires an uppercase roman numeral
+% (in Italy), but it can accept anything that can precede the infix word ``cycle''.
+% Macros |\corsodilaurea| and |\corsodidottorato| specify the degree course qualification;
+% You would specify just ``Elettronica'', for example, and the package will
+% write in the title page ``Corso di Laurea in Elettronica''. The infix part may be changed
+% depending on the default language and the configuration file.
+%
+% |\scuoladidottorato| gets the name of the PhD School; |\ateneo| gets the the generic name
+% of the university; |\nomeateneo| gets the proper name of the university. In Italy Universities
+% are generally named after the city they are in; in large cities where there are several
+% universities, each one of them has a proper name. For example the generic name might be
+% ``Universit�di Roma'' and the proper name might be ``La Sapienza''.
+% |\facolta| receives an optional argument that is the uppercase roman numeral specific of the
+% faculty and a compulsory argument that corresponds to the type of faculty; for example,
+% with |\facolta[II]{Ingegneria}| the package typesets in the title page
+% ``II Facolt�di Ingengeria''; if the optional argument is not specified non roman numeral
+% is typeset; the infix string \verb*+Facolt�di + may be changed with the configuration file
+% depending on the default language.
+% Finally |\logosede| gets the name of the graphic file that contains the information
+% relative to the university logo. If such logo is not available, the user does not specify
+% this command; if the user uses this command to insert the university logo but the file is not
+% available the usual \texttt{graphicx} package warning is issued but compilation goes on
+% without the logo.
+% The |\tutoreaziendale| macro is the last addition; several students who work on their
+% thesis or final project in a company want to have the company supervisor name printed in the
+% title page; this does not preclude expressing the student's deepest thanks in the acknowledgements
+% section, but it does not harm ro name this person also in the title page.
+% \begin{macrocode}
+\def\ciclodidottorato#1{\gdef\@ciclo{#1 \@cyclename}}%
+\def\corsodilaurea#1{\global\dottoratofalse\gdef\@corso{#1}}
+\def\corsodidottorato#1{\global\dottoratotrue\global\laureatriennalefalse
+ \gdef\@corso{#1}}
+\def\scuoladidottorato#1{\global\dottoratotrue\global\laureatriennalefalse
+ \gdef\@phdschool{#1}}
+\def\ateneo#1{\gdef\@ateneo{\expandafter\uppercase{\expandafter #1}}}
+\def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}}
+\newcommand\facolta[2][]{\gdef\@facname{#2}\gdef\@facnumber{#1}}
+\def\logosede#1{\edef\@logosede{\noexpand\includegraphics[width=3cm]{#1}}}
+\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}}
+% \end{macrocode}
+%
+% The following commands are user commands that modify the infix strings according to the
+% language used and to the specifications of the actual university. All these commands
+% can be put in the configuration file so as to specify what is desired as a default.
+% Id these commands are specifically used to redefine something before issuing the
+% |\frontespizio| command, the command that actually typesets the title page, the new
+% definitions override the configuration ones.
+%
+% \begin{description}
+% \def\Item[#1]{\item[\normalfont\texttt{\char92#1}] sets or changes the string }
+% \Item[FacoltaDi] ``Facolt�di'' in, say, ``Faculty of''
+% \Item[DottoratoIn] ``Dottorato in'' in, say, ``PhD in''
+% \Item[CorsoDiLaureaIn] ``Corso di Laurea in'' in, say, ``Master of Science in''
+% \Item[TesiDiLaurea] ``Tesi di Laurea'' in, say, ``Tesi di Laurea Magistrale''
+% \Item[NomeMonografia] ``Monografia di Laurea'' in, say, ``Tesi di Laurea''
+% \Item[NomeDissertazione] ``Dissertazione'' in, say, ``PhD dissertation''
+% \Item[InName] ``in'' in, say, ``auf''
+% \Item[CandidateName] ``Candidato'' in, say, ``Laureando''
+% \Item[AdvisorName] ``Relatore'' in, say, ``Supervisors''
+% \Item[CoAdvisorName] ``Correlatore'' in, say, ``Corapporteur''
+% \Item[NomeTutoreAziendale] ``Supervisore aziendale'' in, say, ``XYZ Company Supervisor''
+% \Item[TutorName] ``Tutore'' in, say, ``Supervisor''
+% \Item[CycleName] ``ciclo'' in, say, ``cycle''
+% \Item[NomePrimoTomo] ``Tomo primo'' in, say, ``First volume''
+% \Item[NomeSecondoTomo] ``Tomo secondo'' in, say, ``Second volume''
+% \item[NomeTerzoTomo] ``Tomo terzo'' in, say, ``Third volume''
+% \item[NomeQuartoTomo] ``Tomo quarto'' in, say, ``Fourth volume''
+% \end{description}
+% In the above description the first string is generally the default one, while the
+% second string is just an example of the corresponding string to be set in another language
+% or to be changed in Italian. The last four commands clearly show the difficulty of
+% localizing language strings: it is necessary to localize the whole phrase, because of
+% the position of the adjectives.
+% \begin{macrocode}
+\newcommand\FacoltaDi[1]{\gdef\@faculty{#1}}
+\newcommand\DottoratoIn[1]{\gdef\@PhDname{#1}}
+\newcommand\CorsoDiLaureaIn[1]{\gdef\@laureaname{#1}}
+\newcommand\TesiDiLaurea[1]{\gdef\@TesiDiLaurea{#1}}
+\newcommand\NomeMonografia[1]{\gdef\@monografia{#1}}
+\newcommand\NomeDissertazione[1]{\gdef\@dissertazione{#1}}
+\newcommand\InName[1]{\gdef\@InName{#1}}
+\newcommand\CandidateName[1]{\gdef\@nomecandidato{#1}}
+\newcommand\AdvisorName[1]{\gdef\@nomerelatore{#1}}
+\newcommand\CoAdvisorName[1]{\gdef\Correlatore{#1}\gdef\Correlatori{#1}}
+\newcommand\TutorName[1]{\gdef\Tutore{#1}}
+\newcommand\NomeTutoreAziendale[1]{\gdef\@tutoreaziendalename{#1}}
+\newcommand\CycleName[1]{\gdef\@cyclename{#1}}
+\newcommand\NomePrimoTomo[1]{\gdef\PrimoTomo{#1}}
+\newcommand\NomeSecondoTomo[1]{\gdef\SecondoTomo{#1}}
+\newcommand\NomeTerzoTomo[1]{\gdef\TerzoTomo{#1}}
+\newcommand\NomeQuartoTomo[1]{\gdef\QuartoTomo{#1}}
+% \end{macrocode}
+%
+% Now we can read the configuration file if it exists; in any case what is possibly
+% defined or redefined in the configuration file must not be redefined in the following
+% Lines and this is why everything is subject to the test |\@ifundefined|. Most default
+% definitions are simply ``blank''; the others are in Italian. All of them, except the
+% supervisor and candidate strings may be individually be redefined in the configuration file
+% or in the preamble. Those that cannot be redefined such as the four ``candidate'' strings
+% may be actually redefined through the only |\CandidateName| that should be used in a language depended
+% way and with the correct number and gender once for all. The four endings in the Italian
+% strings allow to exercise the correct selection only for Italian; a specific test is made
+% inside the |\frontespizio| command; because of this the same machinery cannot be used, say, for French
+% but may be in the future this feature is resolved in a proper way. The same is true for the supervisor
+% and the co-supervisor strings that may be changed once for all with |\AdvisorName| and |\CoAdvisorName|.
+% \begin{macrocode}
+\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}
+%
+\@ifundefined{@cyclename}{\def\@cyclename{ciclo}}{}
+\@ifundefined{@title}{\def\@title{}}{}
+\@ifundefined{@author}{\def\@author{}}{}
+\@ifundefined{@principaladviser}{\def\@principaladviser{}}{}
+\@ifundefined{@secondadviser}{\def\@secondadviser{}}{}
+\@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{}
+\@ifundefined{@PhDdirector}{%
+ \edef\@PhDdirector{\ifDirettore Direttore \else Coordinatore \fi
+ del corso di dottorato}}{}
+\@ifundefined{@tutore}{\def\@tutore{}}{}
+\@ifundefined{@secondauthor}{\def\@secondauthor{}}{}
+\@ifundefined{@thirdauthor}{\def\@thirdauthor{}}{}
+%
+\@ifundefined{@nomerelatore}{\def\@nomerelatore{}}{}
+\@ifundefined{@nomecandidato}{\def\@nomecandidato{}}{}
+\@ifundefined{Candidato}{\def\Candidato{Candidato}}{}
+\@ifundefined{Candidata}{\def\Candidata{Candidata}}{}
+\@ifundefined{Candidati}{\def\Candidati{Candidati}}{}
+\@ifundefined{Candidate}{\def\Candidate{Candidate}}{}
+\@ifundefined{Relatore}{\def\Relatore{Relatore}}{}
+\@ifundefined{Relatori}{\def\Relatori{Relatori}}{}
+\@ifundefined{Correlatore}{\def\Correlatore{Correlatore}}{}
+\@ifundefined{Correlatori}{\def\Correlatori{Correlatori}}{}
+\@ifundefined{Tutore}{\def\Tutore{Tutore}}{}
+\@ifundefined{@tutoreaziendale}{\def\@tutoreaziendale{}}{}
+\@ifundefined{@tutoreaziendalename}%
+ {\def\@tutoreaziendalename{Supervisore Aziendale}}{}
+\@ifundefined{@subtitle}{\def\@subtitle{}}{}
+%
+\@ifundefined{@corso}{\def\@corso{}}{}
+\@ifundefined{@ciclo}{\def\@ciclo{}}{}
+\@ifundefined{@ateneo}{\def\@ateneo{POLITECNICO DI TORINO}}{}
+\@ifundefined{@nomeat}{\def\@nomeat{}}{}% Nome proprio dell'ateneo
+\@ifundefined{@facolta}{\def\@facname{Ingegneria}}{}
+\@ifundefined{@facnumber}{\def\@facnumber{}}{}
+\@ifundefined{@faculty}{\def\@faculty{Facolt\`a di}}{}
+%
+\@ifundefined{PrimoTomo}{\def\PrimoTomo{Tomo primo}}{}
+\@ifundefined{SecondoTomo}{\def\SecondoTomo{Tomo secondo}}{}
+\@ifundefined{TerzoTomo}{\def\TerzoTomo{Tomo terzo}}{}
+\@ifundefined{QuartoTomo}{\def\QuartoTomo{Tomo quarto}}{}
+% \end{macrocode}
+% If the final exam date is not given the default value is the current month
+% and the current year typeset in Italian; therefore the user is strongly
+% requested to enter a date either with the |\sedutadilaurea| or the
+% |\esamedidottorato| commands. The university logo command by default is also empty.
+% \begin{macrocode}
+\@ifundefined{@submitdate}{\def\@submitdate{\ifcase\the\month\or%
+ Gennaio\or Febbraio\or Marzo\or Aprile\or Maggio\or Giugno\or
+ Luglio\or Agosto\or Settembre\or Ottobre\or Novembre\or Dicembre\fi
+ \space \the\year}}{}
+\@ifundefined{@logosede}{\let\@logosede\relax}{}
+%
+\@ifundefined{@TesiDiLaurea}{\def\@TesiDiLaurea{Tesi di Laurea}}{}
+\@ifundefined{@phdschool}{\def\@phdschool{SCUOLA DI DOTTORATO}}{}
+\@ifundefined{@PhDname}{\def\@PhDname{Dottorato in}}{}
+\@ifundefined{@laureaname}{\def\@laureaname{Corso di Laurea in }}{}
+\@ifundefined{@dissertazione}{\def\@dissertazione{Tesi di Dottorato}}{}
+\@ifundefined{@monografia}{\def\@monografia{Monografia di Laurea}}{}
+\@ifundefined{@InName}{\def\@InName{in}}{}
+% \end{macrocode}
+%
+% Finally comes the only active macro |\frontespizio|, the one macro that actually
+% typesets the title page. The macro starts with a local redefinition of the
+% \texttt{myheadings} page style; with this style the university name goes into the
+% header, while the exam date goes in the footer; in this way the information
+% that must be typeset in the title page is not crunched in too little space
+% and the overall text bounding box assumes a shape similar to the page one.
+%
+% Everything is closed within a group so alla definitions remain local.
+% \begin{macrocode}
+\def\frontespizio{%
+\begingroup
+ \def\ps@myheadings{\let\@mkboth\markboth
+ \def\@oddhead{\vbox{%
+ \hbox to \hsize{\hfill {\LARGE \@ateneo}\hfill}%
+ \expandafter
+ \ifx\csname StileTrieste\endcsname\relax
+ \else
+ \hbox to \hsize{\hfil\vrule\@width\z@
+ \@height3.5ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}%
+ \fi
+ }}%
+ \def\@oddfoot{\vbox to 15mm{\vss
+ \expandafter
+ \ifx\csname StileTrieste\endcsname\relax
+ \else
+ \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{%
+ \vrule\@height-2.6\p@\@depth3\p@\@width50mm}\hfil}%
+ \fi
+ \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}%
+ }%
+ \let\@evenhead\@oddhead
+ \let\@evenfoot\@oddfoot
+ }%
+% \end{macrocode}
+%
+% We want also the title page to be set in the middle of the page irrespective of
+% the binding correction; so we assign the average of the two side margins to each margin.
+% \begin{macrocode}
+ \advance\oddsidemargin \evensidemargin
+ \divide\oddsidemargin \tw@
+ \evensidemargin \oddsidemargin
+% \end{macrocode}
+%
+% We select the \texttt{myheadings} page style; setting the page counter to zero
+% is a remain of old settings, but it does not hurt; the |\null| command inserts a void horizontal box
+% into the vertical list; it is useful to act as a block against which the vertical glue pushes
+% for setting the subsequent material. The normal font is chosen in case preceding commands did change
+% the font characteristics.
+% \begin{macrocode}
+ \thispagestyle{myheadings}%
+ \null\setcounter{page}{0}%
+ \normalfont
+% \end{macrocode}
+% The generic university name is already in the header; if it is non blank the first thing
+% we set in the page is the university proper name and some vertical glue.
+% \begin{macrocode}
+ \ifx\@nomeat\empty \else
+ {\vspace*{-3\topskip}\centering
+ \expandafter{\Large \@nomeat}\par}\vfill
+ \fi
+% \end{macrocode}
+% Then the faculty name comes next; but fot the doctoral school it uses the doctoral
+% school name entered with |\scuoladidottorato|, otherwise it inserts the faculty
+% ordinal number or prefix and name already entered with the optional and required
+% arguments of |\facolta|.
+% \begin{macrocode}
+ \begin{center}
+ {\rmfamily\mdseries
+ \ifdottorato
+ \large \@phdschool
+ \else
+ \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi
+ \@faculty\space\expandafter{\@facname}%
+ \fi
+ \par}%
+% \end{macrocode}
+% Further specification: it inserts the field of the PhD research or the degree course name; for example
+% it inserts the line ``Philosophy Degree in Applied Tetratricotomy~--~XVI~cycle'' or
+% ``Master of Science in Applied Tetratricotomy''.
+% \begin{macrocode}
+ \ifx\@corso\empty \else{\large
+ \ifdottorato
+ {\@PhDname\@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi}%
+ \else
+ {\@laureaname\@corso}%
+ \fi
+ \par}
+ \fi
+ \end{center}
+% \end{macrocode}
+% It now centers the name of the report, be it ``Doctoral Dissertation'' or ``Master Thesis'' or whatever; in case
+% the command |\materia| was used, it then centers the area which the thesis deals with.
+% \begin{macrocode}
+ \vfill
+ \begin{center}
+ \LARGE
+ \ifdottorato
+ \@dissertazione%
+ \else
+ \iflaureatriennale
+ \@monografia%
+ \else
+ \@TesiDiLaurea%
+ \fi
+ \fi
+ \ifx\empty\@materia\else
+ \\\@InName\\\@materia
+ \fi
+ \end{center}
+% \end{macrocode}
+% Next comes the real title entered with |\titolo| or |\monografia| and the possible subtitle.
+% \begin{macrocode}
+ \vfill
+ \begin{center}
+ {\huge\bfseries \baselineskip=0.95em plus 1pt
+ \expandafter{\@title \par}}
+ \end{center}
+% con l'eventuale sottotitolo
+ \ifx\@subtitle\empty \else
+ \begin{center}%
+ \large\textrm{\expandafter{\@subtitle}}\par
+ \end{center}%
+ \fi
+% \end{macrocode}
+% If the option \texttt{classica} is in force the thesis might be divided in several volumes;
+% apparently these in humanities are often oversized. In this case the |\frontespizio|
+% command may be given at the beginning of every volume and the counter \texttt{tomo} is
+% stepped up; the volume number is therefore printed in each title page; the infix string
+% may be redefined as it was shown above.
+% \begin{macrocode}
+ \expandafter
+ \ifx\csname StileTrieste\endcsname\relax
+ \else
+ \expandafter
+ \ifnum\value{tomo}>\z@
+ \par\bigskip
+ \noindent\makebox[\textwidth]{%
+ \large\textbf{%
+ \ifcase\c@tomo%
+ \or \PrimoTomo%
+ \or \SecondoTomo%
+ \or \TerzoTomo%
+ \or \QuartoTomo%
+ \else
+ \PackageWarning{toptesi}{%
+ Counter tomo equals \the\c@tomo\MessageBreak
+ It was not considered a thesis might get
+ divided in more than four volumes}%
+ \fi}}%
+ \fi
+ \fi
+ \par
+% \end{macrocode}
+% Going down in the title page now comes the optional insertion of the university logo; this is a simple task
+% once |\@logosede| has been defined, and this was done either with an explicit command |\logosede| with its argument
+% in the preamble, or a specific line in the configuration file.
+% \begin{macrocode}
+ \ifx\@logosede\@empty\else
+ \vspace*{\bigskipamount}
+ {\centering \@logosede\par}\fi
+% \end{macrocode}
+%
+% the final task is to typeset the possible supervisors' names, the candidates' names and all the rest
+% of the bureaucratical terms. We have to distinguish between a bachelor degree report that is not
+% supposed to have a supervisor, from the doctoral dissertation where we do not indicate the supervisor, but
+% the School Director, and the master thesis where there might be one or more supervisors; with the
+% \texttt{classica} option in force no label is printed over the supervisor's name, unless there is
+% a plurality od supervisors.
+% \begin{macrocode}
+ \vfill
+ \iflaureatriennale
+ \let\@nomerelatore\empty
+ \else
+ \ifdottorato
+ \edef\@nomerelatore{\@PhDdirector}%
+ \else
+ \ifx\@principaladviser\empty\else
+ \def\@nomerelatore{\Relatore:}%
+ \fi
+ \@ifundefined{StileTrieste}%
+ {\ifx\@secondadviser\empty \else
+ \def\@nomerelatore{\Relatori:}%
+ \fi}{}%
+ \fi
+ \fi
+% \end{macrocode}
+% Similarly the label names for the exam candidates are chosen; in Italian the names are infix strings
+% that are selected according the gender and the number; if these labels have to be set in a different language
+% it is necessary to define one string that has to be selected by the user according to number and gender.
+% The label for the doctorship is left empty.
+% \begin{macrocode}
+ \ifdottorato
+ \let\@nomecandidato\empty
+ \else
+ \iflanguage{italian}{%
+ \iffemminile
+ \def\@nomecandidato{\Candidata:}%
+ \else
+ \def\@nomecandidato{\Candidato:}%
+ \fi
+ \ifx\@secondauthor\empty \else
+ \iffemminile
+ \def\@nomecandidato{\Candidate:}%
+ \else
+ \def\@nomecandidato{\Candidati:}%
+ \fi
+ \fi}{}
+ \fi
+% \end{macrocode}
+%
+% For the names of the supervisor(s) and of the candidate(s) a different approach is used for each one
+% of the three categories of theses. If a bachelor degree report is dealt with, the name of the \emph{only}
+% candidate is centerd and written in caps-and-small-caps.
+% \begin{macrocode}
+ \iflaureatriennale
+ \begin{center}%
+ \large\mdseries\textsc{\@author}
+ \end{center}%
+% \end{macrocode}
+% For doctoral and master theses two virtual boxes (actually macros) are filled up so as to align
+% the supervisor name(s) and, in second virtual box, the candidate name(s). The label is set in the
+% first line with proper number and gender; in the second line the first name, and in the subsequent lines,
+% if there are any, the other names. These virtual boxes actually contain a tabular environment each; these
+% environments shall be actually typeset when these virtual box macros are executed. If the \texttt{classica}
+% option is in force no label is set over the principal advisor name, but a label is set over the co-advisor
+% name(s). The type size is also e little different for the \texttt{classica} option. The |\protect| command
+% is used to protect the names in case they contain accent macros that might be expanded at the wrong moment.
+% \begin{macrocode}
+ \else
+% Per laurea e dottorato con relatori e correlatori...
+ \def\BoxRelatori{%
+ \begin{tabular}[t]{l}%
+ \hbox{{\@ifundefined{StileTrieste}{\large}{}%
+ \textbf{\protect\@nomerelatore}}}\\[.6ex]
+ \hbox{{\large\textrm{\protect\@principaladviser}}}%
+ \ifx\@secondadviser\empty \else
+ \@ifundefined{StileTrieste}{}{%
+ \ifx\@thirdadviser\empty
+ \ifx\@secondadviser\empty\else
+ \\[1.5ex]\textbf{\Correlatore:}%
+ \fi
+ \else
+ \\[1.5ex]\textbf{\Correlatori:}%
+ \fi}
+ \\[.6ex]\hbox{{\large\textrm{\protect\@secondadviser}}}%
+ \fi
+ \ifx\@thirdadviser\empty \else
+ \\[.6ex] \hbox{{\large\textrm{\protect\@thirdadviser}}}%
+ \fi
+ \end{tabular}%
+ }%
+% \end{macrocode}
+% A similar approach is taken for the candidate name(s)
+% \begin{macrocode}
+ \def\BoxCandidati{%
+ \begin{tabular}[t]{l}%
+ \hbox{{\expandafter
+ \@ifundefined{StileTrieste}{\large}{}%
+ \textbf{\protect\@nomecandidato}}}\\[.6ex]
+ \hbox{{\large\textrm{\protect\@author}}}%
+ \ifx\@secondauthor\empty
+ \else
+ \\\hbox{{\large\textrm{\protect\@secondauthor}}}%
+ \fi
+ \ifx\@thirdauthor\empty
+ \else
+ \\\hbox{{\large\textrm{\protect\@thirdauthor}}}%
+ \fi
+ \end{tabular}%
+ }%
+% \end{macrocode}
+% The real typesetting of these name lists takes place now; if the thesis is referred to the
+% PhD school one type of layout is used, otherwise the default master thesis layout is used; remember
+% that the bachelor degree case has already taken place. For the doctoral dissertation the doctoring
+% person name is typeset centered in one line by itself and everything else is set 3em below
+% into a three column table extended to the |\hsize|, the first line containing the person labels
+% and the second line containing the true names. The central column is used just for spacing, but it does
+% not contain anything.
+% \begin{macrocode}
+ \ifdottorato
+ \begin{center}\large
+ \textbf{\@author}\\[3em]
+ {\normalsize
+ \begin {tabular*}{\hsize}{@{\extracolsep{\fill}}ccc}
+ \ifx\@tutore\empty\else
+ \textbf{\Tutore}
+ \fi
+ &\relax&
+ \ifx\@principaladviser\empty\else
+ \textbf{\@nomerelatore}
+ \fi
+ \\
+ \ifx\@tutore\empty\else
+ \@tutore
+ \fi
+ &\relax&
+ \ifx\@principaladviser\empty\else
+ \@principaladviser
+ \fi
+ \end{tabular*}
+ }%
+ \end{center}
+ \else
+% \end{macrocode}
+% For the master thesis the two virtual boxes are set one besides the other but skewed
+% so that to the right or, respectively, to the left of every name there is enough space for the signatures.
+% With the \texttt{classica} option in force the two boxes are simply aligned.
+% \begin{macrocode}
+ \expandafter
+ \@ifundefined{StileTrieste}{%
+ \begin{flushleft}%
+ \BoxRelatori
+ \end{flushleft}\par\vspace*{-1.5\baselineskip}
+ \begin{flushright}%
+ \BoxCandidati
+ \end{flushright}\par}{%
+ \noindent
+ \makebox[\textwidth]{\BoxRelatori
+ \hfill\BoxCandidati}\par}%
+ \fi
+ \fi
+% \end{macrocode}
+% The final item is the optional name of the company supervisor.
+% \begin{macrocode}
+\ifx\@tutoreaziendale\@empty\else
+ \vfill\vfill
+ {\centering \textbf{\@tutoreaziendalename}\\[.6ex]
+ \@tutoreaziendale\par}
+\fi
+% \end{macrocode}
+% All the material now is on the page; we put some more vertical glue and we close
+% the page sending it to the output file; the final |\endgroup| closes the |\begingroup| that was
+% set at the beginning of this long macro.
+% \begin{macrocode}
+ \vfill\par\null
+ \clearpage
+\endgroup}
+%</topfrn>
+% \end{macrocode}
+%
+% \subsection{A sample configuration file}
+% the following code generates a simple configuration file that the user
+% can change at will; it can be used as a template for generating a really
+% personal configuration file.
+% \begin{macrocode}
+%<*topcfg>
+%%
+%%================================================================
+%% This file is the only file of the TOPtesi bundle that the user
+%% can modify without restrictions in order to personalize the
+%% contents of this configuration file to his/her needs. The user
+%% can add or remove lines, comment or uncomment lines, change the
+%% arguments to the macros, add definitions and so on.
+%%================================================================
+%%
+\ateneo{Politecnico di Torino}
+\facolta{Ingegneria}
+\FacoltaDi{Facolt\`a di }
+%%\DottoratoIn{Corso di dottorato in }
+\CorsoDiLaureaIn{Corso di Laurea in }
+\TesiDiLaurea{Tesi di Laurea Magistrale}
+%%\NomeMonografia{Monografia di Laurea}
+%%\NomeDissertazione{Tesi di Dottorato}
+\InName{in}
+%%\TutorName{Tutore}
+%%\CycleName{ciclo}
+%</topcfg>
+% \end{macrocode}
+% \subsection{The package file \texttt{topcoman.sty}}
+% This file may be used as an independent extension package for the \texttt{report}
+% document class, and possibly for other classes
+% \begin{macrocode}
+%<*topcmn>
+\NeedsTeXFormat{LaTeX2e} % lavora solo con LaTeX 2e
+\ProvidesPackage{topcoman}%
+ [2005/12/08 v.4.00.00 Additional commands for the TOPtesi bundle]
+% \end{macrocode}
+% The new command |\DeclareSlantedCapitalGreekLetters| optionally sets the capital
+% Greek letters in math mode with the glyphs taken from the math italic fonts, not from
+% the math roman fonts, at is is by default; some persons prefer to use both symbols with
+% different meanings, so this command lets them do so.
+% \begin{macrocode}
+\newcommand*\DeclareSlantedCapitalGreekLetters{%
+ \mathchardef\Gamma="7100
+ \mathchardef\Delta="7101
+ \mathchardef\Theta="7102
+ \mathchardef\Lambda="7103
+ \mathchardef\Xi="7104
+ \mathchardef\Pi="7105
+ \mathchardef\Sigma="7106
+ \mathchardef\Upsilon="7107
+ \mathchardef\Phi="7108
+ \mathchardef\Psi="7109
+ \mathchardef\Omega="710A
+}
+% \end{macrocode}
+% The |\ensuremath| command is defined in the \LaTeX\ kernel from a certain version on;
+% should the user employ a really old \LaTeXe\ implementation this definition
+% supplies the missing one.
+% \begin{macrocode}
+\providecommand{\ensuremath}[1]{\ifmmode#1\else$#1$\fi}%
+% \end{macrocode}
+% The following commands may be already defined; should they be missing they are supplied here.
+% The greatest part of them is already defined in the Italian option to the
+% \texttt{babel} language; but remember; this package may be used as a stand alone one, without
+% the initial call by the \texttt{toptesi} document class, so that the language Italian might
+% be undefined.
+% \begin{macrocode}
+\providecommand{\ohm}{\ensuremath{{\mathrm{\Omega}}}}
+\providecommand{\ped}[1]{\ensuremath{_{\mathrm{#1}}}}
+\providecommand{\ap}[1]{\ensuremath{^{\mathrm{#1}}}}
+\providecommand{\unit}[1]{\ensuremath{{\mathrm{\,#1}}}}
+\providecommand{\gei}{\ensuremath{{\mathop{\mathrm{j}}\nolimits}}}
+\providecommand{\eu}{\ensuremath{{\mathop{\mathrm{e}}\nolimits}}}
+\providecommand{\micro}{\ensuremath{\ifx\muup\undefined\mu\else\muup\fi}}
+\providecommand{\gradi}{\ensuremath{^\circ}}
+% \end{macrocode}
+%
+%T he next set of definitions are used to list a program file. There are
+% better packages to perform this task in the CTAN archives. This set of macros
+% has the advantage that is very short and light on the computer memory; nevertheless
+% it performs its duty pretty well. The font face is the typewriter one; the font size is chosen so as to
+% allow approximately 80 characters in the text width of the thesis. It respects the
+% possible indentation tabs (ASCII code 9) by inserting the correct amount of typewriter spaces
+% so as to align every line to the correct boundary which is ``zero modulo eight''.
+% If the program file contains some form feed ASCII characters (ASCII code 12), this
+% \TeX\ code inserts a new page command. The code may appear strange, and it does because
+% it makes heavy use of the dirty tricks of appendix~D of the \TeX\-book.
+% \begin{macrocode}
+\def\listing#1{\par\begingroup
+\programma \input #1 \endgroup}
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12}\dospecials}
+\def\programma{\footnotesize\tt \parindent 0pt
+\def\par{\leavevmode\egroup\box0\endgraf}
+\catcode`\`=\active \catcode`\^^I=\active \catcode`\^^L=\active
+\obeylines \uncatcodespecials \obeyspaces
+\everypar{\startbox}}
+% \end{macrocode}
+% The above code does the whole work, but the alignment to the tab stops and the
+% new page command associated to the form feed ASCII character are done with the following definitions.
+% \begin{macrocode}
+\newdimen\tabwidth \setbox0=\hbox{\footnotesize\tt\space} \tabwidth=8\wd0
+\def\startbox{\setbox0=\hbox\bgroup}
+{\obeyspaces\global\let =\ }
+{\catcode`\`=\active \gdef`{\relax\lq}}
+{\catcode`\^^I=\active
+\gdef^^I{\leavevmode\egroup \dimen0=\wd0
+\divide\dimen0 by\tabwidth
+\multiply\dimen0 by\tabwidth
+\advance\dimen0 by\tabwidth
+\wd0=\dimen0 \box0 \startbox}}
+{\catcode`\^^L=\active \gdef^^L{\par\penalty-10000}}
+% \end{macrocode}
+%
+% The following code is already set in the \texttt{toptesi} package; here it is
+% repeated because this package might be used as a stand alone one. Remember that
+% the comma as a decimal separator is required for all languages except English.
+% \begin{macrocode}
+\mathcode`\,="013B
+\catcode`\^^Z=10
+% \end{macrocode}
+%
+% The following commands are used to write the ``lower case'' roman numerals
+% with the small-caps; in order to avoid complications with missing fonts or math
+% environments we make sure to typeset these numerals with script style capitals; this solution
+% is not probably the best one but it works. Unfortunately it typesets these roman numerals
+% only with the roman type; for this thesis bundle roman numerals are used only for folios,
+% therefore there are no problems with a choice of fonts shapes and series.
+% \begin{macrocode}
+\gdef\@roman#1{\protect\ensuremath{\scriptstyle
+ \mathrm{\uppercase\expandafter{\romannumeral #1}}}}%
+% \end{macrocode}
+%
+% A user, Antonio Mele has suggested and requested the possibility of having the figure
+% and table name inserted automatically when the |\ref|command is issued. For single citations the
+% solution works fine, but for range references it does not work. In Italian the name must be lower case
+% while in other languages, specifically in English, the name has a capital initial. Since
+% this feature might be handy in certain circumstances and annoying in other ones; this feature
+% can be turned on and off at will with the enabling and disabling commands. By default
+% the feature is disabled.
+% \begin{macrocode}
+\def\ft@figure{\iflanguage{italian}{\MakeLowercase{\figurename}}%
+ {\figurename}~}
+\def\ft@table{\iflanguage{italian}{\MakeLowercase{\tablename}}%
+ {\tablename}~}
+%
+\newcommand*\EnableFigTabNames{%
+ \let\p@figure\ft@figure\let\p@table\ft@table}
+\newcommand*\DisableFigTabNames{%
+ \let\p@figure\empty\let\p@table\empty}
+%
+\DisableFigTabNames
+%</topcmn>
+% \end{macrocode}
+% \subsection{The class option file \texttt{topsiz14.clo}}
+% Among the options available there is the possibility of typesetting the thesis with
+% a large normal font size, specifically 14pt. The following file is just a copy of the
+% other size??.clo class option files where the font dimensions have been modified so
+% as to be coherent whit a normal size of 14pt. There is nothing unusual except that
+% the font sizes are taken from the kernel macros where the magic numbers of non
+% integer sizes are specified. The baseline skips are substantially the ones taken
+% from the 10pt default size and multiplied by 1.44, or those of the 12pt option
+% multiplied by 12; in both cases they were rounded to integers most of the times.
+% Since the whole bundle works only under \LaTeXe, we deleted all the tests for
+% compatibility with \LaTeX\,209 and the corresponding test branches.
+% \begin{macrocode}
+%<*top14>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{topsiz14.clo}%
+ [2006/04/16 v.4.00.01 TopTesi 14pt size-option file]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xivpt{18}%
+ \abovedisplayskip 14\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 8.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\renewcommand\small{%
+ \@setfontsize\small\@xiipt{14}%
+ \abovedisplayskip 13\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 7.5\p@ \@plus3.5\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\renewcommand\footnotesize{%
+ \@setfontsize\footnotesize\@xipt{13}
+ \abovedisplayskip 12\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 7\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\renewcommand\scriptsize{\@setfontsize\scriptsize\@xpt{12}}
+\renewcommand\tiny{\@setfontsize\tiny\@viiipt\@xpt}
+\renewcommand\large{\@setfontsize\large\@xviipt{22}}
+\renewcommand\Large{\@setfontsize\Large\@xxpt{25}}
+\renewcommand\LARGE{\@setfontsize\LARGE\@xxvpt{30}}
+\renewcommand\huge{\@setfontsize\huge\@xxvpt{30}}
+\let\Huge=\huge
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{1.5em}
+\fi
+\setlength\smallskipamount{3.5\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{7\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{14\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{14\p@}
+\setlength\headsep {36\p@}
+\setlength\topskip {14\p@}
+\setlength\footskip{30\p@}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{390\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+ \@settopoint\textwidth
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep{10\p@}
+\else
+ \setlength\marginparsep{10\p@}
+\fi
+\setlength\marginparpush{7\p@}
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip}
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\setlength\footnotesep{10.4\p@}
+\setlength{\skip\footins}{13\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {16\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\dblfloatsep {16\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{10\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{10\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \topsep 10\p@ \@plus4\p@ \@minus6\p@
+ \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \parsep 2.5\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2.5\p@\@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%</top14>
+% \end{macrocode}
+% \subsection{The package file \texttt{trieste.sty} for the \texttt{classica} option}
+% As mentioned above, the \texttt{classica} option was devised in order to cope with theses
+% in humanities and the specifications came from Paolo Ciacchi, a student of the University
+% of Trieste, who was preparing a master thesis in classical Greek philology. The necessity of
+% the large normal size derived from the necessity of having clear mark-up signs among the
+% myriad philologists use, that sometimes let me believe that the philological mark-up requires
+% typesetting environments similar to the mathematical ones, since the material to be typeset
+% does not form a linear sequence, as in plain text, but a bi-dimensional structure as in mathematics.
+% In previous version this file was input with the option \texttt{trieste}, but another option \texttt{classica}
+% was defined so as not to tie these facilities only to the University of Trieste.
+%
+% The other requirements involve the title page and I agreed to implement them, since they are
+% likely to be useful for other universities as well; the effort for localizing this bundle
+% makes this point less stringent compared to the previous versions, but there are other layout fine points that
+% cannot be solved with a simple substitution of infix strings.
+%
+% In order to have the whole bundle be aware of the option classica a specific control sequence
+% is defined so as to be unique to this file. This definition is not ``undefined'' only if this file
+% has already been input.
+% \begin{macrocode}
+%<*toptrst>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{trieste}%
+ [2005/12/08 v.4.00.00 opzioni specifiche per Trieste]
+\def\StileTrieste{classica}
+% \end{macrocode}
+%
+% For the options specific to this package a couple of boolean variables are defined and the option
+% definitions set them to the value ``true''.
+% \begin{macrocode}
+\newif\if@utoretitolo \@utoretitolofalse
+\newif\if@ldstyle \@ldstylefalse
+\DeclareOption{autoretitolo}{\@utoretitolotrue}
+\DeclareOption{oldstyle}{\@ldstyletrue}
+\ProcessOptions
+% \end{macrocode}
+% The singular and plural masculine and feminine strings for ``candidate'' are redefined. For other languages
+% the configuration file comes in handy.
+% \begin{macrocode}
+\def\Candidato{Laureando}
+\def\Candidata{Laureanda}
+\def\Candidati{Laureandi}
+\def\Candidate{Laureande}
+% \end{macrocode}
+%
+% Since theses in humanities may end up to occupy several volumes (classically ``tomo''
+% in Italian means ``volume'', although the latter spelling is valid also in Italian with the same meaning
+% but appears to be neglected by the humanists; in English ``tome'' indicates a ``large book''; in Italian the
+% meaning nuance of ``tomo'' is a little different because it is used to indicate the volumes
+% into which a large typeset work is divided; the humanists, as usual, know well their words and use them properly!)
+% a mechanism is set up to create a different title page for each volume; we need a volume counter
+% and a command to start each volume; the |\frontespizio| macro typesets the real title page and we have
+% already seen that it can print the volume ordinal. The localization allows to change the infix string that
+% is going to be printed. When several tomes are involved, instead of using the |\frontespizio| macro,
+% use the |\tomo| one, that provides to stepping up the volume counter before actually printing the new tome
+% title page.
+% \begin{macrocode}
+\newcounter{tomo}
+\newcommand*{\tomo}{\clearpage\stepcounter{tomo}\frontespizio}
+% \end{macrocode}
+% Folios as well are to be redefined and also the page styles require a redefinition so as to being
+% able to use old style numbers. The macro |\lapagina| (it's not a case the this macro name is the
+% direct translation of ``the page'') contains the folio number; if it is in roman numerals nothing
+% happens, but if the old style numbers are required the folio is surrounded by the proper macros
+% so as to expand the folio macro before typesetting it in old style. The page style does not need
+% an actual redefinition, because the original definition in file \texttt{toptesi.sty} already uses
+% |\lapagina| as the typeset folio indicator.
+% \begin{macrocode}
+\renewcommand*{\lapagina}{%
+ \ifnumeriromani
+ \thepage
+ \else
+ \if@ldstyle
+ \expandafter\oldstylenums\expandafter{\thepage}%
+ \else
+ \thepage
+ \fi
+ \fi
+ }
+% \end{macrocode}
+% But we actually have to redefine the page style for the new headings because the \texttt{classica}
+% options changes completely the left and the right headers depending on the option \texttt{autoretitolo};
+% in this case the left header contains the candidate's name a a short version of the thesis title,
+% while the right heading contains the chapter (short) title; if this option is not in force, headings
+% appear as usual. The redefinition of the \texttt{headings} page style is made only of this option
+% is in force. IN case of two side printing where the left head and the right head are different,
+% the left heading contains the author name and the short title name; if there are other authors the
+% first author name is printed followed by ``et al.''; if the over all header string exceeds the text
+% width, a message is printed so as to induce the user to make use of the optional |\titolo| argument,
+% the one that is supposed to contain the short title. In the right heading there is the chapter title;
+% again if the header turns out to bee too wide, a message is issued to the user.
+%
+% More complicated things are done when typesetting on one side; in facts the author name
+% (possibly followed by ``et al.'') and the short thesis title are typeset on the left
+% of the only header while the chapter title is typeset on the right; in the unlikely
+% situation where these two elements separated by at least 2em of white space do not exceed
+% the text width, they are printed, but if they do, as it is likely to happen, then my suggestion
+% would be not to use the \texttt{autoretitolo} option, but if the user absolutely wants this
+% layout, then the author's name, possibly followed by ``et al.'', and the short thesis title
+% are set in a vertical box; the same happens for the chapter title in another box; these
+% texts are set withe ragged margins on the center, and finally these boxes are set one next
+% to the other with an intermediate glob of infinitely stretchable glue, and finally set
+% in the header box with a rule underneath the two of them. The result might be barely acceptable
+% if both vertical boxes do not exceed two lines and no words have to be hyphenated, but in
+% general I believe it is an ugly layout; the user is warned!
+% \begin{macrocode}
+\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{\latintext
+ \footnotesize\strut\textsc{%
+ \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}%
+ }%
+ \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi
+ \underline{\makebox[\textwidth]{\box\@intesta}}}%
+ \def\@oddhead{\latintext
+ \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{\latintext\footnotesize
+ \textsc{%
+ \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}}%
+ \setbox\tw@\hbox{\latintext\footnotesize\textsl{\rightmark}}%
+ \dimen@=2em\advance\dimen@\wd\z@\advance\dimen@\wd\tw@
+ \ifdim\dimen@<\textwidth \relax
+ \else
+ \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@\raggedright
+ \latintext\footnotesize\textsc{%
+ \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle
+ }}%
+ \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@\raggedleft
+ \latintext\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
+% \end{macrocode}
+% Here |\annoaccademico| is defined that typesets the infix string corresponding to
+% ``Anno accademico'' followed by the year range in old style numbers (irrespective
+% of the \texttt{oldstyle} option); Commands for the localization are provided so as
+% to set a different string, possibly through the configuration file. In order to set
+% an adequate en-dash between the old style numbers a new definition is given that
+% takes care to set the dash at a height above the base line that copes the specific
+% shape of the old style numbers.
+% \begin{macrocode}
+\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}}
+\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{}
+%
+\def\annoaccademico#1{%
+ \def\@submitdate{{\large\textsc{\AnnoAccademico}} {\Large\s@tanno#1!}}}
+\def\s@tanno#1-#2!{\oldstylenums{#1\EnDash#2}}
+
+\def\EnDash{{\settowidth{\dimen@}{\large\sc I}%
+\setbox\tw@\hbox{2}\dimen\tw@.5\ht\tw@\advance\dimen\tw@-.5\dp\tw@
+\dimen4\dimen\tw@\advance\dimen4by.0385ex\relax
+\advance\dimen\tw@-.0385ex\relax
+\makebox[1.5\dimen@]{%
+ \vrule\@width\dimen@\@height\dimen4\@depth-\dimen\tw@}}}
+% \end{macrocode}
+% The footnote rule separator is also longer that the default one. Dealing with notes
+% the footnote separator is also changes as well as the footnote skip. But the humanists
+% like to have also unnumbered notes within numbered ones, as if they were two separate
+% sets; of course specialized extensions are available on CTAN, but as a poor man solution
+% the command |\nota| was introduced that inserts a note with a symbol as a note mark;
+% the symbol \emph{must} be a mathematica symbol as the dagger or the double dagger;
+% by default it is the asterisk. At the same time the default definition of the mathematical
+% asterisk is that of a binary operator; I have experienced that the note symbol gets a
+% better positioning if if is declared an ordinary symbol, treated as, say, a letter. This
+% is why its math code is redefined. A final unusual request was to be able to put a blank
+% unnumbered note, as a (rather wide) note separator. The command |\NoteWhiteLine| has to
+% be used at the end of the text of the preceding note.
+% \begin{macrocode}
+\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@}
+\DeclareMathSymbol{*}{\mathalpha}{symbols}{"03}
+\newcommand*\nota[1][*]{%
+ \xdef\@thefnmark{\ensuremath{\m@th#1}}\@footnotemark\@footnotetext
+}
+\newcommand*{\NoteWhiteLine}{\par\vspace*{-.3\baselineskip}}
+% \end{macrocode}
+%
+% The humanists asked me to create some other simple macros: one for skipping a whole page,
+% without header and footer; another to compose a dedication page; a third one for typesetting
+% a page with one or more witty sentences. The first request has a trivial solution, but at
+% least |\paginavuota| is much shorter to type in that its expansion.
+%
+% The environments \texttt{dedica} for the dedication, and \texttt{citazioni} for the witty
+% sentences are almost identical; both typeset their content with a reduced text width, half
+% of the normal one; this column is typeset on the right of the page. The \texttt{dedica}
+% environment is supposed to be used in the front matter, while the witty sentence environment
+% may be used anywhere. The dedication is typeset in |\Large| font size and in italics; if the
+% author wants a different size and/or a different shape s/he must specify it at the beginning
+% of the dedication. The \texttt{citazioni} environment typesets its material with the default
+% font shape series and size, so the author has to specify any change s/he desires.
+%
+% \begin{macrocode}
+\newcommand*\paginavuota{\clearpage\thispagestyle{empty}\null\clearpage}
+%
+\newenvironment{dedica}{\clearpage
+ \if@twoside
+ \ifodd\c@page\else\thispagestyle{empty}\clearpage\fi
+ \fi
+ \thispagestyle{empty}%
+ \list{}{\labelwidth\z@
+ \leftmargin.5\textwidth
+ \parindent\z@
+ \raggedright\LARGE\itshape}\item[]
+}{%
+ \endlist\clearpage
+}
+%
+\newenvironment{citazioni}{%
+ \clearpage\thispagestyle{empty}
+ \list{}{\labelwidth\z@
+ \leftmargin.5\textwidth
+ \parindent\z@
+ \raggedright}\item[]
+}{%
+ \endlist\clearpage
+}
+%</toptrst>
+% \end{macrocode}
+% \Finale
+% \endinput
diff --git a/Master/texmf-dist/source/latex/toptesi/toptesi.ins b/Master/texmf-dist/source/latex/toptesi/toptesi.ins
new file mode 100644
index 00000000000..da3e4a1a532
--- /dev/null
+++ b/Master/texmf-dist/source/latex/toptesi/toptesi.ins
@@ -0,0 +1,113 @@
+%%
+%% This file is necessary to extract from file toptesi.dtx the following files:
+%% toptesi.cls,
+%% toptesi.sty,
+%% topcoman.sty,
+%% topfront.sty,
+%% topsiz14.clo,
+%% trieste.sty,
+%% toptesi.cfg
+%% that are strictly speaking the components of the TOPtesi bundle and form
+%% the Work. The extraction is performed by means of the doctrip utility
+%% that extracts practically only the uncommented lines so that their loading
+%% becomes very quick. The bundle documentations in Italian is contained
+%% in the document toptesi-doc.pdf (part of the bundle), and further
+%% documentation in English may be obtained by LaTeX processing the
+%% documented TeX source file toptesi.dtx.
+%%
+%% ----------------------------------------
+%%
+%% This system is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Copyright 1989--2006 Claudio Beccari
+%% All rights reserved.
+%%
+%% Permission is granted to distribute verbatim copies of this file
+%% together with toptesi.dtx.
+%%
+%% No other permissions to copy or distribute this file in any form
+%% are granted and in particular no permission to modify its contents.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{toptesi.ins}
+\input docstrip.tex
+\preamble
+
+Copyright 1989--2005 Claudio Beccari All rights reserved.
+
+ This system is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+IMPORTANT NOTICE:
+
+This file is subject to the LPPL licence, version 1.3 or any subsequent
+version. Copy of the LaTeX Project Public Licence is downloadable from
+any CTAN archive.
+
+
+\endpreamble
+
+\keepsilent
+
+\Msg{*** Generazione dei file del pacchetto TOPtesi ***}
+
+\generateFile{toptesi.cls}{t}{\from{toptesi.dtx}{class}}
+\generateFile{toptesi.sty}{t}{\from{toptesi.dtx}{topsty}}
+\generateFile{topcoman.sty}{t}{\from{toptesi.dtx}{topcmn}}
+\generateFile{topfront.sty}{t}{\from{toptesi.dtx}{topfrn}}
+\generateFile{topsiz14.clo}{t}{\from{toptesi.dtx}{top14}}
+\generateFile{trieste.sty}{t}{\from{toptesi.dtx}{toptrst}}
+\generateFile{toptesi.cfg}{t}{\from{toptesi.dtx}{topcfg}}
+
+
+
+
+\ifToplevel{%
+\Msg{***********************************************************}
+\Msg{*\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space*}
+\Msg{* Now move all files to a folder that is on \space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space*}
+\Msg{* the LaTeX search path \space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space*}
+\Msg{*\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space*}
+\Msg{* In order to produce the English documentation run LaTeX *}
+\Msg{* on toptesi.dtx. \space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space*}
+\Msg{*\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space\space*}
+\Msg{* \space\space\space\space\space\space\space\space\space
+ \space\space\space\space
+ Buon lavoro! Happy TeXing! \space\space\space\space\space
+ \space\space\space\space\space\space\space\space\space\space
+ \space*}
+\Msg{***********************************************************}
+}
+
+\endinput