diff options
author | Karl Berry <karl@freefriends.org> | 2017-10-22 19:50:59 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-10-22 19:50:59 +0000 |
commit | b2fad8915b87bb45e4d3ffafd0f8119da45a921e (patch) | |
tree | f45834fea9954883b7fc8d5f4b85b956f7b6be4a /Master | |
parent | 96c2540c6bcd6585ee23a0d384bea78715befec8 (diff) |
toptesi (22oct17)
git-svn-id: svn://tug.org/texlive/trunk@45577 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
55 files changed, 14577 insertions, 3986 deletions
diff --git a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati.pdf b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati.pdf Binary files differnew file mode 100644 index 00000000000..8c17d034feb --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati1.tex b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati1.tex deleted file mode 100644 index f3c9d04e0cd..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati1.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass{toptesi} -\usepackage{pdfpages} -\begin{document} -\pagestyle{empty} -\includepdf[pages=-,nup=2x2, delta=2ex 2ex,frame,column]{frontespizi2-xetex} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.pdf b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.pdf Binary files differindex 6dc80227734..fe3f66dd998 100644 --- a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.tex b/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.tex deleted file mode 100644 index d028c0f24af..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/FrontespiziAssemblati2.tex +++ /dev/null @@ -1,7 +0,0 @@ -\documentclass{toptesi} -\usepackage{pdfpages} -\begin{document} -\pagestyle{empty} -\includepdf[pages=-,nup=2x2, delta=2ex 2ex,frame,column]{frontespizi3-xetex} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/toptesi/Frontespizio-sss.pdf b/Master/texmf-dist/doc/latex/toptesi/Frontespizio-sss.pdf Binary files differnew file mode 100644 index 00000000000..8f8b2f20530 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/Frontespizio-sss.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/FrontespizioScudo.pdf b/Master/texmf-dist/doc/latex/toptesi/FrontespizioScudo.pdf Binary files differnew file mode 100644 index 00000000000..8d3dd479465 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/FrontespizioScudo.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/Logoblu.pdf b/Master/texmf-dist/doc/latex/toptesi/Logoblu.pdf Binary files differdeleted file mode 100644 index 285e893b065..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/Logoblu.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/toptesi/README b/Master/texmf-dist/doc/latex/toptesi/README index 4cedadad224..31d323abb2b 100644 --- a/Master/texmf-dist/doc/latex/toptesi/README +++ b/Master/texmf-dist/doc/latex/toptesi/README @@ -1,12 +1,12 @@ -TOPtesi bundle version 5.9.06 of 2016 -Copyright 2008-2016 Claudio Beccari +TOPtesi bundle version 6.x +Copyright 2008-2017 Claudio Beccari LaTeX Project Public Licence LPPL v.1.3 (or later) The TOPtesi bundle contains everything is needed for typesetting a bachelor, master or PhD thesis in Italian (or in any other language supported by LaTeX: the bundle supports multi-language use). -The infix strings may be selected and specified at will by means +The infix strings may be selected and/or specified at will by means of a configuration file, so as to customise the information of the front page to the requirements of a specific university and a specific language. @@ -16,75 +16,83 @@ multi-language theses that are more and more frequent thanks to the double degree programs of the European Union Erasmus programs or the Life Long Learning European programs. -Version 5.9.06, besides minor corrections in the documentation, redefines -the \unit macro so as to be compatible with package SIunitx. +This version 6.x is backwards compatible, but it is completely new; it +uses key=value options, and uses different modules to typeset all +types of thesis supported by the package; it allows to select the use +of the frontespizio package to typeset the title page in substitution +of its standard modules; it allows a custom setting, to let the user +typeset his/her own title page layout. -Version 5.9.05 starts a new numbering scheme with version, subversion and -subsubversion; it gives more flexibility to version numbering. +As a new feature, among the various thesis types there is also the one +that Italian tudents submit to the examining committee of their final +high-school State Exam. -This new TOPtesi bundle contains some corrections to the topfront.sty -module to be used as a standalone extension to be used with classes -other than toptesi.cls. - -Version 5.93 of TOPtesi was intended to be compliant also with XeLaTeX +Version 5.92 of TOPtesi was intended to be compliant also with XeLaTeX and LuaLaTeX; the documentation explains also how to obtain PDF/A-1b -archivable files from pdfLaTeX, XeLaTeX, and LuaLaTeX. This particular part -is up to date with respect to package pdfx dated 2016/05/03 v.1.5.8 and -to ghostscript 9.16. +archivable files from pdfLaTeX, XeLaTeX, and LuaLaTeX. This particular +functionality was up to date with respect to package pdfx dated +2016/05/03 v.1.5.8. + +Version 5.91 contained some small enhancements and bug corrections. -Version 5.90 had been enhanced with some more class options that allow +Version 5.90 was enhanced with some more class options that allowed TOPtesi to be used with external packages for typesetting the title -page in different styles. +page in different styles. It had a completely enhanced and redone +Italian documentation file toptesi-it.pdf. -Version 5.90 had a completely enhanced and redone Italian documentation -file toptesi-it-pdftex.pdf. -Version 5.91 contained some small enhancements and bug corrections. +For installation, if the package is not already installed in your +TeX system distribution, either read the Italian documentation +toptesi-it.pdf or move the toptesi.zip file to + +.../texmf/source/latex/toptesi. -Version 5.92, besides some more little enhancements and bug correction, -has its documentation completely redone in order to upgrade it to the -most recent version (1.5.8) of the pdfx package needed to produce PDF/A -compliant PDF output files; in particular now PDF/A compliant files can -be produced also with LuaLaTeX, but no tricks are now needed to use -LuaLaTeX (version 0.95). - -The package is already installed with complete TeXLive or -MiKTeX distributions. In this case you don't need to -decompress anything and move files around. Possibly check if the -CTAN repository contains a newer version and, in case, use your package -manager to upgrade your installation, but don't ever move or change -anything in the TeX system directories. - -For a personal installation, if the package is not already installed -in your TeX system distribution, either read the Italian documentation -toptesi-it.pdf or quickly create in your HOME directory a folder /texmf, -and create these three subtrees: -.../texmf/source/latex/toptesi/ -.../texmf/doc/latex/toptesi/ -.../texmf/tex/latex/toptesi/ - -then move the toptesi.zip file to .../texmf/source/latex/toptesi/; -in this directory and decompress the .zip file. - -Run pdflatex on toptesi.dtx in order to get the class, style and +and decompress it. + +Then run pdflatex on toptesi.dtx in order to get the class, style and configuration files (and the pdf documentation in English) and move the .tex, .cls, .sty, and .cfg files (including the -example .tex and .pdf files) to .../texmf/tex/latex/toptesi/; move to this -folder also the GuITlogo.pdf, MPlogo.pdf, Logouno.pdf, Logodue.pdf, -Logotre.pdf, Logoquattro.pdf, and Logoblu.pdf files. - -For your personal installation, your personal texmf folder is rooted -in your home directory: ~ on Linux; ~/Library on Mac OS X; on a path -with different names on different Windows systems, all of them -containing in one form or another your login name. +example .tex and .pdf files) to .../texmf/tex/latex/toptesi/. + +Two fake logos of the "Institute of Technology of Turin" and its Doctoral +School are provided, in substitution of the legal official ones. They both +have a "FAKE LOGO" watermark so as to be sure they are not used in place +of the official ones. In the documentation of this bundle they are used +as examples of possible logos, but they do not represent in any way any +official logo. Even the fake institutional name, the translation in English +of the official Italian one, has nothing to do with the trademarked one, +the only one the Politecnico of Torino bachelor, master, and PH.D. students +should use for their actual theses; they have to get the official logos +from their Student Office, or from the official restricted Web site where +only institutional students have access. + +Move the .txt and the remaining .pdf files plus this README file to +.../texmf/doc/latex/toptesi. + +If the mentioned folders do not exist, create them. + +For a personal installation, the /texmf folder is your personal +one, rooted in your home directory: ~ on Linux; ~/Library +on Mac OSX; on a path with different names on different Windows +systems, all of them containing in one form or another your login +name; in recent Windows editions your home directory is +C:\Users\<your login name>. If you are running a Windows platform change the slashes into backslashes and prefix all paths with the drive letter and any other specific prefix -that is present in your /texmf tree. +that is actually used in your texmf tree. + +Remember to refresh the filename database if you are using a MiKTeX +installation! +This operation is not required if you have a TeXLive installation. + +The package is already installed with complete TeXLive, MacTeX or +MiKTeX distributions. In this case you don't need to decompress +anything and move files around; in case of TeX system upgrades you +package manager will do the work for you. -If you are using a MiKTeX installation: -1) remember to add your personal texmf tree to the list of the trees - MiKTeX is looking in to fetch the files it needs; -2) remember to refresh the filename database. -Consult your MiKTeX documentation to know how to do the above actions. +Possibly check if the CTAN repository contains a newer version and, +in case, use your package manager to upgrade your installation, but +remember that you are not supposed to move or change anything in the +TeX system directories. diff --git a/Master/texmf-dist/doc/latex/toptesi/README.TEXLIVE b/Master/texmf-dist/doc/latex/toptesi/README.TEXLIVE index b5550803339..cfe58c1e734 100644 --- a/Master/texmf-dist/doc/latex/toptesi/README.TEXLIVE +++ b/Master/texmf-dist/doc/latex/toptesi/README.TEXLIVE @@ -4,5 +4,4 @@ missing source code. You can find these files on CTAN at http://mirror.ctan.org/macros/latex/contrib/toptesi If questions or concerns, email tex-live@tug.org. - MPlogo.pdf - GuITlogo.pdf + TITlogoCropped.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/TITDocScCropped.pdf b/Master/texmf-dist/doc/latex/toptesi/TITDocScCropped.pdf Binary files differnew file mode 100644 index 00000000000..394bdee0ece --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/TITDocScCropped.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-ambiente-frontespizio.pdf b/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-ambiente-frontespizio.pdf Binary files differdeleted file mode 100644 index a4ac111473f..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-ambiente-frontespizio.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.pdf b/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.pdf Binary files differnew file mode 100644 index 00000000000..8e87a1b6a1b --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.tex b/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.tex new file mode 100644 index 00000000000..530714cb8b7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-topfront.tex @@ -0,0 +1,360 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex +% +% File per collaudare gli ambienti frontespizio e frontespizio* +\documentclass[% +%b5paper % Il formato della carta si può specificare anche così. +%formato=b5paper % Versione per specificare il formato della carta +%a4paper % Non necessario perché è il default +%formato=a4paper % Non necessario perché è il default +%,corpo=10pt +,corpo=11pt +%12pt +,twoside +%,classica +%,oldstyle +%,autoretitolo +,greek% per comporre parte del testo in greco +,cucitura +]{toptesi} +% \usepackage{teubner}% per le notazioni filologiche greche +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% per macchine Linux/Mac/UNIX/Windows; sarebbe meglio utf8 +%\usepackage[latin1]{inputenc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{textcomp} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{lipsum}% Per scrivere testo fasullo in "latinorum" + +\usepackage{pict2e}% elimina ogni limitazione all'ambiente picture +% + +%\english% di default la lingua è impostata con \italiano + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%% Change the strings if you want a title page and a copyright page +%%%%%%% in another language +%%%%%%% Comment just the \iflanguage statement and the closing line of the +%%%%%%% language test if you want to make a global change instead of a +%%%%%%% conditional one. +%%%%%%% Comment the following indented lines if you don't care about the +%%%%%%% title page in English +\iflanguage{english}{% + \retrofrontespizio{This work is subject to the Creative Commons Licence} + \DottoratoIn{PhD Course in\space} + \CorsoDiLaureaIn{Master degree course in\space} + \NomeMonografia{Bachelor Degree Final Work} + \TesiDiLaurea{Master Degree Thesis} + \NomeDissertazione{PhD Dissertation} + \InName{in} + \CandidateName{Candidates}% or Candidate + \AdvisorName{Supervisors}% or Supervisor + \TutorName{Tutor} + \NomeTutoreAziendale{Internship Tutor} + \CycleName{cycle} + \NomePrimoTomo{First volume} + \NomeSecondoTomo{Second Volume} + \NomeTerzoTomo{Third Volume} + \NomeQuartoTomo{Fourth Volume} + \logosede{logouno,logodue}% or comma separated list of logos +}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Lasciare questo per ultimo dopo aver caricato tutti gli altri pacchetti +% +% Se si è già caricato hyperref anche indirettamente (tramite altri +% pacchetti) questo statement evita di ricaricarlo +\unless\ifcsname ver@hyperref.sty\endcsname\usepackage{hyperref}\fi + +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} + } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%% Definizioni locali +\newtheorem{osservazione}{Osservazione}% Standard LaTeX + + + +\begin{document} +\errorcontextlines=9% debugging + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Questo codice serve per collaudare gli ambienti frontespizio e frontespizio* +% con l'asterisco il logo dell'ateneo va a finire sotto il titolo nella seconda +% metà della pagina; senza asterisco va a finire in testa. + +\begin{frontespizio} +\ateneo{Università di Marconia}% nome generico dell'universita' +%\ateneo{}% nome generico vuoto per sperimentare nei vari casi +\nomeateneo{Sede di Torre Elettra}% nome proprio dell'universita' +\FacoltaDi{}% prefisso vuoto per la facolta' +\facolta[III]{Matematica, Fisica\\e Scienze Naturali}% dottrine della facolta' +\titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato +\sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato +\corsodilaurea{Astronomia Applicata}% per la laurea +\candidato{Galileo \textsc{Galilei}}[123456]% per tutti i percorsi +\secondocandidato{Evangelista \textsc{Torricelli}}[123457]% solo per l. magistrale +\relatore{prof.\ Albert Einstein}% per la laurea e/o il dottorato +\secondorelatore{dipl.~ing.~Werner von Braun}% solo per la laurea magistrale +\tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} +\NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} +\sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale +\ciclodidottorato{XV}% solo per il dottorato +\logosede{logouno}% questo e' ovviamente facoltativo +\end{frontespizio} +%%%%% altre possibilità di sperimentazione +%\topTPTlogostrue +%%\topTPTlogosfalse +%\frontespizio + +\sommario % stampa il sommario + + La pressione barometrica di Giove viene misurata +mediante un metodo originale messo a punto dai candidati, che si basa +sul rilevamento telescopico della pressione. + +% \paginavuota % funziona anche senza specificare l'opzione classica + +\ringraziamenti % stampa i ringraziamenti, di solito superflui e inutili + +I candidati ringraziano vivamente il Granduca di Toscana per i mezzi +messi loro a disposizione, ed il signor Von Braun, assistente del +prof.~Albert Einstein, per le informazioni riservate che egli ha +gentilmente fornito loro, e per le utili discussioni che hanno permesso +ai candidati di evitare di riscoprire l'acqua calda. + +\tablespagetrue\figurespagetrue % usare solo se necessario +\indici + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%% Altro esperimento con l'opzione classica +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. +%%%%%%%% Commentare da \ifclassica fino a \fi compresi. +\ifclassica +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} + + [\textsc{G.\ Leopardi}, Operette Morali] + + \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} + + [Eraclito, fr.\ D-K 134] + \end{citazioni} + +\fi +%%%%%%%% fine esperimento +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\mainmatter + +\part{Prima Parte}% di solito non è necessario dividere la tesi in parti +\chapter{Introduzione generale} + +\section{Principi generali} +Il problema della determinazione della pressione barometrica dell'atmosfera di +Giove non ha ricevuto finora una soluzione soddisfacente, per l'elementare +motivo che il pianeta suddetto si trova ad una distanza tale che i mezzi attuali +non consentono di eseguire una misura diretta. + +Conoscendo per\`o con grande precisione le orbite dei satelliti principali di +Giove, e segnatamente le orbite dei satelliti medicei, \`e possibile eseguire +delle misure indirette, che fanno ricorso alla nota formula \cite{gal}: +\[ +\Phi = K\frac{\Xi^2 +\Psi\ped{max}}{1+\gei\Omega} +\] +dove le varie grandezze hanno i seguenti significati: +\begin{enumerate} +\item +$\Phi$ angolo di rivoluzione del satellite in radianti se $K=1$, in gradi se +$K=180/\pi$; +\item +$\Xi$ eccentricit\`a dell'orbita del satellite; questa \`e una grandezza priva +di dimensioni; +\item +$\Psi\ped{max}$ rapporto fra il semiasse maggiore ed il semiasse minore +dell'orbita del satellite, nelle condizioni di massima eccentricit\`a; +poich\'e le dimensioni di ciascun semiasse sono $[l]=\unit{km}$, la grandezza +$\Psi\ped{max}$ {\`e} adimensionata; +\item +$\Omega$ velocit\`a istantanea di rotazione; si ricorda che \`e $[\Omega]=% +\unit{rad}\unit{s}^{-1}$; +\item bisogna ancora ricordarsi che $10^{-6}\unit{m}$ equivalgono a 1\unit{\micro m}. +\end{enumerate} +% + +Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. +\begin{figure}[ht]\centering +\setlength{\unitlength}{0.01\textwidth} +\begin{picture}(40,30)(30,0) +\put(50,15){\scalebox{1}[0.7]{\circle{20}}} +\put(48.5,15){\circle*{1}} +\put(30,0){\framebox(40,30){}} +\end{picture} +\caption{Orbita del generico satellite; si noti l'eccentricità dell'orbita rispetto al pianeta.\label{fig1}} +\end{figure} + +Per misurare le grandezze che compaiono in questa formula \`e necessario +ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli +errori di misura sono troppo grandi, ed i risultati completamente falsati. + +\section{I satelliti medicei} +I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione +attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. + +Essi furono per la prima volta osservati da uno dei candidati mentre +sperimentava l'efficacia del tubo occhiale che aveva appena inventato +rielaborando una idea sentita di seconda mano da un viaggiatore appena arrivato +dai Paesi Bassi. + +%\blankpagestyle{headings} + +%\lipsum[1-2] + + + +\chapter{Il barometro} +\section{Generalit\`a} +\begin{interlinea}{0.87} Il barometro, come dice il nome, serve per +misurare la pesantezza; pi\`u precisamente la pesantezza dell'aria +riferita all'unit\`a di superficie. +\end{interlinea} + +\begin{interlinea}{2} Studiando il fenomeno fisico si pu\`o concludere +che in un dato punto grava il peso della colonna d'aria che lo +sovrasta, e che tale colonna \`e tanto pi\`u grave quanto maggiore +\`e la superficie della sua base; il rapporto fra il peso e la base +della colonna si chiama pressione e si misura in once toscane al cubito +quadrato, \cite{tor1}; nel Ducato di Savoia la misura in once al piede +quadrato \`e quasi uguale, perch\'e col\`a usano un piede molto +grande, che \`e simile al nostro cubito. +\end{interlinea} + +\subsection{Forma del barometro} +Il barometro consta di un tubo di vetro chiuso ad una estremit\`a e +ripieno di mercurio, capovolto su di un vaso anch'esso ripieno di +mercurio; mediante un'asta graduata si pu\`o misurare la distanza fra +il menisco del mercurio dentro il tubo e la superficie del mercurio +dentro il vaso; tale distanza \`e normalmente di 10 pollici toscani, +\cite{tor1,tor2}, ma la misura pu\`o variare se si usano dei pollici +diversi; \`e noto infatti che gl'huomini sogliono avere mani di +diverse grandezze, talch\'e anche li pollici non sono egualmente +lunghi. +\section{Del mercurio} +Il mercurio \`e un a sostanza che si presenta come un liquido, ma ha il colore +del metallo. Esso \`e pesantissimo, tanto che un bicchiere, che se fosse pieno +d'acqua, sarebbe assai leggiero, quando invece fosse ripieno di mercurio, +sarebbe tanto pesante che con entrambe le mani esso necessiterebbe di essere +levato in suso. + +Esso mercurio non trovasi in natura nello stato nel quale \`e d'uopo che sia +per la costruzione dei barometri, almeno non trovasi cos\`i abbondante come +sarebbe necessario. + +\setcounter{footnote}{25} + +Il Monte Amiata, che \`e locato nel territorio del Ducato% +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% +\ifclassica\NoteWhiteLine\fi +} del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, \`e uno dei +luoghi della terra dove pu\`o rinvenirsi in gran copia un sale rosso, che +nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio +nella forma e nella consistenza che occorre per la costruzione del barometro +terrestre% +\ifclassica +\nota{Nota senza numero\dots + +\dots e che va a capo. +}\fi. + + +La densit\`a del mercurio \`e molto alta e varia con la temperatura come +pu\`o desumersi dalla tabella \ref{t:1}. + + +Il mercurio gode della sorprendente qualit\`a et propriet\`a, cio\`e che esso +diventa tanto solido da potersene fare una testa di martello et infiggere +chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{*6r} % parametri di incolonnamento per 6 collonne + % allineate a sinistra +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella +\multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare +& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole + &\unit{\gradi C} & & & $\unit{t/m^3}$ & \\ +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % + & 10 & & & 13,6 & \\ % a destra; le colonne vuote + & 50 & & & 13,5 & \\ % servono per centrare le colonne + &100 & & & 13,3 & \\ % numeriche sotto le intestazioni +\hline \hline % Filetti di fine tabella +\end{tabular} +\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si può fare molto meglio usando il pacchetto \textsf{booktabs}.} \label{t:1} % didascalia con label +\end{table} + +%\selectlanguage{italian} + +\begin{osservazione}\normalfont +Questa propriet\`a si manifesta quando esso \`e estremamente freddo, come +quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri +siciliani per confetionare li sorbetti, dei quali sono insuperabili artisti. +\end{osservazione} + +Per nostra fortuna, questo grande freddo, che necessita per la confetione de +li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del +Granduca Eccellentissimo, sicch\'e non vi ha tema che il barometro di mercurio +possa essere ruinato dal grande gelo e non indichi la pressione giusta, come +invece deve sempre fare uno strumento di misura, quale \`e quello che \`e +descritto cost\`i.\cite{duane1964} + +\chapter{Il listato del pacchetto \texttt{topcoman.sty}} +\listing{topcoman.sty} + + +\begin{thebibliography}{9} +\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio, + Venetia, 1612. +\bibitem{tor1} E.~Torricelli, in ``La pressione barometrica'', {\em Strumenti + Moderni}, Il Porcellino, Firenze, 1606. +\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo + Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31. +\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability + Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964 +\end{thebibliography} + +\end{document} + +% altri riferimenti da usare come esempi. + +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione + nel progetto dei sistemi}, CLUT, gennaio 2008 +\bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System + Technological Level Improvement Effect on UAV MALE} +\bibitem{bigliano2010} Bigliano M., \emph{Sicurezza nell'installazione di un velivolo + senza pilota MALE; applicazione di metodologia di Zonal Safety + Analysis al velivolo del Progetto SAvE}, Politecnico di Torino, + maggio 2010 +\bibitem{astrid2012} Chiesa S., Di Meo G.A., Fioriti M., Medici G., Viola N., + \emph{ASTRID - Aircraft on board Systems sizing and TRade-off + analysis in Initial Design}, Research Bulletin, Warsaw University + of Technology, Institute of Aeronautics and Applied Mechanics, + p. 1-28, 17-19, ottobre 2012 + diff --git a/Master/texmf-dist/doc/latex/toptesi/Toptesi-example-topfront.pdf b/Master/texmf-dist/doc/latex/toptesi/Toptesi-example-topfront.pdf Binary files differnew file mode 100644 index 00000000000..b9d07d5f16d --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/Toptesi-example-topfront.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-ambiente-frontespizio.tex b/Master/texmf-dist/doc/latex/toptesi/Toptesi-example-topfront.tex index 3ced179aee9..0fa6563d41e 100644 --- a/Master/texmf-dist/doc/latex/toptesi/Toptesi-con-ambiente-frontespizio.tex +++ b/Master/texmf-dist/doc/latex/toptesi/Toptesi-example-topfront.tex @@ -1,17 +1,17 @@ % !TEX encoding = UTF-8 Unicode % !TEX TS-program = pdflatex % -% File per collaudare gli ambienti frontespizio e frontespizio* +% Esempi d'uso degli ambienti frontespizio (e frontespizio*) \documentclass[% -%10pt -,11pt -%12pt -,twoside -%,classica -%,oldstyle -%,autoretitolo -,greek% per comporre parte del testo in greco -,cucitura +% copo=10pt,10pt +corpo=11pt, +% corpo=12pt, +twoside, + stile=classica, +oldstyle, +%autoretitolo, +greek,% per comporre parte del testo in greco (qui solo con classica) +%cucitura, ]{toptesi} % \usepackage{teubner}% per le notazioni filologiche greche % @@ -99,9 +99,9 @@ \titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato \sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato \corsodilaurea{Astronomia Applicata}% per la laurea -\renewcommand*\IDN{\\\quad matricola: }% per definire il prefisso del numero di matricola -\candidato{Galileo \textsc{Galilei}\IDN 123456}% per tutti i percorsi -\secondocandidato{Evangelista \textsc{Torricelli}\IDN 123457}% solo per l. magistrale +\renewcommand*\IDlabel{\\\quad matricola: }% per ridefinire il prefisso del numero di matricola +\candidato{Galileo \textsc{Galilei}}[123456]% per tutti i percorsi +\secondocandidato{Evangelista \textsc{Torricelli}}[123457]% solo per l. magistrale \relatore{prof.\ Albert Einstein}% per la laurea e/o il dottorato \secondorelatore{dipl.~ing.~Werner von Braun}% solo per la laurea magistrale \tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} @@ -110,12 +110,9 @@ \ciclodidottorato{XV}% solo per il dottorato \logosede{logouno}% questo e' ovviamente facoltativo \end{frontespizio} -%%%%% altre possibilità di sperimentazione -%\topTPTlogostrue -%%\topTPTlogosfalse -%\frontespizio +%%%%% -\sommario % stamp il sommario +\sommario % stampa il sommario La pressione barometrica di Giove viene misurata mediante un metodo originale messo a punto dai candidati, che si basa diff --git a/Master/texmf-dist/doc/latex/toptesi/VeraPDFinitial.png b/Master/texmf-dist/doc/latex/toptesi/VeraPDFinitial.png Binary files differnew file mode 100644 index 00000000000..e5e411dc526 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/VeraPDFinitial.png diff --git a/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.pdf b/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.pdf Binary files differdeleted file mode 100644 index f5129a3fa3d..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.tex b/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.tex deleted file mode 100644 index e6c855aec5e..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/frontespizi2-xetex.tex +++ /dev/null @@ -1,71 +0,0 @@ -% !TEX TS-program = XeLaTeX -% !TEX encoding = UTF-8 Unicode - -\documentclass[12pt]{toptesi}\errorcontextlines=9 -%\usepackage{topfront,graphicx} -%\usepackage{fontspec} -\setmainfont[Ligatures=TeX]{TeX Gyre Termes} -\usepackage{polyglossia} - -\begin{document}\pagestyle{empty} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Magistrale -\begin{frontespizio} -\facolta{} -\facolta{} -\ateneo{} -\corsodilaurea{Ingegneria delle Telecomunicazioni} -\titolo{Titolo della tesi\\ di laurea magistrale} -\sottotitolo{Sottotitolo della tesi di laurea magistrale} -\relatore{prof.\ Enrico Rosa} -\sedutadilaurea{Dicembre 2011} -\candidata{Susanna Rossi} -\secondacandidata{Laura Bruni} -\logosede{logo_blu} -\end{frontespizio} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Triennale con tesi -\begin{frontespizio} -\TesiDiLaurea{Tesi di laurea} -\ateneo{Università di Marconia e di Einsteinia} -\corsodilaurea{Ingegneria Biomedica} -\candidato{Giovanni Bianchi \IDN 654321} -\secondacandidata{Laura Azzurri \IDN 987654} -\titolo{Titolo della tesi di laurea} -\sottotitolo{Sottotitolo della tesi di laurea} -\relatore{prof.\ Mario Rossi} -\secondorelatore{Ing.\ Pietro Verdi} -\sedutadilaurea{Ottobre 2011} -\logosede{logodue,logouno} -\end{frontespizio} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Dottorato -\begin{frontespizio} -\corsodidottorato{Meccanica} -\ateneo{Università di Fermia} -\ciclodidottorato{XIII} -\esamedidottorato{Luglio 2011} -\titolo{Titolo della tesi di dottorato} -\sottotitolo{Sottotitolo della tesi di dottorato} -\candidata{Maria Neri} -\tutore{prof.\ Alberto Aranci} -\coordinatore{prof.\ Giorgio Bigi} -\logosede{logoquattro} -\end{frontespizio} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Monografia -\secondacandidata{} -\begin{frontespizio} -\candidata{Anna Bianchi} -\facolta{} -\ateneo{Scuola Nazionale Superiore} -\corsodilaurea{Energetica} -\sedutadilaurea{Settembre 2011} -\monografia{Titolo della monografia} -\sottotitolo{Sottotitolo della monografia} -\logosede{logotre} -\end{frontespizio} - - -\end{document} diff --git a/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.pdf b/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.pdf Binary files differdeleted file mode 100644 index 9990bd09a54..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.tex b/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.tex deleted file mode 100644 index 561dc032701..00000000000 --- a/Master/texmf-dist/doc/latex/toptesi/frontespizi3-xetex.tex +++ /dev/null @@ -1,69 +0,0 @@ -% !TEX TS-program = XeLaTeX -% !TEX encoding = UTF-8 Unicode - -\documentclass[12pt,classica]{toptesi}\errorcontextlines=9 -%\usepackage{topfront,graphicx} -%\usepackage{fontspec} -\setmainfont[Ligatures=TeX]{TeX Gyre Termes} -\usepackage{polyglossia} - -\begin{document}\pagestyle{empty} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Magistrale -\begin{frontespizio} -\facolta{} -\ateneo{Politecnico di Torino} -\corsodilaurea{Ingegneria delle Telecomunicazioni} -\titolo{Titolo della tesi\\ di laurea magistrale} -\sottotitolo{Sottotitolo della tesi di laurea magistrale} -\relatore{prof.\ Enrico Rosa} -\sedutadilaurea{Dicembre 2111} -\candidata{Susanna Rossi} -\secondacandidata{Laura Bruni} -\logosede{logo_blu} -\end{frontespizio} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Dottorato/classica -\begin{frontespizio} -\corsodidottorato{Meccanica} -\ateneo{Università di Fermia} -\ciclodidottorato{XIII} -\esamedidottorato{Luglio 2111} -\titolo{Titolo della tesi di dottorato} -\sottotitolo{Sottotitolo della tesi di dottorato} -\candidata{Maria Neri} -\tutore{prof.\ Alberto Aranci} -\coordinatore{prof.\ Giorgio Bigi} -\logosede{logoquattro} -\end{frontespizio} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Triennale con tesi -\begin{frontespizio*} -\TesiDiLaurea{Tesi di laurea} -\ateneo{Università di Marconia e di Einsteinia} -\corsodilaurea{Ingegneria Biomedica} -\candidato{Giovanni Bianchi \IDN 654321} -\secondacandidata{Laura Azzurri \IDN 987654} -\titolo{Titolo della tesi di laurea} -\sottotitolo{Sottotitolo della tesi di laurea} -\relatore{prof.\ Mario Rossi} -\secondorelatore{Ing.\ Pietro Verdi} -\sedutadilaurea{Ottobre 2111} -\logosede{logodue,logouno} -\end{frontespizio*} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Triennale/classica -\secondacandidata{} -\begin{frontespizio*} -\candidata{Anna Bianchi\IDN 98765} -\facolta{Tricotetratomia} -\ateneo{Scuola Nazionale Superiore} -\corsodilaurea{Energetica} -\annoaccademico{2111-2112} -\titolo{Titolo della tesi} -\sottotitolo{Sottotitolo della tesi} -\logosede{logotre} -\end{frontespizio*} - - -\end{document} diff --git a/Master/texmf-dist/doc/latex/toptesi/manifest.txt b/Master/texmf-dist/doc/latex/toptesi/manifest.txt index 7a94c127540..aa219157bf1 100644 --- a/Master/texmf-dist/doc/latex/toptesi/manifest.txt +++ b/Master/texmf-dist/doc/latex/toptesi/manifest.txt @@ -1,5 +1,5 @@ -manifest.txt (TOPtesi version 5.9.06) -Copyright 2008-2016 Claudio Beccari +manifest.txt (TOPtesi version 6.x) +Copyright 2008-2017 Claudio Beccari This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or @@ -21,10 +21,14 @@ This work consists of the following files: toptesi.dtx toptesi-example.tex toptesi-example-luatex.tex - toptesi-example-con-frontespizio.tex - topfront-example + toptesi-example-frontespizio.tex + topfront-example.tex + toptesi-example-sss.tex + toptesi-example-triennale.tex + toptesi-example-dottorale.tex + toptesi-scudo-example.zip README - toptesi-it-pdftex.tex + toptesi-it.tex The files derived from the work are the following: @@ -36,43 +40,76 @@ The files derived from the work are the following: toptesi.pdf toptesi-example.pdf toptesi-example-xetex.pdf - toptesi-example-con-frontespizio.pdf + toptesi-example-frontespizio.pdf + toptesi-monografia.sty + toptesi-scudo.sty + toptesi-magistrale.sty + toptesi-dottorale.sty + toptesi-sss.sty topfront-example.pdf - toptesi-it-pdftex.pdf + toptesi-it.pdf The toptesi.dtx file is self extracting and self documenting; if you run pdflatex on it you get at the same time the class, the style files besides the toptesi configuration file, together with the English documented file. -The Italian documentation is obtained by running pdfLaTeX or LuaLaTeX on +The Italian documentation is obtained by running LuaLaTeX on toptesi-it.tex; this documentation has been completely redone compared -to previous versions. With both compilers the result should be PDF/A-1b - compliant +to previous versions. With this compiler the result should be PDF/A-1b +compliant. The compilation of this file requires input of various .pdf +files, mostly obtained by processing the .tex files belonging to the +bundle. It requires also the FAKE logos of Politecnico di Torino and of +its doctoral school. See below The two documentations pdf files, toptesi.pdf and toptesi-it.pdf, are complementary to one another. -The four files +The various files -toptesi-example.tex -toptesi-example-luatex.tex -topfront-example.tex -toptesi-example-con-frontespizio.tex + toptesi-example.tex + toptesi-example-luatex.tex + toptesi-example-frontespizio.tex + topfront-example.tex + toptesi-example-sss.tex + toptesi-example-triennale.tex + toptesi-example-magistrale.tex + toptesi-example-dottorale.tex + +are examples of the usage of this work; except the second one, explicitly +created to be used with lualatex, all the others compile correctly +with pdflatex; they may be used as templates, but in themselves, although +part of this Work, they may be used by the end user the way s/he likes best, +in order to use them as templates, but the files should not be modified unless +their names are changed. -are examples of the usage of this work, the first, third and fourth to be -run with pdfLaTeX, the second with XeLaTeX or LuaLaTeX; they may be used -as templates, but in themselves, although part of this Work, they may be -used by the end user the way s/he likes best, in order to use them as -templates, but the files should not be modified unless their names are -changed. +The files with extension .metadata are extracted form some main files and +are examples of the contents and format of the metadata that must be +included into the same directory as the thesis main file in order to be +able to use pdflatex or lualatex to produce a file that hopefully is +PDF/A-1b compliant (PDF/A-1b is the "weak" archivable PDF format). -Warning: The PDF examples attached to this bundle contain some fake university +The toptesi-scudo-example.zip contains a template file toptesi-scudo-example.tex +file and several other files and subdirectories so that a complete example is +available with its chapters separated in different folders, and pictures adequately +saved in a specific subdirectories. + +Warning: The PDF examples attached to this bundle contain some FAKE university logos; the real logos are not distributed with this bundle since they are a -property of the specific universities. You can download them directly from +property of the specific universities. You can download them directly form the university sites, or you may change the logo file names with those of other institutions, in particular that of your own university; or you may substitute them with picture file names of your choice, since they are just examples of usage and they have no particular meaning in the sample files. + +Even if Politecnico di Torino may claim a sort of "mothership" of this bundle, +since it originated in that University (the name first three letters of this +bundle TOPtesi may be viewed as the acronym of POlitecnico di Torino), no logos +of this University are included in the bundle: a couple of FAKE ones, one for +the institution and one for its doctoral school, have been created with the +University name and location in English, which IS NOT the University legal, +trademarked name; to be sure they are not used in place of the official ones +both images have a "FAK FAKE" watermark! The PH.D. students are supposed to get the official logos from the School Student Office. + Remember: you can edit the sample/template files the way you want, provided you change their names. diff --git a/Master/texmf-dist/doc/latex/toptesi/topfront-example.pdf b/Master/texmf-dist/doc/latex/toptesi/topfront-example.pdf Binary files differindex 43c782ba19b..bbbe103b278 100644 --- a/Master/texmf-dist/doc/latex/toptesi/topfront-example.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/topfront-example.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/topfront-example.tex b/Master/texmf-dist/doc/latex/toptesi/topfront-example.tex index bdfdfca06a4..67ee8743545 100644 --- a/Master/texmf-dist/doc/latex/toptesi/topfront-example.tex +++ b/Master/texmf-dist/doc/latex/toptesi/topfront-example.tex @@ -1,15 +1,13 @@ % Stand-alone sample usage of package topfront -% With XeLaTeX the document should be created with the UTF-8 encoding -% Use the following Magic comment line only if you typeset the document -% with pdfLaTeX +% The document should be created with the UTF-8 encoding +% Use the following Magic comment line to configure your intelligent +% LaTeX friendly shell editor -% !TEX encoding = IsoLatin +% !TEX encoding = UTF-8 Unicode + +% With pdfLaTeX you might use other encodings, but you'd better not! -% Of course you may create the document in utf8 encoding even if you use pdfLaTeX, -% but you have to change the above magic comment accordingly (change "IsoLatin" -% with "UTF-8 Unicode"). Change also the inputenc option from "latin1" to "utf8". -% % You need not care for any input encoding and any option to the inputenc % package, if you avoid using national non-ASCII characters, but use the % standard LaTeX commands to access them; for example: \`A, \ss, \L, etc. @@ -27,7 +25,10 @@ % may be different from the OpenType fonts available to XeLaTeX or LuaLaTeX. -\documentclass[a4paper,12pt,twoside]{report}% it works also with book and article +\documentclass[ +a4paper, +11pt, +twoside]{report}% it works also with book and article \usepackage{iftex}% to test if the typesetting engine is pdflatex or xelatex @@ -45,8 +46,11 @@ \fi \usepackage{graphicx} -\usepackage[classica]% -{topfront} +\newif\ifmagistrale \magistraletrue +\usepackage[% +classica, +evenboxes, +]{topfront} \begin{document} % These data must be here after \begin{document} and before \frontespizio @@ -60,10 +64,9 @@ % Settings common to both languages % Redefine \IDN for English -\candidato{Galileo \textsc{Galilei}\IDN 123456} -\secondocandidato{Evangelista \textsc{Torricelli}\IDN 123457} +\candidato{Galileo \textsc{Galilei}}[123456] +\secondocandidato{Evangelista \textsc{Torricelli}}[123457] \relatore{prof.\ Margherita Hack} -\secondorelatore{prof.\ Giovanni Ferrero} \tutoreaziendale{dott.\ Roberto Ferrero} % The English definitions redefine all the infix words, besides a few variable @@ -105,34 +108,17 @@ \logosede{logotre,logoquattro}% one logo or a comma separated list of logos \sedutadilaurea{August 1615} \ateneo{West Piedmont University} +% \ateneo{} \nomeateneo{Royal Mountain Campus} \renewcommand*\IDN{\\\quad ID number:\space} }{% Italian language -% \ateneo{Universit\`a del Piemonte Occidentale} -% \ateneo{Universit\`a degli studi di Modena e Reggio Emilia} -\DeclareRobustCommand{\uniMRE}{\smash{\parbox[b]{\textwidth}{\centering\Large -\MakeUppercase{Universit degli Studi}\\ -\MakeUppercase{di Modena e Reggio Emilia}}}} -% \ateneo{\uniMRE} -% \ateneo{Freie Universt\"at Bozen -- Libera Universit\`a di Bolzano -- Universit\`a Liedia de Bulsan} -\DeclareRobustCommand{\uniBZ}{\smash{\parbox[b]{\textwidth}{\centering\large -\MakeUppercase{Freie Universitt Bozen}\\ -\MakeUppercase{Libera Universit di Bolzano}\\ -\MakeUppercase{Universit Leidia de Bulsan}}}} - \ateneo{\uniBZ} -% \ateneo{Universit\`a della Valle d'Aosta -- Universit\'e de la Vall\'ee d'Aoste} -\DeclareRobustCommand{\uniVdA}{\smash{\parbox[b]{\textwidth}{\centering \Large -\MakeUppercase{Universit della Valle d'Aosta}\\ -\MakeUppercase{Universit de la Valle d'Aoste}}}} -% \ateneo{\uniVdA} - \nomeateneo{Studium Monregalense} + \ateneo{Universit\`a del Piemonte Occidentale} + \nomeateneo{Studium Monregalensis} \corsodilaurea{Astronomia applicata} - \titolo{La pressione barometrica di~Giove} + \titolo{La pressione barometrica di Giove} \sottotitolo{Metodo dei satelliti medicei} - \NomeTutoreAziendale{Supervisore aziendale\\Osservatorio Astronomico del - Monviso} -% \sedutadilaurea{1615-1616} - \annoaccademico{1615-1616} + \NomeTutoreAziendale{Supervisore aziendale\\Osservatorio Astronomico del Monviso} + \sedutadilaurea{Agosto 1615} \logosede{logouno,logodue}% one logo or a comma separated list of logos } \end{frontespizio*} diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.pdf Binary files differindex afd3503b19a..15633a293ca 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.tex index 6393893907c..5144578ad16 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.tex +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-con-frontespizio.tex @@ -1,5 +1,5 @@ % !TEX TS-program = pdflatex -% !TEX encoding = IsoLatin +% !TEX encoding = UTF-8 Unicode %%%%%%% La riga soprastante serve per configurare gli editor TeXShop, TeXWorks %%%%%%% e TeXstudio per gestire questo file con la codifica IsoLatin o Latin 1 @@ -7,23 +7,18 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[% -a4paper -%,b5paper -%,a5paper -%,10pt -%,11pt -,12pt +,corpo=11.5pt ,twoside ,cucitura %,classica -,noTOPfront +,tipotesi=frontespizio ]{toptesi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % Per macchine Linux/Mac/UNIX/Windows e' meglio utf8 %\usepackage[utf8]{inputenc} -\usepackage[latin1]{inputenc} +\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{textcomp} @@ -33,21 +28,20 @@ a4paper % %\usepackage{lipsum}% Per scrivere testo fasullo in pseudo-latino % -\unless\ifTOPfront% esegue solo se si specificata l'opzione "noTOPfront" - \usepackage{frontespizio} -\fi +%\unless\ifTOPfront% esegue solo se si è specificata l'opzione "noTOPfront" +% \usepackage{frontespizio} +%\fi % Decommentare se si vuole produrre un file PDF/A archiviabile; % Ricordarsi che se lo si vuol fare si devonono specificare i metadati % indispensabili in un file con lo stesso nome del file principale e % con l'estensione .xmpdata; con questo file sarebbe: % toptesi-example-con-frontespizio.xmpdata -% usepackage[a-1b]{pdfx}% a-1b: livello di archiviabilit (vedi doc. di pdfx) +% usepackage[a-1b]{pdfx}% a-1b: livello di archiviabilità (vedi doc. di pdfx) -% Caricare sempre per ultimo; dopo ci possono stare rarissimi pacchetti legati, -% per esempio, all'uso di lingue che si scrivono in senso retrogrado. +% Se è stato caricato pdfx, che carica hyperref, è bene non ricaricarlo -\usepackage{hyperref} +\unless\ifcsname ver@hyperref.sty\endcsname\usepackage{hyperref}\fi \hypersetup{% pdfpagemode={UseOutlines}, @@ -75,107 +69,13 @@ a4paper % Con l'opzione noTOPfront si stabilisce se non usare il modulo nativo topfront % per creare il frontespizio, o se usare il pacchetto esterno frontsizio %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifTOPfront % da usare solo se NON si specifica l'opzione noTOPfront - \ateneo{Universit{\`a} degli Studi di Marconia}% Nome generico del'universita' - \nomeateneo{Sede di Torre Elettra}% nome proprio dell'universita' - \FacoltaDi{} - \facolta[III]{Matematica, Fisica\\e Scienze Naturali} - %\Materia{Remote sensing} - %\monografia{La pressione barometrica di Giove}% per la laurea triennale - \titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato - \sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato - % - \corsodilaurea{Astronomia Applicata}% per la laurea - %\corsodidottorato{Meccanica}% per il dottorato - % - \renewcommand*\IDN{\\\quad matricola: } - % - \candidato{Galileo \textsc{Galilei}\IDN 123456}% per tutti i percorsi - \secondocandidato{Evangelista \textsc{Torricelli}\IDN 123457}% solo per l. magistrale - - \relatore{prof.\ Albert Einstein}% per la laurea e/o il dottorato - \secondorelatore{dipl.~ing.~Werner von Braun}% per la laurea magistrale - - %%%%%%%%%% Trucco per mettere il correlatore senza usare l'opzione classica - %\relatore{\tabular{@{}l@{}} - %prof.\ Albert Enstein\\[1.5ex] - %\textbf{Correlatore:}\\ - %dipl.~ing.~Werner von Braun - %\endtabular} - %%%%%%%%%% - % - %%%%%%%%%% Trucco per far scrivere Laureando/a/i/e al posto di "Candidato/a/i/e" - %\def\Candidato{Laureando:} - %\def\Candidati{Laureandi:} - %\def\Candidata{Laureanda:} - %\def\Candidate{Laureande:} - - %%%%%%%%%% Trucco per scrivere anche un quarto relatore per la laurea magistrale - %\terzorelatore{{\tabular{@{}l}dott.\ Neil Armstrong\\ - % prof. Maria Rossi\endtabular}}% - % - %\tutore{ing.~Karl Von Braun}% per il dottorato - \tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} - \NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} - - %%%%%%% Seduta dell'esame - %\sedutadilaurea{Agosto 1615}% per la laurea quinquennale; oppure: - \sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale - %\esamedidottorato{Novembre 1610}% per il dottorato - %\annoaccademico{1615-1616}% solo con l'opzione classica - %\annoaccademico{2007}% idem - \ciclodidottorato{XV}% solo per il dottorato - - \logosede{logodue}%%%%%%% Logo della sede - % -%\english% La linga di default l'italiano perch in forza il comando \italiano - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%% Change the strings if you want a title page and a copyright page in another -%%%%%%% language -%%%%%%% Comment just the \iflanguage statement and the closing line of the language test -%%%%%%% if you want to make a global change instead of a conditional one. -%%%%%%% Comment the following indented lines if you don't care about the title page -%%%%%%% in English -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\iflanguage{english}{% - \retrofrontespizio{This work is subject to the Creative Commons Licence} - \DottoratoIn{PhD Course in\space} - \CorsoDiLaureaIn{Master degree course in\space} - \NomeMonografia{Bachelor Degree Thesis} - \TesiDiLaurea{Master Degree Thesis} - \NomeDissertazione{PhD Dissertation} - \InName{in} - \CandidateName{Candidates}% or Candidate - \AdvisorName{Supervisors}% or Supervisor - \TutorName{Tutor} - \NomeTutoreAziendale{Internship Tutor} - \CycleName{cycle} - \NomePrimoTomo{First volume} - \NomeSecondoTomo{Second Volume} - \NomeTerzoTomo{Third Volume} - \NomeQuartoTomo{Fourth Volume} - \logosede{logotrieste,logopolito}% one logo or comma separated list of logos -}{}% -% Esperimento per vedere i risultati; non e' da fare in una tesi vera -\ifbool{classica}% -{\tomo -\paginavuota - \begin{dedica} - A mio padre - - \textdagger\ A mio nonno Pino - \end{dedica} -}{% - \frontespizio -} -% Ma bisogna ricordarsi di usare a seconda dei casi \frontespizio o \tomo - -%%%%%%%%%%%%%%%%%% Fine delle impostazioni con topfront %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%% Inizio impostazioni per frontespizio %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\else -% Questo test serve per usare il codice solo se si specificata -% l'opzione "noTOPfront"; altrimenti tutto questo codice non serve. +% Questo test serve per usare il codice solo se si è specificata +% l'opzione "tipotesi=frontespizio". +\traceon +\begin{Preambolo*} +\geometry{a4paper, left=35mm, right=35mm, top=25mm, bottom=25mm} +\end{Preambolo*} +\traceoff \begin{frontespizio} \Universita {Marconia} @@ -202,7 +102,7 @@ a4paper \textdagger\ A mio nonno Pino \end{dedica} -\fi + %%%%%%%%%%%%%%%%%%%% Fine impostazioni con frontespizio %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -285,7 +185,7 @@ Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. \put(47,15){\circle*{1}} \put(30,0){\framebox(40,30){}} \end{picture} -\caption{Orbita del generico satellite; si noti l'eccentricit dell'orbita rispetto al pianeta.\label{fig1}} +\caption{Orbita del generico satellite; si noti l'eccentricità dell'orbita rispetto al pianeta.\label{fig1}} \end{figure} Per misurare le grandezze che compaiono in questa formula {\`e} necessario @@ -426,7 +326,7 @@ descritto cost{\`\i}.\cite{duane} % altri riferimenti da usare come esempi. -\bibitem{chiesa1}Chiesa S., \emph{Affidabilit, sicurezza e manutenzione +\bibitem{chiesa1}Chiesa S., \emph{Affidabilità, sicurezza e manutenzione nel progetto dei sistemi}, CLUT, gennaio 2008 \bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System Technological Level improvement effect on UAV MALE} diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.pdf Binary files differnew file mode 100644 index 00000000000..fa8e3ead323 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.tex new file mode 100644 index 00000000000..19a214f4076 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-dottorale.tex @@ -0,0 +1,375 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex + +%%%%%%% La riga soprastante serve per configurare gli editor +%%%%%%% TeXShop, TeXworks e TeXstudio per gestire questo file +%%%%%%% con la codifica UFF-8. +%%%%%%% Se si vuole usare un'altra codifica si veda sotto. +%%%%%%% + +%%%%%%% Esempio con molte opzioni +%%%%%%% Le opzioni nella forma "chiave=valore" sono definite +%%%%%%% perché la classe dalla versione 6.1.00 usa il pacchetto +%%%%%%% xkeyval. Vedere sulla documentazione in inglese o +%%%%%%% in italiano quali chiavi accettano valori. + +%%%%%%% L'opzione per il corpo accetta qualsiasi valore, anche fratto +%%%%%%% (per esempio: corpo=11.5pt) e va sempre scritto con una +%%%%%%% unità di misura. L'utente è pregato di non esagerare con +%%%%%%% corpi normali minori di 9.5pt o maggiori di 13pt. +%%%%%%% +%%%%%%% Le opzioni per inputenc e fontenc vanno per prime. +%%%%%%% Vengono ignorate se NON si compone con pdfLaTeX. Ma +%%%%%%% questo è un esempio per pdfLaTeX. +%%%%%%% + + \documentclass[% + corpo=11pt, + twoside, +% stile=classica, + oldstyle, + autoretitolo, + tipotesi=dottorale, + greek, + evenboxes, +]{toptesi} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%% Per la codifica d'entratasi può scegliere quella che si vuole, +%%%%%% ma si consiglia di preferire utf8; in ogni caso non scegliere +%%%%%% codifiche specifiche del sistema operativo. + +\usepackage[utf8]{inputenc}% codifica d'entrata +\usepackage[T1]{fontenc}% codifica dei font +\usepackage{lmodern}% scelta dei font +\usepackage{pict2e}% estensione dell'ambiente picture +% Vedere la documentazione toptesi-it.pdf per le +% attenzioni che bisogna usare al fine di ottenere un file +% veramente conforme alle norme per l'archiviabilità. + + +\usepackage{hyperref} + +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} + } +% +%%%%%%% Esempio di composizione di tesi di laurea con PDFLATEX +% +% +% Per scrivere testo fasullo in "latinorum" +\usepackage{lipsum} +% + +%%%%%%% Definizioni locali +\newtheorem{osservazione}{Osservazione}% Standard LaTeX + + +\begin{document}\errorcontextlines=9 +\DeclareSlantedCapitalGreekLetters % per avere in matematica le + % maiuscole greche inclinate. Per esempio + % l'angolo solido \Omega è diverso dall'ohm... +%%%%%%% Questi comandi è meglio metterli dentro l'ambiente +%%%%%%% frontespizio o frontespizio*, oppure in un file di +%%%%%%% configurazione personale. Si veda la documentazione +%%%%%%% inglese o italiana. +%%%%%%% Comunque i presenti comandi servono per comporre la +%%%%%%% tesi con i moduli di estensione standard del pacchetto +%%%%%%% TOPtesi. +\begin{ThesisTitlePage} +\ateneo{Università degli Studi di Marconia} +% +% Non tutte le università hanno un nome proprio +\nomeateneo{Sede di Torre Elettra} +% +\scuoladidottorato{Università di Marconia} +\ciclodidottorato{XVIII} +%\Materia{Remote sensing} +\titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato +\sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato +% +%%%%%%% Corso degli studi +\corsodidottorato{Astronomia Applicata}% per la laurea + +%%%%%%% L'eventuale numero di matricola va fra parentesi quadre +\candidato{Galileo \textsc{Galilei}}[123456] + +%%%%%%% Relatori o supervisori +% +\tutore{prof.~Albert Einstein} +% +%%%%%%% Per mettere altri relatori consultare toptesi-it.pdf + +%%%%%%% Tutore aziendale +\tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} +\NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} + +%%%%%%% Seduta dell'esame +\esamedidottorato{\textsc{Anno~accademico} 1615-1616}% + +%%%%%%% Logo della sede +\logosede{logodue}% +\end{ThesisTitlePage} + + +%%%%%%% Per cambiare l'offset per la rilegatura; meno offset +%%%%%%% c'e', meglio e' +%\setbindingcorrection{3mm} + + + + +%%%%%%% Questo test è usato appunto per collaudare diversi stili, +%%%%%%% non per comporre una vera tesi. +%%%%%%% Non usarlo mai, solo perché qui è usato! +\ifclassica% +{\begin{dedica} + A mio padre + + \textdagger\ A mio nonno Pino +\end{dedica}\fi +%%%%%%% Fine esperimento + +\sommario + +La pressione barometrica di Giove viene misurata +mediante un metodo originale messo a punto dai candidati, che si basa +sul rilevamento telescopico della pressione. + +% \paginavuota % funziona anche senza specificare l'opzione classica + +\ringraziamenti + +I candidati ringraziano vivamente il Granduca di Toscana per i mezzi +messi loro a disposizione, ed il signor Von Braun, assistente del +prof.~Albert Einstein, per le informazioni riservate che egli ha +gentilmente fornito loro, e per le utili discussioni che hanno permesso +ai candidati di evitare di riscoprire l'acqua calda. + +\tablespagetrue\figurespagetrue % normalmente questa riga non serve ed e' commentata +\indici + +%%%%%%%% Altro esperimento con l'opzione classica +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. +%%%%%%%% Commentare fra \ifclassica fino a \fi compresi. +\ifclassica +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} + + [\textsc{G.\ Leopardi}, Operette Morali]\vspace{1em} + + \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} + + [\textsc{Eraclito}, fr.\ D-K 134] +\end{citazioni} + +\fi +%%%%%%%% fine esperimento +\mainmatter + +\part{Prima Parte} +\chapter{Introduzione generale} + +\section{Principi generali} +Il problema della determinazione della pressione barometrica dell'atmosfera di +Giove non ha ricevuto finora una soluzione soddisfacente, per l'elementare +motivo che il pianeta suddetto si trova ad una distanza tale che i mezzi attuali +non consentono di eseguire una misura diretta. + +Conoscendo però con grande precisione le orbite dei satelliti principali di +Giove, e segnatamente le orbite dei satelliti medicei, è possibile eseguire +delle misure indirette, che fanno ricorso alla nota formula \cite{gal}: +\[ +\Phi = K\frac{\Xi^2 +\Psi\ped{max}}{1+\gei\Omega} +\] +dove le varie grandezze hanno i seguenti significati: +\begin{enumerate} +\item +$\Phi$ angolo di rivoluzione del satellite in radianti se $K=1$, in gradi se +$K=180/\pi$; +\item +$\Xi$ eccentricità dell'orbita del satellite; questa è una grandezza priva +di dimensioni; +\item +$\Psi\ped{max}$ rapporto fra il semiasse maggiore ed il semiasse minore +dell'orbita del satellite, nelle condizioni di massima eccentricità; +poiché le dimensioni di ciascun semiasse sono $[l]=\unit{km}$, la grandezza +$\Psi\ped{max}$ {è} adimensionata; +\item +$\Omega$ velocità istantanea di rotazione; si ricorda che è $[\Omega]=% +\unit{rad}\unit{s}^{-1}$; +\item bisogna ancora ricordarsi che $10^{-6}\unit{m}$ equivalgono a 1\unit{\micro m}. +\end{enumerate} +% + +Le grandezze in gioco sono evidenziate nella figura \ref{fig:orbita}. +\begin{figure}[ht]\centering +\setlength{\unitlength}{0.01\textwidth} +\begin{picture}(40,30)(30,0) +\put(50,15){\scalebox{1}[0.7]{\circle{25}}} +\put(47,15){\circle*{1}} +\put(30,0){\line(0,1){30}} +\put(30,30){\line(1,0){40}} +\put(70,30){\line(0,-1){30}} +\put(70,0){\line(-1,0){40}} +\end{picture} +\caption{Orbita del generico satellite; si noti l'eccentricità dell'orbita rispetto al pianeta.}\label{fig:orbita} +\end{figure} + +Per misurare le grandezze che compaiono in questa formula è necessario +ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli +errori di misura sono troppo grandi, ed i risultati completamente falsati. + +\section{I satelliti medicei} +I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione +attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. + +Essi furono per la prima volta osservati da uno dei candidati mentre +sperimentava l'efficacia del tubo occhiale che aveva appena inventato +rielaborando una idea sentita di seconda mano da un viaggiatore appena arrivato +dai Paesi Bassi. + +%\blankpagestyle{headings} + +%\lipsum[1-2] + + + +\chapter{Il barometro} +\section{Generalità} +\begin{interlinea}{0.87} Il barometro, come dice il nome, serve per +misurare la pesantezza; più precisamente la pesantezza dell'aria +riferita all'unità di superficie. +\end{interlinea} + +\begin{interlinea}{2} Studiando il fenomeno fisico si può concludere +che in un dato punto grava il peso della colonna d'aria che lo +sovrasta, e che tale colonna è tanto più grave quanto maggiore +è la superficie della sua base; il rapporto fra il peso e la base +della colonna si chiama pressione e si misura in once toscane al cubito +quadrato, \cite{tor1}; nel Ducato di Savoia la misura in once al piede +quadrato è quasi uguale, perché colà usano un piede molto +grande, che è simile al nostro cubito. +\end{interlinea} + +\subsection{Forma del barometro} +Il barometro consta di un tubo di vetro chiuso ad una estremità e +ripieno di mercurio, capovolto su di un vaso anch'esso ripieno di +mercurio; mediante un'asta graduata si può misurare la distanza fra +il menisco del mercurio dentro il tubo e la superficie del mercurio +dentro il vaso; tale distanza è normalmente di 10 pollici toscani, +\cite{tor1,tor2}, ma la misura può variare se si usano dei pollici +diversi; è noto infatti che gl'huomini sogliono avere mani di +diverse grandezze, talché anche li pollici non sono egualmente +lunghi. +\section{Del mercurio} +Il mercurio è un a sostanza che si presenta come un liquido, ma ha il colore +del metallo. Esso è pesantissimo, tanto che un bicchiere, che se fosse pieno +d'acqua, sarebbe assai leggiero, quando invece fosse ripieno di mercurio, +sarebbe tanto pesante che con entrambe le mani esso necessiterebbe di essere +levato in suso. + +Esso mercurio non trovasi in natura nello stato nel quale è d'uopo che sia +per la costruzione dei barometri, almeno non trovasi così abbondante come +sarebbe necessario. + +\setcounter{footnote}{25} + +Il Monte Amiata, che è locato nel territorio del Ducato% +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% +\ifclassica\NoteWhiteLine\fi +} del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, è uno dei +luoghi della terra dove può rinvenirsi in gran copia un sale rosso, che +nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio +nella forma e nella consistenza che occorre per la costruzione del barometro +terrestre% +\ifclassica +\nota{Nota senza numero\dots + +\dots e che va a capo. +}\fi. + + +La densità del mercurio è molto alta e varia con la temperatura come +può desumersi dalla tabella \ref{t:1}. + + +Il mercurio gode della sorprendente qualità et proprietà, cioè che esso +diventa tanto solido da potersene fare una testa di martello et infiggere +chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{rrrrrr} % parametri di incolonnamento +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella +\multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare +& \multicolumn{3}{c}{Densità} \\ % un po' di spazio sopra le parole + &\unit{\gradi C} & & & $\unit{t/m^3}$ & \\ +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % + & 10 & & & 13,6 & \\ % a destra; le colonne vuote + & 50 & & & 13,5 & \\ % servono per centrare le colonne + &100 & & & 13,3 & \\ % numeriche sotto le intestazioni +\hline \hline % Filetti di fine tabella +\end{tabular} +\caption[Densità del mercurio]{Densità del mercurio. Si può fare molto meglio usando il pacchetto \textsf{booktabs}.} \label{t:1} % didascalia con label +\end{table} + +%\selectlanguage{italian} + +\begin{osservazione}\normalfont +Questa proprietà si manifesta quando esso è estremamente freddo, come +quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri +siciliani per confetionare li sorbetti, dei quali sono insuperabili artisti. +\end{osservazione} + +Per nostra fortuna, questo grande freddo, che necessita per la confetione de +li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del +Granduca Eccellentissimo, sicché non vi ha tema che il barometro di mercurio +possa essere ruinato dal grande gelo e non indichi la pressione giusta, come +invece deve sempre fare uno strumento di misura, quale è quello che è +descritto costì.\cite{duane1964} + +\chapter{Il listato del pacchetto \texttt{topcoman.sty}} +\listing{topcoman.sty} + + +\begin{thebibliography}{9} +\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio, + Venetia, 1612. +\bibitem{tor1} E.~Torricelli, in ``La pressione barometrica'', {\em Strumenti + Moderni}, Il Porcellino, Firenze, 1606. +\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo + Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31. +\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability + Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964 +\end{thebibliography} + + + + +\end{document} + +% altri riferimenti da usare come esempi. + +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione + nel progetto dei sistemi}, CLUT, gennaio 2008 +\bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System + Technological Level Improvement Effect on UAV MALE} +\bibitem{bigliano2010} Bigliano M., \emph{Sicurezza nell'installazione di un velivolo + senza pilota MALE; applicazione di metodologia di Zonal Safety + Analysis al velivolo del Progetto SAvE}, Politecnico di Torino, + maggio 2010 +\bibitem{astrid2012} Chiesa S., Di Meo G.A., Fioriti M., Medici G., Viola N., + \emph{ASTRID - Aircraft on board Systems sizing and TRade-off + analysis in Initial Design}, Research Bulletin, Warsaw University + of Technology, Institute of Aeronautics and Applied Mechanics, + p. 1-28, 17-19, ottobre 2012 diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.pdf Binary files differindex a34d3c0e5ca..92e19bbdea2 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.tex index 362a1f5e045..e04e89db8f1 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.tex +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-luatex.tex @@ -3,14 +3,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Esempio di composizione con XeLaTeX o LuaLatex \documentclass[% -% 10pt -% 11pt -12pt, +corpo=12pt, twoside, -%,classica -%,autoreanno -%,oldstile -%,cucitura +tipotesi=magistrale, ]{toptesi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Impostazione dei font e delle lingue % @@ -19,9 +14,13 @@ twoside, \setsansfont[Ligatures=TeX, Scale=MatchLowercase]{TeX Gyre Heros}% font Helvetica % \setmonofont{UM Typewriter}% font typewriter un po' più scuri del font Courier % \usepackage{amsmath} % per la matematica estesa % -\usepackage[math-style=TeX]{unicode-math}% per la matematica UNICODE % -\setmathfont{XITS Math}% font matematici UNICODE che van bene con i Times % -\setotherlanguage[variant=ancient]{greek} % +\usepackage[math-style=ISO]{unicode-math}% per la matematica UNICODE + % specify math-style=ISO for ISO compliant math + % specify math-style=TeX for TeX standard style +\setmathfont{XITS Math}[partial=upright]% font matematici UNICODE che +% van bene con i Times + +\setotherlanguage[variant=ancient]{greek}% la variante funziona solo con XeLaTeX (per ora, 2017) % \newfontfamily{\greekfont}{GFS Didot} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -42,35 +41,29 @@ twoside, \begin{document} -% \english % la lingua di default e' l'italiano +\newtheorem{osservazione}{Osservazione}% Standard LaTeX +%\setbindingcorrection{3mm}% impostazione per la cucitura + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{ThesisTitlePage}* \ateneo{Università degli Studi di Einstenia}% nome generico dell'Universita' \nomeateneo{Weiss Turm}% eventuale nome proprio dell'universita' \logosede{logouno}% logo dell'universita' -%\logosede{logopolito,logopolimi,logopoliba}% Per la scuola interpolitecnica di dottorato \FacoltaDi{Facoltà di\space}% Etichetta della facolta' -\facolta[III]{Matematica, Fisica\\e Scienze Naturali}% campo delle facolta' -%\Materia{Remote sensing} -%\monografia{La pressione barometrica di Giove}% per la laurea triennale -\titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato -\sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato +\facolta[III]{Matematica, Fisica\\e Scienze Naturali}% facolta' +\Materia{Remote sensing} +\titolo{La pressione barometrica di~Giove}% +\sottotitolo{Metodo dei satelliti medicei}% \corsodilaurea{Astronomia Applicata}% per la laurea -%\corsodidottorato{Meccanica}% per il dottorato \candidato{Galileo \textsc{Galilei}}% per tutti i percorsi -\secondocandidato{Evangelista \textsc{Torricelli}}% solo per la laurea magistrale -%\direttore{prof. Albert Einstein}% solo per il dottorato -%\coordinatore{prof. Albert Einstein}% solo per il dottorato +\secondocandidato{Evangelista \textsc{Torricelli}}% \relatore{prof.\ Albert Einstein}% per la laurea e/o il dottorato -\secondorelatore{dipl.~ing.~Werner von Braun}% per la laurea magistrale -%\terzorelatore{{\tabular{@{}l}dott.\ Neil Armstrong\\prof. Maria Rossi\endtabular}}% per la laurea magistrale - -%\tutore{ing.~Karl Von Braun}% per il dottorato +\secondorelatore{dipl.~ing.~Werner von Braun}% per la laurea \tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} \NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} -%\sedutadilaurea{Agosto 1615}% per la laurea quinquennale -%\esamedidottorato{Novembre 1610}% per il dottorato \sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale %\annoaccademico{1615-1616}% solo con l'opzione classica %\annoaccademico{2007}% idem @@ -84,27 +77,8 @@ twoside, Stampato il \today } - -\newtheorem{osservazione}{Osservazione}% Standard LaTeX - - -%\setbindingcorrection{3mm}% impostazione per la cucitura - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Solo per collaudare -\ifclassica - \tomo - \paginavuota% Per avere la dedica sul recto, ma non subito dopo il retrofrontepsizio - \begin{dedica} - A mio padre - - \textdagger\ A mio nonno Pino - \end{dedica} -\else - \frontespizio* -\fi -% In una tesi vera usare solo a seconda dei casi \frontespizio o \tomo -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{ThesisTitlePage} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \sommario% compone il sommario @@ -113,40 +87,36 @@ La pressione barometrica di Giove viene misurata mediante un metodo originale messo a punto dai candidati, che si basa sul rilevamento telescopico della pressione. -\ringraziamenti% compone i ringraziamanti che di solito sono inutili +\ringraziamenti% compone i ringraziamenti che di solito sono inutili I candidati ringraziano vivamente il Granduca di Toscana per i mezzi messi loro a disposizione, ed il signor Von Braun, assistente del prof.~Albert Einstein, per le informazioni riservate che egli ha -gentilmente fornito loro, e per le utili discussioni che hanno permesso -ai candidati di evitare di riscoprire l'acqua calda. +gentilmente fornito loro, e per le utili discussioni che hanno permesso ai candidati di evitare di riscoprire l'acqua calda. \tablespagetrue\figurespagetrue % usare solo se queste liste sono necessarie -\indici% stampo i vari indici +\indici% stampa i vari indici %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Altro esperimento da non ripetere mai -% QUi lo si fa per mostrare come viene composto il testo greco inserito -% direttamente in greco nel file sorgente -%\ifclassica - \begin{citazioni} - \textit{testo testo testo\\testo testo testo} +% Altro esperimento da non ripetere MAI <------- ! +% Qui lo si fa per mostrare come viene composto il testo greco +% inserito direttamente in greco nel file sorgente +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} - [\textsc{G.\ Leopardi}, Operette Morali] + [\textsc{G.\ Leopardi}, Operette Morali] - \begin{greek} - ἀλλὰ πάντα ὁ κέραυνος δ' ὀιακίζει - \end{greek} + \begin{greek} + ἀλλὰ πάντα ὁ κέραυνος δ' ὀιακίζει + \end{greek} - [\textsc{Eraclito}, fr.\ D-K 134] - \end{citazioni} + [\textsc{Eraclito}, fr.\ D-K 134] +\end{citazioni} -%\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mainmatter +\mainmatter % ridondante ma non guasta -%\part{Prima Parte}% Di solito le tesi non sono divise in parti \chapter{Introduzione generale} \section{Principi generali} @@ -197,6 +167,19 @@ Per misurare le grandezze che compaiono in questa formula è necessario ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli errori di misura sono troppo grandi, ed i risultati completamente falsati. +\unless\ifPDFTeX +Ci si ricordi anche di espressioni del tipo +\begin{equation} +\nabla \symbf{E}= - \frac{\partial \symbf{B}}{\partial t} +\label{equ:isomath} +\end{equation} +compilabili solo con LuaLaTeX o XeLaTeX oppure anche con pdfLaTeX pur di caricare i pacchetti giusti e i font giusti per la matematica conforme con le norme ISO. + +Nell'espressione~(\ref{equ:isomath}) il simbolo di derivata parziale discende dall'impostazione ``math-style=iso'' nella specifica del font matematico UNICODE usato; i simboli inclinati neri sono ottenuti con il comando \verb|\symbf| che agisce nello stesso modo sia sui simboli latini sia su quelli greci, a differenza di quanto succede con \LaTeX\ in condizioni normali. + +Per impostare ed usare correttamente i font matematici UNICODE è bene consultare la documentazione leggendo il file \texttt{unicode-math.pdf} già presente nella propria installazione aggiornata e completa del sistema \TeX. +\fi + \section{I satelliti medicei} I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. @@ -249,66 +232,43 @@ sarebbe necessario. \setcounter{footnote}{25} Il Monte Amiata, che è locato nel territorio del Ducato% -\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% -\expandafter\ifx\csname StileTrieste\endcsname\NoteWhiteLine\fi -} -del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, è uno dei -luoghi della terra dove può rinvenirsi in gran copia un sale rosso, che -nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio -nella forma e nella consistenza che occorre per la costruzione del barometro -terrestre% -\expandafter\ifx\csname StileTrieste\endcsname -\nota{Nota senza numero. - -\dots e che va a capo. -}\fi. - -%\selectlanguage{english} -%\EnableFigTabNames +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.} +del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, è uno dei luoghi della terra dove può rinvenirsi in gran copia un sale rosso, che nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio nella forma e nella consistenza che occorre per la costruzione del barometro terrestre. La densità del mercurio è molto alta e varia con la temperatura come può desumersi dalla tabella \ref{t:1}. -Il mercurio gode di una sorprendente qualità e proprietà, cioè che esso -diventa tanto solido da potersene fare una testa di martello et infiggere -chiodi aguzzi nel legname. -\begin{table}[htp] % crea un floating body col nome Tabella nella - % didascalia -\centering % comando necessario per centrare la tabella -\begin{tabular}% % inizio vero e proprio della tabella -{rrrrrr} % parametri di incolonnamento -\hline\hline % filetti orizzontali sopra la tabella - % intestazione della tabella +Il mercurio gode di una sorprendente qualità e proprietà, cioè che esso diventa tanto solido da potersene fare una testa di martello et infiggere chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{rrrrrr} % parametri di incolonnamento +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella \multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare -& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole +& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole &\multicolumn1c{\unit{\gradi C}} & & &\multicolumn1c{$\unit{t/m^3}$} & \\ -\hline% % Filetto orizzontale per separare l'intestazione -\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati & 10 & & & 13,6 & \\ % a destra; le colonne vuote & 50 & & & 13,5 & \\ % servono per centrare le colonne &100 & & & 13,3 & \\ % numeriche sotto le intestazioni \hline \hline % Filetti di fine tabella \end{tabular} -\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si può fare molto meglio usando il pacchetto \textsf{booktabs}.} % didascalia -\label{t:1} % label +\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si può fare molto meglio usando il pacchetto \textsf{booktabs}.} % didascalia +\label{t:1} % label \end{table} %\selectlanguage{italian} \begin{osservazione}\normalfont -Questa proprietà si manifesta quando esso è estremamente freddo, come -quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri -siciliani per confetionare i sorbetti, dei quali sono insuperabili artisti. +Questa proprietà si manifesta quando esso è estremamente freddo, come quando lo si immerge nella salamoia di sale e ghiaccio che usano li siciliani per confetionare i sorbetti, dei quali sono insuperabili artisti. \end{osservazione} -Per nostra fortuna, questo grande freddo, che necessita per la confetione de -li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del -Granduca Eccellentissimo, sicché non vi ha tema che il barometro di mercurio -possa essere ruinato dal grande gelo e non indichi la pressione giusta, come -invece deve sempre fare uno strumento di misura, quale è quello che è -descritto costì. +Per nostra fortuna, questo grande freddo, che necessita per la confetione de li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del Granduca Eccellentissimo, sicché non vi ha tema che il barometro di mercurio possa essere ruinato dal grande gelo e non indichi la pressione giusta, come invece deve sempre fare uno strumento di misura, quale è quello che è descritto costì. diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.pdf Binary files differnew file mode 100644 index 00000000000..62d43b4bbd1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.tex new file mode 100644 index 00000000000..943f6ab516c --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-magistrale.tex @@ -0,0 +1,376 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex + +%%%%%%% La riga soprastante serve per configurare gli editor +%%%%%%% TeXShop, TeXworks e TeXstudio per gestire questo file +%%%%%%% con la codifica UFF-8. +%%%%%%% Se si vuole usare un'altra codifica si veda sotto. +%%%%%%% + +%%%%%%% Esempio con molte opzioni +%%%%%%% Le opzioni nella forma "chiave=valore" sono definite +%%%%%%% perché la classe dalla versione 6.1.00 usa il pacchetto +%%%%%%% xkeyval. Vedere sulla documentazione in inglese o +%%%%%%% in italiano quali chiavi accettano valori. + +%%%%%%% L'opzione per il corpo accetta qualsiasi valore, anche fratto +%%%%%%% (per esempio: corpo=11.5pt) e va sempre scritto con una +%%%%%%% unità di misura. L'utente è pregato di non esagerare con +%%%%%%% corpi normali minori di 9.5pt o maggiori di 13pt. +%%%%%%% +%%%%%%% Le opzioni per inputenc e fontenc vanno per prime. +%%%%%%% Vengono ignorate se NON si compone con pdfLaTeX. Ma +%%%%%%% questo è un esempio per pdfLaTeX. +%%%%%%% + + \documentclass[% + corpo=11pt, + twoside, + stile=classica, + oldstyle, + autoretitolo, + tipotesi=magistrale, + greek, + evenboxes, +]{toptesi} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%% Per la codifica d'entratasi può scegliere quella che si vuole, +%%%%%% ma si consiglia di preferire utf8; in ogni caso non scegliere +%%%%%% codifiche specifiche del sistema operativo. + +\usepackage[utf8]{inputenc}% codifica d'entrata +\usepackage[T1]{fontenc}% codifica dei font +\usepackage{lmodern}% scelta dei font + +% Vedere la documentazione toptesi-it.pdf per le +% attenzioni che bisogna usare al fine di ottenere un file +% veramente conforme alle norme per l'archiviabilità. + + +\usepackage{hyperref} + +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} + } +% +%%%%%%% Esempio di composizione di tesi di laurea con PDFLATEX +% +% +% Per scrivere testo fasullo in "latinorum" +\usepackage{lipsum} +% + +%%%%%%% Definizioni locali +\newtheorem{osservazione}{Osservazione}% Standard LaTeX + + +\begin{document}\errorcontextlines=9 +%%%%%%% Questi comandi è meglio metterli dentro l'ambiente +%%%%%%% frontespizio o frontespizio*, oppure in un file di +%%%%%%% configurazione personale. Si veda la documentazione +%%%%%%% inglese o italiana. +%%%%%%% Comunque i presenti comandi servono per comporre la +%%%%%%% tesi con i moduli di estensione standard del pacchetto +%%%%%%% TOPtesi. +\begin{ThesisTitlePage} +\ateneo{Universit\`a degli Studi di Marconia} +% +% Non tutte le università hanno un nome proprio +\nomeateneo{Sede di Torre Elettra} +% +\struttura[III]{Matematica, Fisica e~Scienze Naturali} +%\Materia{Remote sensing} +\titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato +\sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato +% +%%%%%%% Corso degli studi +\corsodilaurea{Astronomia Applicata}% per la laurea + +%%%%%%% L'eventuale numero di matricola va fra parentesi quadre +\candidato{Galileo \textsc{Galilei}}[123456] +\secondocandidato{Evangelista \textsc{Torricelli}}[123457] + +%%%%%%% Relatori o supervisori +% + \relatore{prof.~Albert Einstein} + \secondorelatore{dipl.~ing.~Werner von Braun} + \terzorelatore{dott.~Mario Rossi} +% +%%%%%%% Per mettere altri relatori consultare toptesi-it.pdf + +%%%%%%% Tutore +\tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} +\NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} + +%%%%%%% Seduta dell'esame +%\sedutadilaurea{Agosto 1615} +%%%%%%%% oppure: +\sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% + +%%%%%%% Logo della sede +\logosede{logodue}% +\end{ThesisTitlePage} + + +%%%%%%% Per cambiare l'offset per la rilegatura; meno offset +%%%%%%% c'e', meglio e' +%\setbindingcorrection{3mm} + + + + +%%%%%%% Questo test è usato appunto per collaudare diversi stili, +%%%%%%% non per comporre una vera tesi. +%%%%%%% Non usarlo mai, solo perché qui è usato! +\ifclassica% +{\begin{dedica} + A mio padre + + \textdagger\ A mio nonno Pino +\end{dedica} +%%%%%%% Fine esperimento + +\sommario + +La pressione barometrica di Giove viene misurata +mediante un metodo originale messo a punto dai candidati, che si basa +sul rilevamento telescopico della pressione. + +% \paginavuota % funziona anche senza specificare l'opzione classica + +\ringraziamenti + +I candidati ringraziano vivamente il Granduca di Toscana per i mezzi +messi loro a disposizione, ed il signor Von Braun, assistente del +prof.~Albert Einstein, per le informazioni riservate che egli ha +gentilmente fornito loro, e per le utili discussioni che hanno permesso +ai candidati di evitare di riscoprire l'acqua calda. + +\tablespagetrue\figurespagetrue % normalmente questa riga non serve ed e' commentata +\indici + +%%%%%%%% Altro esperimento con l'opzione classica +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. +%%%%%%%% Commentare fra \ifclassica fino a \fi compresi. +\ifclassica +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} + + [\textsc{G.\ Leopardi}, Operette Morali]\vspace{1em} + + \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} + + [\textsc{Eraclito}, fr.\ D-K 134] +\end{citazioni} + +\fi +%%%%%%%% fine esperimento +\mainmatter + +\part{Prima Parte} +\chapter{Introduzione generale} + +\section{Principi generali} +Il problema della determinazione della pressione barometrica dell'atmosfera di +Giove non ha ricevuto finora una soluzione soddisfacente, per l'elementare +motivo che il pianeta suddetto si trova ad una distanza tale che i mezzi attuali +non consentono di eseguire una misura diretta. + +Conoscendo per\`o con grande precisione le orbite dei satelliti principali di +Giove, e segnatamente le orbite dei satelliti medicei, \`e possibile eseguire +delle misure indirette, che fanno ricorso alla nota formula \cite{gal}: +\[ +\Phi = K\frac{\Xi^2 +\Psi\ped{max}}{1+\gei\Omega} +\] +dove le varie grandezze hanno i seguenti significati: +\begin{enumerate} +\item +$\Phi$ angolo di rivoluzione del satellite in radianti se $K=1$, in gradi se +$K=180/\pi$; +\item +$\Xi$ eccentricit\`a dell'orbita del satellite; questa \`e una grandezza priva +di dimensioni; +\item +$\Psi\ped{max}$ rapporto fra il semiasse maggiore ed il semiasse minore +dell'orbita del satellite, nelle condizioni di massima eccentricit\`a; +poich\'e le dimensioni di ciascun semiasse sono $[l]=\unit{km}$, la grandezza +$\Psi\ped{max}$ {\`e} adimensionata; +\item +$\Omega$ velocit\`a istantanea di rotazione; si ricorda che \`e $[\Omega]=% +\unit{rad}\unit{s}^{-1}$; +\item bisogna ancora ricordarsi che $10^{-6}\unit{m}$ equivalgono a 1\unit{\micro m}. +\end{enumerate} +% + +Le grandezze in gioco sono evidenziate nella figura \ref{fig:orbita}. +\begin{figure}[ht]\centering +\setlength{\unitlength}{0.01\textwidth} +\begin{picture}(40,30)(30,0) +\put(50,15){\circle{20}} +\put(47,15){\circle*{1}} +\put(30,0){\line(0,1){30}} +\put(30,30){\line(1,0){40}} +\put(70,30){\line(0,-1){30}} +\put(70,0){\line(-1,0){40}} +\end{picture} +\caption{Orbita del generico satellite; si noti l'eccentricit\`a dell'orbita rispetto al pianeta.}\label{fig:orbita} +\end{figure} + +Per misurare le grandezze che compaiono in questa formula \`e necessario +ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli +errori di misura sono troppo grandi, ed i risultati completamente falsati. + +\section{I satelliti medicei} +I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione +attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. + +Essi furono per la prima volta osservati da uno dei candidati mentre +sperimentava l'efficacia del tubo occhiale che aveva appena inventato +rielaborando una idea sentita di seconda mano da un viaggiatore appena arrivato +dai Paesi Bassi. + +%\blankpagestyle{headings} + +%\lipsum[1-2] + + + +\chapter{Il barometro} +\section{Generalit\`a} +\begin{interlinea}{0.87} Il barometro, come dice il nome, serve per +misurare la pesantezza; pi\`u precisamente la pesantezza dell'aria +riferita all'unit\`a di superficie. +\end{interlinea} + +\begin{interlinea}{2} Studiando il fenomeno fisico si pu\`o concludere +che in un dato punto grava il peso della colonna d'aria che lo +sovrasta, e che tale colonna \`e tanto pi\`u grave quanto maggiore +\`e la superficie della sua base; il rapporto fra il peso e la base +della colonna si chiama pressione e si misura in once toscane al cubito +quadrato, \cite{tor1}; nel Ducato di Savoia la misura in once al piede +quadrato \`e quasi uguale, perch\'e col\`a usano un piede molto +grande, che \`e simile al nostro cubito. +\end{interlinea} + +\subsection{Forma del barometro} +Il barometro consta di un tubo di vetro chiuso ad una estremit\`a e +ripieno di mercurio, capovolto su di un vaso anch'esso ripieno di +mercurio; mediante un'asta graduata si pu\`o misurare la distanza fra +il menisco del mercurio dentro il tubo e la superficie del mercurio +dentro il vaso; tale distanza \`e normalmente di 10 pollici toscani, +\cite{tor1,tor2}, ma la misura pu\`o variare se si usano dei pollici +diversi; \`e noto infatti che gl'huomini sogliono avere mani di +diverse grandezze, talch\'e anche li pollici non sono egualmente +lunghi. +\section{Del mercurio} +Il mercurio \`e un a sostanza che si presenta come un liquido, ma ha il colore +del metallo. Esso \`e pesantissimo, tanto che un bicchiere, che se fosse pieno +d'acqua, sarebbe assai leggiero, quando invece fosse ripieno di mercurio, +sarebbe tanto pesante che con entrambe le mani esso necessiterebbe di essere +levato in suso. + +Esso mercurio non trovasi in natura nello stato nel quale \`e d'uopo che sia +per la costruzione dei barometri, almeno non trovasi cos\`i abbondante come +sarebbe necessario. + +\setcounter{footnote}{25} + +Il Monte Amiata, che \`e locato nel territorio del Ducato% +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% +\ifclassica\NoteWhiteLine\fi +} del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, \`e uno dei +luoghi della terra dove pu\`o rinvenirsi in gran copia un sale rosso, che +nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio +nella forma e nella consistenza che occorre per la costruzione del barometro +terrestre% +\ifclassica +\nota{Nota senza numero\dots + +\dots e che va a capo. +}\fi. + + +La densit\`a del mercurio \`e molto alta e varia con la temperatura come +pu\`o desumersi dalla tabella \ref{t:1}. + + +Il mercurio gode della sorprendente qualit\`a et propriet\`a, cio\`e che esso +diventa tanto solido da potersene fare una testa di martello et infiggere +chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{rrrrrr} % parametri di incolonnamento +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella +\multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare +& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole + &\unit{\gradi C} & & & $\unit{t/m^3}$ & \\ +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % + & 10 & & & 13,6 & \\ % a destra; le colonne vuote + & 50 & & & 13,5 & \\ % servono per centrare le colonne + &100 & & & 13,3 & \\ % numeriche sotto le intestazioni +\hline \hline % Filetti di fine tabella +\end{tabular} +\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si pu\`o fare molto meglio usando il pacchetto \textsf{booktabs}.} \label{t:1} % didascalia con label +\end{table} + +%\selectlanguage{italian} + +\begin{osservazione}\normalfont +Questa propriet\`a si manifesta quando esso \`e estremamente freddo, come +quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri +siciliani per confetionare li sorbetti, dei quali sono insuperabili artisti. +\end{osservazione} + +Per nostra fortuna, questo grande freddo, che necessita per la confetione de +li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del +Granduca Eccellentissimo, sicch\'e non vi ha tema che il barometro di mercurio +possa essere ruinato dal grande gelo e non indichi la pressione giusta, come +invece deve sempre fare uno strumento di misura, quale \`e quello che \`e +descritto cost\`i.\cite{duane1964} + +\chapter{Il listato del pacchetto \texttt{topcoman.sty}} +\listing{topcoman.sty} + + +\begin{thebibliography}{9} +\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio, + Venetia, 1612. +\bibitem{tor1} E.~Torricelli, in ``La pressione barometrica'', {\em Strumenti + Moderni}, Il Porcellino, Firenze, 1606. +\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo + Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31. +\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability + Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964 +\end{thebibliography} + + + + +\end{document} + +% altri riferimenti da usare come esempi. + +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione + nel progetto dei sistemi}, CLUT, gennaio 2008 +\bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System + Technological Level Improvement Effect on UAV MALE} +\bibitem{bigliano2010} Bigliano M., \emph{Sicurezza nell'installazione di un velivolo + senza pilota MALE; applicazione di metodologia di Zonal Safety + Analysis al velivolo del Progetto SAvE}, Politecnico di Torino, + maggio 2010 +\bibitem{astrid2012} Chiesa S., Di Meo G.A., Fioriti M., Medici G., Viola N., + \emph{ASTRID - Aircraft on board Systems sizing and TRade-off + analysis in Initial Design}, Research Bulletin, Warsaw University + of Technology, Institute of Aeronautics and Applied Mechanics, + p. 1-28, 17-19, ottobre 2012 diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.pdf Binary files differnew file mode 100644 index 00000000000..13ebd4c5716 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.tex new file mode 100644 index 00000000000..bda97d14555 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-sss.tex @@ -0,0 +1,317 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex + +%%%%%%% La riga soprastante serve per configurare gli editor TeXShop, TeXWorks +%%%%%%% e TeXstudio per gestire questo file con la codifica IsoLatin o Latin 1 +%%%%%%% o ISO 8859-1. Se si vuole usare un'altra codifica si veda sotto. +%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Esempio con molte opzioni + \documentclass[% + corpo=11pt, + twoside, + greek, + evenboxes, + tipotesi=secondaria, +]{toptesi} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usepackage[utf8]{inputenc}% si può scegliere anche latin1, +% ma lo si sconsiglia fortemente +\usepackage[T1]{fontenc} +\usepackage{lmodern} + +% Vedere la documentazione italiana o inglese di TOPtesi +% per le attenzioni che bisogna usare al fine di ottenere +% un file veramente conforme alle norme per l'archiviabilità. + + +\usepackage{hyperref} + +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} + } +% +%%%%%%% Esempio di composizione di tesina con PDFLATEX +% +\usepackage{newtxtext,newtxmath} +% +% Per scrivere testo fasullo in "latinorum" +\usepackage{lipsum} +% + +%%%%%%% Definizioni locali +\newcounter{Osservazione} +\newtheorem{osservazione}{Osservazione}% Standard LaTeX + + +\begin{document}\errorcontextlines=9 + + +% +\begin{FrontespizioTesina} +\SSSLogo{logotre} +\NomeTesina{Lavoro finale per l'esame di maturità} +\IndirizzoMiur{Cesarea}\OpzioneMiur{Coreutica medio-orientale} +\TipoScuola{Liceo coreutico} +\NomeScuola{Salomè Erodiaca} +\SedeScuola{Via Roma 123\\10000 Cesarea} +\AnnoScolastico{32--33} +\titolo{La danza dei sette veli} +\sottotitolo{Esecuzione svolta nel~palazzo reale su~richiesta del~re~Erode} +\studentessa{Maria Bianchi}[V sezione F] +\Presidente{prof.\ Letizia Rossi} +\NumeroCommissione{123456} +\end{FrontespizioTesina} + +%%%%%%% Fine esperimento + +\sommario + +La pressione barometrica di Giove viene misurata +mediante un metodo originale messo a punto dai candidati, che si basa +sul rilevamento telescopico della pressione. + +% \paginavuota % funziona anche senza specificare l'opzione classica + +\ringraziamenti + +I candidati ringraziano vivamente il Granduca di Toscana per i mezzi +messi loro a disposizione, ed il signor Von Braun, assistente del +prof.~Albert Einstein, per le informazioni riservate che egli ha +gentilmente fornito loro, e per le utili discussioni che hanno permesso +ai candidati di evitare di riscoprire l'acqua calda. + +\tablespagetrue\figurespagetrue % normalmente questa riga non serve ed e' commentata +\indici + +%%%%%%%% Altro esperimento con l'opzione classica +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. +%%%%%%%% Commentare fra \ifclassica fino a \fi compresi. +\ifclassica +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} + + [\textsc{G.\ Leopardi}, Operette Morali] + + \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} + + [\textsc{Eraclito}, fr.\ D-K 134] + \end{citazioni} + +\fi +%%%%%%%% fine esperimento +\mainmatter + +\part{Prima Parte} +\chapter{Introduzione generale} + +\section{Principi generali} +Il problema della determinazione della pressione barometrica dell'atmosfera di +Giove non ha ricevuto finora una soluzione soddisfacente, per l'elementare +motivo che il pianeta suddetto si trova ad una distanza tale che i mezzi attuali +non consentono di eseguire una misura diretta. + +Conoscendo per\`o con grande precisione le orbite dei satelliti principali di +Giove, e segnatamente le orbite dei satelliti medicei, \`e possibile eseguire +delle misure indirette, che fanno ricorso alla nota formula \cite{gal}: +\[ +\Phi = K\frac{\Xi^2 +\Psi\ped{max}}{1+\gei\Omega} +\] +dove le varie grandezze hanno i seguenti significati: +\begin{enumerate} +\item +$\Phi$ angolo di rivoluzione del satellite in radianti se $K=1$, in gradi se +$K=180/\pi$; +\item +$\Xi$ eccentricit\`a dell'orbita del satellite; questa \`e una grandezza priva +di dimensioni; +\item +$\Psi\ped{max}$ rapporto fra il semiasse maggiore ed il semiasse minore +dell'orbita del satellite, nelle condizioni di massima eccentricit\`a; +poich\'e le dimensioni di ciascun semiasse sono $[l]=\unit{km}$, la grandezza +$\Psi\ped{max}$ {\`e} adimensionata; +\item +$\Omega$ velocit\`a istantanea di rotazione; si ricorda che \`e $[\Omega]=% +\unit{rad}\unit{s}^{-1}$; +\item bisogna ancora ricordarsi che $10^{-6}\unit{m}$ equivalgono a 1\unit{\micro m}. +\end{enumerate} +% + +Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. +\begin{figure}[ht]\centering +\setlength{\unitlength}{0.01\textwidth} +\begin{picture}(40,30)(30,0) +\put(50,15){\circle{20}} +\put(47,15){\circle*{1}} +\put(30,0){\line(0,1){30}} +\put(30,30){\line(1,0){40}} +\put(70,30){\line(0,-1){30}} +\put(70,0){\line(-1,0){40}} +\end{picture} +\caption{Orbita del generico satellite; si noti l'eccentricit\`a dell'orbita rispetto al pianeta.\label{fig1}} +\end{figure} + +Per misurare le grandezze che compaiono in questa formula \`e necessario +ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli +errori di misura sono troppo grandi, ed i risultati completamente falsati. + +\section{I satelliti medicei} +I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione +attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. + +Essi furono per la prima volta osservati da uno dei candidati mentre +sperimentava l'efficacia del tubo occhiale che aveva appena inventato +rielaborando una idea sentita di seconda mano da un viaggiatore appena arrivato +dai Paesi Bassi. + +%\blankpagestyle{headings} + +%\lipsum[1-2] + + + +\chapter{Il barometro} +\section{Generalit\`a} +\begin{interlinea}{0.87} Il barometro, come dice il nome, serve per +misurare la pesantezza; pi\`u precisamente la pesantezza dell'aria +riferita all'unit\`a di superficie. +\end{interlinea} + +\begin{interlinea}{2} Studiando il fenomeno fisico si pu\`o concludere +che in un dato punto grava il peso della colonna d'aria che lo +sovrasta, e che tale colonna \`e tanto pi\`u grave quanto maggiore +\`e la superficie della sua base; il rapporto fra il peso e la base +della colonna si chiama pressione e si misura in once toscane al cubito +quadrato, \cite{tor1}; nel Ducato di Savoia la misura in once al piede +quadrato \`e quasi uguale, perch\'e col\`a usano un piede molto +grande, che \`e simile al nostro cubito. +\end{interlinea} + +\subsection{Forma del barometro} +Il barometro consta di un tubo di vetro chiuso ad una estremit\`a e +ripieno di mercurio, capovolto su di un vaso anch'esso ripieno di +mercurio; mediante un'asta graduata si pu\`o misurare la distanza fra +il menisco del mercurio dentro il tubo e la superficie del mercurio +dentro il vaso; tale distanza \`e normalmente di 10 pollici toscani, +\cite{tor1,tor2}, ma la misura pu\`o variare se si usano dei pollici +diversi; \`e noto infatti che gl'huomini sogliono avere mani di +diverse grandezze, talch\'e anche li pollici non sono egualmente +lunghi. +\section{Del mercurio} +Il mercurio \`e un a sostanza che si presenta come un liquido, ma ha il colore +del metallo. Esso \`e pesantissimo, tanto che un bicchiere, che se fosse pieno +d'acqua, sarebbe assai leggiero, quando invece fosse ripieno di mercurio, +sarebbe tanto pesante che con entrambe le mani esso necessiterebbe di essere +levato in suso. + +Esso mercurio non trovasi in natura nello stato nel quale \`e d'uopo che sia +per la costruzione dei barometri, almeno non trovasi cos\`i abbondante come +sarebbe necessario. + +\setcounter{footnote}{25} + +Il Monte Amiata, che \`e locato nel territorio del Ducato% +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% +\ifclassica\NoteWhiteLine\fi +} del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, \`e uno dei +luoghi della terra dove pu\`o rinvenirsi in gran copia un sale rosso, che +nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio +nella forma e nella consistenza che occorre per la costruzione del barometro +terrestre% +\ifclassica +\nota{Nota senza numero\dots + +\dots e che va a capo. +}\fi. + + +La densit\`a del mercurio \`e molto alta e varia con la temperatura come +pu\`o desumersi dalla tabella \ref{t:1}. + + +Il mercurio gode della sorprendente qualit\`a et propriet\`a, cio\`e che esso +diventa tanto solido da potersene fare una testa di martello et infiggere +chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{rrrrrr} % parametri di incolonnamento +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella +\multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare +& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole + &\unit{\gradi C} & & & $\unit{t/m^3}$ & \\ +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % + & 10 & & & 13,6 & \\ % a destra; le colonne vuote + & 50 & & & 13,5 & \\ % servono per centrare le colonne + &100 & & & 13,3 & \\ % numeriche sotto le intestazioni +\hline \hline % Filetti di fine tabella +\end{tabular} +\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si pu\`o fare molto meglio usando il pacchetto \textsf{booktabs}.} \label{t:1} % didascalia con label +\end{table} + +%\selectlanguage{italian} + +\begin{osservazione}\normalfont +Questa propriet\`a si manifesta quando esso \`e estremamente freddo, come +quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri +siciliani per confetionare li sorbetti, dei quali sono insuperabili artisti. +\end{osservazione} + +Per nostra fortuna, questo grande freddo, che necessita per la confetione de +li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del +Granduca Eccellentissimo, sicch\'e non vi ha tema che il barometro di mercurio +possa essere ruinato dal grande gelo e non indichi la pressione giusta, come +invece deve sempre fare uno strumento di misura, quale \`e quello che \`e +descritto cost\`i.\cite{duane1964} + + +\appendix + +\begin{thebibliography}{9} +\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio, + Venetia, 1612. +\bibitem{tor1} E.~Torricelli, in ``La pressione barometrica'', {\em Strumenti + Moderni}, Il Porcellino, Firenze, 1606. +\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo + Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31. +\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability + Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964 +\end{thebibliography} + + + +\chapter{Il listato del pacchetto \texttt{topcoman.sty}} +\listing{topcoman.sty} + + + + + +\end{document} + +% altri riferimenti da usare come esempi. + +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione + nel progetto dei sistemi}, CLUT, gennaio 2008 +\bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System + Technological Level Improvement Effect on UAV MALE} +\bibitem{bigliano2010} Bigliano M., \emph{Sicurezza nell'installazione di un velivolo + senza pilota MALE; applicazione di metodologia di Zonal Safety + Analysis al velivolo del Progetto SAvE}, Politecnico di Torino, + maggio 2010 +\bibitem{astrid2012} Chiesa S., Di Meo G.A., Fioriti M., Medici G., Viola N., + \emph{ASTRID - Aircraft on board Systems sizing and TRade-off + analysis in Initial Design}, Research Bulletin, Warsaw University + of Technology, Institute of Aeronautics and Applied Mechanics, + p. 1-28, 17-19, ottobre 2012 diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.pdf Binary files differnew file mode 100644 index 00000000000..750965e6aa5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.tex new file mode 100644 index 00000000000..13b977e5d39 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example-triennale.tex @@ -0,0 +1,460 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex + +%%%%%%% La riga soprastante serve per configurare gli editor TeXShop, TeXWorks +%%%%%%% e TeXstudio per gestire questo file con la codifica IsoLatin o Latin 1 +%%%%%%% o ISO 8859-1. Se si vuole usare un'altra codifica si veda sotto. +%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Esempio con molte opzioni + \documentclass[% + corpo=11.5pt, + twoside, + evenboxes, +% tipotesi=monografia,% equivalent to tipotesi=triennale + tipotesi=triennale,% prefer this option to the previous one + stile=classica, + oldstyle, + autoretitolo, + greek, +]{toptesi} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\usepackage[utf8]{inputenc}% si può scegliere anche latin1, ma lo si sconsiglia fortemente +\usepackage[T1]{fontenc} +\usepackage{lmodern} + +% Vedere la documentazione italiana o inglese di TOPtesi +% per le attenzioni che bisogna usare al fine di ottenere +% un file veramente conforme alle norme per l'archiviabilità. + + +\usepackage{hyperref} + +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} + } +% +%%%%%%% Esempio di composizione di tesi di laurea con PDFLATEX <---------------- ! +% +% +% Per scrivere testo fasullo in "latinorum" +\usepackage{lipsum} +% + +%%%%%%% Definizioni locali +\newtheorem{osservazione}{Osservazione}% Standard LaTeX + + +\begin{document}\errorcontextlines=9 + +%\ateneo{Universit\`a degli Studi di Marconia} +%% +%%%%%%%%%%%%%%%%%%%%%% +%% +%% Non tutte le università hanno un nome proprio +%\nomeateneo{Sede di Torre Elettra} +%% +%%\StrutturaDi{Facoltà di }% lo spazio finale correttamente sparisce +%\struttura[III]{Matematica, Fisica\\e Scienze Naturali} +%%\Materia{Remote sensing} +%%\monografia{La pressione barometrica di Giove}% per la laurea triennale +%\titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato +%\sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato +%% +%%%%%%%% Corso degli studi +%\NomeCorsoDiStudi{Laurea triennale in} +%\corsodistudi{Astronomia Applicata}% per la laurea +%%\corsodidottorato{Meccanica}% per il dottorato +% +%%%%%%%% Per inserire la matricola rientrato sotto il nome di ogni candidato. +%\renewcommand*\IDN{\\\quad matricola: } +%% +%\candidato{Galileo \textsc{Galilei}\IDN 123456}% per tutti i percorsi +%\secondocandidato{Evangelista \textsc{Torricelli}\IDN 123457}% per la laurea magistrale solamente +% +%%%%%%%% Relatori o supervisori +%% +%%\AdvisorName{Supervisors}% esempio per l'inglese +%%\direttore{prof. Albert Einstein}% per il dottorato +%%\coordinatore{prof. Albert Einstein}% per il dottorato +% \relatore{prof.~Albert Einstein}% per la laurea e/o il dottorato +% \secondorelatore{dipl.~ing.~Werner von Braun} +% \terzorelatore{\tabular[t]{@{}l} +% Mario Rossi\\[0.5ex] +% Piero Negri +% \endtabular}% per la laurea magistrale +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alternativa senza opzione classica +%% \AdvisorName{Relatore} +%% \relatore{prof.~Giovanni Bianchi} +%% \secondorelatore{\tabular{@{}l}% +%% \bfseries Correlatori\\[0.5ex] +%% ing.~Lucio Verdi\\[0.5ex] +%% dott.~Mario Rossi\\[0.5ex] +%% dott.~Piero Neri +%% \endtabular} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alternativa con 4 relatori senza +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% indicazione dei correlatori e senza +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% opzione classica +%% \relatore{prof.~Giovanni Bianchi} +%% \secondorelatore{ing.~Lucio Verdi} +%% \terzorelatore{\tabular{@{}l} +%% dott.~Mario Rossi\\[0.5ex] +%% dott.~Piero Neri +%% \endtabular} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Altro trucco per mettere il correlatore +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% senza usare l'opzione classica +%%\relatore{\tabular{@{}l@{}} +%%prof.\ Albert Enstein\\[1.5ex] +%%\textbf{Correlatore:}\\ +%%dipl.~ing.~Werner von Braun +%%\endtabular} +%%%%%%%%%%% +%% +%%%%%%%%%%% Trucco per scrivere anche un quarto relatore +%%\terzorelatore{{\tabular{@{}l}dott.\ Neil Armstrong\\prof. Maria Rossi\endtabular}} +% +%%%%%%%% Tutore +%%\tutore{ing.~Karl Von Braun}% per il dottorato +%\tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} +%\NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} +% +%%%%%%%% Seduta dell'esame +%%\sedutadilaurea{Agosto 1615}% per la laurea quinquennale; oppure: +%\sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale +%%\esamedidottorato{Novembre 1610}% per il dottorato +%%\annoaccademico{1615-1616}% solo con l'opzione classica +%%\annoaccademico{2006-2007}% idem +%\ciclodidottorato{XV}% solo per il dottorato +% +%%%%%%%% Logo della sede +%\logosede{logodue}% questo e' ovviamente facoltativo, ma e' richiesto per +%% il dottorato al PoliTO; in questo caso si usa il "logopolito", il nome senza +%% estensione del file che contiene in forma grafica il logo. +%% +%%%%%%%% Per cambiare l'offset per la rilegatura; meno offset c'e', meglio e' +%%\setbindingcorrection{3mm} +% + +%\english% di default e' in vigore \italiano + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%% Change the strings if you want a title page and a copyright page +%%%%%%% in another language +%%%%%%% Comment just the \iflanguage statement and the closing line of the language test +%%%%%%% if you want to make a global change instead of a conditional one. +%%%%%%% Comment the following indented lines if you don't care about the title page +%%%%%%% in English +%\iflanguage{english}{% +% \retrofrontespizio{This work is subject to the Creative Commons Licence} +% \DottoratoIn{PhD Course in\space} +% \CorsoDiLaureaIn{Master degree course in\space} +% \NomeMonografia{Bachelor Degree Final Work} +% \TesiDiLaurea{Master Degree Thesis} +% \NomeDissertazione{PhD Dissertation} +% \InName{in} +% \CandidateName{Candidates}% or Candidate +% \AdvisorName{Supervisors}% or Supervisor +% \TutorName{Tutor} +% \NomeTutoreAziendale{Internship Tutor} +% \CycleName{cycle} +% \NomePrimoTomo{First volume} +% \NomeSecondoTomo{Second Volume} +% \NomeTerzoTomo{Third Volume} +% \NomeQuartoTomo{Fourth Volume} +% \logosede{logouno,logodue}% or comma separated list of logos +%}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%% Questo test è usato appunto per collaudare diversi stili, +%%%%%%% non per comporre una vera tesi. +%%%%%%% Non usarlo mai, solo perché qui è usato! +% +\begin{ThesisTitlePage} + \ateneo{Universit\`a degli Studi di Marconia} + \nomeateneo{Sede di Torre Elettra} + \StrutturaDi{Dipartimento di } + \struttura[III]{Matematica, Fisica e~Scienze Naturali} + \NomeElaborato{Tesi di laurea triennale} + \titolo{La pressione barometrica di~Giove} + \sottotitolo{Metodo dei satelliti medicei} + \corsodistudi{Astronomia Applicata} + \candidato{Galileo \textsc{Galilei}} + %\TitoloListaCandidati{} + %\candidato{Galileo \textsc{Galilei}}[123456] + %\candidata{Maria \textsc{Rossi}} + %\secondacandidata{Giovanna \textsc{Bianchi}} + %\terzocandidato{Evangelista \textsc{Torricelli}} + \relatore{prof.~Albert \textsc{Einstein}} + \secondorelatore{dipl.~ing.~Werner \textsc{von Braun}} + \tutoreaziendale{dott.\ ing.\ Giovanni \textsc{Giacosa}} + \NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} + \sedutadilaurea{\textsc{Anno~accademico} 1615-1616} + \logosede{logotre} + \retrofrontespizio{\luogo{Marconia}\giorno{}\parindent=0pt + Questo lavoro è soggetto alla Creative Commons Licence.\medskip + + Dichiaro sotto la mia personale responsabilità di avere + rispettato tutte le leggi relative alla proprietà intellettuale + e di copyright di tutti i brani citati.} + +\end{ThesisTitlePage} + +%\ifbool{classica}% +%{ \begin{dedica} +% A mio padre +% +% \textdagger\ A mio nonno Pino +% \end{dedica} +%}{} +%%%%%%% Fine esperimento + +\sommario + +La pressione barometrica di Giove viene misurata +mediante un metodo originale messo a punto dai candidati, che si basa +sul rilevamento telescopico della pressione. + +% \paginavuota + +\ringraziamenti + +I candidati ringraziano vivamente il Granduca di Toscana per i mezzi +messi loro a disposizione, ed il signor Von Braun, assistente del +prof.~Albert Einstein, per le informazioni riservate che egli ha +gentilmente fornito loro, e per le utili discussioni che hanno permesso +ai candidati di evitare di riscoprire l'acqua calda. + +\tablespagetrue\figurespagetrue % normalmente questa riga non serve ed e' commentata +\indici + +%%%%%%%% Altro esperimento con l'opzione classica +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. +%%%%%%%% Commentare fra \ifclassica fino a \fi compresi. +\ifclassica +\begin{citazioni} + \textit{testo testo testo\\testo testo testo} + + [\textsc{G.\ Leopardi}, Operette Morali] + + \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} + + [\textsc{Eraclito}, fr.\ D-K 134] + \end{citazioni} + +\fi +%%%%%%%% fine esperimento +\mainmatter + +\part{Prima Parte} +\chapter{Introduzione generale} + +\section{Principi generali} +Il problema della determinazione della pressione barometrica dell'atmosfera di +Giove non ha ricevuto finora una soluzione soddisfacente, per l'elementare +motivo che il pianeta suddetto si trova ad una distanza tale che i mezzi attuali +non consentono di eseguire una misura diretta. + +Conoscendo per\`o con grande precisione le orbite dei satelliti principali di +Giove, e segnatamente le orbite dei satelliti medicei, \`e possibile eseguire +delle misure indirette, che fanno ricorso alla nota formula \cite{gal}: +\[ +\Phi = K\frac{\Xi^2 +\Psi\ped{max}}{1+\gei\Omega} +\] +dove le varie grandezze hanno i seguenti significati: +\begin{enumerate} +\item +$\Phi$ angolo di rivoluzione del satellite in radianti se $K=1$, in gradi se +$K=180/\pi$; +\item +$\Xi$ eccentricit\`a dell'orbita del satellite; questa \`e una grandezza priva +di dimensioni; +\item +$\Psi\ped{max}$ rapporto fra il semiasse maggiore ed il semiasse minore +dell'orbita del satellite, nelle condizioni di massima eccentricit\`a; +poich\'e le dimensioni di ciascun semiasse sono $[l]=\unit{km}$, la grandezza +$\Psi\ped{max}$ {\`e} adimensionata; +\item +$\Omega$ velocit\`a istantanea di rotazione; si ricorda che \`e $[\Omega]=% +\unit{rad}\unit{s}^{-1}$; +\item bisogna ancora ricordarsi che $10^{-6}\unit{m}$ equivalgono a 1\unit{\micro m}. +\end{enumerate} +% + +Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. +\begin{figure}[ht]\centering +\setlength{\unitlength}{0.01\textwidth} +\begin{picture}(40,30)(30,0) +\put(50,15){\circle{20}} +\put(47,15){\circle*{1}} +\put(30,0){\line(0,1){30}} +\put(30,30){\line(1,0){40}} +\put(70,30){\line(0,-1){30}} +\put(70,0){\line(-1,0){40}} +\end{picture} +\caption{Orbita del generico satellite; si noti l'eccentricit\`a dell'orbita rispetto al pianeta.\label{fig1}} +\end{figure} + +Per misurare le grandezze che compaiono in questa formula \`e necessario +ricorrere ad un pirometro con una resistenza di 120\unit{M\ohm}, altrimenti gli +errori di misura sono troppo grandi, ed i risultati completamente falsati. + +\section{I satelliti medicei} +I satelliti medicei, come noto, sono quattro ed hanno dei periodi di rivoluzione +attorno al pianeta Giove che vanno dai sette giorni alle tre settimane. + +Essi furono per la prima volta osservati da uno dei candidati mentre +sperimentava l'efficacia del tubo occhiale che aveva appena inventato +rielaborando una idea sentita di seconda mano da un viaggiatore appena arrivato +dai Paesi Bassi. + +%\blankpagestyle{headings} + +%\lipsum[1-2] + + + +\chapter{Il barometro} +\section{Generalit\`a} +\begin{interlinea}{0.87} Il barometro, come dice il nome, serve per +misurare la pesantezza; pi\`u precisamente la pesantezza dell'aria +riferita all'unit\`a di superficie. +\end{interlinea} + +\begin{interlinea}{2} Studiando il fenomeno fisico si pu\`o concludere +che in un dato punto grava il peso della colonna d'aria che lo +sovrasta, e che tale colonna \`e tanto pi\`u grave quanto maggiore +\`e la superficie della sua base; il rapporto fra il peso e la base +della colonna si chiama pressione e si misura in once toscane al cubito +quadrato, \cite{tor1}; nel Ducato di Savoia la misura in once al piede +quadrato \`e quasi uguale, perch\'e col\`a usano un piede molto +grande, che \`e simile al nostro cubito. +\end{interlinea} + +\subsection{Forma del barometro} +Il barometro consta di un tubo di vetro chiuso ad una estremit\`a e +ripieno di mercurio, capovolto su di un vaso anch'esso ripieno di +mercurio; mediante un'asta graduata si pu\`o misurare la distanza fra +il menisco del mercurio dentro il tubo e la superficie del mercurio +dentro il vaso; tale distanza \`e normalmente di 10 pollici toscani, +\cite{tor1,tor2}, ma la misura pu\`o variare se si usano dei pollici +diversi; \`e noto infatti che gl'huomini sogliono avere mani di +diverse grandezze, talch\'e anche li pollici non sono egualmente +lunghi. +\section{Del mercurio} +Il mercurio \`e un a sostanza che si presenta come un liquido, ma ha il colore +del metallo. Esso \`e pesantissimo, tanto che un bicchiere, che se fosse pieno +d'acqua, sarebbe assai leggiero, quando invece fosse ripieno di mercurio, +sarebbe tanto pesante che con entrambe le mani esso necessiterebbe di essere +levato in suso. + +Esso mercurio non trovasi in natura nello stato nel quale \`e d'uopo che sia +per la costruzione dei barometri, almeno non trovasi cos\`i abbondante come +sarebbe necessario. + +\setcounter{footnote}{25} + +Il Monte Amiata, che \`e locato nel territorio del Ducato% +\footnote{Naturalmente stiamo parlando del Granducato di Toscana.% +\ifclassica\NoteWhiteLine\fi +} del nostro Eccellentissimo et Illustrissimo Signore Granduca di Toscana\footnote{Cosimo IV de' Medici.}, \`e uno dei +luoghi della terra dove pu\`o rinvenirsi in gran copia un sale rosso, che +nomasi \emph{cinabro}, dal quale con artifizi alchemici, si estrae il mercurio +nella forma e nella consistenza che occorre per la costruzione del barometro +terrestre% +\ifclassica +\nota{Nota senza numero\dots + +\dots e che va a capo. +}\fi. + + +La densit\`a del mercurio \`e molto alta e varia con la temperatura come +pu\`o desumersi dalla tabella \ref{t:1}. + + +Il mercurio gode della sorprendente qualit\`a et propriet\`a, cio\`e che esso +diventa tanto solido da potersene fare una testa di martello et infiggere +chiodi aguzzi nel legname. +\begin{table}[htp] % crea un floating body col nome Tabella nella + % didascalia +\centering % comando necessario per centrare la tabella +\begin{tabular}% % inizio vero e proprio della tabella +{rrrrrr} % parametri di incolonnamento +\hline\hline % filetti orizzontali sopra la tabella + % intestazione della tabella +\multicolumn{3}{c}{\rule{0pt}{2.5ex}Temperatura} % \rule serve per lasciare +& \multicolumn{3}{c}{Densit\`a} \\ % un po' di spazio sopra le parole + &\unit{\gradi C} & & & $\unit{t/m^3}$ & \\ +\hline% % Filetto orizzontale per separare l'intestazione +\hspace*{1.3em}& 0 & & & 13,8 & \\ % I numeri sono incolonnati % + & 10 & & & 13,6 & \\ % a destra; le colonne vuote + & 50 & & & 13,5 & \\ % servono per centrare le colonne + &100 & & & 13,3 & \\ % numeriche sotto le intestazioni +\hline \hline % Filetti di fine tabella +\end{tabular} +\caption[Densit\`a del mercurio]{Densit\`a del mercurio. Si pu\`o fare molto meglio usando il pacchetto \textsf{booktabs}.} \label{t:1} % didascalia con label +\end{table} + +%\selectlanguage{italian} + +\begin{osservazione}\normalfont +Questa propriet\`a si manifesta quando esso \`e estremamente freddo, come +quando lo si immerge nella salamoia di sale e ghiaccio che usano li maestri +siciliani per confetionare li sorbetti, dei quali sono insuperabili artisti. +\end{osservazione} + +Per nostra fortuna, questo grande freddo, che necessita per la confetione de +li sorbetti, molto raramente, se non mai, viene a formarsi nelle terre del +Granduca Eccellentissimo, sicch\'e non vi ha tema che il barometro di mercurio +possa essere ruinato dal grande gelo e non indichi la pressione giusta, come +invece deve sempre fare uno strumento di misura, quale \`e quello che \`e +descritto cost\`i.\cite{duane1964} + +\appendix + +\chapter{Il listato del pacchetto \texttt{topcoman.sty}} +\listing{topcoman.sty} + + +\begin{thebibliography}{9} +\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio, + Venetia, 1612. +\bibitem{tor1} E.~Torricelli, in ``La pressione barometrica'', {\em Strumenti + Moderni}, Il Porcellino, Firenze, 1606. +\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo + Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31. +\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability + Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964 +\end{thebibliography} + + + + +\end{document} + +% altri riferimenti da usare come esempi. + +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione + nel progetto dei sistemi}, CLUT, gennaio 2008 +\bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System + Technological Level Improvement Effect on UAV MALE} +\bibitem{bigliano2010} Bigliano M., \emph{Sicurezza nell'installazione di un velivolo + senza pilota MALE; applicazione di metodologia di Zonal Safety + Analysis al velivolo del Progetto SAvE}, Politecnico di Torino, + maggio 2010 +\bibitem{astrid2012} Chiesa S., Di Meo G.A., Fioriti M., Medici G., Viola N., + \emph{ASTRID - Aircraft on board Systems sizing and TRade-off + analysis in Initial Design}, Research Bulletin, Warsaw University + of Technology, Institute of Aeronautics and Applied Mechanics, + p. 1-28, 17-19, ottobre 2012 diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example.cfg b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.cfg new file mode 100644 index 00000000000..82b7f29b513 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.cfg @@ -0,0 +1,92 @@ +%% +%% This is file `toptesi.cfg', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topcfg') +%% ______________________________________________________ +%% The TOPtesi package +%% Copyright (C) 2013 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +%% \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 \~} +%% +%%================================================================ +%% This file is the only file of the TOPtesi bundle that the user +%% can modify without restrictions in order to customize 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. +%% A better use of this file consists into copying it to another +%% file to be named as the thesis main file and with extension +%% .cfg; This bundle will try to read "\jobname.cfg"; if this file +%% does not exist, it looks for toptesi.cfg and if this further +%% does not exist, it does nothing. This means that the provided +%% file toptesi.cfg is to be used preferably as a model, not to +%% be used directly. +%%================================================================ +%% +\ateneo{}% Nessun nome di default +\facolta{}% nessun nome di default +\FacoltaDi{}% non viene scritta nessuna indicazione per la facoltà +%%\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} +%%\retrofrontespizio{Questo lavoro è soggetto alla Creative Commons Licence} +%% +%% Copyright 2005-2012 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% and the derived files: +%% +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi.cfg, and the English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-doc-xetex.tex and the derived file +%% toptesi-doc-xetex.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their frontpages. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be freely edited and modified. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty and cfg files and the English documentation file in +%% pdf format. +%% +%% The documentation file toptesi-doc-xetex.pdf is in Italian; +%% its source file is another example of how to use toptesi. +%% +%% End of file `toptesi.cfg'. diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.pdf Binary files differindex 9d3156bac78..5cd576310c4 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-example.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.tex index 4c15cdee40d..da7bce1e272 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-example.tex +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-example.tex @@ -1,27 +1,55 @@ +% !TEX encoding = UTF-8 Unicode % !TEX TS-program = pdflatex -% !TEX encoding = IsoLatin -%%%%%%% La riga soprastante serve per configurare gli editor TeXShop, TeXWorks -%%%%%%% e TeXstudio per gestire questo file con la codifica IsoLatin o Latin 1 -%%%%%%% o ISO 8859-1. Se si vuole usare un'altra codifica si veda sotto. +%%%%%%% La riga soprastante serve per configurare gli editor +%%%%%%% TeXShop, TeXWorks e TeXstudio per gestire questo file +%%%%%%% con la codifica UFF-8. +%%%%%%% Se si vuole usare un'altra codifica si veda sotto. %%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Esempio con molte opzioni - \documentclass[11pt,twoside,oldstyle,autoretitolo,classica,greek]{toptesi} +%%%%%%% Esempio con molte opzioni +%%%%%%% Le opzioni nella forma "chiave=valore" sono definite +%%%%%%% perché la classe dalla versione 6.1.00 usa il pacchetto +%%%%%%% xkeyval. Vedere sulla documentazione in inglese o +%%%%%%% in italiano quali opzioni accettano un valore, e quali +%%%%%%% opzioni accettano delle scelte. + +%%%%%%% L'opzione per il corpo accetta qualsiasi valore, anche fratto +%%%%%%% (per esempio: corpo=11.5pt) e va sempre scritto con una +%%%%%%% unità di misura fra quelle che vengono riconosciute dal +%%%%%%% sistema TeX. L'utente è pregato di non esagerare con +%%%%%%% corpi normali minori di 10pt o maggiori di 12pt. +%%%%%%% +%%%%%%% Le opzioni inputencoding e fontencoding vanno per prime, +%%%%%%% comunque prima dell'opzione corpo. Vengono ignorate se +%%%%%%% NON si compone con pdfLaTeX. Ma questo è un esempio per +%%%%%%% pdfLaTeX. +%%%%%%% Qui per i font si è indicata anche la codifica LGR per +%%%%%%% il greco, ma non sarebbe necessario, visto che dopo c'è +%%%%%%% l'opzione greek; lo si è fatto per mostrare che se si +%%%%%%% usano più valori essi vanno separati da virgole e +%%%%%%% racchiusi fra graffe. +%%%%%%% + \documentclass[% + corpo=13pt, + twoside, +% stile=classica, + oldstyle, + autoretitolo, + greek, + evenboxes, +% tipotesi, +]{toptesi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage[latin1]{inputenc}% per macchine Linux/Mac/UNIX/Windows; sarebbe meglio utf8 -\usepackage[T1]{fontenc}\usepackage{lmodern} - -% Vedere la documentazione italiana o inglese di TOPtesi per le attenzioni -% che bisogna usare al fine di ottenere un file veramente conforme alle norme -% per l'archiviabilita'. +\usepackage[utf8]{inputenc}% si può scegliere anche latin1, ma lo si sconsiglia fortemente +\usepackage[T1]{fontenc} +\usepackage{lmodern} -% Questo file composto correttamente con il pacchetto pdfx, risulta conforme -% alle norme PDF/A-b. In altre circostanze, con diversi file immessi, non sempre -% si ottine la conformit. +% Vedere la documentazione italiana o inglese di TOPtesi per le +% attenzioni che bisogna usare al fine di ottenere un file +% veramente conforme alle norme per l'archiviabilità. -\usepackage[a-1b]{pdfx} % per generare un file conforme alla norma PDF/A-1b \usepackage{hyperref} @@ -35,7 +63,7 @@ urlcolor={blue} } % -%%%%%%% Esempio di composizione di tesi di laurea con PDFLATEX <---------------- ! +%%%%%%% Esempio di composizione di tesi di laurea con PDFLATEX % % % Per scrivere testo fasullo in "latinorum" @@ -47,18 +75,22 @@ \begin{document} +%%%%%%% Questi comandi è meglio metterli dentro l'ambiente +%%%%%%% frontespizio o frontespizio*, oppure in un file di +%%%%%%% configurazione personale. Si veda la documentazione +%%%%%%% inglese o italiana. +%%%%%%% Comunque i presenti comandi servono per comporre la +%%%%%%% tesi con i moduli di estensione standard del pacchetto +%%%%%%% TOPtesi. \ateneo{Universit\`a degli Studi di Marconia} % -%%%%%%%%%%%%%%%%%%%%% -% -% Non tutte le universit hanno un nome proprio +% Non tutte le università hanno un nome proprio \nomeateneo{Sede di Torre Elettra} % -\FacoltaDi{} +%\FacoltaDi{Facoltà di }% lo spazio finale correttamente sparisce \facolta[III]{Matematica, Fisica\\e Scienze Naturali} %\Materia{Remote sensing} -%\monografia{La pressione barometrica di Giove}% per la laurea triennale \titolo{La pressione barometrica di~Giove}% per la laurea quinquennale e il dottorato \sottotitolo{Metodo dei satelliti medicei}% per la laurea quinquennale e il dottorato % @@ -66,21 +98,51 @@ \corsodilaurea{Astronomia Applicata}% per la laurea %\corsodidottorato{Meccanica}% per il dottorato -%%%%%%% Per inserire la matricola rientrato sotto il nome di ogni candidato. -\renewcommand*\IDN{\\\quad matricola: } +%%%%%%% Per inserire la matricola rientrato sotto il nome di ogni +%%%%%%% candidato. Questo comando non è predefinito secondo lo +%%%%%%% standard; lo è, magari con un nome leggermente diverso +%%%%%%% (per esempio \ID) e/o una sintassi diversa con i moduli +%%%%%%% di estensione per titpi di tesi particolari. +\renewcommand*\IDlabel{\\\quad matricola: } % -\candidato{Galileo \textsc{Galilei}\IDN 123456}% per tutti i percorsi -\secondocandidato{Evangelista \textsc{Torricelli}\IDN 123457}% per la laurea magistrale solamente +\candidato{Galileo \textsc{Galilei}}[123456]% per tutti i percorsi +\secondocandidato{Evangelista \textsc{Torricelli}}[123457]% per la laurea magistrale solamente %%%%%%% Relatori o supervisori +\relatore{prof.~Albert Einstein} +\secondorelatore{dipl.~ing.~Werner von Braun} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Per mettere 4 relatori con classica %\AdvisorName{Supervisors}% esempio per l'inglese %\direttore{prof. Albert Einstein}% per il dottorato %\coordinatore{prof. Albert Einstein}% per il dottorato -\relatore{prof.\ Albert Einstein}% per la laurea e/o il dottorato -\secondorelatore{dipl.~ing.~Werner von Braun}% per la laurea magistrale - -%%%%%%%%%% Trucco per mettere il correlatore senza usare l'opzione classica +% \relatore{prof.~Albert Einstein}% per la laurea e/o il dottorato +% \secondorelatore{dipl.~ing.~Werner von Braun} +% \terzorelatore{\tabular[t]{@{}l} +% Mario Rossi\\[0.5ex] +% Piero Negri +% \endtabular}% per la laurea magistrale +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alternativa senza opzione classica +% \AdvisorName{Relatore} +% \relatore{prof.~Giovanni Bianchi} +% \secondorelatore{\tabular{@{}l}% +% \bfseries Correlatori\\[0.5ex] +% ing.~Lucio Verdi\\[0.5ex] +% dott.~Mario Rossi\\[0.5ex] +% dott.~Piero Neri +% \endtabular} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Alternativa con 4 relatori senza +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% indicazione dei correlatori e senza +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% opzione classica +% \relatore{prof.~Giovanni Bianchi} +% \secondorelatore{ing.~Lucio Verdi} +% \terzorelatore{\tabular{@{}l} +% dott.~Mario Rossi\\[0.5ex] +% dott.~Piero Neri +% \endtabular} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Altro trucco per mettere il correlatore +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% senza usare l'opzione classica %\relatore{\tabular{@{}l@{}} %prof.\ Albert Enstein\\[1.5ex] %\textbf{Correlatore:}\\ @@ -97,7 +159,8 @@ \NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT} %%%%%%% Seduta dell'esame -%\sedutadilaurea{Agosto 1615}% per la laurea quinquennale; oppure: +%\sedutadilaurea{Agosto 1615}% per la laurea quinquennale (obsoleta); +%%%%%%% oppure: \sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale %\esamedidottorato{Novembre 1610}% per il dottorato %\annoaccademico{1615-1616}% solo con l'opzione classica @@ -105,23 +168,28 @@ \ciclodidottorato{XV}% solo per il dottorato %%%%%%% Logo della sede -\logosede{logodue}% questo e' ovviamente facoltativo, ma e' richiesto per -% il dottorato al PoliTO; in questo caso si usa il "logopolito", il nome senza -% estensione del file che contiene in forma grafica il logo. +\logosede{logodue}% questo e' ovviamente facoltativo, ma e' +% richiesto per il dottorato al PoliTO. +% In questo esempio si usa un logo fasullo, e si specifica +% il nome senza estensione del file che contiene in forma +% grafica il logo. % -%%%%%%% Per cambiare l'offset per la rilegatura; meno offset c'e', meglio e' + +%%%%%%% Per cambiare l'offset per la rilegatura; meno offset +%%%%%%% c'e', meglio e' %\setbindingcorrection{3mm} %\english% di default e' in vigore \italiano %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%% Change the strings if you want a title page and a copyright page -%%%%%%% in another language -%%%%%%% Comment just the \iflanguage statement and the closing line of the language test -%%%%%%% if you want to make a global change instead of a conditional one. -%%%%%%% Comment the following indented lines if you don't care about the title page -%%%%%%% in English +%%%%%%% Change the strings if you want a title page and a +%%%%%%% copyright page in another language +%%%%%%% Comment just the \iflanguage statement and the +%%%%%%% closing line of the language test if you want to +%%%%%%% make a global change instead of a conditional one. +%%%%%%% Comment the following indented lines if you don't +%%%%%%% care about the title page in English \iflanguage{english}{% \retrofrontespizio{This work is subject to the Creative Commons Licence} \DottoratoIn{PhD Course in\space} @@ -143,8 +211,9 @@ }{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%% Questo test usato appunto per collaudare diversi stili, non per comporre -%%%%%%% una vera tesi. Non usarlo mai, solo perch qui usato! +%%%%%%% Questo test è usato appunto per collaudare diversi stili, +%%%%%%% non per comporre una vera tesi. +%%%%%%% Non usarlo mai, solo perché qui è usato! \ifbool{classica}% {\tomo \paginavuota @@ -154,7 +223,7 @@ \textdagger\ A mio nonno Pino \end{dedica} }{% - \frontespizio + \frontespizio % sarebbe meglio usare l'ambiente } %%%%%%% Fine esperimento @@ -178,14 +247,14 @@ ai candidati di evitare di riscoprire l'acqua calda. \indici %%%%%%%% Altro esperimento con l'opzione classica -%%%%%%%% Non usare mai anche se qui lo si fatto! -%%%%%%%% Oltretutto funziona solo se si specificata la lingua greca fra le opzioni. +%%%%%%%% Non usare mai anche se qui lo si è fatto! +%%%%%%%% Oltretutto funziona solo se si è specificata la lingua greca fra le opzioni. %%%%%%%% Commentare fra \ifclassica fino a \fi compresi. \ifclassica \begin{citazioni} \textit{testo testo testo\\testo testo testo} - [\textsc{G.\ Leopardi}, Operette Morali] + [\textsc{G.\ Leopardi}, Operette Morali]\vspace{1em} \textgreek{>all'a p'anta <o k'eraunos d'' >oiak'izei} @@ -231,7 +300,7 @@ $\Omega$ velocit\`a istantanea di rotazione; si ricorda che \`e $[\Omega]=% \end{enumerate} % -Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. +Le grandezze in gioco sono evidenziate nella figura \ref{fig:orbita}. \begin{figure}[ht]\centering \setlength{\unitlength}{0.01\textwidth} \begin{picture}(40,30)(30,0) @@ -242,7 +311,7 @@ Le grandezze in gioco sono evidenziate nella figura \ref{fig1}. \put(70,30){\line(0,-1){30}} \put(70,0){\line(-1,0){40}} \end{picture} -\caption{Orbita del generico satellite; si noti l'eccentricit\`a dell'orbita rispetto al pianeta.\label{fig1}} +\caption{Orbita del generico satellite; si noti l'eccentricit\`a dell'orbita rispetto al pianeta.}\label{fig:orbita} \end{figure} Per misurare le grandezze che compaiono in questa formula \`e necessario @@ -383,7 +452,7 @@ descritto cost\`i.\cite{duane1964} % altri riferimenti da usare come esempi. -\bibitem{chiesa2008} Chiesa S., \emph{Affidabilit, sicurezza e manutenzione +\bibitem{chiesa2008} Chiesa S., \emph{Affidabilità, sicurezza e manutenzione nel progetto dei sistemi}, CLUT, gennaio 2008 \bibitem{chiesa2}Chiesa S., Fioriti M., Fusaro R., \emph{On Board System Technological Level Improvement Effect on UAV MALE} diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-it.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi-it.pdf Binary files differindex ef7fe0898d1..35cc74c5816 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-it.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-it.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-it.tex b/Master/texmf-dist/doc/latex/toptesi/toptesi-it.tex index 5dca58758ff..aeab209ca0c 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi-it.tex +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-it.tex @@ -2,7 +2,7 @@ % !TEX TS-program = LuaLaTeX % % toptesi-it.tex -%% Copyright 2013-2016 Claudio Beccari +%% Copyright 2013-2017 Claudio Beccari % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -32,84 +32,130 @@ XeLaTeX\sep LuaLaTeX} \end{filecontents*} % -\documentclass[12pt,twoside]{toptesi} -\ProvidesFile{toptesi-it.tex}[2016/11/10 v.0.9.15] +\documentclass[% + corpo=12pt,% + tipotesi=monografia,% + twoside,% +% numerazioneromana,% +% libro% +]{toptesi}\errorcontextlines=9 +\ProvidesFile{toptesi-it.tex}[2017/10/16 v.0.9.25] +%%% Il pacchetto imakeidx va caricato prima di pdfx, +%%% altrimenti non funziona bene +\usepackage{imakeidx}% Vedi documentazione +\indexsetup{headers={\indexname}{\indexname}} + +\unless\ifXeTeX + \usepackage[a-1b]{pdfx}% vedi documentazione +\fi \ifPDFTeX -% - \usepackage[a-1b]{pdfx} -% \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{newtxtext,newtxmath,textcomp,textalpha} \usepackage{amsmath,amssymb} - \usepackage{mflogo} - \usepackage{guit} \setactivedoublequote \else - \ifLuaTeX - \usepackage[a-1b]{pdfx} - \fi \usepackage{fontspec} \usepackage{xcolor} - \newcommand*\MP{{\setbox0\hbox{M}\relax - \includegraphics[height=\ht0]{MPlogo}}} - \newcommand*\GuIT{{\setbox0\hbox{Hg}\relax - \raisebox{-\dp0}{\includegraphics[height=\dimexpr\ht0+\dp0]{GuITlogo}}}} \setmainfont[Ligatures=TeX]{TeX Gyre Termes} \setsansfont[Ligatures=TeX, Scale=MatchLowercase]{TeX Gyre Heros} \setmonofont{UM Typewriter} + \newfontfamily{\fetamont}{Fetamont} + \newcommand*\MP{{\fetamont METAPOST}\xspace} + \newcommand\GuIT{{\fontfamily{lmr}\scshape + \mbox{{g\raisebox{-0.308em}{\kern-0.562ex u}% + \kern-0.15em{I}\kern-0.14em t}}}\xspace} \setmainlanguage[babelshorthands]{italian} \usepackage{amsmath} - \usepackage{unicode-math} + \usepackage[math-style=TeX]{unicode-math} \setmathfont{XITS Math} \setotherlanguage[variant=ancient]{greek} - \newfontfamily{\greekfont}{GFS Didot} + \newfontfamily{\greekfont}{GFS Bodoni} \fi -\usepackage{metalogo,longtable,booktabs,array,tabularx,fancyvrb, -enumitem,xspace,fancyvrb,ragged2e,siunitx} -%\usepackage[margin=15pt,font=small,labelfont=bf,labelsep=quad]{caption} -%\captionsetup[table]{position=above} -\usepackage{trace} -\usepackage{imakeidx} -\usepackage{hyperref} - \hypersetup{% - pdfpagemode={UseOutlines}, - bookmarksopen, - pdfstartview={FitH}, - colorlinks, - linkcolor={blue}, - citecolor={blue}, - urlcolor={blue} - } -\makeindex[intoc,columns=2] +\usepackage{metalogo,longtable,booktabs,array, +tabularx,enumitem,ragged2e,siunitx,curve2e,microtype} + +\usepackage{afterpage,wrapfig} -\newcommand*\prog[1]{\textsf{#1}\index{programma!#1@\textsf{#1}}} -\newcommand*\pack[1]{\textsf{\slshape#1}\index{pacchetto!#1@\textsf{\slshape#1}}} -\newcommand*\class[1]{\textsf{\slshape#1}\index{classe!#1@\textsf{\slshape#1}}} -\newcommand*\amb[1]{\textsf{\slshape#1}\index{ambiente!#1@\textsf{\slshape#1}}} -\let\env\amb \newcommand*\meta[1]{$\langle${\normalfont\textit{#1}}$\rangle$} -\newcommand*\file[1]{\texttt{#1}\index{file!#1@\texttt{#1}}} -\providecommand*\cs[1]{\texttt{\char92#1}\index{#1@\texttt{\char92#1}}} \newcommand*\oarg[1]{\texttt{[}\meta{#1}\texttt{]}} \newcommand*\marg[1]{\texttt{\{}\meta{#1}\texttt{\}}} \newcommand*\Arg[1]{\texttt{\{#1\}}}\let\Marg\Arg \newcommand*\Oarg[1]{\texttt{[#1]}} -\newcommand*\opt[1]{\texttt{#1}\index{opzione!#1@\texttt{#1}}}\let\opz\opt -\newcommand*\Font[1]{\textit{#1}\index{font!#1@\textit{#1}}} -\let\acro\textsc + +\NewDocumentCommand\prog{s m}{\textsf{#2}% + \IfBooleanTF{#1}{}{\index{programma!#2@\textsf{#2}}}} +\NewDocumentCommand\pack{s m}{\textsf{\slshape#2}% + \IfBooleanTF{#1}{}{\index{pacchetto!#2@\textsf{\slshape#2}}}} +\NewDocumentCommand\class{s m}{\textsf{\slshape#2}% + \IfBooleanTF{#1}{}{\index{classe!#2@\textsf{\slshape#2}}}} +\NewDocumentCommand\amb{s m}{\textsf{\slshape#2}% + \IfBooleanTF{#1}{}{\index{ambiente!#2@\textsf{\slshape#2}}}} + \let\env\amb +\NewDocumentCommand\file{s m}{\texttt{#2}% + \IfBooleanTF{#1}{}{\index{file!#2@\texttt{#2}}}} +\providecommand\cs{} +\RenewDocumentCommand\cs{s m}% + {\texttt{\char92#2}\IfBooleanTF{#1}{}{\index{#2@\texttt{\char92#2}}}} +\NewDocumentCommand\opt{s m}{\texttt{#2}% + \IfBooleanTF{#1}{}{\index{opzione!#2@\texttt{#2}}}}\let\opz\opt +\NewDocumentCommand\Font{s m}{\textit{#2}% + \IfBooleanTF{#1}{}{\index{font!#2@\textit{#2}}}} + +\newcommand*\TOPtesi{\textsf{TOPtesi}\xspace} +\DeclareRobustCommand*\sigla[1]{\lowercase{\textsc{#1}}} +\let\acro\sigla + +% Il comando \chiave si usa in due modi: +% \chiave{nome della chiave} +% scrive il nome della chiave +% e la inserisce nell'indice come subentry di "chiave". +% \chiave{nome della chiave}{valore della chiave} +% scrive il "nome della chiave"="valore della chiave" +% e manda nell'indice il "valore della chiave" come +% subsubentry della subentry "nome della chiave" +\NewDocumentCommand\chiave{m G{}}{% +\ifstrequal{#2}{}% +{\texttt{#1}\index{chiave!#1}}% +{\texttt{#1=}\csuse{#1}{#2}}} + +\newcommand\tipotesi[1]{\texttt{#1}\index{chiave!tipotesi!#1}} +\newcommand\stile[1]{\texttt{#1}\index{chiave!stile!#1}} +\newcommand\corpo[1]{\texttt{#1}\index{chiave!corpo!#1}} +\newcommand\cucitura[1]{\texttt{#1}\index{chiave!cucitura!#1}} + +\newcommand{\diff}{\mathop{}\!\mathrm{d}} +\newcommand*\Bambiente[1]{\texttt{\char92begin}\Marg{#1}} +\newcommand*\Eambiente[1]{\texttt{\char92end}\Marg{#1}} + + +\let\originalTeX\TeX +\renewcommand\TeX{\mbox{\originalTeX}\xspace} +\let\originalLaTeX\LaTeX +\renewcommand\LaTeX{\mbox{\originalLaTeX}\xspace} \providecommand*\pdfLaTeX{} -\renewcommand*\pdfLaTeX{pdf\/\LaTeX\xspace} -\renewcommand*\XeLaTeX{% -\ifPDFTeX X\kern-0.14em\raisebox{0.975ex}{\scalebox{-1}[-1]{E}}\kern-0.075em\LaTeX -\else\Xe\LaTeX\fi\xspace} +\renewcommand*\pdfLaTeX{\mbox{pdf\/\LaTeX}\xspace} +\renewcommand*\XeLaTeX{\mbox{% +\ifPDFTeX X\kern-0.14em\raisebox{0.975ex}{\scalebox{-1}[-1]{E}}\kern-0.075em\LaTeX\else\Xe\LaTeX\fi}\xspace} \let\originalLuaLaTeX\LuaLaTeX -\renewcommand*\LuaLaTeX{\originalLuaLaTeX\xspace} +\renewcommand*\LuaLaTeX{\mbox{Lua\LaTeX}\xspace} +\providecommand\TeXShop{} +\renewcommand\TeXShop{\originalTeX\discretionary{-}{}{}Shop\xspace} +\providecommand\TeXworks{} +\renewcommand\TeXworks{\originalTeX\discretionary{-}{}{}works\xspace} -\providecommand*\MiKTeX{MiK\TeX\xspace} -\providecommand*\TeXLive{\TeX\,Live\xspace} +\providecommand*\MiKTeX{\mbox{MiK\TeX}\xspace} +\providecommand*\TeXLive{\mbox{\originalTeX}\discretionary{-}{}{\,}Live\xspace} + +\makeatletter +% Imposta il font ad un corpo qualsiasi con uno scartamento +% 1.2 volte maggiore; il corpo va specificato senza le unità +% di misura; per poter usare le une e le altre ci vuole una +% macro molto più complessa +\newcommand*\cambiacorpo[1]{\bgroup\dimen@=#1\p@\dimen@=1.2\dimen@ +\edef\x{\noexpand\egroup\noexpand\fontsize{#1}{\strip@pt\dimen@}}\x\selectfont} \makeatletter \def\GetFileInfo#1{% @@ -117,24 +163,116 @@ enumitem,xspace,fancyvrb,ragged2e,siunitx} \edef\@tempa{\csname ver@#1\endcsname}% \def\@tempb##1 ##2 ##3\relax##4\relax{% \def\filedate{##1}% - \def\fileversion{##2}% + \edef\fileversion{\@gobbletwo##2}% \def\fileinfo{##3}}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax} + \expandafter\@tempb\@tempa\space\relax\hbox{} \hbox{} \relax\relax} \def\bottomfraction{1} +\newcommand*\tasto[1]{\fbox{\sffamily#1}} + +\newcommand*\LRmarginpar[1]{\marginpar[\RaggedLeft#1]{\RaggedRight#1}} + + +% Nell'argomento facoltativo delimitato da (...) si può inserire +% qualunque dichiarazione o comando di spaziatura verticale; persino lo +% spessore della cornice e del suo spazio di separazione dal contenuto. +\NewDocumentEnvironment{medaglione}{O{\linewidth} D(){\relax}}{% +\par\medskip#2 +\dimen300=\dimexpr#1-2\fboxsep-2\fboxrule\relax +\begin{lrbox}{300}\minipage{\dimen300} +}{\endminipage\end{lrbox}\noindent\fbox{\box300}\medskip} + +\NewDocumentEnvironment{sintassi}{D(){\relax}}{\medaglione(#1\raggedright\obeylines)}{\endmedaglione} + +\NewDocumentEnvironment{ttsintassi}{D(){\relax}}{\medaglione(#1\raggedright\ttfamily\obeylines)}{\endmedaglione} +%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +% Some macros to typeset a framed box of natural or specified +% width and height within the picture environment. +% Needs packages curve2e, etoolbox, and xparse. +% Syntax: +% \Zbox(<position>)(<dimensions>)[<alignment>]{<box contents>} +% The first and fourth arguments are mandatory; the second +% and third arguments are optional; their default values are +% (0,0) and [bl]. Furthermore the <position> and <dimensions> +% values are a comma separated pair of numbers representing +% measures in \unitlength units, as well as it is done within the +% picture environment. No provision is coded to take the measure +% of the <box contents>. This contents should be some text, and when +% <dimensions> are specified larger than zero, a \parbox is used +% to typeset it. The <alignment> value(s) define the reference point +% that is \put at the <position> coordinates. +% +% \fileicon serve per disegnare il simbolo dei file nei diagrammi +% di flusso, con una scritta in mezzo in font tt; è +% complessivamente alto 20 unitlength e largo 15; il punto +% di riferimento è a metà del lato sinistro. +% +% \polyvector si comporta come \polyline, ma termina con una freccia. +% +\def\TOPsplitArgs(#1,#2)#3#4{\edef#3{#1}\edef#4{#2}} + +\NewDocumentCommand\Zbox{R(){0,0} D(){0,0} O{bl} m}{% +\TOPsplitArgs(#2)\ZboxX\ZboxY % separa la x e la y della scatola +\fboxsep=2\unitlength +\ifnum\ZboxX=\csuse{z@} + \def\ZTesto{\fbox{#4}}% +\else + \ifnum\ZboxY=\csuse{z@} + \def\ZTesto{\fbox{\parbox{\ZboxX\unitlength}{#4}}}% + \else + \def\ZTesto{% + \setbox2560=\hbox{\fbox{% + \parbox[c][\ZboxY\unitlength][c]{\ZboxX\unitlength}{#4}}}% + \dimen2560=\dimexpr(\ht2560 +\dp2560)/2\relax + \ht2560=\dimen2560\relax + \dp2560=\dimen2560\relax + \box2560% + }% + \fi +\fi +\put(#1){\makebox(0,0)[#3]{\ZTesto}}} + +\NewDocumentCommand\fileicon{R(){0,0} m}{% +\put(#1){\moveto(0,-10) +\curveto(7.5,-10)(7.5,-7.5)(15,-7.5) +\lineto(15,10) +\curveto(7.5,10)(7.5,7.5)(0,7.5) +\lineto(0,-10) +\strokepath}\put(#1){\put(7.5,0){\makebox(0,0){\ttfamily#2}}} +} + +\def\ifTOPnextchar{\csuse{@ifnextchar}} + +\NewDocumentCommand\polyvector{r()}{\def\TOPlastpoint{#1}\TOPpolyvector} + +\NewDocumentCommand\TOPpolyvector{r()}{\ifTOPnextchar({\segment(\TOPlastpoint)(#1)% +\def\TOPlastpoint{#1}\TOPpolyvector}{\VECTOR(\TOPlastpoint)(#1)}} % ) + +%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +\unless\ifcsname ver@hyperref.sty\endcsname\usepackage{hyperref}\fi +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} +} + +\makeindex[intoc,columns=2] + \begin{document} % -\GetFileInfo{toptesi.cls} % - \sedutadilaurea{Classe \textsf{toptesi} versione \fileversion\ del \filedate} \thispagestyle{empty} \vspace*{.2\textheight} \hrule \begin{center} -\Huge \textsf{La classe TOPtesi} +\Huge \textsf{Il pacchetto TOPtesi} \end{center} \hrule @@ -144,7 +282,31 @@ enumitem,xspace,fancyvrb,ragged2e,siunitx} -\frontespizio +%\frontespizio +\begin{ThesisTitlePage} +\GetFileInfo{toptesi.cls} +\let\classvers\fileversion \let\classdate\filedate +\logosede{TITlogoCropped} +\NomeElaborato{Manuale d'uso} +\candidato{\scshape Claudio Beccari} +\titolo{Il pacchetto \TOPtesi\\ +\textnormal{\normalsize Versione\ \classvers\ del \classdate}} +\TitoloListaCandidati{} +\sottotitolo{Per comporre tesi al Politecnico di Torino\\e in molte altre università\\[1ex] +Il pacchetto \TOPtesi contiene la classe omonima e diversi altri file per comporre tesi di diverso tipo\\[1ex] +Questa documentazione fornisce anche le linee guida per comporre una tesi rispettando certe regole tipografiche} +\GetFileInfo{toptesi-it.tex} + \sedutadilaurea{Documentazione: versione \fileversion\ del \filedate} + \retrofrontespizio{Questo testo è libero secondo le condizioni +stabilite dalla \LaTeX Project Public Licence (LPPL) riportata +nell'appendice~\ref{ch:LPPL} alla pagina~\pageref{ch:LPPL}. + +\bigskip + +\noindent Composto con \ifPDFTeX \pdfLaTeX\else \ifXeTeX\XeLaTeX\else\ifLuaTeX\LuaLaTeX\else un programma diverso\fi\fi\fi\ il \today +\vspace*{5\baselineskip}} +\end{ThesisTitlePage} + \sommario Questo testo serve per descrivere come comporre tipograficamente la tesi di laurea o la monografia o la dissertazione di dottorato mediante il noto programma di composizione \LaTeX, o meglio, mediante le sue varianti \pdfLaTeX, \XeLaTeX\ o \LuaLaTeX; per produrre con \XeLaTeX\ il file finale in formato PDF archiviabile secondo la norma ISO \mbox{19005-1} bisogna procedere come descritto nel paragrafo~\ref{sec:XePDFA}. @@ -157,7 +319,7 @@ This text describes how to typeset a university master thesis, or the bachelor f \italiano \ringraziamenti -Ringrazio gli studenti del Politecnico di Torino che mi hanno sollecitato a mettere la mia esperienza a loro disposizione per predisporre e rendere disponibile il software necessario per preparare le loro tesi, monografie o dissertazioni con la qualità che solo \pdfLaTeX, \XeLaTeX\ o \LuaLaTeX\ riescono a produrre\footnote{Questa particolare composizione è stata eseguita con \XeLaTeX. Questo motore di composizione presenta numerosi vantaggi su \prog{pdflatex} per quel che riguarda l'uso dei font, anche per la matematica, ma non è ancora (2015) in grado di produrre l'uscita direttamente nel formato PDF, anche se apparentemente lo fa. In realtà la sua uscita è in un formato intermedio che viene poi trasformato automaticamente in PDF. L'esperienza mi insegna che in realtà le limitazioni di \XeLaTeX\ sono pochissime e, con la classe \pack{toptesi}, quella forse più importante, ma facilmente risolvibile, riguarda il formato PDF archiviabile che non è ottenibile direttamente, tanto che bisogna procedere come indicato nel paragrafo~\ref{sec:XePDFA}.}. +Ringrazio gli studenti del Politecnico di Torino che mi hanno sollecitato a mettere la mia esperienza a loro disposizione per predisporre e rendere disponibile il software necessario per preparare le loro tesi, monografie o dissertazioni con la qualità che solo \pdfLaTeX, \XeLaTeX\ o \LuaLaTeX\ riescono a produrre.\footnote{La composizione di questo testo di documentazione è stata eseguita con \ifPDFTeX\pdfLaTeX\else \ifLuaTeX\LuaLaTeX\else \XeLaTeX\fi\fi. Il programma di composizione \XeLaTeX\ presenta numerosi vantaggi su \prog*{pdflatex} per quel che riguarda l'uso dei font, anche per la matematica, ma non è ancora (2017) in grado di produrre l'uscita direttamente nel formato PDF, anche se apparentemente lo fa. In realtà la sua uscita è in un formato intermedio che viene poi trasformato automaticamente in PDF. L'esperienza mi insegna che in realtà le limitazioni di \XeLaTeX\ sono pochissime e, con la classe \pack*{toptesi}, la limitazione forse più importante, ma risolvibile, riguarda il formato PDF archiviabile che non è ottenibile direttamente, tanto che bisogna procedere come indicato nel paragrafo~\ref{sec:XePDFA}. Con \LuaLaTeX\ non ci sono le limitazioni di \XeLaTeX, quindi nel seguito si darà sempre la preferenza a \LuaLaTeX.} \figurespagetrue \tablespagetrue @@ -165,17 +327,28 @@ Ringrazio gli studenti del Politecnico di Torino che mi hanno sollecitato a mett \chapter{Guida rapida all'uso di questo manuale} +Prima di prendere ironicamente l'aggettivo `rapida' attribuito a questa guida di più di 160 pagine, vorrei sottolineare che essa è lunga perché TOPtesi permette di svolgere moltissimi compiti. E per comporre bene la propria tesi, le cose da fare sono moltissime e non sono descritte tutte in questa guida. Ma c'è un altro aspetto: comporre tipograficamente non consiste solo nel seguire certe regole tali da far diventare questa operazione una cosa che potrebbe fare qualunque macchina; c'è di mezzo il gusto estetico personale; la materia di cui si tratta nella tesi; il fatto che ogni problema di composizione non ha mai un'unica soluzione; e via di questo passo. Non è un caso che il sistema \TeX offra una moltitudine di pacchetti per comporre tesi, ognuno di quali risolve certi problemi di composizione secondo i gusti di chi ha scritto quella classe, o quel pacchetto, o quel modello. + +Ecco, questa guida è lunga perché cerco di spiegare in dettaglio come certi problemi siano stati affrontati in modo che il laureando possa capire come ho affrontato il problema e quali alternative esistono. + +Questo testo è destinato specialmente agli studenti universitari, ma non lascia a piedi gli studenti delle scuole secondarie superiori che si accingono a predisporre la loro ``tesina'' da presentare alla commissione dell'esame di Stato, che essi devono affrontare alla fine di questo loro ciclo di studi. + +Questo mio lavoro è quindi dedicato, in ordine di età, ai maturandi, ai laureandi baccellieri, ai laureandi magistrali, ai dottorandi. + +Non spaventatevi quindi della lunghezza di questo testo; al di là degli aspetti {\TeX}\-nici, imparerete, spero, diverse cose in merito all'arte tipografica, al punto che, finito il vostro lavoro, non potrete fare a meno di guardare qualunque stampato con occhi diversi. + + Nella pagina~\pageref{warn:avvertenza} c'è scritto in rosso quanto segue. -\begin{quote}{\color{red}Dopo avere letto un po' di documentazione e aver giocato un poco con i programmi già predisposti sia dalla distribuzione del sistema \TeX\ sia dai vari editor ASCII, siete in grado di capire come funziona il tutto. +\begin{quote}{\color{red}Dopo avere letto un po' di documentazione e aver giocato un poco con i programmi già predisposti sia dalla distribuzione del sistema \TeX sia dai vari editor testuali, siete in grado di capire come funziona il tutto. -Attenzione: non si minimizzi la frase precedente: la documentazione va letta sempre e capita fino in fondo; se c'è qualcosa che non capite, provate ad esercitarvi con qualche piccolo esercizio, visto che la pratica permette di capire la teoria (e viceversa), ma non andate a cercare in rete aiuto nei vari forum dedicati a \LaTeX\ per farvi dire: ``guarda nella pagina tal-dei-tali della documentazione''; per voi sarebbe una vera umiliazione\dots} +Attenzione: non si minimizzi la frase precedente: la documentazione va letta sempre e capita fino in fondo; se c'è qualcosa che non capite, provate ad esercitarvi con qualche piccolo esercizio, visto che la pratica permette di capire la teoria (e viceversa), ma non andate a cercare in rete aiuto nei vari forum dedicati a \LaTeX per farvi dire: ``guarda nella pagina tal-dei-tali della tal documentazione''; per voi sarebbe una vera umiliazione\dots} \end{quote} -Detto in altre parole, non cominciate nemmeno a leggere questo manuale e non usate TOPtesi se non avete ancora un minimo di conoscenza di \LaTeX. Non è solo una questione di esperienza pratica; è anche una questione di linguaggio; se non si conosce la terminologia, non si capisce nemmeno quello che si legge. Faccio solo un paio di esempi che mostrano l'ambiguità di certi termini, dei quali bisogna conoscere il significati e bisogna saperli distinguere in base al contesto. -\begin{description} -\item[Pacchetto] In inglese esistono due termini usati nel sistema \TeX: \emph{bundle} e \emph{package}: il primo termine si riferisce ad una collezione di diversi file, per lo più di tipo \emph{package}, ma non solo; i file di tipo \emph{package} sono delle collezioni di definizioni, le cosiddette macro. In italiano i due termini vengono abitualmente tradotti entrambi con il nome \emph{pacchetto}, per cui la parola italiana è ambigua. -\item[Formato] Nel mondo \TeX\ la parola \emph{formato}, in inglese \emph{format}, ha almeno tre significati; i principali significati sono i seguenti. -\begin{description} +Detto in altre parole, non cominciate nemmeno a leggere questo manuale e non usate \TOPtesi se non avete ancora un minimo di conoscenza di \LaTeX. Non è solo una questione di esperienza pratica; è anche una questione di linguaggio; se non si conosce la terminologia, non si capisce nemmeno quello che si legge. Faccio solo un paio di esempi che mostrano l'ambiguità di certi termini, dei quali bisogna conoscere il significati e bisogna saperli distinguere in base al contesto. +\begin{description}[noitemsep] +\item[Pacchetto] In inglese esistono due termini usati nel sistema \TeX: \emph{bundle} e \emph{package}: il primo termine si riferisce ad una collezione di diversi file, per lo più di tipo \emph{package}, ma non solo; i file di tipo \emph{package} sono delle collezioni di definizioni, le cosiddette macro. In italiano i due termini vengono abitualmente tradotti entrambi con il nome \emph{pacchetto}, per cui la parola italiana è ambigua. \textcolor{red}{Per questo motivo nel seguito mi riferirò all'intero pacchetto \TOPtesi usando le prime tre lettere maiuscole, mentre mi riferirò a certi file interni con i nomi `classe' (per esempio classe \class{toptesi}), e `modulo' (per esempio modulo \pack{toptesi}) usando lettere minuscole e caratteri diversi da quelli del testo. Per file che non fanno parte di \TOPtesi userò il comune nome `pacchetto' perché i loro autori li hanno chiamati `package'.} +\item[Formato] Nel mondo \TeX la parola \emph{formato}, in inglese \emph{format}, ha almeno tre significati; i principali significati sono i seguenti. +\begin{description}[noitemsep] \item[Forma del mark up] Con questo significato ci si riferisce al file con estensione \file{.fmt} che contiene la traduzione in linguaggio macchina dell'insieme di macro che definiscono il mark up specifico del linguaggio usato; qui potrebbero interessare i file di formato \file{pdflatex.fmt}, \file{xelatex.fmt}, \file{lualatex,fmt}; ne esistono diversi altri. \item[Forma della pagina del testo composto] Le varie carte disponibili vengono vendute in diversi formati; per esempio A4 (210\unit{mm} per 297\unit{mm}), B5 (176\unit{mm} per 210\unit{mm}), eccetera. Si può usare questa parola anche per riferirsi alla forma della gabbia del testo e al layout della pagina composta tipograficamente. \item[Codifica di registrazione delle immagini] La parola formato viene usata per specificare in realtà il modo di codificare una immagine, e si parla del formato JPEG, del formato PDF, eccetera. Esistono formati vettoriali e formati raster (o a matrici di punti, o bitmapped); i formati raster possono essere \emph{lossless} oppure \emph{lossy}; in questo caso la perdita, da cui il prefisso ``loss'', si riferisce al modo di comprimere l'informazione dell'immagine: la compressione senza perdita permette di recuperare esattamente l'immagine di partenza, mentre la compressione con perdita permette di comprimere di più ma a spese di una approssimazione nel recupero dell'immagine di partenza; il formato PNG è di tipo lossless; il formato JPG (o JPEG) è lossy. @@ -185,123 +358,153 @@ Detto in altre parole, non cominciate nemmeno a leggere questo manuale e non usa \section{A cosa serve TOPtesi} -Serve per comporre una tesi, sia essa la \emph{monografia} (detta anche \emph{elaborato finale}) preparata alla fine della laurea triennale, o la \emph{tesi di laurea} predisposta alla fine della laurea magistrale o della laurea a ciclo unico, sia essa la \emph{dissertazione di dottorato}. Sia essa da scrivere in italiano o un un'altra lingua. +Serve per comporre una tesi, sia essa la \emph{monografia} (detta anche \emph{elaborato finale}) preparata alla fine della laurea triennale, oppure la \emph{tesi di laurea} predisposta alla fine della laurea magistrale, o della laurea a ciclo unico, oppure la \emph{dissertazione di dottorato}. Sia essa da scrivere in italiano o in un'altra lingua. La tesi, in realtà, non è altro che il rapporto relativo allo studio, alla ricerca, alle sperimentazioni, al progetto, svolti come lavoro conclusivo di un periodo di studi universitari. Il contenuto della tesi non differisce sostanzialmente da qualunque altro rapporto scritto in una qualsiasi disciplina su cui verta principalmente la tesi. -Questa classe è già stata usata per comporre tesi di vario livello in ingegneria, in matematica, in fisica, in economia, in filologia greca, in filologia copta, in medicina, eccetera. Non è quindi destinata solo ai rapporti finali degli studi di ingegneria. +\TOPtesi è già stato usato per comporre tesi di vario livello in ingegneria, in matematica, in fisica, in economia, in filologia greca, in filologia copta, in medicina, eccetera. Non è quindi destinata solo ai rapporti finali degli studi di ingegneria. La ``tesi'' differisce da un generico rapporto, perché ha un valore legale come elaborato da presentare all'esame finale per un ciclo di studi superiori; deve quindi avere certi requisiti che permettano di soddisfare le richieste di tipo burocratico di ogni ateneo. Questi requisiti riguardano principalmente il frontespizio; quindi in questo manuale si dedicherà molto spazio alla predisposizione del frontespizio da comporre con vari stili, e in diverse lingue. -TOPtesi serve anche per fornire alcune altre semplici estensioni che rendono più agevole la redazione del contenuto della tesi, ma in fondo non è questa la parte più importante di TOPtesi. +Con questa nuova versione di \TOPtesi il pacchetto viene esteso anche alla compilazione della \emph{tesina} da presentare all'esame di stato per il conseguimento del diploma di maturità. È chiaro che la tesina ha scopi diversi da quelli delle tesi universitarie, ma è comunque un testo che deve essere composto con dignità tipografica se non altro per amor proprio, ma anche per mostrare alla commissione d'esame che come si è dedicata una cura particolare all'aspetto dell'elaborato così se ne è dedicata altrettanta al suo contenuto. + +\TOPtesi serve anche per fornire alcune altre semplici estensioni che rendono più agevole la redazione del contenuto della tesi, ma in fondo non è questa la parte più importante di \TOPtesi. -Come tutti i pacchetti che estendono la funzionalità di \LaTeX, TOPtesi definisce la geometria della pagina e dispone le informazioni accessorie come le testatine e i piedini. Queste impostazioni non sono modificabili né con TOPtesi né con la maggior parte degli altri pacchetti destinati alle tesi. Vale il concetto ``prendere o lasciare''. +Come tutti i pacchetti che estendono la funzionalità di \LaTeX, \TOPtesi definisce la geometria della pagina e dispone le informazioni accessorie come le testatine e i piedini. Queste impostazioni non sono modificabili né con \TOPtesi né con la maggior parte degli altri pacchetti destinati alle tesi. Più o meno vale il concetto ``prendere o lasciare''. -{\tolerance=3000 Prima di usare TOPtesi si esaminino i semplici esempi contenuti nei file accessori di questo pacchetto: \file{toptesi-example.pdf}, \file{toptesi-example-luatex.pdf}, \file{topfront.example.pdf}, \texttt{toptesi-example-con-frontespizio.pdf}\index{file!toptesi-example-con-frontespizio.pdf@\texttt{toptesi\discretionary{-}{}{-}example\discretionary{-}{}{-}con\discretionary{-}{}{-}frontespizio.pdf}}. Si potrà vedere se l'impaginazione aggrada oppure se si desidera un'altra impaginazione; in questo secondo caso ci si rivolga ad altre classi e ad altri pacchetti: in rete non è difficile usare un motore di ricerca per trovare il pacchetto \pack{frontespizio}, le classi \class{sapthesis}, \class {suftesi}, \class{TesiModerna}, \class{TesiClassica} e diverse altre classi prodotte specialmente nel mondo angloamericano e ancor meno adatte ad una personalizzazione multilingue. Alcune di queste classi sono dotate di eccellenti file di documentazione, altre sono usabili grazie a ``template'' o modelli di tesi scritte facendo uso di testo fittizio, ma tali da rendere immediatamente l'idea di come usare quei software.\par} +{\tolerance=3000 Prima di usare \TOPtesi si esaminino i semplici esempi contenuti nei file accessori di questo pacchetto: \file{toptesi-example.pdf}, \file{toptesi-example-luatex.pdf}, \file{topfront.example.pdf}, \texttt{toptesi-example-con-frontespizio.pdf}\index{file!toptesi-example-con-frontespizio.pdf@\texttt{toptesi\discretionary{-}{}{-}example\discretionary{-}{}{-}con\discretionary{-}{}{-}frontespizio.pdf}} e diversi altri che sono variazioni dei precedenti. Si potrà vedere se l'impaginazione aggrada oppure se si desidera un'altra impaginazione; in questo secondo caso ci si rivolga ad altre classi e ad altri pacchetti: in rete non è difficile usare un motore di ricerca per trovare il pacchetto \pack{frontespizio}, le classi \class{sapthesis}, \class {suftesi}, i modelli \file{TesiModerna}, \file{TesiClassica} e diverse altre classi prodotte specialmente nel mondo angloamericano e ancor meno adatte ad una personalizzazione multilingue. Alcune di queste classi sono dotate di eccellenti file di documentazione, altre sono usabili grazie a ``template'' o modelli di tesi scritte facendo uso di testo fittizio, ma tali da rendere immediatamente l'idea di come usare quei software.\par} -Volendo, anche i file sorgente di questi esempi d'uso del pacchetto TOPtesi, elencati sopra con i nomi dei corrispondenti file PDF, possono essere usati come modelli; persino il file sorgente di questo manuale può essere usato come modello; basta cercare nelle cartelle dell'installazione di TOPtesi i file \file{.tex}, copiarseli in una propria cartella personale, cambiare loro il nome (attenzione, questo è importantissimo) e modificarne il contenuto a proprio piacimento. Con un minimo di attenzione si possono eliminare quelle parti che non servono; si possono modificare le opzioni della classe, si possono compilare con diversi motori di tipocomposizione del sistema \TeX. Non è forse fuori luogo sottolineare che l'uso dei modelli può essere molto utile per cominciare, ma fa perdere di vista il fatto che \LaTeX\ può fare molte più cose di quelle che si inseriscono solitamente negli esempi.\enlargethispage{-1\baselineskip} +Volendo, anche i file sorgente di questi esempi d'uso di \TOPtesi, elencati sopra con i nomi dei corrispondenti file PDF, possono essere usati come modelli; persino il file sorgente di questo manuale può essere usato come modello; basta cercare nelle cartelle dell'installazione di \TOPtesi i file \file{.tex}, copiarseli in una propria cartella personale, cambiare loro il nome (attenzione, questo è importantissimo) e modificarne il contenuto a proprio piacimento. Con un minimo di attenzione si possono eliminare quelle parti che non servono; si possono modificare le opzioni della classe, si possono compilare con diversi motori di tipocomposizione del sistema \TeX. Non è forse fuori luogo sottolineare che l'uso dei modelli può essere molto utile per cominciare, ma fa perdere di vista il fatto che \LaTeX può fare molte più cose di quelle che si inseriscono solitamente negli esempi. + +Per le tesi di dottorato da svolgere presso la \emph{SCUola di DOttorato} (ScuDo) del Politecnico di Torino esiste un'opzione specifica per invocare altri pacchetti, in aggiunta o al posto di alcuni presenti nella funzionamento ordinario di \TOPtesi, per impostare la lingua inglese per l'intero documento, e per soddisfare le specifiche richieste di questa scuola per il frontespizio e il retrofrontespizio. + +Esistono opzioni specifiche anche per le normali tesi triennale, magistrale e dottorale (quest'ultima di tipo generico, non riferita alla scuola di dottorato del Politecnico di Torino), oltre all'opzione per la tesina e a un'opzione di personalizzazione quasi totale, che permette di comporre il frontespizio e il retrofrontespizio della tesi in modo assolutamente libero; questa personalizzazione quasi assoluta si riferisce al solo frontespizio, non agli altri aspetti della tesi, ma per usarla bisogna conoscere l'uso di \LaTeX molto bene. \section{Cosa leggere} Un manuale di solito non è da leggere dalla prima pagina all'ultima. Se ne possono saltare diverse sezioni, ma è bene sapere che cosa si salta, quindi una rapida sfogliata delle pagine che si saltano non fa male. -Se avete già il sistema \TeX\ installato nel vostro PC, potete saltare buona parte del capitolo~\ref{cap:introduzione}, ma almeno una volta conviene leggere la parte che precede il primo paragrafo numerato. +Se avete già il sistema \TeX installato nel vostro PC, potete saltare buona parte del capitolo~\ref{cap:introduzione}, ma almeno una volta conviene leggere la parte che precede il primo paragrafo numerato. -Del capitolo~\ref{cap:uso} è opportuno leggere il paragrafo~\ref{sec:configurazione}, perché descrive l'uso di un file di configurazione, che non è obbligatorio usare, ma che risulta molto comodo. +Del capitolo~\ref{cap:uso} è opportuno leggere il paragrafo~\ref{sec:configurazione}, perché descrive l'uso di un file di configurazione, che non è obbligatorio usare, ma che può risultare molto comodo. -Conviene leggere l'uso dei loghi nel paragrafo~\ref{ssec:loghi}, perché TOPtesi consente di usare diversi loghi nel frontespizio e li può collocare in posti diversi della pagina. +Conviene leggere l'uso dei loghi nel paragrafo~\ref{ssec:loghi}, perché \TOPtesi consente di usare diversi loghi nel frontespizio e li può collocare in posti diversi della pagina. -Il paragrafo~\ref{sec:cominciare} espone come impostare inizialmente il documento principale della tesi e di come frazionarne il contenuto in diversi file. Non esiste un unico metodo e i vari metodi presentano vantaggi e svantaggi. Conviene conoscere bene questi metodi e i loro pro e contro, anche perché nell'uso elementare di \LaTeX\ questi concetti non vengono mai affrontati. +Il paragrafo~\ref{sec:cominciare} espone come impostare inizialmente il documento principale della tesi e di come frazionarne il contenuto in diversi file. Non esiste un unico metodo e i vari metodi presentano vantaggi e svantaggi. Conviene conoscere bene questi metodi e i loro pro e contro, anche perché nella documentazione di \LaTeX per neofiti questi concetti non vengono mai affrontati con la necessaria profondità. -Il paragrafo~\ref{sec:codifica} è fondamentale; disporre di un editor che salva i file sorgente con una certa codifica e poi cercare di compilare quei file con \LaTeX\ impostato per una codifica diversa, vuol dire combinare pasticci inenarrabili; in questo manuale si consiglia di usare sia per l'editor si per \LaTeX\ la codifica \opt{utf8} ma è i laureando che deve sceglierla in base alle caratteristiche del suo software e ai programmi che intende usare per la compilazione. Tutti e tre i programmi principali di composizione, \pdfLaTeX, \XeLaTeX, e \LuaLaTeX\ funzionano bene con la codifica \opt{utf8}; \pdfLaTeX\ funziona anche con altre codifiche; gli editor un po' datati non funzionano con la codifica \opt{utf8}, quindi è evidente che le varie situazioni richiedono impostazioni attente e accurate. Se fosse necessario, l'argomento codifiche può essere approfondito anche su altri testi liberi, per esempio la guida tematica che si trova nella sezione documentazione dell'associazione \GuIT, in \url{http://guitex.org/home/images/doc/GuideGuIT/introcodifiche.pdf} dal titolo \emph{Introduzione alle codifiche in entrata e in uscita}. +Il paragrafo~\ref{sec:codifica} è fondamentale; disporre di un editor che salva i file sorgente con una certa codifica e poi cercare di compilare quei file con \LaTeX impostato per una codifica diversa, vuol dire combinare pasticci inenarrabili; in questo manuale si consiglia di usare sia per l'editor sia per \LaTeX la codifica \opt{utf8} ma è il laureando che deve sceglierla in base alle caratteristiche del suo software e ai programmi che intende usare per la compilazione. Tutti e tre i programmi principali di composizione, \pdfLaTeX, \XeLaTeX, e \LuaLaTeX\ funzionano bene con la codifica \opt{utf8}; \pdfLaTeX\ funziona anche con altre codifiche; gli editor un po' datati non funzionano con la codifica \opt{utf8}, quindi è evidente che le varie situazioni richiedono impostazioni attente e accurate. Se fosse necessario, l'argomento codifiche può essere approfondito anche su altri testi liberi, per esempio la guida tematica che si trova nella sezione documentazione dell'associazione \GuIT, in \url{http://guitex.org/home/images/doc/GuideGuIT/introcodifiche.pdf} dal titolo \emph{Introduzione alle codifiche in entrata e in uscita}. -Il paragrafo~\ref{sec:lingue} descrive come impostare il file sorgente della tesi per comporre il testo in diverse lingue o per impostare una lingua principale diversa dall'italiano. È essenziale per comporre tesi in programmi di doppia laurea. Infatti TOPtesi è stato creato anche per poter soddisfare le esigenze che un numero sempre maggiore di laureandi incontrano quando partecipano a programmi di doppio titolo con i vari programmi europei Erasmus, Life Long Learning, Erasmus Mundus, eccetera; le tesi svolte in questi percorsi solitamente richiedono l'uso di altre lingue oltre o in sostituzione dell'italiano. TOPtesi viene incontro a queste esigenze sia grazie all'uso di \LaTeX\ o \XeLaTeX\ o \LuaLaTeX\ che sono in grado di gestire una ottantina di lingue, sia perché quasi tutti i comandi che devono essere usati per il frontespizio e per molte strutture interne sono completamente configurabili in accordo con le lingue usate. Il paragrafo~\ref{sec:lingue} provvede a spiegare come eseguire queste configurazioni. +Il paragrafo~\ref{sec:lingue} descrive come impostare il file sorgente della tesi per comporre il testo in diverse lingue o per impostare una lingua principale diversa dall'italiano. È essenziale per comporre tesi in programmi di doppia laurea. Infatti \TOPtesi è stato creato anche per poter soddisfare le esigenze che un numero sempre maggiore di laureandi incontrano quando partecipano a programmi di doppio titolo con quelli europei Erasmus, Life Long Learning, Erasmus Mundus, eccetera; le tesi svolte in questi percorsi solitamente richiedono l'uso di altre lingue oltre o in sostituzione dell'italiano. \TOPtesi viene incontro a queste esigenze sia grazie all'uso di \pdfLaTeX\ o \XeLaTeX\ o \LuaLaTeX\ che sono in grado di gestire una ottantina di lingue, sia perché quasi tutti i comandi che devono essere usati per il frontespizio e per molte strutture interne sono completamente configurabili in accordo con le lingue usate. Il paragrafo~\ref{sec:lingue} provvede a spiegare come eseguire queste configurazioni. -Per la questione codifiche e la questione lingue, che sono due aspetti che hanno forti collegamenti, è opportuno tenere presenti le seguenti considerazioni. +Per la questione codifiche e la questione lingue, due aspetti che hanno forti collegamenti, è opportuno tenere presenti le seguenti considerazioni. -TOPtesi non serve solo per comporre tesi di laurea in ingegneria. Sono al corrente che il pacchetto TOPtesi è stato usato per comporre almeno una tesi di filologia greca classica, e almeno una tesi di commento ad un testo copto altomedievale. Di queste sono sicuro, ma ho informazioni indirette che sono state composte altre tesi in lingue moderne e antiche che facevano uso di alfabeti diversi da quello cosiddetto ``latino''. Al tempo di quelle due tesi sul greco antico e sul copto altomedievale non esistevano ancora i programmi del sistema \TeX, \XeLaTeX\ e \LuaLaTeX; oggi che sono disponibili forse sarebbero state composte più facilmente con uno di questi due programmi; ma con questi è obbligatorio usare la codifica d'entrata \opt{utf8}\footnote{In realtà si potrebbero anche usare le codifiche a 8~bit tipiche di \pdfLaTeX, ma bisogna ricorrere ad artifici che non vale la pena usare quando sono disponibili i font OpenType; sarebbe stato necessario farlo per il copto altomedievale e per il copto liturgico, per i quali ho creato solo font con codifiche a 8~bit.} e font codificati UNICODE, come i font OpenType. +\TOPtesi non serve solo per comporre tesi di laurea in ingegneria. Sono al corrente che il pacchetto \TOPtesi è stato usato per comporre almeno una tesi di filologia greca classica, e almeno una tesi di commento ad un testo copto altomedievale. Di queste sono sicuro, ma ho informazioni indirette che sono state composte altre tesi in lingue moderne e antiche che facevano uso di alfabeti diversi da quello cosiddetto ``latino''. Al tempo di quelle due tesi sul greco antico e sul copto altomedievale non esistevano ancora i programmi del sistema \TeX, \XeLaTeX\ e \LuaLaTeX; oggi che sono disponibili forse sarebbero state composte più facilmente con uno di questi due programmi; ma con questi è obbligatorio usare la codifica d'entrata \opt{utf8}\footnote{In realtà si potrebbero anche usare le codifiche a 8~bit tipiche di \pdfLaTeX, ma bisogna ricorrere ad artifici che non vale la pena usare quando sono disponibili i font OpenType; sarebbe stato necessario farlo per il copto altomedievale e per il copto liturgico, per i quali ho creato solo font con codifiche a 8~bit.} e font codificati UNICODE, come i font OpenType. -La codifica di entrata \opt{utf8} è consigliabile anche se si usa \pdfLaTeX, ma non è imposta, quindi TOPtesi è ``indifferente"' alla codifica d'entrata purché glielo si dica: è quindi compito e responsabilità del laureando quello di specificare la codifica d'entrata. Similmente in relazione alla lingua o alle lingue usate è compito del laureando specificare la o le codifiche dei font da usare e di specificare i nomi dei font da usare. +La codifica di entrata \opt{utf8} è consigliabile anche se si usa \pdfLaTeX, ma non è imposta, quindi \TOPtesi è ``indifferente"' alla codifica d'entrata purché glielo si dica: \textcolor{red}{è quindi compito e responsabilità del laureando quello di specificare la codifica d'entrata. Similmente in relazione alla lingua o alle lingue usate è compito del laureando specificare la o le codifiche dei font da usare e di specificare i nomi di tali font.} -Infine il capitolo~\ref{cap:comandispecifici} contiene tutti i comandi e gli ambienti introdotti da TOPtesi per la composizione del frontespizio, per la personalizzazione del frontespizio, per la composizione di strutture di testo o di figure in estensione a quelle normali di \LaTeX, e via di questo passo. +Infine il capitolo~\ref{cap:comandispecifici} contiene tutti i comandi e gli ambienti introdotti da \TOPtesi per la composizione del frontespizio e per la sua personalizzazione, per la composizione di strutture di testo o di figure in estensione a quelle normali di \LaTeX, e via di questo passo. \section{Errori da evitare} -Tuttavia si abbia anche cura di \textcolor{red}{non copiare nel preambolo di una tesi da comporre con TOPtesi un preambolo recuperato dalla tesi di un amico o, peggio ancora, dalla rete!}. Sarebbe una operazione fonte di molte delusioni, perché da una parte potrebbero venire caricati pacchetti incompatibili con TOPtesi, dall'altro alcuni comandi di TOPtesi ne potrebbero venire modificati con funzionalità diverse da quelle previste per TOPtesi. Potrebbero anche manifestarsi dei conflitti fra pacchetti caricati nel preambolo e quelli già caricati da TOPtesi. +Tuttavia si abbia anche cura di \textcolor{red}{non copiare nel preambolo di una tesi da comporre con \TOPtesi un preambolo recuperato dalla tesi di un amico o, peggio ancora, dalla rete!}. Sarebbe una operazione fonte di molte delusioni, perché da una parte potrebbero venire caricati pacchetti incompatibili con \TOPtesi, dall'altro alcuni comandi di \TOPtesi ne potrebbero venire modificati con funzionalità diverse da quelle previste. Potrebbero anche manifestarsi dei conflitti fra pacchetti caricati nel preambolo e quelli già caricati da \TOPtesi. \section{Pacchetti già caricati da TOPtesi} -Vale la pena di elencare i pacchetti già caricati dalla classe \class{toptesi}, al fine di evitare di ricaricarli nel preambolo. -\begin{description}\def\Item[#1]{\item[\normalfont\pack{#1}]} -\Item[toptesi] è il file di macro di TOPtesi; potrebbe anche essere usato con una classe diversa da \class{toptesi}. +Vale la pena di elencare i pacchetti o moduli già caricati dalla classe \class{toptesi}, al fine di evitare di ricaricarli nel preambolo della propria tesi. +\begin{description}[noitemsep]\def\Item[#1]{\item[\normalfont\pack{#1}]} +\Item[toptesi] è il file di macro di \TOPtesi; potrebbe anche essere usato con una classe diversa da \class{toptesi}. % \Item[graphicx] serve per gestire diverse funzioni grafiche e per l'inclusione di file grafici esterni, come fotografie, disegni, e simili. % \Item[etoolbox] è un pacchetto di servizio, le cui funzionalità possono essere usate anche da un laureando molto competente; questo pacchetto agevola moltissimo la gestione dei file di classe e di quelli di estensione. Se il laureando ha sufficiente padronanza di \LaTeX, può definirsi altri comandi specifici per la sua tesi, sfruttando le funzionalità avanzate di questo pacchetto. % -\Item[topfront] contiene i comandi specifici per comporre il frontespizio; potrebbe venire anche usato da solo con un'altra classe; mediante l'opzione \opt{noTOPfront} per la classe \class{toptesi} se ne può inibire il caricamento, così che l'operatore possa comporre il frontespizio con altri pacchetti esterni, o possa comporlo a modo suo sfruttando come meglio crede l'ambiente \env{titlepage}. -La classe \class{toptesi} carica questo modulo solo durante l'esecuzione del comando \verb|\begin{document}|, quindi nessun comando che abbia a che fare con il frontespizio può essere usato nel preambolo, in quanto \pack{topfront} non è ancora stato letto e quindi i comandi non sono ancora stati definiti. +\Item[xspace] serve per definire macro che capiscono da sole se il testo che compongono viene seguito da uno spazio o da un segno analfabetico. In genere viene suggerito di scrivere, per esempio, \verb*|\LaTeX\ |, oppure \verb*|\LaTeX{} |, oppure \verb*|{\LaTeX} | perché lo spazio dopo il logo di \LaTeX non sparisca; con l'uso dello spazio intelligente di questo pacchetto non è più necessario ricorrere a nulla di più che scrivere +\verb*|\LaTeX |. +% +\Item[xparse] mette a disposizione dell'utente delle macro potentissime per definire altre macro; le sue funzionalità sono state usate in diversi moduli di questo pacchetto; un utente esperto, dopo averne letto la documentazione ed averla capita a fondo, può usare questo pacchetto senza bisogno di andarlo a cercare in rete. +% +\Item[fancyverb] serve per comporre testo verbatim in modo più personalizzabile che con i semplici comandi del nucleo di \LaTeX; tuttavia quando il laureando deve listare i programmi che ha scritto per svolgere le ricerche connesse con la sua tesi, è comodo disporre di un comando che importi un file esterno inserendolo direttamente in modo verbatim nel file della propria tesi. Esistono altri pacchetti che permettono di eseguire questa operazione, ma questo ha la proprietà di lavorare correttamente anche con testi codificati~\opz{utf8}. +% +\Item[xkeyval] serve per gestire le opzioni con la sintassi \emph{chiave\,$=$\,valore}; è funzionale al lavoro della classe, ma se l'utente sa come gestire queste cose, e ne ha letto la documentazione, può usarlo anche per la definizione di comandi personali dotati di opzioni. % -\Item[topcoman] un piccolo pacchetto che contiene alcuni comandi utili in generale, non solo per l'uso con TOPtesi. Non è possibile inibirne il caricamento, ma spero che provveda da solo a non entrare in conflitto con altri pacchetti; finora non ho incontrato conflitti. +\Item[topfront] contiene i comandi specifici per comporre il frontespizio; potrebbe venire anche usato da solo con un'altra classe; se si specifica alla classe \class{toptesi} l'opzione \chiave{tipotesi}{topfront} oppure senza specificare nessuna opzione che contenga la chiave \chiave{tipotesi}, viene usato questo pacchetto per comporre il frontespizio della tesi; se si specifica uno degli altri valori leciti per la chiave \chiave{tipotesi}, se ne inibisce il caricamento così che l'operatore possa comporre il frontespizio con uno degli altri moduli dedicati di \TOPtesi o con altri pacchetti esterni, oppure possa comporlo a modo suo sfruttando come meglio crede l'ambiente \env{titlepage}. La classe \class{toptesi} carica questo modulo e gli altri moduli dedicati solo durante l'esecuzione del comando \Bambiente{document}, quindi nessun comando che abbia a che fare con il frontespizio può essere usato nel preambolo, in quanto \pack{topfront} o ogni altro modulo dedicato non è ancora stato letto e quindi i comandi non sono ancora stati definiti. % -\Item[ifxetex] serve per distinguere il motore di composizione con cui si compila la tesi. +\Item[topcoman] è un piccolo pacchetto che contiene alcuni comandi utili in generale, non solo per l'uso con \TOPtesi. Non è possibile inibirne il caricamento, ma si è fatto il possibile affinché provveda da solo a non entrare in conflitto con altri pacchetti; finora non ho rilevato conflitti. % -\item[\normalfont\meta{nome del main file}\file{.cfg}] Il file di configurazione specifico per una data tesi viene caricato solo se esiste nella medesima cartella dove risiede il main file della tesi stessa. +\Item[iftex] serve per distinguere il motore di composizione con cui si compila la tesi; distingue \prog*{pdftex}, \prog*{xetex}, e \prog*{luatex}; questi sono i nomi dei programmi che effettivamente traducono in linguaggio macchina ed eseguono le macro definite con il linguaggio \LaTeX rispettivamente da \prog*{pdflatex}, \prog*{xelatex}, e \prog*{lualatex}. % -\Item[babel] viene caricato con le opzioni \opt{english}, \opt{italian}, cosicché l'italiano risulta svolgere le funzioni della lingua principale; questo pacchetto viene caricato solo se si compone la tesi con \pdfLaTeX, e TOPtesi riconosce da solo quale sia il motore di composizione usato. +\item[\normalfont\meta{nome del main file}\file{.cfg}] Il file di configurazione specifico per una data tesi viene caricato solo se ne esiste una versione nella medesima cartella dove risiede il main file della tesi stessa. % -\Item[polyglossia] viene caricato solo se la tesi viene composta con \XeLaTeX\ o \LuaLaTeX. L'italiano viene specificato come lingua principale, e l'inglese come altra lingua. +\Item[babel] viene caricato con le opzioni \opt{english} e \opt{italian}, cosicché l'italiano risulta svolgere le funzioni della lingua principale; questo pacchetto viene caricato solo se si compone la tesi con \prog{pdflatex}, che \TOPtesi riconosce da solo grazie all'uso del pacchetto \pack{iftex}. Con l'opzione \chiave{tipotesi}{scudo} l'inglese viene impostato come lingua principale. % -\Item[pdfx] deve venire caricato esplicitamente dall'utente, come spiegato nell'apposito paragrafo; nelle versioni precedenti esso veniva caricato specificando l'opzione \opt{pdfa} per produrre un file possibilmente conforme al formato PDF/A. Ora, per compatibilità con il passato, l'opzione è ancora attiva, ma il suo scopo è solo quello di emettere un avviso di consultare la documentazione. +\Item[polyglossia] viene caricato solo se la tesi viene composta con \XeLaTeX\ o \LuaLaTeX. L'italiano viene specificato come lingua principale, e l'inglese come altra lingua. Con l'opzione \chiave{tipotesi}{scudo} l'inglese viene viene invece impostato come lingua principale. + +% +\Item[pdfx] deve venire caricato esplicitamente dall'utente, come spiegato nell'apposito paragrafo; nelle versioni precedenti esso veniva caricato specificando l'opzione \opt{pdfa} per produrre un file possibilmente conforme al formato PDF/A. Ora, per compatibilità con il passato, l'opzione è ancora attiva, ma il suo scopo è solo quello di emettere l'avviso di consultarne la documentazione. % -\Item[hyperref] serve per comporre i collegamenti ipertestuali. Non è il caso di preoccuparsi di quando TOPtesi carica \pack{hyperref} perché ci pensa lui a ritardarne la chiamata al momento di iniziare la composizione del documento. Si veda più avanti per sapere come e quando eventualmente configurare \pack{hyperref} con le sue opzioni. +\Item[hyperref] serve per comporre i collegamenti ipertestuali. Non è il caso di preoccuparsi di quando \TOPtesi carica \pack{hyperref} perché ci pensa lui a usarlo amo momento opportuno. Si veda più avanti per sapere come e quando eventualmente configurare \pack{hyperref} con le sue opzioni. \end{description} -Il laureando è tenuto a documentarsi su ciascuno di quei pacchetti; normalmente egli dispone di tutta la documentazione di cui necessita già nella sua installazione del sistema TeX\ completo e aggiornato; basta che apra un terminale e vi scriva dentro; +Il laureando è tenuto a documentarsi su ciascuno di quei pacchetti; normalmente egli dispone di tutta la documentazione di cui necessita già nella sua installazione del sistema \TeX completo e aggiornato; basta che apra un terminale e vi scriva dentro; \begin{flushleft} \texttt{texdoc} \meta{nome del pacchetto} \end{flushleft} -e, dopo aver premuto il tasto \fbox{invio}, sullo schermo del suo PC si apre la finestra che contiene la documentazione. +e, dopo aver premuto il tasto \tasto{invio}, sullo schermo del suo calcolatore si apre la finestra che contiene la documentazione. Conoscere l'elenco di questi pacchetti è importante proprio per non ricaricarli e per evitare conflitti quando si specificano opzioni diverse. -\section[Pacchetti che il laureando deve caricare personalmente]{\fontsize{16.5}{16.5}\selectfont Pacchetti che il laureando deve caricare personalmente} +\section[Pacchetti che il laureando deve caricare personalmente]{\fontsize{16}{16}\selectfont Pacchetti che il laureando deve caricare personalmente} -Si noti: non sono precaricati i pacchetti \pack{inputenc} per definire la codifica d'entrata; \pack{fontenc} per definire la codifica dei font di uscita; e non è preimpostato nessun font particolare da usare per la composizione della tesi. +Si noti: usando \prog{pdflatex}, non sono precaricati i pacchetti \pack{inputenc} per definire la codifica d'entrata; \pack{fontenc} per definire la codifica dei font di uscita; e non è preimpostato nessun font particolare da usare per la composizione della tesi. Usando uno degli altri due programmi, \prog{xelatex} o \prog{lualatex} è invece implicito che l'input e l'output abbiano codifica UNICODE. È voluto: \pack{inputenc} non deve essere caricato se si usano \XeLaTeX\ o \LuaLaTeX, ma in entrambi i casi l'editor che si usa per comporre il file sorgente \emph{deve} essere configurato in modo che salvi i file sorgente con la codifica \opt{utf8}. Con \pdfLaTeX\ ci sarebbe una certa libertà nello scegliere la codifica d'entrata, ma, insisto, sarebbe meglio in ogni caso evitare di usare qualunque altra codifica diversa da \opt{utf8}. -Per i font di uscita la o le codifiche da specificare dipendono dalle lingue usate; ripeto la raccomandazione di preferire i font espressamente confezionati per l'uso con \pdfLaTeX, quando si compone con questo programma; se si usano i programmi \XeLaTeX\ o \LuaLaTeX\ si abbia l'accortezza di usare il pacchetto \pack{fontspec} specificandogli le opzioni giuste e caricando poi, mediante se sue funzionalità, i font OpenType di cui si sia accertata la presenza sulla propria macchina, e si sia verificato che contengano tutti i glifi che si intendono usare nella tesi. Tanto per citare l'importanza di questa verifica, questi programmi lavorano di default con i font Latin Modern, che, come dice il nome, contengono \emph{solo} i caratteri latini. Se ci fosse bisogno di scrivere in greco o in cirillico, per esempio, allora i font OpenType UCM (distribuiti con il sistema \TeX\ completo e aggiornato) contengono anche questi alfabeti. +Per i font di uscita la o le codifiche da specificare dipendono dalle lingue usate; ripeto la raccomandazione di preferire i font espressamente confezionati per l'uso con \pdfLaTeX, quando si compone con questo programma; se si usano i programmi \XeLaTeX\ o \LuaLaTeX\ si abbia l'accortezza di usare il pacchetto \pack{fontspec} (che \emph{non} è precaricato) specificandogli le opzioni giuste e caricando poi, mediante le sue funzionalità, i font OpenType di cui si sia accertata la presenza sulla propria macchina e si sia verificato che contengano tutti i glifi che si intendono usare nella tesi. Tanto per citare l'importanza di questa verifica, questi programmi lavorano di default con i font Latin Modern, che, come dice il nome, contengono \emph{solo} i caratteri latini. Se ci fosse bisogno di scrivere in greco o in cirillico, per esempio, allora i font OpenType \Font{UCM}\footnote{Questi font sono distribuiti con il sistema \TeX completo e aggiornato; la sigla UCM sta per \Font{Unicode Computer Modern}; contiene un solo corpo che può essere ingrandito o rimpicciolito a piacere; contiene sia i font latini, sia quelli greci e quelli cirillici; sostanzialmente contiene tutti i glifi greci che sono disponibili con la collezione CBfonts, anche quelli insoliti come `qoppa", `stigma' e `sampi".} contengono anche questi alfabeti. + +Ecco quindi che la specificazione delle codifiche dei font di uscita è importante per \pdfLaTeX\ perché con questo programma i font predefiniti sono i \Font{Computer Modern} codificati in \opt{OT1}; questi infatti mancano di qualunque segno accentato e non sono nemmeno completamente compatibili con la codifica \acro{ascii}. Questi font preimpostati potevano (forse) andare bene ai primordi dell'esistenza del sistema \TeX ma non vanno bene oggi nemmeno per l'inglese, visto che anche in inglese si fanno citazioni di testi o di nomi di persone in lingue straniere che usano caratteri latini accentati. -Ecco quindi che la specificazione delle codifiche dei font di uscita è importante per \pdfLaTeX\ perché con questo programma i font predefiniti sono i Computer Modern codificati in \opt{OT1}, cioè mancano di qualunque segno accentato e non sono nemmeno completamente compatibili con la codifica \acro{ascii}. Questi font preimpostati potevano (forse) andare bene ai primordi dell'esistenza del sistema \TeX\ ma non vanno bene oggi nemmeno per l'inglese, visto che anche in inglese si fanno citazioni di testi o di nomi di persone in lingue straniere che usano caratteri latini accentati. +Per motivi diversi non si sono caricati altro che pacchetti funzionali alla classe, ma nessun pacchetto specifico per scopi particolari della tesi (piccole eccezioni che confermano la regola: i moduli per la tesina e per la tesi ScuDo preimpostano alcuni altri pacchetti); per esempio, per la composizione della matematica estesa, non si sono caricati \pack{amsmath}, \pack{amssymb} (che a sua volta carica \pack{amsfonts}), né \pack{amsthm} per la definizione di enunciati come teoremi, lemmi corollari, definizioni e simili, né \pack{bm}, per comporre in neretto simboli isolati di una espressione matematica. Se si usano \XeLaTeX\ o \LuaLaTeX\ si possono caricare i pacchetti \pack{amsmath} e \pack{amsthm}, ma non si devono assolutamente caricare i pacchetti \pack{amssymb} e \pack{amsfonts}; invece si deve specificare il pacchetto \pack{unicode-math} e bisogna esplicitamente indicare i font OpenType matematici che si vogliono usare. -Per motivi diversi non si sono caricati i pacchetti per la composizione della matematica estesa, \pack{amsmath}, \pack{amssymb} (che a sua volta carica \pack{amsfonts}); né i pacchetti \pack{amsthm} per la definizione di enunciati come teoremi, lemmi corollari, definizioni e simili, né il pacchetto \pack{bm} per comporre in neretto simboli isolati di una espressione matematica. +È certo che quegli ulteriori pacchetti sono utilissimi per ingegneri, fisici e matematici, forse anche per studiosi di altre discipline, ma è probabile che non siano utili per le tesi umanistiche. Il concetto alla base di queste scelte è il seguente: è bene non caricare pacchetti di utilità ipotetica sulla base del detto: ``non si sa mai, potrebbero tornare utili''. Alcuni di questi pacchetti sono stati caricati per comporre questa guida, perché vengono usati per davvero; ma, in generale, meno pacchetti si caricano meno possibilità di conflitti si generano\footnote{Tali conflitti non dovrebbero mai generarsi, tuttavia in un sistema aperto come il sistema \TeX, che accetta contributi da ``chiunque'', è inevitabile che non tutti i collaboratori seguano gli stessi stili di programmazione; per cui i conflitti sono molto rari, ma purtroppo ci sono.} + +Non si sono caricati nemmeno i pacchetti per il disegno programmato come, per esempio, \pack{tikz}; a un laureando in ingegneria certamente servono, a un laureando in letteratura medievale difficilmente potrebbero servire, ma non venga in mente al laureando di caricare quei font che non gli permettono di comporre la matematica secondo le norme ISO-UNI; fra questi ci sono i font \file{euler}, certamente molto belli, ma non consentono di rispettare le norme ISO-UNI, perché i caratteri non sono inclinati come invece deve essere in un buon corsivo matematico (\emph{math italics}) e molti caratteri non sono facilmente distinguibili da quelli composti in tondo (\emph{roman}) Le norme ISO-UNI, applicabili alle discipline che usano la matematica delle grandezze, prescrivono un uso molto specifico di font di famiglie e serie diverse, in quanto queste assumono significati particolari per questo tipo di matematica. -Non si sono caricati nemmeno i pacchetti per il disegno programmato come, per esempio, \pack{tikz}; a un laureando in ingegneria certamente servono, a un laureando in letteratura medievale difficilmente potrebbero servire, ma non venga in mente al laureando di caricare quei font che non gli permettono di comporre la matematica secondo le norme ISO-UNI; fra questi ci sono i font \file{euler}, certamente molto belli, ma non consentono di rispettare le norme ISO-UNI, perché il font non è inclinato come invece deve essere un buon corsivo matematico (\emph{math italics}) e molti caratteri non sono facilmente distinguibili da quelli composti in tondo (\emph{roman}). \section{Pacchetti da non caricare affatto} -\textcolor{red}{Non si devono assolutamente caricare pacchetti che modifichino l'aspetto della pagina, né caricare pacchetti che modifichino la composizione dei titoli o delle didascalie o delle note}; eccezionalmente il pacchetto \pack{caption} può venire caricato; \class{toptesi} verifica se tale pacchetto è stato effettivamente caricato e, nel caso, non definisce nemmeno la macro per le didascalie esplicitamente creata per la composizione delle tesi. +\textcolor{red}{Non si devono assolutamente caricare pacchetti che modifichino l'aspetto della pagina, né caricare pacchetti che modifichino la composizione dei titoli o delle didascalie o delle note}; eccezionalmente si può caricare il pacchetto \pack{caption}; \TOPtesi verifica se tale pacchetto è stato effettivamente caricato e, nel caso, non definisce nemmeno le macro che esso userebbe per le sue didascalie. + +Se si vuole fare questo genere di modifiche, stile della pagina, testatine, piedini, note, \dots\ è meglio rivolgersi ad altri pacchetti diversamente configurabili; cito fra gli altri \class{suftesi}, \class{sapthesis}; ma quando si va a leggerne la documentazione si scopre che tutti vietano la modifica dell'aspetto della pagina o dei titoli o delle didascalie, a meno che quelle stesse classi non dispongano di comandi già predisposti per la personalizzazione di alcuni di quegli elementi. -Se si vogliono fare questo genere di modifiche, stile della pagina, testatine, piedini, note, \dots\ è meglio rivolgersi ad altri pacchetti diversamente configurabili; cito fra gli altri \class{suftesi}, \class{sapthesis}; ma quando si va a leggerne la documentazione si scopre che tutti vietano la modifica dell'aspetto della pagina o dei titoli o delle didascalie, a meno che quelle stesse classi non dispongano di comandi già predisposti per la personalizzazione di quegli elementi. +Se il laureando va a cercare in rete altri pacchetti per comporre tesi, si trova davanti allo stesso ostacolo. Se la propria università prescrive stili di pagina diversi o mette a disposizione file classe appositi (di solito piuttosto datati e costruiti male), si renderebbe necessario creare una classe apposita per soddisfare quelle esigenze. Non saprei cosa consigliare, se non ricorrere ad una classe generica, per esempio \class{book}, e caricare tutti i possibili pacchetti di configurazione che si considerino necessari, per arrivare ad un risultato come quello richiesto dalla propria sede universitaria; i pacchetti preconfezionati come \TOPtesi, e gli altri citati sopra, risparmiano questo lavoro, ma sono rigidi. In fondo anche \TOPtesi è costruito così: parte dalla classe \class{report} e vi costruisce attorno quello che si è voluto fare in base a prescrizioni valide per il Politecnico di Torino, ma lungamente discusse e concordate con l'ateneo e poi rese compatibili con le prescrizioni di diverse altre università. Non è certo un pacchetto perfetto, ma è un buon compromesso. -Se il laureando va a cercare in rete altri pacchetti per comporre tesi, si trova davanti allo stesso ostacolo. Se la propria università prescrive stili di pagina diversi o mette a disposizione file classe appositi (di solito piuttosto datati e costruiti male), si renderebbe necessario creare una classe apposita per soddisfare quelle esigenze. Non saprei cosa consigliare, se non ricorrere ad una classe generica come \class{book} e caricare tutti i possibili pacchetti di configurazione che si considerino necessari, per arrivare ad un risultato come quello richiesto dalla propria sede universitaria; i pacchetti preconfezionati come TOPtesi, e gli altri citati sopra, risparmiano questo lavoro, ma sono rigidi. In fondo anche TOPtesi è costruito così: parte dalla classe \class{report} e vi costruisce attorno quello che si è voluto fare in base a prescrizioni valide per il Politecnico di Torino, ma lungamente discusse e concordate con l'ateneo e poi rese compatibili con le prescrizioni di diverse altre università. Non è certo un pacchetto perfetto, ma è un buon compromesso. +\goodpagebreak[5] \section{Comandi e ambienti di TOPtesi} -Nel capitolo~\ref{cap:comandispecifici} sono descritti i comandi specifici e gli ambienti introdotti da TOPtesi in aggiunta a quelli della classe \class{report} originali o modificati da TOPtesi. +Nel capitolo~\ref{cap:comandispecifici} sono descritti i comandi specifici e gli ambienti introdotti da \TOPtesi in aggiunta a quelli della classe \class{report} originali o modificati da \TOPtesi. -La maggior parte di questi comandi si riferisce alla compilazione del frontespizio, ma è bene che il laureando li abbia sempre a portata di mano per poter eseguire le molteplici personalizzazioni che sono offerte da TOPtesi, in particolare dal suo pacchetto \pack{topfront}. Quel capitolo contiene anche le figure che rappresentano otto tipici frontespizi in italiano, per elaborati finali della laurea triennale, per la laurea magistrale, per la dissertazione dottorale, sia svolte in singoli atenei, sia svolte in atenei associati. Sia con i loghi in testa alla pagina sia con questi loghi nella metà inferiore della pagina. Sono tante varianti che possono soddisfare molte esigenze, ma che evidentemente non le soddisfano tutte. Queste sono quelle previste e il pacchetto \pack{topfront} non è abbastanza elastico per gestirne altre. Se si vogliono stili diversi esiste sempre il pacchetto \pack{frontespizio} creato apposta da un altro docente universitario di un altro ateneo, quindi con un'altra visione d'insieme sull'aspetto dei frontespizi. Infine esiste sempre la possibilità di usare l'ambiente \amb{titlepage} per creare il frontespizio in modo assolutamente libero da ogni vincolo. +La maggior parte di questi comandi si riferisce alla compilazione del frontespizio, ma è bene che il laureando li abbia sempre a portata di mano per poter eseguire le molteplici personalizzazioni che sono offerte da \TOPtesi, in particolare dal suo pacchetto \pack{topfront} e dagli altri moduli predisposti per questo scopo. + +Data la moltitudine di personalizzazioni possibili e di moduli indipendenti per ciascun tipo di tesi; nel seguito verrano descritti anche con immagini, particolari disposizioni dei frontespizi. + +In un capitolo successivo si mostreranno i tipi di frontespizi (otto diversi tipi) che si possono ottenere con il pacchetto \pack{topfront}, quello che compone di default i frontespizi quando non si specificano opzioni per tipi di tesi diverse. + +Quel capitolo contiene anche le figure che rappresentano otto tipici frontespizi in italiano, per elaborati finali della laurea triennale, per la laurea magistrale, per la dissertazione dottorale, sia svolte in singoli atenei, sia svolte in atenei associati. Sia con i loghi in testa alla pagina sia con questi loghi nella metà inferiore della pagina. Sono tante varianti che possono soddisfare molte esigenze, ma che evidentemente non le soddisfano tutte. Queste sono quelle previste e il pacchetto \pack{topfront} non è abbastanza elastico per gestirne altre. Se si vogliono stili diversi esiste sempre il pacchetto \pack{frontespizio} creato apposta da un altro docente universitario di un altro ateneo, quindi con un'altra visione d'insieme sull'aspetto dei frontespizi. Infine esiste sempre la possibilità di personalizzare il frontespizio (ricorrendo all'ambiente \amb{titlepage}) per crearlo in modo assolutamente libero da ogni vincolo. In quel capitolo sono anche rappresentati i quattro frontespizi fondamentali nella figura~\ref{fig:frontespizi}; è importante avere queste quattro figurine sotto gli occhi per sapere come comporre il proprio frontespizio in modo che corrisponda alle prescrizioni del proprio ateneo. Il laureando non dedichi invece troppo tempo alla lettura del paragrafo~\ref{sec:PDFA} e seguenti, perché vi si parla di come comporre la tesi in modo che soddisfi alle prescrizioni di archiviabilità introdotte dalle norme ISO~19005 e successive. Quanto scritto in quei paragrafi serve solo se è richiesta la tesi in versione archiviabile secondo le norme ISO. In ogni caso, se non è richiesto, non è opportuno addentrarsi per questa strada; se è richiesto, le operazioni necessarie si possono eseguire a tesi completata come ultimo tocco finale. +\goodpagebreak[9] + \section{Modelli di tesi e di frontespizi} -Ricordo infine che il pacchetto TOPtesi contiene anche un certo campionario di modelli di tesi e di frontespizi di vario genere, che possono essere composti con diversi motori di composizione. Il laureando può servirsene in modo molto semplice: copia il file di esempio nella propria cartella di lavoro, gli cambia nome e poi modifica il modello commentando o de-commentando alcune righe, togliendo parti che non servono; per esempio vi ho messo un piccolo esempio di ringraziamenti, ma i ringraziamenti non andrebbero mai usati -- vedi più avanti perché; vi ho messo un piccolo esempio di dedica, ma le dediche sono superflue nel 99\% dei casi; eccetera. +Ricordo infine che il pacchetto \TOPtesi contiene anche un certo campionario di modelli di tesi e di frontespizi di vario genere, che possono essere composti con diversi programmi di composizione. Il laureando può servirsene in modo molto semplice: copia il file di esempio nella propria cartella di lavoro, gli cambia nome e poi modifica il modello commentando o de-commentando alcune righe, togliendo parti che non servono; per esempio, vi ho messo un piccolo esempio di ringraziamenti, ma i ringraziamenti non andrebbero mai usati -- vedi più avanti perché--; vi ho messo un piccolo esempio di dedica, ma le dediche sono superflue nel 99\% dei casi; eccetera. + +Ripulito il preambolo delle cose che non servono, e scelte le righe ritenute necessarie, basta cambiare i nomi di fantasia che ho usato e i testi di fantasia che ho inserito per ottenere lo schema della tesi, che va poi riempito col contenuto relativo a quella che si vuole effettivamente comporre. -Ripulito il preambolo delle cose che non servono, e scelte le righe ritenute necessarie, basta cambiare i nomi di fantasia che ho usato e i testi di fantasia che ho inserito per ottenere lo schema della tesi, che va poi riempito col contenuto relativo alla tesi che si vuole effettivamente comporre. +Per le tesi di dottorato della ScuDo si è anche predisposto uno schema scritto in inglese dove sono ripetute alcune cose che sono scritte in qualunque guida, ma con le varianti specifiche per le estensioni appositamente create per quella scuola. @@ -309,8 +512,8 @@ Ripulito il preambolo delle cose che non servono, e scelte le righe ritenute nec Si legge ancora nelle istruzioni per scrivere le tesi di molte università italiane e straniere: -\begin{quote}\ttfamily -Comporre la tesi con interlinea 2 e con righe di 60 battute;~\dots +\begin{quote}\ttfamily\raggedright +Comporre la tesi con interlinea 2 e con righe di 60~battute;... \end{quote} Quelle università non si sono ancora accorte che le macchine da @@ -325,17 +528,12 @@ marca e con qualunque sistema operativo. Fra i vari programmi disponibili, uno in particolare spicca per la sua particolarità: \LaTeX. Veramente esso non è un word processor, anche se a prima vista lo sembrerebbe; il suo scopo non è finalizzato al testo in quanto tale, bensì alla sua composizione tipografica; esso è un programma di \emph{tipocomposizione}. -\LaTeX\ è nato come -sovrastruttura di un altro programma, \TeX, che continua ad -esserne il motore. La prima versione di \TeX\ è stata creata nel -1978, ma è ancora usata oggi, naturalmente molto aggiornata e ampliata, e -questo fatto è una cosa insolita nel panorama turbolento di novità -dell'informatica. +\LaTeX è una specie di linguaggio di programmazione che viene interpretato da altri programmi, come \prog{pdftex}, \prog{xetex}, e \prog{luatex}. La prima versione del sistema \TeX è stata creata nel +1978, ma il programma è ancora molto usato oggi, naturalmente molto aggiornato e ampliato, e questo fatto è una cosa insolita nel panorama turbolento di novità dell'informatica. Secondo me, il suo successo è dovuto a due fatti: (a) esso è stato progettato e implementato da un matematico per comporre i suoi -stessi libri di informatica matematica; (b)~egli l'ha messo a disposizione di -chiunque, sin dal primo momento, come software libero. +stessi libri di informatica matematica; (b)~egli l'ha messo a disposizione di chiunque, sin dal primo momento, come software libero. Oggi il software libero è piuttosto diffuso, ma nel 1978 parlare di software libero era quasi una bestemmia. @@ -351,51 +549,51 @@ fare. La cosa era o stava diventando insostenibile durante i vari anni in cui uscivano i successivi volumi dell'opera di Knuth \emph{The Art of Computer Programming}, e così Knuth si dedicò alla creazione -della tipografia elettronica realizzando il programma \TeX\ che, -ripeto, è ancora in ottima salute e molto vivace dopo oltre trent'anni di -onorato servizio. +della tipografia elettronica realizzando il programma \TeX che, +ripeto, è ancora in ottima salute e molto vivace dopo oltre trent'anni di onorato servizio. -L'uso di \TeX\ per eseguire direttamente la composizione era piuttosto -difficile, e ogni utente doveva prima o poi imparare a scriversi delle -macroistruzioni che gli consentissero di agevolare il suo lavoro. +L'uso di \TeX per eseguire direttamente la composizione era +piuttosto difficile, e ogni utente doveva prima o poi imparare a scriversi delle macroistruzioni che gli consentissero di agevolare il suo lavoro. -Nel 1984 \TeX\ era già così diffuso in tutto il mondo, +Nel 1984 \TeX era già così diffuso in tutto il mondo, specialmente in ambito accademico, che Leslie Lamport decise di produrre un sistema quasi completo di macro che consentisse agli -utenti di usare \TeX\ lasciandolo dietro le quinte, in modo da +utenti di usare \TeX lasciandolo dietro le quinte, in modo da potersi concentrare sul contenuto dei loro scritti e non sulla forma da dare a questo o a quel dettaglio. -Nel 1990 Knuth pubblicò la versione di \TeX\ che consentiva di +Nel 1990 Knuth pubblicò la versione di \TeX che consentiva di comporre in diverse lingue simultaneamente; nel 1994 molti utenti -di \LaTeX\ costituirono il \LaTeX3 Team al fine di rendere -gestibile la mole enorme delle estensioni di \LaTeX\ che in +di \LaTeX costituirono il \LaTeX\,3 Team al fine di rendere +gestibile la mole enorme delle estensioni di \LaTeX che in 10~anni utenti entusiasti avevano messo a disposizione della -comunità degli altri utenti. Insomma è successo con \TeX\ e -\LaTeX\ quello che succede normalmente con il software libero. +comunità. Insomma è successo con \TeX e +\LaTeX quello che succede normalmente con il software libero. Attenzione: Knuth paga di tasca sua un assegno a chiunque trovi un errore nel suo software; a tutt'oggi non è andato in bancarotta, sia perché gli errori sono rarissimi, sia perché quelle poche persone che hanno segnalato errori veri e hanno ricevuto l'assegno di Knuth, non l'hanno incassato ma l'hanno incorniciato come -una reliquia preziosa. +una preziosa onorificenza. -\section{\LaTeX\ e le tesi di laurea} +\section{\LaTeX e le tesi di laurea} -Ovviamente \LaTeX\ serve per scrivere qualunque cosa; o meglio; -serve per comporre tipograficamente qualunque testo. \LaTeX\ non è +Ovviamente \LaTeX serve per scrivere qualunque cosa; o meglio; +serve per comporre tipograficamente qualunque testo. \LaTeX non è un programma di impaginazione, è un programma di composizione tipografica. Non aspettatevi quindi di poter fare qualunque acrobazia con le righe di testo, come per esempio piegarle, deformando i caratteri che vi sono appoggiati sopra, mettendovi attorno aloni di luce cangiante, sfumature, ombreggiature, evidenziandone i contorni, eccetera. Queste cose -sono riservate ai creativi che si occupano di pubblicità. +sono riservate ai creativi che si occupano di pubblicità e lo fanno servendosi di altri programmi. Aspettatevi invece di comporre testi in cui ogni capoverso è ottimizzato per avere il minor numero di parole divise in sillabe in fin di riga, e di avere il minor numero possibile di ``ruscelli'' fra le parole grazie alla uniformità dello spazio interparola; aspettatevi di comporre formule complicatissime con il minimo di sforzo da parte vostra ma con la certezza che esse saranno composte come nessun altro programma riesce a fare. Se state componendo una tesi nel campo delle scienze umane aspettatevi il meglio in assoluto; se poi vi interessate di filologia di lingue antiche, non c'è altro programma che possiate usare a questo scopo. Aspettatevi uno stampato estremamente professionale. +\LaTeX può fare alcune cose grafiche; di suo dispone di una certa modesta funzionalità, ma sufficiente per molti scopi; con pacchetti come \pack{tikz} può fare miracoli; con \pack{PSTricks} ne pò fare anche di più. + Per questo motivo voi studenti che userete questo pacchetto di -macroistruzioni chiamato \textsf{TOPtesi} dovrete astenervi +macroistruzioni chiamato \TOPtesi dovrete astenervi dall'introdurre errori compositivi così da vanificare quanto di bello riesce a produrre \LaTeX. @@ -407,106 +605,92 @@ questi programmi hanno necessariamente rinunciato a diverse funzioni, badando invece a presentare sullo schermo con la massima velocità il testo composto. -\LaTeX\ richiede che voi scriviate un testo non formattato in puri -caratteri ASCII\footnote{In realtà potete scrivere con qualunque set di caratteri e con qualunque \emph{codifica}; oggi poi è possibile avere editor testuali che usano la codifica UNICODE, che consente, essendone capaci, di scrivere anche in cinese. Il documento che state leggendo è stato composto usando un file sorgente codificato in UNICODE; non contiene caratteri cinesi, ma avrei potuto farlo se conoscessi il cinese!}, ma marcato con un particolare sistema di -\emph{mark-up} che consente di sapere che cosa sia ogni parte del -vostro scritto: una equazione, una citazione, una enumerazione, una elencazione, una descrizione, una poesia, una bibliografia, una epigrafe, eccetera. Ci pensa poi \LaTeX\ in un secondo tempo a dare forma -al vostro testo e, in particolare, a dare la stessa forma a ogni -elemento del vostro scritto a seconda di come lo abbiate ``marcato''; -elementi marcati nello stesso modo vengono composti nello stesso modo. -Così si evitano quelle disuniformità compositive che si notano assai -spesso quando si usa un word processor comune. +\LaTeX richiede che voi scriviate un testo non formattato in puri +caratteri ASCII\footnote{In realtà potete scrivere con qualunque set di caratteri e con qualunque \emph{codifica}; oggi poi è possibile avere editor testuali che usano la codifica UNICODE, che consente, essendone capaci, di scrivere anche in cinese. Il documento che state leggendo è stato composto usando un file sorgente codificato in UNICODE; non contiene caratteri cinesi, ma avrei potuto farlo se conoscessi questa lingua!}, ma marcato con un particolare sistema di \emph{mark-up} che consente di sapere che cosa sia ogni parte del vostro scritto: una equazione, una citazione, un'enumerazione, un'elencazione, una descrizione, una poesia, una bibliografia, un'epigrafe, eccetera. Ci pensa poi \LaTeX in un secondo tempo a dare forma al vostro testo e, in particolare, a dare la stessa forma a ogni elemento del vostro scritto a seconda di come lo abbiate ``marcato''; elementi marcati nello stesso modo vengono composti nello stesso modo. Così si evitano quelle disuniformità compositive che si notano assai spesso quando si usa un word processor comune. -Attenzione: questa guida presuppone che voi abbiate già una conoscenza di base del linguaggio \LaTeX. Se non l'avete ancora, installate pure il programma, ma non usate questa guida per imparare a comporre testi con \LaTeX. Esistono diversi testi gratuiti in rete, da \emph{\LaTeX\ per l'impaziente} a \emph{L'Arte di scrivere con \LaTeX} a \emph{Introduzione all'arte della composizione tipografica con \LaTeX}; basta cercare questi titoli in rete e si troverà da dove scaricarli. +Attenzione: questa guida presuppone che voi abbiate già una conoscenza di base del linguaggio \LaTeX. Se non l'avete ancora, installate pure il programma, ma non usate questa guida per imparare a comporre testi con \LaTeX. Esistono diversi testi gratuiti in rete, da \emph{\LaTeX per l'impaziente} a \emph{L'Arte di scrivere con \LaTeX}, da \emph{Introduzione all'arte della composizione tipografica con \LaTeX} a \emph{\LaTeX\-pedia}; basta cercare questi titoli in rete e si troverà da dove scaricarli. -Ricordatevi però che il vostro primo problema sarà quello di superare lo scoglio psicologico di non vedere subito il frutto delle vostre fatiche; abituati come siete ai word processor che seguono il paradigma \emph{What you see is what you get} (Quello che vedi è quello che ottieni), che più realisticamente andrebbe scritto \emph{What you see is all you can get} (Quello che vedi è tutto ciò che puoi ottenere), dovete passare al paradigma: \emph{What you see is what you mean}, dove l'aspetto grafico di quel che si vede sullo schermo del PC in fase di scrittura iniziale non è importante, ma è importante quello che avete scritto; il suo aspetto grafico gli verrà dato da \LaTeX\ in un secondo tempo e in una maniera estremamente professionale. +Ricordatevi però che il vostro primo problema sarà quello di superare lo scoglio psicologico di non vedere subito il frutto delle vostre fatiche; abituati come siete ai word processor che seguono il paradigma \emph{What you see is what you get} (Quello che vedi è quello che ottieni), che più realisticamente andrebbe scritto \emph{What you see is all you can get} (Quello che vedi è tutto ciò che puoi ottenere), dovete passare al paradigma: \emph{What you see is what you mean}, dove l'aspetto grafico di quel che si vede sullo schermo del PC in fase di scrittura iniziale non è importante, ma è importante il significato di ciò che avete scritto; il suo aspetto grafico gli verrà dato da \LaTeX in un secondo tempo e in una maniera estremamente professionale. -Non pretendo di dire che non si possano scrivere tesi ancora più professionali di come si ottengono con \textsf{TOPtesi}, ma certo il risultato è molto migliore di quello che si può ottenere con qualsiasi word processor. +Non pretendo di dire che non si possano scrivere tesi ancora più professionali di come si ottengono con \TOPtesi, ma certo il risultato è molto migliore di quello che si può ottenere con qualsiasi word processor. -Vi sconsiglio fortemente di lasciarvi ``attrarre'' dall'usare programmi come LyX o TeXmacs; vi danno l'illusione di comporre come fareste con un comune word processor, anzi TeXmacs usa gli stessi font che userebbe \LaTeX; è tutta una illusione; la comodità del comporre in modo da vedere sullo schermo qualcosa che vorrebbe essere molto simile a quanto \LaTeX\ produrrà, vi distrae dal vostro compito di fare attenzione al significato di quello che scrivete, e vi mettete a ``giocare'' con la sua forma. Non solo, ma quando vorrete estendere le capacità di presentare il testo che volete scrivere alla ``\LaTeX'', scoprirete ben presto che con LyX è molto difficile e con TeXmacs è impossibile. +Vi consiglio fortemente di \emph{non} lasciarvi ``attrarre'' dall'usare programmi come LyX o TeXmacs; vi danno l'illusione di comporre come fareste con un comune word processor, anzi TeXmacs usa gli stessi font che userebbe \LaTeX; è tutta una illusione; la comodità del comporre in modo da vedere sullo schermo qualcosa che vorrebbe essere molto simile a quanto \LaTeX produrrà, vi distrae dal vostro compito di fare attenzione al significato di quello che scrivete, e vi mettete a ``giocare'' con la sua forma. Non solo, ma quando vorrete estendere le capacità di presentare il testo che volete scrivere alla ``\LaTeX'', scoprirete ben presto che con LyX è molto difficile e con TeXmacs è impossibile. -Procuratevi invece un ottimo \emph{shell editor} predisposto per lavorare con \LaTeX, \XeLaTeX e \LuaLaTeX; supererete ben presto l'imbarazzo di non poter vedere subito il risultato del vostro scrivere, ma sarete abbondantemente ricompensati dalle infinite possibilità compositive dei programmi del sistema \TeX. Più avanti ne parlerò diffusamente, ma qui ho voluto avvisarvi subito di non farvi incantare dal canto delle sirene come LyX e TeXmacs. +{\tolerance=3000 Procuratevi invece un ottimo \emph{shell editor} predisposto per lavorare con \pdfLaTeX, \XeLaTeX e \LuaLaTeX; supererete ben presto l'imbarazzo di non poter vedere subito il risultato del vostro scrivere, ma sarete abbondantemente ricompensati dalle infinite possibilità compositive dei programmi del sistema \TeX. Più avanti ne parlerò diffusamente, ma qui ho voluto avvisarvi subito di non farvi incantare dal canto delle sirene come LyX e TeXmacs.\par} \section{Installare \LaTeX} -Per cominciare a lavorare con \LaTeX\ per prima cosa dovete -installarvi il software; ovviamente se vi siete già installati -l'intero sistema \TeX\ ed è già calibrato per comporre -correttamente, potete saltare questo paragrafo. -Ci sono sostanzialmente tre situazioni. -\begin{description} -\item[Windows] Gli utenti delle piattaforme Windows possono collegarsi in rete al sito \url{www.miktex.org} e scaricarvi ed installarsi la distribuzione di \LaTeX, o meglio, del sistema \TeX\ chiamata \MiKTeX. Se si procede per questa via, allora si scarichi l'installazione completa, anche se si potrebbe installare la versione di base \texttt{small-miktex} che, seguendo le istruzioni di installazione, bisogna configurare in modo da consentirle di scaricare dalla rete ogni possibile pacchetto di estensione che possa via via essere necessario. +Potete saltare questo paragrafo, se avete già installato il necessario per lavorare con \LaTeX; ma non credo che sia inutile che gli diate almeno una rapida scorsa, specialmente se lavorate su piattaforme Windows o piattaforme Linux conformi alle prescrizioni del consorzio Debian. Potreste scoprire che la vostra installazione non è completa o ha delle restrizioni eccessive. -Ovviamente questo modo di installare e usare il sistema \TeX\ implica una connessione di rete sufficientemente veloce; personalmente, quando usavo una piattaforma Windows, ero solito scaricare la versione completa ed ero molto soddisfatto. -Oggi, però, anche su una macchina Windows consiglierei di installare la distribuzione \TeXLive che viene gestita nello stesso modo sia sulle piattaforme Windows, Linux e Mac. Il pregio è che \TeXLive viene aggiornata quasi quotidianamente sui server e comunque è la versione dalla quale il curatore di MiKTeX attinge per creare gli aggiornamenti della sua distribuzione; necessariamente, quindi, prima che il curatore sia riuscito a portare MiKTeX allo stesso livello di \TeXLive, passano di solito alcune settimane, a volte anche di più; non voglio togliere niente alla bravura del curatore, ma il progetto MiKTeX è il lavoro di un solo uomo, mentre \TeXLive è il frutto del lavoro di una squadra completa e attivissima. +Ci sono sostanzialmente tre situazioni. +\begin{description}[noitemsep] +\item[Windows] Gli utenti delle piattaforme Windows possono collegarsi in rete al sito \url{www.miktex.org} e scaricarsi ed installarsi la distribuzione di \LaTeX, o meglio, del sistema \TeX chiamata \MiKTeX. Se si procede per questa via, allora si scarichi l'installazione completa, anche se si potrebbe installare la versione di base \texttt{small-miktex} che, seguendo le istruzioni di installazione, bisogna configurare in modo da consentirle di scaricare dalla rete ogni possibile pacchetto di estensione che possa via via essere necessario. -\item[Linux] Gli utenti di Linux sono particolarmente fortunati perché il sistema \TeX\ è spesso parte integrante di qualunque variante di Linux, anche se non viene installato di default; basta inserire il disco di installazione o basta connettersi in rete e invocare uno dei vari programmi come \prog{apt-get}, \prog{rpm}, \prog{yast} o~\dots\ per scaricare tutto quanto serve e per configurare l'installazione. Bisogna ricordarsi che Linux è un po' più ``ruspante'' di Windows, e quindi la configurazione richiede un po' più di attenzione e di ``smanettamento'' con la riga di comando; ma a questo i ``pinguini doc'' ci sono abituati; in compenso si ha il beneficio di avere tutto quanto il software già predisposto fin dalla nascita per macchine UNIX e Linux e quindi si evitano tutti i (pochi) piccoli bug che si incontrano quando le cose sono tradotte per altri sistemi operativi. +Ovviamente questo modo di installare e usare il sistema \TeX implica una connessione di rete sufficientemente veloce; personalmente, quando usavo una piattaforma Windows, ero solito scaricare la versione completa ed ero molto soddisfatto. -Si faccia solo attenzione alle distribuzioni Debian; sono eccellenti e ne è garantita la compatibilità con ogni sistema operativo conforme ai dettami del consorzio Debian, ma solitamente sono in ritardo di alcuni mesi, in passato anche di un paio di anni, rispetto alle versioni aggiornate pubblicate dal \TeX\ Users Group! Appena si può si installi la distribuzione \TeXLive completa scaricata dal sito \url{http://www.tug.org/ctan.html} ufficiale. Esiste in rete un testo intitolato \emph{texlive-ubuntu.pdf}\footnote{Questo testo è stato scritto nel 2010 per installare \TeXLive su Ubuntu, che è di tipo Debian, ma ci sono anche le istruzioni per Fedora e OpenSuse; con piccole varianti sono istruzioni che vanno bene per qualunque macchina Linux.}, che si trova con qualunque motore di ricerca; specifica come installare \TeXLive fresco di giornata (e aggiornabile sistematicamente come detto sopra per le macchine Windows) a fianco della distribuzione Debian di \TeXLive; quest'ultima serve per soddisfare le dipendenze di altri programmi Debian; la prima, invece, serve per lavorare davvero. +Oggi, però, anche su una macchina Windows consiglierei di installare la distribuzione \TeXLive che viene gestita nello stesso modo sulle piattaforme Windows, Linux e Mac. Il pregio è che \TeXLive viene aggiornata quasi quotidianamente sui server e comunque è la versione dalla quale il curatore di \MiKTeX attinge per creare gli aggiornamenti della sua distribuzione; necessariamente, quindi, prima che il curatore sia riuscito a portare MiKTeX allo stesso livello di \TeXLive, passano di solito alcune settimane, a volte anche di più; non voglio togliere niente alla bravura del curatore, ma il progetto \MiKTeX è il lavoro di un solo uomo, mentre \TeXLive è il frutto del lavoro di una squadra completa e attivissima. -\item[Mac] Gli utenti delle piattaforme Macintosh e possessori di un portatile o di un desktop che funziona con il sistema operativo Mac~OS~X hanno anche loro a disposizione una distribuzione che si chiama \prog{Mac\TeX}, che viene installata e configurata con un particolare software adatto alla specificità del sistema operativo. Si cerchi il nome MacTeX con un qualunque motore di ricerca che indicherà un sito dal quale si può scaricare il pacchetto di installazione (piuttosto grosso); alla fine del download viene chiesto se continuare con l'installazione; rispondendo affermativamente, il software viene scaricato sul disco che si sarà indicato, ma quel che è più comodo, esso è già completo, come ogni distribuzione e installazione \TeXLive. Il sistema \prog{Mac\TeX} produce il suo output essenzialmente in formato PDF; se ne tenga conto leggendo attentamente la documentazione. Il pacchetto è già dotato dello shell editor \TeX{}Shop che fa ricorso ad un suo previewer interno per il formato PDF; questo previewer consente di eseguire sia l'\textit{inverse search} sia di fare la \textit{forward search}. Questo è estremamente comodo durante la fase di editing del documento. -%Potrebbe essere una buona idea scaricare dalla rete anche l'applicativo freeware Adobe Reader che dalla versione 9 in poi è anche in grado di riconoscere se un file è o potrebbe essere conforme al formato PDF/A, anche se non è in grado di validarlo come tale; Adobe Reader X, quando apre un file che potrebbe essere conforme allo standard PDF/A, apre in testa alla schermata una riga di informazione nella quale dice che il file è conforme a questo standard; non è il caso di prendere alla lettera quella affermazione, perché i file che vengono classificati conformi allo standard PDF/A da Adobe Reader X, talvolta non passano il test di Preflight di Adobe Acrobat. Tuttavia consente di estrarre delle informazioni che sono difficili da estrarre con altri visualizzatori dei file in formato PDF e consente di aggiungere annotazioni. Naturalmente esistono altri visualizzatori dei file in formato PDF; sulle macchine Apple il visualizzatore di sistema consente di aprire e di editare parzialmente anche altri formati grafici e consente di eseguire molte operazioni, in particolare sui file PDF, che in generale richiedono altri sofisticati programmi di editing grafico. +\item[Linux] Gli utenti di Linux sono particolarmente fortunati perché il sistema \TeX è spesso parte integrante di qualunque variante di Linux, anche se non viene installato di default; basta inserire il disco di installazione o basta connettersi in rete e invocare uno dei vari programmi come \prog{apt-get}, \prog{rpm}, \prog{yast} o~\dots\ per scaricare tutto quanto serve e per configurare l'installazione. Bisogna ricordarsi che Linux è un po' più ``ruspante'' di Windows, e quindi la configurazione richiede un po' più di attenzione e di ``smanettamento'' con la riga di comando; ma a questo i``pinguini doc'' ci sono abituati; in compenso si ha il beneficio di avere tutto quanto il software già predisposto fin dalla nascita per macchine UNIX e Linux e quindi si evitano tutti i (pochi) piccoli bug che si incontrano quando le cose sono tradotte per altri sistemi operativi. -%Attenzione, però: i previewer interni di \TeX{}shop e \TeX{works} consentono di eseguire l'\textit{inverse search} e, ovviamente, anche di fare la \textit{forward search}. Questo è molto comodo durante la fase di editing del vostro documento. Gli altri visualizzatori hanno difficoltà se non proprio l'impossibilità di ``accordarsi'' con la parte di editing testuale per consentire la ricerca diretta e inversa. Dal 2012 anche Texmaker e TeXstudio, entrambi multipiattaforma, sono dotati di visualizzatori interni che consentono la ricerca diretta e inversa; TeXstudio dalla versione 2.5 è anche in grado di interpretare le righe di autoconfigurazione scritte con le sintassi di \TeX{}shop e \TeX{}works, e si è aggiunto alla lista degli \emph{shell editor} che sanno interpretare le righe di autoconfigurazione. L'editor \prog{emacs} con il suo plug-in \pack{auctex}, funziona benissimo come shell editor per lavorare con \LaTeX, sembrerebbe che possa venire ``sincronizzato'' con un visualizzatore PDF con il quale poter eseguire la ricerca diretta e inversa; sa riconoscere le righe di autoconfigurazione che però sono scritte con una sintassi diversa da quella degli altri programmi nominati prima. +Si faccia solo attenzione alle distribuzioni Debian; sono eccellenti e ne è garantita la compatibilità con ogni sistema operativo conforme ai dettami del consorzio Debian, ma solitamente sono in ritardo di alcuni mesi, in passato anche di un paio di anni, rispetto alle versioni aggiornate pubblicate dal \TeX Users Group! Appena si può si installi la distribuzione \TeXLive completa scaricata dal sito \url{http://www.tug.org/ctan.html} ufficiale. Esiste in rete un testo intitolato \emph{texlive-ubuntu.pdf}\footnote{Questo testo è stato scritto nel 2010 per installare \TeXLive su Ubuntu, che è di tipo Debian, ma ci sono anche le istruzioni per Fedora e OpenSuse; con piccole varianti sono istruzioni che vanno bene per qualunque macchina Linux.}, che si trova in rete con qualunque motore di ricerca; specifica come installare \TeXLive fresco di giornata (e aggiornabile sistematicamente come detto sopra per le macchine Windows) a fianco della distribuzione Debian di \TeXLive; quest'ultima serve per soddisfare le dipendenze di altri programmi Debian; la prima, invece, serve per lavorare davvero. +\item[Mac] Gli utenti delle piattaforme Macintosh e possessori di un portatile o di un desktop che funziona con il sistema operativo Mac~OS~X hanno anche loro a disposizione una distribuzione che si chiama Mac\TeX, che viene installata e configurata con un particolare software adatto alla specificità del sistema operativo. Si cerchi il nome MacTeX con un qualunque motore di ricerca che indicherà un sito dal quale si può scaricare il pacchetto di installazione (piuttosto grosso); alla fine del download viene chiesto se continuare con l'installazione; rispondendo affermativamente, il software viene scaricato sul disco che si sarà indicato, ma quel che è più comodo, esso è già completo, come ogni distribuzione e installazione \TeXLive. Il sistema Mac\TeX produce il suo output essenzialmente in formato PDF; se ne tenga conto leggendo attentamente la documentazione. Il pacchetto è già dotato dello shell editor \TeXShop che fa ricorso ad un suo previewer interno per il formato PDF; questo previewer consente di eseguire sia l'\textit{inverse search} sia la \textit{forward search}. Questo è estremamente comodo durante la fase di editing del documento. +Non solo; \TeXShop ha una impostazione, attivabile e disattivabile in qualunque momento, con la quale le due finestre, quella di editing e quella che mostra il file PDF composto, normalmente indipendenti, possono essere riunite in un unica finestra, ed essere spostate, ridimensionate, abbattute nella task bar, recuperate dalla task bar, come se fossero un oggetto solo. Personalmente trovo questa funzionalità molto comoda specialmente su un laptop. \end{description} -Merita di segnalare che per tutte e tre le piattaforme è disponibile e, talvolta, è già installato di default anche l'editor \TeX{}works (multipiattaforma) che, con il suo visualizzatore interno, consente di eseguire la ricerca diretta e inversa. Ad alcuni, abituati a interfacce grafiche fornite di molte barre cariche di icone per eseguire il possibile e l'impossibile, \TeX{}works piace poco perché la sua schermata è minimale, ma c'è un motivo: nei moderni schermi larghi, con rapporto di forma 16:9, lo schermo contiene accostate e senza sovrapposizioni sia la finestra di editing sia quella del testo composto; questo è molto comodo, più di quanto si possa immaginare, per ``lavorare'' agevolmente il documento da comporre. Benché anche Texmaker e TeXstudio siano in grado di accostare le due schermate, essi consumano molto spazio per le barre superiori, inferiori e laterali, cosicché le vere aree destinate all'editing o alla visualizzazione ne risultano corrispondentemente ristrette, tanto da far preferire \TeX{}works sui laptop e ancor di più sui netbook. +Merita segnalare che per tutte e tre le piattaforme è disponibile e, talvolta, è già installato di default anche l'editor \TeXworks (multipiattaforma) che, con il suo visualizzatore interno, consente di eseguire la ricerca diretta e inversa. Ad alcuni, abituati a interfacce grafiche fornite di molte barre cariche di icone per eseguire il possibile e l'impossibile, \TeXworks piace poco perché la sua schermata è minimale, ma c'è un motivo: nei moderni schermi larghi, con rapporto di forma 16:9, lo schermo contiene accostate e senza sovrapposizioni sia la finestra di editing sia quella del testo composto; questo è molto comodo, più di quanto si possa immaginare, per ``lavorare'' agevolmente il documento da comporre. Benché anche Texmaker e TeXstudio siano in grado di accostare le due schermate, essi consumano molto spazio per le barre superiori, inferiori e laterali, cosicché le vere aree destinate all'editing o alla visualizzazione ne risultano corrispondentemente ristrette, tanto da far preferire \TeXworks sui laptop e ancor di più sui netbook. -Poi sono necessari i programmi accessori per visualizzare sullo schermo e/o stampare su carta i prodotti della composizione. Ognuna delle tre piattaforme tipo può avere già installati sia i visualizzatori dei file in formato \texttt{.dvi}, \texttt{.ps} o \texttt{.pdf}. Il formato \texttt{.dvi} è il formato nativo del sistema \TeX\ quindi il software per visualizzare e stampare arriva insieme alla distribuzione già installata, però oggi è un formato che non si usa quasi più. Per il formato \texttt{.ps} bisogna disporre di qualcosa come \prog{ghostscript} e/o \prog{GSView} o altri simili software che con Linux sono solitamente già disponibili insieme al sistema. In ogni caso non è difficile trovare in rete i luoghi da dove scaricarli. Per il formato \texttt{.pdf} Linux, come al solito è già attrezzato, ma non è male per tutti e tre i tipi di piattaforma il programma \prog{Adobe Reader} che la Adobe mette a disposizione di chiunque gratuitamente e per tutte le possibili piattaforme\footnote{Sembra che con Linux le cose non stiano più così, ma in rete si trovano ancora delle installazioni non recentissime, ma funzionanti, anche per Linux.}. Naturalmente l'\prog{Adobe Reader} è una specie di programma dimostrativo, per altro eccellente; ma credo che la Adobe lo metta a disposizione per far venire l'acquolina in bocca e per invogliare a comperare il prodotto commerciale completo \prog{Adobe Acrobat}; per gli studenti non costa molto in accordo con il programma Education di quell'azienda. Secondo me vale ogni dollaro che costa, ma ovviamente questo giudizio dipende dall'uso che se ne fa. -Oggi, invece, è molto importante disporre di visualizzatori PDF integrati con l'editor, in modo che siano predisposti per lavorare in tandem sia per mostrare costantemente a fianco della finestra di editing la finestra del file composto in formato PDF, sia per fare la ricerca diretta e inversa; oltre ai già citati \TeX{}shop (solo Mac) e \TeX{}works (multipiattaforma) posso citare gli editor TeXstudio e Texmaker (multipiattaforma e molto simili fra loro); altri \emph{shell editor} non dispongono di un visualizzatore integrato, ma possono venire ``sincronizzati'' con visualizzatori esterni; per esempio su piattaforme Windows il visualizzatore sincronizzabile è SumatraPDF; su Linux è Okular; su Mac ne posso citare altri due: TeXnicle (gratuito) e Texpad (commerciale, ma con un costo accessibilissimo) che non solo hanno il visualizzatore integrato, ma le loro ``finestre'' sono in realtà due parti di una stessa finestra; ingrandendola a pieno schermo si ottiene una comodità di composizione difficilmente ottenibile con altri sistemi. +Poi sono necessari i programmi accessori per visualizzare sullo schermo e/o stampare su carta i prodotti della composizione. Ognuna delle tre piattaforme tipo può avere già installati sia i visualizzatori dei file in formato \texttt{.dvi}, \texttt{.ps} o \texttt{.pdf}. Il formato \texttt{.dvi} è il formato nativo del sistema \TeX quindi il software per visualizzare e stampare arriva insieme alla distribuzione già installata, però oggi è un formato che non si usa quasi più. Per il formato \texttt{.ps} bisogna disporre di qualcosa come \prog{ghostscript} e/o \prog{GSView} o altri simili software che con Linux sono solitamente già disponibili insieme al sistema. In ogni caso non è difficile trovare in rete i luoghi da dove scaricarli. Per il formato \texttt{.pdf} Linux, come al solito è già attrezzato, ma non è male per tutti e tre i tipi di piattaforma il programma \prog{Adobe Reader} che la Adobe mette a disposizione di chiunque gratuitamente e per tutte le possibili piattaforme\footnote{Sembra che con Linux le cose non stiano più così, ma in rete si trovano ancora delle installazioni non recentissime, ma funzionanti, anche per Linux.}. Naturalmente l'\prog{Adobe Reader} è una specie di programma dimostrativo, per altro eccellente; ma credo che la Adobe lo metta a disposizione per far venire l'acquolina in bocca e per invogliare a comperare il prodotto commerciale completo \prog{Adobe Acrobat}; per gli studenti non costa molto in accordo con il programma Education di quell'azienda. Secondo me vale ogni dollaro che costa, ma ovviamente questo giudizio dipende dall'uso che se ne fa. -Anche Emacs (multipiattaforma), arricchito del plug-in Auctex, che lo rende particolarmente adatto per gestire i file del sistema \TeX, è sincronizzabile con vari visualizzatori PDF; avendo la pazienza di imparare ad usarlo in modo non superficiale, Emacs assieme ad Auctex rendono il lavoro con il sistema \TeX\ particolarmente comodo. +Oggi, invece, è molto importante disporre di visualizzatori PDF integrati con l'editor, in modo che siano predisposti per lavorare in tandem sia per mostrare costantemente a fianco della finestra di editing la finestra del file composto in formato PDF, sia per fare la ricerca diretta e inversa; oltre ai già citati \TeXShop (solo Mac) e \TeXworks (multipiattaforma) posso citare gli editor TeXstudio e Texmaker (multipiattaforma e molto simili fra loro); altri \emph{shell editor} non dispongono di un visualizzatore integrato, ma possono venire ``sincronizzati'' con visualizzatori esterni; per esempio su piattaforme Windows il visualizzatore sincronizzabile è SumatraPDF; su Linux è Okular. Su Mac citare altri due editor integrati: TeXnicle (gratuito) e Texpad (commerciale, ma con un costo accessibilissimo) che non solo hanno il loro visualizzatore sincronizzato, ma le loro ``finestre'' sono in realtà due parti di una stessa finestra; ingrandendola a pieno schermo si ottiene una comodità di composizione difficilmente ottenibile con altri sistemi. -%Per le piattaforme Linux esiste uno \emph{shell editor} che si chiama -%\prog{Kile} (KDE Integrated \LaTeX\ Environment) ed è fatto -%apposta per lavorare con \LaTeX. Esso è installabile anche sulle -%piattaforme Windows pur di disporre dell'ambiente \prog{Cygwin} -%(un simulatore di UNIX compatibile con la maggior parte dei -%sistemi operativi per Windows) dentro il quale si sia già -%installato tanto KDE (K Desktop Environment) quanto le sue -%librerie di sviluppo. Di solito \prog{Kile} è obbligato alla dipendenza da \TeXLive/Debian, per cui sarebbe meglio non farne uso. +Anche Emacs (multipiattaforma), arricchito del plug-in Auctex, che lo rende particolarmente adatto per gestire i file del sistema \TeX, è sincronizzabile con vari visualizzatori PDF; avendo la pazienza di imparare ad usarlo in modo non superficiale, Emacs assieme ad Auctex rendono il lavoro con il sistema \TeX particolarmente comodo. -Per le piattaforme Windows il programma di installazione di \MiKTeX\ offriva la possibilità di installare \prog{TeXnicCenter}, ma lo sconsiglio vivamente, perché non è all'altezza delle distribuzioni moderne di \MiKTeX\ e di \TeXLive; oggi mi pare che \MiKTeX\ venga distribuito con TeXstudio. C'è anche lo \emph{shell editor} WinEdt (shareware), ottimo e dalla versione 8 in poi sembra che sia dotato di un visualizzatore integrato PDF (comunque è sincronizzabile con SumatraPDF). +Per le piattaforme Windows il programma di installazione di \MiKTeX\ offriva la possibilità di installare \prog{TeXnicCenter}, ma lo sconsiglio vivamente, perché non è all'altezza delle distribuzioni moderne di \MiKTeX\ e di \TeXLive; oggi mi pare che \MiKTeX\ venga distribuito con TeXstudio. C'è anche lo \emph{shell editor} WinEdt (shareware), ottimo e dalla versione 8 in poi sembra che sia dotato di un visualizzatore integrato PDF (comunque è sincronizzabile con il visualizzatore SumatraPDF). -Per le piattaforme Mac esistono diversi programmi; a me sembra che il migliore -di tutti sia \TeX{}shop, automaticamente installato quando si usa la -distribuzione \prog{Mac\TeX}. ``Migliore'' significa qui il giusto compromesso fra la semplicità e l'efficienza e la validissima integrazione con un suo visualizzatore interno che consente di eseguire con un semplice click di mouse il passaggio da un punto della finestra di composizione del file sorgente al punto corrispondente nella finestra del documento composto in formato PDF, e viceversa. Suo ``figlio'' \TeX{}works (multipiattaforma) sembra avere qualche funzionalità in meno (non è così vero), ma ha una interfaccia comodissima per scoprire la codifica di un file \file{.tex} e per convertire il file in un'altra codifica; \TeX{}shop e \TeX{}works sono auto"configurabili per ciascun file \file{.tex} grazie ad alcune righe di commenti speciali da scrivere in testa al file, cosa che rende il loro uso incredibilmente comodo. TeXstudio dalla versione 2.5 in poi è in grado di interpretare le stesse righe speciali di \TeX{}shop e di autoconfigurarsi di conseguenza (settembre 2012). Emacs con Auctex è in grado di usare righe di autoconfigurazione che però hanno una sintassi diversa da quelle di \TeX{}shop. Questa affermazione vale anche per Aquamacs, che è una applicazione per Mac che integra direttamente emacs e Auctex.\looseness=-1 +A me sembra che sul Mac il miglior editor di tutti sia \TeXShop, automaticamente installato quando si usa la distribuzione Mac\TeX. ``Migliore'' significa qui il giusto compromesso fra la semplicità e l'efficienza e la validissima integrazione con un suo visualizzatore interno che consente di eseguire con un semplice click di mouse il passaggio da un punto della finestra di composizione del file sorgente al punto corrispondente nella finestra del documento composto in formato PDF, e viceversa. Suo ``figlio'' \TeXworks (multipiattaforma) sembra avere qualche funzionalità in meno (non è così vero), ma ha una interfaccia comodissima per scoprire la codifica di un file \file{.tex} e per convertire il file in un'altra codifica; \TeXShop e \TeXworks sono auto"configurabili per ciascun file \file{.tex} grazie ad alcune righe di commenti speciali da scrivere in testa al file, cosa che rende il loro uso incredibilmente comodo. TeXstudio dalla versione 2.5 in poi è in grado di interpretare le stesse righe speciali di \TeXShop e di autoconfigurarsi di conseguenza (da settembre 2012). Anche \prog{emacs} con il plug in Auctex è in grado di usare righe di autoconfigurazione che però hanno una sintassi diversa da quelle di \TeXShop. Questa affermazione vale anche per \prog{Aquamacs}, che è una applicazione per Mac che integra direttamente \prog{emacs} e Auctex.\looseness=-1 -Per tutte e tre le piattaforme principali \prog{TeXStudio} offre notevoli vantaggi, compresa la visualizzazione di parti del testo da comporre che richiedano più interazione fra il compositore e il software. Permette anche di disporre di una finestra laterale che contiene tutta la struttura ad albero del documento da comporre; cliccando su ogni ramo o rametto di questo albero, il programma sposta la finestra sul punto del file sorgente dove quella sezione comincia. Quasi tutti gli editor citati \emph{non} consentono di fare la ricerca inversa con il formato di uscita PDF, ma solo con il formato DVI. \prog{TeXShop} per Mac, e \prog{TeXworks}, \prog{TeXStudio} e \prog{TeXmaker} per tutte le piattaforme permettono di eseguire nativamente la ricerca inversa anche con il formato PDF, e questa particolarità è estremamente comoda. Per le piattaforme Windows esiste il visualizzatore PDF \prog{SumatraPDF} che può essere configurato per interagire con molti editor per poter essere usati assieme sia con la ricerca diretta sia con quella inversa. Va da sé, che se non ci sono esigenze diverse, il formato di uscita PDF è sicuramente quello da preferire. +Per tutte e tre le piattaforme principali \prog{TeXStudio} offre notevoli vantaggi, compresa la visualizzazione di parti composte del testo da comporre che richiedano più interazione fra il compositore e il software. Permette anche di disporre di una finestra laterale che contiene tutta la struttura ad albero del documento da comporre; cliccando su ogni ramo o rametto di questo albero, il programma sposta la finestra sul punto del file sorgente dove quella sezione comincia. Quasi tutti gli editor citati \emph{non} consentono di fare la ricerca inversa con il formato di uscita PDF, ma solo con il formato DVI. \prog{TeXShop} per Mac, e \prog{TeXworks}, \prog{TeXStudio} e \prog{TeXmaker} per tutte le piattaforme permettono di eseguire nativamente la ricerca inversa anche con il formato PDF, e questa particolarità è estremamente comoda. Per le piattaforme Windows esiste il visualizzatore PDF \prog{SumatraPDF} che può essere configurato per interagire con molti editor per poter essere usati assieme sia con la ricerca diretta sia con quella inversa. Va da sé, che se non ci sono esigenze diverse, il formato di uscita PDF è sicuramente quello da preferire. Mi sono ripetuto diverse volte nel descrivere gli editor per lavorare con il sistema \TeX? L'ho fatto apposta, a costo di essere noioso. Lavorare con editor efficienti, ben adattati al lavoro che si deve fare e che consentano la ricerca diretta e inversa fra la finestra di editing e quella del file composto in formato PDF è talmente importante, che le ripetizioni non sono mai abbastanza. \goodpagebreak \section{Ora siete pronti} -Ora che avete scaricato tutto il software gratuito o commerciale di cui -avete bisogno siete pronti per cominciare. +Ora che avete scaricato tutto il software gratuito o commerciale di cui avete bisogno siete pronti per cominciare. + +{\color{red}Dopo avere letto un po' di documentazione e aver giocato un poco con i programmi già predisposti sia dalla distribuzione del sistema \TeX sia dai vari editor descritti sopra, siete in grado di capire come funziona il tutto.\label{warn:avvertenza} -{\color{red}Dopo avere letto un po' di documentazione e aver giocato un poco con i programmi già predisposti sia dalla distribuzione del sistema \TeX\ sia dai vari editor descritti sopra, siete in grado di capire come funziona il tutto.\label{warn:avvertenza} +Attenzione: non si minimizzi la frase precedente: la documentazione va letta sempre e va capita fino in fondo; se c'è qualcosa che non si capisce, si provi con qualche piccolo esercizio, visto che la pratica permette di capire la teoria (e viceversa), ma non andate a cercare in rete aiuto nei vari forum dedicati a \LaTeX per farvi dire: ``guarda nella pagina tale della documentazione''; per voi sarebbe una vera umiliazione\dots\ I forum vanno benissimo, ma per rispondere a domande serie, non a cose che si trovano già documentate.} -Attenzione: non si minimizzi la frase precedente: la documentazione va letta sempre e va capita fino in fondo; se c'è qualcosa che non si capisce, si provi con qualche piccolo esercizio, visto che la pratica permette di capire la teoria (e viceversa), ma non andate a cercare in rete aiuto nei vari forum dedicati a \LaTeX\ per farvi dire: ``guarda nella pagina tal-dei-tali della documentazione''; per voi sarebbe una vera umiliazione\dots\ I forum vanno benissimo, ma per rispondere a domande serie, non a cose che si trovano già documentate.} +A qualcuno può venire in mente: ``Ma non sarà mica che ci siano in giro dei programmi che permettono di fare tutto questo in modo WYSIWYG?'' Come noto, WYSIWYG è l'acronimo che si forma con le iniziali di ``what you see is what you get''. \LaTeX dovrebbe essere classificato con l'acronimo WYSIWYM che sta per ``what you see is what you mean''. Certo per ottenere esattamente quello che si vuole comunicare bisogna lavorare (apparentemente) di più; in realtà bisogna usare di più la testa e di meno il mouse. -A qualcuno può venire in mente: ``Ma non sarà mica che ci siano in giro dei programmi che permettono di fare tutto questo in modo WYSIWYG?'' Come noto, WYSIWYG è l'acronimo che si forma con le iniziali di ``what you see is what you get''. \LaTeX\ dovrebbe essere classificato con l'acronimo WYSIWYM che sta per ``what you see is what you mean''. Certo per ottenere esattamente quello che si vuole comunicare bisogna lavorare (apparentemente) di più; in realtà bisogna usare di più la testa e di meno il mouse. +Tuttavia là fuori ci sono diversi prodotti che consentono di usare \LaTeX praticamente in modo WYSIWYG; da Scientific Word a LyX a TeXmacs a Textures ce ne è per ogni piattaforma; LyX e TeXmacs sono freeware mentre gli altri costano attorno ai 500\textdollar. Poi c'è la soluzione gratuita di OpenOffice e di LibreOffice con l'estensione~1.2 di \prog{Writer2LaTeX}. Io le sconsiglio tutte, come ho già avuto modo di dire, e qui ne ripeto i motivi. -Tuttavia là fuori nei negozi ci sono diversi prodotti che consentono di usare \LaTeX\ praticamente in modo WYSIWYG; da Scientific Word a LyX a TeXmacs a Textures ce ne è per ogni piattaforma; LyX e TeXmacs sono freeware mentre gli altri costano attorno ai 500\textdollar. Poi c'è la soluzione gratuita di OpenOffice e di LibreOffice con l'estensione~1.2 di \prog{Writer2LaTeX}. Io le sconsiglio tutte, come ho già avuto modo di dire, e qui ne ripeto i motivi. +Per poter operare in modo ``sincrono'', così da avere immediatamente sullo schermo una cosa molto simile a quello che si otterrà sulla carta, il programma deve essere velocissimo ad eseguire il rendering grafico di quanto viene via via immesso nel testo; per questo motivo deve rinunciare a non poche funzionalità del sistema \TeX. Però quasi tutti questi software hanno la possibilità di salvare i file in formato \texttt{.tex}, cioè nel formato sorgente del sistema \TeX, per cui una volta finito l'editing si può eseguire la composizione finale con il programma vero, e non tramite le funzionalità del programma di editing. -Per poter operare in modo ``sincrono'' così da avere immediatamente sullo schermo una cosa molto simile a quello che si otterrà sulla carta, il programma deve essere velocissimo ad eseguire il rendering grafico di quanto viene via via immesso nel testo; per questo motivo deve rinunciare a non poche funzionalità del sistema \TeX. Però tutti questi software hanno la possibilità di salvare i file in formato \texttt{.tex}, cioè nel formato sorgente del sistema \TeX, per cui una volta finito l'editing si può eseguire la composizione finale con il programma vero, e non tramite le funzionalità del programma di editing. +Io ho cominciato a lavorare con \LaTeX a metà degli anni '80 e non ho mai usato editor sincroni. Negli anni '90 ho esaminato Textures per aiutare un collega statunitense che stava scrivendo un libro con quel software, ma non sapeva come fare per disporre di macro adatte per la composizione della matematica di cui aveva bisogno; ma dopo poco ho lasciato perdere perché dovevo lavorare su una piattaforma Mac altrui e non potevo seccarlo in continuazione per chiedergli come si fa questo, come si fa quello; allora il sistema operativo era molto diverso dall'attuale Mac~OS~X e solo gli addetti ai lavori sapevano come usarlo al meglio. Però non ne ero rimasto particolarmente impressionato, anche perché allora i font vettoriali venivano gestiti in modo molto più complesso di oggi. -Io ho cominciato a lavorare con \LaTeX\ a metà degli anni '80 e non ho mai usato editor sincroni. Negli anni '90 ho esaminato Textures per aiutare un collega statunitense che stava scrivendo un libro con quel software, ma non sapeva come fare per disporre di macro adatte per la composizione della matematica di cui aveva bisogno; ma dopo poco ho lasciato perdere perché dovevo lavorare su una piattaforma Mac altrui e non potevo seccarlo in continuazione per chiedergli come si fa questo, come si fa quello; allora il sistema operativo era molto diverso dall'attuale Mac~OS~X e solo gli addetti ai lavori sapevano come usarlo al meglio. Però non ne ero rimasto particolarmente impressionato, anche perché allora i font vettoriali venivano gestiti in modo molto più complesso di oggi. +Il difetto maggiore di questi programmi di composizione sincrona è che distraggono l'autore con l'aspetto del testo composto più o meno fedelmente a quello che si potrà ottenere davvero. Scrivere in modo WYSIWYM significa concentrarsi sul messaggio e non sul suo aspetto. Inoltre quando con quei programmi si esporta il documento in formato \LaTeX, il codice generalmente è penoso; dipende dal contenuto, ma generalmente è richiesto un pesante lavoro di pulizia e di riscrittura di alcune parti per renderle veramente scritte e marcate come si deve. Se poi bisogna fare delle modifiche, queste vanno comunque fatte sul file \LaTeX, perché in generale quei programmi non accettano macro personali o pacchetti per i quali non siano già predisposti. In sostanza è una gran perdita di tempo e farne uso non vale assolutamente la pena, nemmeno se si è principianti e si trova comodo ricorrere a qualcosa che ricorda l'uso dei word processor a cui si è già abituati; il principiante che cominci con questi software, non imparerà mai a usare \LaTeX come si deve. + + +\textcolor{red}{Nel seguito partirò dal presupposto che si abbia già una certa conoscenza di \LaTeX e che si conosca la differenza fra \LaTeX, \pdfLaTeX, \XeLaTeX\ e \LuaLaTeX.} + +È possibile che qualcuno non abbia conoscenze sufficientemente approfondite a proposito dei programma e del mark-up \XeLaTeX\ e \LuaLaTeX; è un tipo di mark-up molto simile a quello di \pdfLaTeX, ma ha una gestione dei font diversa e può usare anche i font del sistema operativo, senza dover fare nessuna acrobazia per installarli e configurarli. \XeLaTeX\ ha bisogno di attenzioni particolari per quel che riguarda la creazione dei file in formato PDF archiviabile, anche se l'uscita finale è in formato PDF, mentre con \LuaLaTeX\ non è necessaria nessuna specifica attenzione riferita a questo programma di composizione; si possono dare loro in pasto le figure nei formati PDF, PNG, JPG ed EPS. Per la gestione delle lingue dispongono di un loro pacchetto \pack{polyglossia} che è specifico per questi programmi. L'uso di \XeLaTeX\ sta guadagnando terreno specialmente fra i linguisti; certamente è un motore di composizione adatto alle tesi di carattere letterario, in particolare se contengono estesi brani composti con ``lettere'' non appartenenti all'alfabeto latino. Oggi \LuaLaTeX\ può sostituire completamente \XeLaTeX\ anche se talvolta sembra leggermente più lento nel suo lavoro; in compenso la sua integrazione con il linguaggio di scripting Lua gli permette di fare cose impossibili con gli altri programmi citati. + +Merita qui segnalare con una tabellina le principali differenze fra \pdfLaTeX, \XeLaTeX\ e \LuaLaTeX, tabella~\ref{tab:pdflatex-vs-xelatex} nella pagina~\pageref{tab:pdflatex-vs-xelatex}. -\iffalse \begin{table}[!tb]{\centering -\caption[Le principali differenze fra \textsf{pdflatex} e \textsf{xelatex}]{Le principali differenze fra \pdfLaTeX\ e \protect\XeLaTeX }\label{tab:pdflatex-vs-xelatex} -\begin{tabular}{lp{.3\textwidth}p{.25\textwidth}} +\caption[Le principali differenze fra \textsf{pdflatex}, \textsf{xelatex} e \textsf{lualatex}]{Le principali differenze fra \pdfLaTeX, \protect\XeLaTeX\ e \protect\LuaLaTeX }\label{tab:pdflatex-vs-xelatex} +\begin{tabular}{lp{.3\textwidth}p{.35\textwidth}} \toprule - & \centering pdf\LaTeX & \centering \XeLaTeX \tabularnewline + & \centering pdf\LaTeX & \parbox{.35\textwidth}{\centering \XeLaTeX\\ \LuaLaTeX} \tabularnewline \midrule Formati di uscita & \centering DVI e PDF & \centering XDV e PDF \tabularnewline -Font & \raggedright Font di 256 caratteri con codifiche OT1, T1, T2, LY1, LGR, eccetera - & \raggedright Font OpenType con codifica UNICODE\tabularnewline +Font & \raggedright Font con non più di 256 caratteri, con codifiche OT1, T1, T2, LY1, LGR, eccetera + & \centering Font OpenType con codifica UNICODE\tabularnewline Alfabeti diversi & \raggedright Solo mediante pacchetti esterni & \centering Font OpenType \tabularnewline Lingue retrograde & \raggedright Solo mediante pacchetti esterni @@ -514,111 +698,129 @@ Lingue retrograde & \raggedright Solo mediante pacchetti esterni Ideogrammi & \raggedright Solo mediante pacchetti esterni & \centering Font OpenType \tabularnewline Gestione Lingue & \centering circa 80 lingue &\centering circa 80 lingue \tabularnewline -Formati immagini & \raggedright PDF, JPG, PNG, EPS($\dagger$) & PDF, JPG, PNG, EPS \tabularnewline -Possibilità di scontornare&\centering SI & \raggedright Ridotta ma può essere migliorata attraverso i comandi primitivi del motore \prog{xetex}\tabularnewline -Microgiustificazione& \centering Completa & \centering Solo protrusione \tabularnewline -Formato archiviabile& \centering PDF/A-1b & \centering SI, ma\dots\ (*) \tabularnewline -\bottomrule -\end{tabular}\par} -\vspace*{\medskipamount} -\small \noindent (*) \XeLaTeX\ con la distribuzione 2016 di \TeXLive, consente la produzione diretta del formato PDF/A, ma richiede delle attenzioni particolari che verranno descritte nel seguito. - -\noindent ($\dagger$) Dalla versione del 2010 \pdfLaTeX\ converte automaticamente in formato PDF i file EPS, conservandone quindi il carattere vettoriale; provvede anche a scontornarli. -\end{table} -\fi - -\begin{table}[!tb]{\centering -\caption[Le principali differenze fra \textsf{pdflatex} e \textsf{xelatex}]{Le principali differenze fra \pdfLaTeX, \protect\XeLaTeX\ e \protect\LuaLaTeX}\label{tab:pdflatex-vs-xelatex} -\begin{tabular}{p{0.25\textwidth}p{.2\textwidth}p{.2\textwidth}p{0.2\textwidth}} -\toprule - & \centering pdf\LaTeX & \centering \XeLaTeX &\centering \LuaLaTeX \tabularnewline -\midrule -Formati di uscita & \centering DVI e PDF - & \centering XDV e PDF - & \centering PDF \tabularnewline -Font & \raggedright Font di 256 caratteri con codifiche - OT1, T1, T2, LY1, LGR, eccetera - & \raggedright Font OpenType con codifica UNICODE - & \raggedright Font OpenType con codifica UNICODE - \tabularnewline -Alfabeti diversi & \raggedright Solo mediante pacchetti esterni - & \centering Font OpenType - & \centering Font OpenType \tabularnewline -Lingue retrograde & \raggedright Solo mediante pacchetti esterni - & \centering Font OpenType - & \centering Font OpenType \tabularnewline -Ideogrammi & \raggedright Solo mediante pacchetti esterni - & \centering Font OpenType - & \centering Font OpenType \tabularnewline -Gestione Lingue & \centering più di 80 lingue - & \centering più di 80 lingue - & \centering più di 80 lingue - \tabularnewline -Formati immagini & \raggedright PDF, JPG, PNG, EPS($\dagger$) - & PDF, JPG, PNG, EPS - & PDF, JPG, PNG, EPS - \tabularnewline -\raggedright Possibilità di scontornare&\centering SÌ - & \raggedright Ridotta ma può essere migliorata - attraverso i comandi primitivi del motore \prog{xetex} - & \centering SÌ - \tabularnewline -Microgiustificazione& \centering Completa - & \centering Solo protrusione - & \centering Completa - \tabularnewline -Formato archiviabile& \centering PDF/A-1b - & \centering SÌ, ma\dots\ (*) - & \centering SÌ - \tabularnewline -\raggedright Integrazione con il linguaggio Lua& \centering NO - & \centering NO - & \centering SÌ - \tabularnewline +Formati immagini & \raggedright PDF, JPG, PNG, EPS($\dagger$) & \centering PDF, JPG, PNG, EPS \tabularnewline +Possibilità di scontornare&\centering SI & \raggedright Ridotta per \XeLaTeX\ ma può essere migliorata attraverso i comandi primitivi del motore \prog{xetex}; completa per \LuaLaTeX\tabularnewline +Microgiustificazione& \centering Completa & {\centering Solo protrusione per \XeLaTeX;\par completa per \LuaLaTeX \par}\tabularnewline +Formato archiviabile& \centering PDF/A-1b & \centering Laboriosa con \XeLaTeX;\newline normale con~\LuaLaTeX (*) \tabularnewline \bottomrule \end{tabular}\par} \vspace*{\medskipamount} -\small \noindent (*) \XeLaTeX\ con la distribuzione 2016 di \TeXLive, consente la produzione diretta del formato PDF/A, ma richiede delle attenzioni particolari che verranno descritte nel seguito. +\small \noindent (*) \XeLaTeX\ con la distribuzione 2016 di \TeXLive, consente la produzione diretta del formato PDF/A, ma richiede delle attenzioni particolari che verranno descritte nel seguito; con \LuaLaTeX\ non ci sono problemi. \noindent ($\dagger$) Dalla versione del 2010 \pdfLaTeX\ converte automaticamente in formato PDF i file EPS, conservandone quindi il carattere vettoriale; provvede anche a scontornarli. \end{table} +%%%%%%%%%%%%%%%%%%%%%%%%%% -Disponendo di una piattaforma Linux ho anche verificato il funzionamento sia di LyX sia di TeXmacs, ma alla fine sono tornato a usare i miei semplici editor ASCII con i quali non ho assolutamente nessuna limitazione per quel che riguarda la composizione dei miei testi. Bisogna dire che io faccio un grande uso di macroistruzioni adatte al mio modo di comporre; in generale le macroistruzioni personali non sono interpretabili da quei sistemi che sono un po' chiusi in se stessi, proprio per poter massimizzare la velocità di rendering. - -Il difetto maggiore di questi programmi di composizione sincrona è che distraggono l'autore con l'aspetto del testo composto più o meno fedelmente a quello che si potrà ottenere davvero. Scrivere in modo WYSIWYM significa concentrarsi sul messaggio e non sul suo aspetto. Inoltre quando con quei programmi si esporta il documento in formato \LaTeX, il codice generalmente è penoso; dipende dal contenuto, ma generalmente è richiesto un pesante lavoro di pulizia e di riscrittura di alcune parti per renderle veramente scritte e marcate come si deve. Se poi bisogna fare delle modifiche, queste vanno comunque fatte sul file \LaTeX, perché in generale quei programmi non accettano macro personali o pacchetti per i quali non siano già predisposti. In sostanza è una gran perdita di tempo e farne uso non vale assolutamente la pena, nemmeno se si è principianti e si trova comodo ricorrere a qualcosa che ricorda l'uso dei word processor a cui si è già abituati; il principiante che cominci con questi software, non imparerà mai a usare \LaTeX\ come si deve. - -\textcolor{red}{Nel seguito partirò dal presupposto che si abbia già una certa -conoscenza di \LaTeX\ e che si conosca la differenza fra \LaTeX, -\pdfLaTeX, \XeLaTeX\ e \LuaLaTeX.} - -È possibile che qualcuno non abbia conoscenze sufficientemente approfondite a proposito del programma e mark-up \XeLaTeX; è un tipo di mark-up molto simile a quello di \LaTeX\ e di \pdfLaTeX, ma ha una gestione dei font diversa e può usare anche i font del sistema operativo, senza dover fare nessuna acrobazia per installarli e configurarli. Esso ha bisogno di attenzioni particolari per quel che riguarda la creazione dei file in formato PDF archiviabile, anche se l'uscita finale sia in formato PDF; gli si possono dare in pasto le figure nei formati accettati sia dal programma \prog{latex} (formato EPS), sia dal programma \prog{pdflatex} (formati PDF, PNG, JPG). Per la gestione delle lingue dispone di un suo pacchetto \pack{polyglossia} che è specifico per questo programma di composizione. L'uso di \XeLaTeX\ sta guadagnando terreno specialmente fra i linguisti; certamente è il motore di composizione più adatto alle tesi di carattere letterario, specialmente se contengono estesi brani composti con ``lettere'' non appartenenti all'alfabeto latino. Oggi \LuaLaTeX\ può sostituire completamente \XeLaTeX\ anche se talvolta sembra leggermente più lento nel suo lavoro; in compenso la sua integrazione con il linguaggio di scripting Lua gli permette di fare cose impossibili con gli altri programmi citati. +\chapter{L'uso di \texorpdfstring{\TOPtesi}{TOPtesi}}\label{cap:uso} -Merita qui segnalare con una tabellina le principali differenze fra \pdfLaTeX, \XeLaTeX\ e \LuaLaTeX, tabella~\ref{tab:pdflatex-vs-xelatex} nella pagina~\pageref{tab:pdflatex-vs-xelatex}. +La maggior parte delle macro definite in \TOPtesi servono per comporre il frontespizio; siccome l'utente potrebbe desiderare di comporre il frontespizio in modo diverso da quello preimpostato in questa classe, prima esporrò come e perché la classe si comporta in un certo modo per comporre questa prima e importante pagina della tesi, poi esporrò che cosa bisogna fare se si usano altri pacchetti o altre tecniche per comporre il frontespizio. +Inizialmente il diagramma di flusso del funzionamento di \TOPtesi era quello lineare rappresentato nella figura~\ref{fig:simple-flow-diagram}. il file sorgente in formato \texttt{.tex} veniva dato in pasto a \texttt{\class{toptesi}.cls} che dopo qualche impostazione passava il controllo al modulo \texttt{\pack{toptesi}.sty}; questo ne componeva il frontespizio mediante il modulo \pack{topfront}; \TOPtesi metteva a disposizione dell'utente anche il modulo \pack{topcoman}, le cui funzionalità potevano venire usate per il file finale in formato \texttt{.pdf}. -%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{figure}\centering +\unitlength=0.00925\textwidth +\begin{picture}(106,20) +\fileicon(0,10){.tex}\VECTOR(15,10)(20,10) +\Zbox(20,10)(18,0)[l]{\ttfamily toptesi.cls\\toptesi.sty}\VECTOR(41.5,10)(47,10) +\Zbox(47,10)[l]{\ttfamily topfront}\VECTOR(63.5,10)(70,10) +\Zbox(70,10)[l]{\ttfamily topcoman}\VECTOR(86.5,10)(91,10) +\fileicon(91,10){.pdf} +\end{picture} +\caption{Diagramma di flusso di \TOPtesi, versioni 1.x--3.x} +\label{fig:simple-flow-diagram} +\end{figure} -\chapter{L'uso di \textsf{TOPtesi}}\label{cap:uso} +Il tutto era molto semplice, e per ciò stesso era anche molto rigido e non consentiva personalizzazioni di nessun genere. + +A partire dalla versione 5.85 di \TOPtesi l'utente poteva caricare dei pacchetti a sua scelta; la loro presenza veniva controllata dal modulo \pack{topcoman} che a seconda di quali fossero caricati si comportava in modo diverso per evitare possibili conflitti. Allo stesso tempo l'utente poteva impostare determinate variabili booleane, che a seconda del loro stato di `vero' o `falso', gli permettevano di comporre il frontespizio con i comandi del pacchetto \pack{topfront} oppure del pacchetto esterno \pack{frontespizio} modificandone così l'aspetto rispetto a quello che \TOPtesi aveva sempre composto. Il diagramma di flusso mostrato nella figura~\ref{fig:toptesi+frontspizio} è leggermente più complesso, ma tutto sommato ancora molto semplice. In sostanza il frontespizio viene composto o con i comandi originali di \TOPtesi oppure con quelli del pacchetto \pack{frontespizio} ma i due modi sono mutuamente esclusivi e non si possono mescolare le due modalità. + +\begin{figure}\centering\unitlength=0.009\textwidth +\begin{picture}(115,45)(0,-3) +\fileicon(0,10){.tex}\VECTOR(15,10)(20,10) +\Zbox(20,10)(18,0)[l]{\ttfamily toptesi.cls\\toptesi.sty} +\Zbox(20,30)(18,0)[l]{\centering\ttfamily pacchetti caricati dall'utente} +\VECTOR(42,10)(50,10) +\VECTOR(31,23)(31,15) +\polygon(50,10)(55,5)(60,10)(55,15) +\polyvector(55,5)(55,0)(60,0) +\Zbox(60,0)[l]{\ttfamily topfront} +\polyvector(55,15)(55,20)(60,20) +\Zbox(60,20)[l]{\ttfamily frontespizio} +\VECTOR(42,30)(47,30)\put(49,30){\circle{4}}\VECTOR(51,30)(60,30) +\polyvector(42,12)(49,12)(49,28) +\Zbox(60,30)[l]{\ttfamily topcoman} +\put(87,10){\circle{4}}\VECTOR(89,10)(95,10) +\polyvector(84,20)(87,20)(87,12) +\polyvector(77,0)(87,0)(87,8) +\polyvector(77,30)(90,30)(90,15)(95,15) +\fileicon(95,10){.pdf} +\end{picture} +\caption{Diagramma di flusso di \TOPtesi versione 5.85} +\label{fig:toptesi+frontspizio} +\end{figure} -La maggior parte delle macro definite nel pacchetto TOPtesi servono per comporre il frontespizio; siccome l'utente potrebbe desiderare di comporre il frontespizio in modo diverso da quello preimpostato in questa classe, prima esporrò come e perché la classe si comporta in un certo modo per comporre questa prima e importante pagina della tesi, poi esporrò che cosa bisogna fare se si usano altri pacchetti o altre tecniche per comporre il frontespizio. +Nel 2016 sono emerse delle altre necessità. La SCUola di DOttorato (ScuDo) del Politecnico di Torino ha richiesto ai suoi dottorandi di comporre la loro dissertazione con uno stile particolare, specificatamente con un frontespizio molto diverso da quello ottenibile con il modulo \pack{topfront} o il pacchetto \pack{frontespizio}. Inoltre ha richiesto una cosa che viene fatta solo per questo tipo di tesi ed è assente da tutti gli altri moduli: un colophon\index{colophon} nell'ultima pagina, nel quale si spiega che la tesi è stata composta con questa classe. + +Contemporaneamente è stato richiesto di adattare \TOPtesi per comporre le tesine da presentare agli esami di maturità; ovviamente con uno stile di frontespizio diverso da tutti quelli eseguibili con la versione 5.85 di \TOPtesi. Inoltre era stata avanzata anche la richiesta di comporre frontespizi inusuali che consentissero all'utente di fare a modo proprio mediante pacchetti auto gestiti o mediante l'uso diretto dell'ambiente \amb{titlepage}. Ecco che con la versione 6.x tutte queste richieste sono state accolte mediante l'uso di opzioni espresse con la sintassi \emph{chiave\index{chiave}\,$=$\, valore}. Tutto ciò rende lo schema di flusso molto più complesso, ma l'uso di \TOPtesi per l'utente finale ne risulta molto semplificato; semplicemente deve specificare fra le opzioni della classe quale tipo di tesi vuole comporre; lo fa specificando il \emph{valore} desiderato alla chiave \chiave{tipotesi}. Seguendo lo schema di flusso della figura~\ref{fig:key-value-option}, il tutto sembra complicatissimo; lo è abbastanza a livello del codice realizzato, ma per l'utente finale, se viene specificata la chiave \texttt{tipotesi} con un \emph{valore} valido, viene scelto uno solo dei moduli indicati, altrimenti viene caricato il modulo \pack{topfront}, quello di default; fa eccezione solo il \emph{valore} indicato con \texttt{custom}, perché in questo caso \textcolor{red}{non viene caricato nessun modulo e non sono più disponibili i comandi e le funzionalità dei moduli indicati}; è ovvio che in questo caso non venga caricato niente, perché specificando questa opzione l'utente dice a \TOPtesi: ``per il frontespizio ci penso io e faccio tutto da solo''. + +\begin{figure}[!tbp]\centering\footnotesize +\unitlength=0.008\textwidth +\begin{picture}(112.5,140) +\fileicon(0,33){.tex} +\put(36.5,58){\rotatebox[origin=Bl]{90}{\makebox(0,0){\fboxsep=2\unitlength + \framebox(116,9){\parbox[c][5\unitlength][c]{112\unitlength}% + {\centering Opzioni\\\texttt{tipotesi\,=\,}\emph{value}}}}}} +\polyvector(15,33)(20,33)(20,48)(0,48)(0,58)(5,58) +\Zbox(5,58)(18,0)[l]{\small\ttfamily toptesi.cls\\toptesi.sty} +\VECTOR(27,58)(32,58) +\VECTOR(41,6)(45,6)\Zbox(45,6)(25,0)[l]{% +\centering\texttt{topfront} (\emph{default})} +\VECTOR(41,22)(45,22)\Zbox(45,22)(31,0)[l]{\centering\texttt{toptesi-triennale}} +\VECTOR(41,37)(45,37)\Zbox(45,37)(33,0)[l]{\centering\texttt{toptesi-magistrale}} +\VECTOR(41,52)(45,52)\Zbox(45,52)(31,0)[l]{\centering\texttt{toptesi-dottorale}} +\VECTOR(41,67)(45,67)\Zbox(45,67)(31,0)[l]{\centering\texttt{toptesi-scudo}} +\VECTOR(41,81)(45,81)\Zbox(45,81)(32,0)[l]{\centering\texttt{toptesi-secondaria}} +\VECTOR(41,96)(45,96)\Zbox(45,96)(37,0)[l]{\centering\texttt{toptesi-frontespizio}} +\VECTOR(41,111)(45,111)\Zbox(45,111)(11,0)[l]{\centering\texttt{custom}} +\Zbox(5,129.5)(18,0)[l]{\centering\ttfamily pacchetti caricati dall'utente} +\VECTOR(16,123)(16,63.5) +\VECTOR(27,129,5)(35,129.5)\put(37,129.5){\circle{4}} +\VECTOR(39,129.5)(45,129.5) +\Zbox(45,129.5)(16,0)[l]{\centering\ttfamily topcoman} +\polyvector(27,61)(29,61)(29,120)(37,120)(37,127.5) +\put(90,67){\circle{4}}\VECTOR(92,67)(97.5,67) +\polyvector(65,129.5)(93,129.5)(93,70)(97.5,70)% topcomand +\polyvector(60,111)(90,111)(90,69)% custom +\polyvector(86,96)(88,96)(88,72)(89,68.4)% frontespizio +\polyvector(81,81)(86,81)(86,70)(88.4,68.2)% secondaria +\VECTOR(80,67)(88,67)% scudo +\polyvector(80,52)(86,52)(86,63)(88.4,65.6)% dottorale +\polyvector(82,37)(88,37)(88,60)(89,65.2)% magistrale +\polyvector(80,22)(90,22)(90,65)% triennale +\polyvector(74,6)(92,6)(92,62)(91,65.1)% topfront +\fileicon(97.5,68.5){.pdf} +\end{picture} +\caption{Diagramma di flusso di \TOPtesi versione 6.x} +\label{fig:key-value-option} +\end{figure} -Ci si ricordi comunque che l'aspetto generale dalla pagina, i font usati o gli altri font alternativi che si possono usare, il frontespizio, e altri elementi che costituiscono il ``look' della tesi composta con questa classe, sono abbastanza rigidi; non dico che questa classe sia rigorosamente del tipo ``prendere o lasciare'', ma sicuramente non è una classe generica da poter personalizzare a piacere in ogni dettaglio. Ci sono altre classi disponibili già distribuite con il sistema \TeX\ (aggiornato e completo); ne cito alcune: la classe \class{sapthesis}, impostata sulle prescrizioni dell'università di Roma La~Sapienza, la classe \class{suftesi}, che in realtà non serve solo per comporre tesi, ma serve anche per comporre diversi altri tipi di documenti in diversi formati e con diversi stili. Nessuna di queste classi è configurabile a piacere, ma solo nei limiti delle personalizzazioni previste. Quella più configurabile mi pare sia la classe \class{suftesi}, ma anche questa, esplicitamente predisposta per tesi nel campo delle scienze umane, forse è meno flessibile per le scienze sperimentali. +Chiarito il modo di funzionare della versione 6.x di \TOPtesi, merita comunque rilevare ancora altri dettagli. +Ci si ricordi infatti che l'aspetto generale dalla pagina, i font usati o gli altri font alternativi che si possono usare, il frontespizio, e altri elementi che costituiscono il ``look' della tesi composta con questa classe, sono abbastanza rigidi; non dico che questa classe sia rigorosamente del tipo ``prendere o lasciare'', ma sicuramente non è una classe generica da poter personalizzare a piacere in ogni dettaglio. Ci sono altre classi disponibili già distribuite con il sistema \TeX (aggiornato e completo); ne cito alcune: la classe \class{sapthesis}, impostata sulle prescrizioni dell'università di Roma La~Sapienza, la classe \class{suftesi}, che in realtà non serve solo per comporre tesi, ma serve anche per comporre diversi altri tipi di documenti in diversi formati e con diversi stili. Nessuna di queste classi è configurabile a piacere, ma solo nei limiti delle personalizzazioni previste. Quella più configurabile mi pare sia la classe \class{suftesi}, ma anche questa, esplicitamente predisposta per tesi nel campo delle scienze umane, forse è meno flessibile per le scienze sperimentali. -\section{Impostazioni standard di TOPtesi} +\section{Impostazioni standard di \texorpdfstring{\TOPtesi}{TOPtesi}} -L'insieme di macro contenute in \textsf{TOPtesi} realizza esattamente +L'insieme di macro contenute in \TOPtesi realizza esattamente le specifiche di composizione per le monografie, tesi di laurea e -dissertazioni di dottorato da comporre presso il Politecnico di Torino; -l'acronimo TOP sta per \textcolor{red}{TO}rino \textcolor{red}{P}olitecnico e naturalmente gioca un po' anche sull'altro significato della parola inglese ``top''. +dissertazioni di dottorato da comporre presso il Politecnico di Torino; l'acronimo TOP sta per \textcolor{red}{TO}rino \textcolor{red}{P}olitecnico e naturalmente gioca un po' anche sull'altro significato della parola inglese ``top''. Tuttavia il pacchetto non è stato creato solo per il Politecnico di Torino, il cui nome è quello preimpostato per l'Ateneo; invece la stringa ``Facoltà di~'' e il nome della facoltà sono vuote. Questo dipende dall'ultima riforma universitaria approvata in Italia, che ha obbligato gli atenei a riformulare gli statuti in modo da eliminare sostanzialmente le facoltà; in alcuni casi strutture didattiche equivalenti alle facoltà sono sopravvissute sotto altro nome, in altri sono sparite definitivamente. In alcuni casi il coordinamento delle attività didattiche è passato ai dipartimenti. Lo studente deve quindi informarsi presso la sua segreteria didattica competente per sapere come debba essere intestato il frontespizio delle monografie, tesi magistrali o dissertazioni di dottorato. I comandi predisposti in questo pacchetto consentono di personalizzare la composizione del proprio lavoro finale per molti atenei e molte strutture didattiche e, oserei dire, in molte lingue. -Presso il Politecnico di Torino, l'ateneo preso come riferimento, le facoltà non esistono più; perciò il valore preimpostato per la stringa ``Facoltà di~'' è nullo; un test per la composizione del frontespizio verifica la presenza di questa stringa nulla e omette completamente di indicare qualsiasi informazione sulla struttura didattica; in altri atenei potrebbe essere utile inserire nel file di configurazione qualcosa come: +Presso il Politecnico di Torino, l'ateneo preso come riferimento, le facoltà non esistono più; perciò il valore preimpostato per la stringa ``Facoltà di'' è nullo; un test per la composizione del frontespizio verifica la presenza di questa stringa nulla e omette completamente di indicare qualsiasi informazione sulla struttura didattica; in altri atenei potrebbe essere utile inserire nel file di configurazione qualcosa come: \begin{verbatim*} \StrutturaDidattica{Dipartimento di } \struttura{Ingegneria Strutturale} @@ -626,81 +828,320 @@ Presso il Politecnico di Torino, l'ateneo preso come riferimento, le facoltà no \end{verbatim*} Il nome del corso di laurea potrebbe essere facoltativo se la struttura didattica competente cura la didattica di un solo corso di laurea, ma quasi sicuramente questo corso non ha lo stesso nome della struttura didattica, quindi è opportuno specificarlo anche in questi casi; se invece la segreteria competente non richiede il nome di nessuna struttura didattica, allora il corso degli studi deve essere necessariamente indicato. Si noti: per facilitare l'inserimento di queste informazioni sono stati predisposti i comandi \cs{StrutturaDidattica}, equivalente a \cs{FacoltaDi}, e \cs{struttura}, equivalente a \cs{facolta}. -\iffalse % METACOMMENTO -Tenete conto che \textsf{TOPtesi} è già stato usato anche per -scrivere tesi in filologia classica greca e in filologia copta; -\textsf{TOPtesi} non è limitato solo a scritti delle discipline -cosiddette esatte, quelle che fanno un grande uso del linguaggio -matematico, ma è altrettanto utile per scrivere testi in -discipline umanistiche, perché \pdfLaTeX\ e \XeLaTeX\ sono -altrettanto precisi nel comporre la matematica di quanto lo siano -nel comporre una poesia o un romanzo o un'edizione critica. -\fi % FINE METACOMMANTO +Per le tesi di dottorato della ScuDo, le cose, come si vedrà, sono molto più semplici, propio perché si fa riferimento ad un Scuola particolare per tesi tutte dello stesso tipo. -\subsection{Dove sono i file di \textsf{TOPtesi}?} -La distribuzione di \textsf{TOPtesi} contiene molti file; ma ogni distribuzione moderna del sistema \TeX\ li carica tutti senza che dobbiate intervenire a mano. Tuttavia è importante sapere dove trovare questi file. +\subsection{Dove sono i file di \texorpdfstring{\TOPtesi}{TOPtesi}?} +La distribuzione di \TOPtesi contiene molti file; ma ogni distribuzione moderna del sistema \TeX li carica tutti senza che si debba intervenire a mano. Tuttavia è importante sapere dove trovare questi file. -L'installazione del sistema \TeX\ prevede che i suoi numerosissimi file siano installati in un certo numero di strutture di cartelle, chiamate ``alberi''; ogni albero ha una radice; normalmente la radice della distribuzione si chiama \texttt{texmf-dist}, ma sulla vostra macchina e con il vostro sistema operativo potrebbe avere un altro nome. Esiste anche un albero radicato nella vostra ``home''; nei sistemi di tipo UNIX essa si indica simbolicamente con la tilde e la radice del vostro albero personale potrebbe chiamarsi \texttt{\textasciitilde/texmf}; sulle macchine Windows invece dovete cercare in \texttt{C:\char92Documents and settings} seguito dal vostro \emph{user name}, oppure da \texttt{All users}, oppure da \texttt{Users} seguito dal vostro nome; magari ci sono ancora altri rami di albero da percorrere, ma poi si trova \texttt{texmf} o \texttt{localtexmf}. Nei sistemi Mac la radice del vostro albero personale è sotto la vostra \texttt{\textasciitilde/Library}. +L'installazione del sistema \TeX prevede che i suoi numerosissimi file siano installati in un certo numero di strutture di cartelle, chiamate ``alberi''; ogni albero ha una radice; normalmente la radice della distribuzione si chiama \texttt{texmf-dist}, ma sulla vostra macchina e con il vostro sistema operativo potrebbe avere un altro nome. Esiste anche un albero radicato nella vostra ``home''; nei sistemi di tipo UNIX essa si indica simbolicamente con la tilde e la radice del vostro albero personale potrebbe chiamarsi \texttt{\textasciitilde/texmf}; sulle macchine Windows invece dovete cercare in \texttt{C:\char92Documents and settings} seguito dal vostro \emph{user name}, oppure da \texttt{All users}, oppure da \texttt{Users} seguito dal vostro nome; magari ci sono ancora altri rami di albero da percorrere, ma poi si trova \texttt{texmf} o \texttt{localtexmf}. Nei sistemi Mac la radice del vostro albero personale è nella vostra cartella \texttt{\textasciitilde/Library}. -L'albero personale non è mai inizialmente predisposto con l'installazione del sistema \TeX; ve lo dovete creare voi. In esso creerete una struttura di rami identica a quella degli alberi di sistema, magari sarà un albero più semplice e non così ramificato come gli alberi di sistema, ma i gruppi di cartelle presenti dovranno essere innestati nello stesso modo. Qui metterete i vostri file personali di classe, di stile, di definizioni, eccetera. Quando aggiornate la vostra distribuzione del sistema \TeX\ le cartelle degli alberi di sistema potranno essere completamente riscritte, mentre il vostro albero personale non verrà assolutamente modificato. +L'albero personale non è mai inizialmente predisposto con l'installazione del sistema \TeX; ve lo dovete creare voi. In esso creerete una struttura di rami identica a quella degli alberi di sistema, magari sarà un albero più semplice e non così ramificato come gli alberi di sistema, ma i gruppi di cartelle presenti dovranno essere innestati nello stesso modo. Qui metterete i vostri file personali di classe, di stile, di definizioni, eccetera. Quando aggiornate la vostra distribuzione del sistema \TeX le cartelle degli alberi di sistema potranno essere completamente riscritte, mentre il vostro albero personale non verrà assolutamente modificato. -Tutti i file del pacchetto \textsf{TOPtesi} vengono caricati nell'albero della distribuzione; i file della documentazione lungo il ramo \texttt{doc}; i file sorgente, lungo il ramo \texttt{source}; i file ``eseguibili'' in una cartella lungo il ramo \texttt{tex}; fra questi file ``eseguibili''\footnote{Chiamare ``eseguibili'' i file che vengono usati da \LaTeX\ è molto improprio: si tratta di file necessari durante l'esecuzione del programma, ma non sono quei file ad essere eseguiti nel senso informatico del termine.} c'è anche il file \file{toptesi.cfg}. Copiate questo file nella vostra cartella di lavoro come spiegato qui di seguito, cambiategli il nome ma non l'estensione, e modificatelo secondo le vostre necessità. +Tutti i file del pacchetto \TOPtesi vengono caricati nell'albero della distribuzione; i file della documentazione lungo il ramo \texttt{doc}; i file sorgente lungo il ramo \texttt{source}; i file ``eseguibili'' in una cartella lungo il ramo \texttt{tex}; fra questi file ``eseguibili''\footnote{Chiamare ``eseguibili'' i file che vengono usati da \LaTeX è molto improprio: si tratta di file necessari durante l'esecuzione del programma, ma non sono quei file ad essere eseguiti nel senso informatico del termine.} c'è anche il file \file{toptesi.cfg}. Copiate questo file nella vostra cartella di lavoro come spiegato qui di seguito, cambiategli il nome ma non l'estensione, e modificatelo secondo le vostre necessità. \subsection{Il file di configurazione}\label{sec:configurazione} -È comodo, ma non è obbligatorio, disporre di un file di configurazione. Esso serve essenzialmente per contenere i comandi con i loro argomenti necessari per comporre il frontespizio della tesi. Ma se usate qualche altro pacchetto o qualche altro metodo per creare il frontespizio, il file di configurazione, anche se presente, non viene usato. +È comodo, ma non è obbligatorio, disporre di un file di configurazione. Esso serve essenzialmente per contenere i comandi con i loro argomenti necessari per comporre il frontespizio della tesi. Ma se usate qualche altro pacchetto o qualche altro metodo per creare il frontespizio, il file di configurazione, anche se presente, non viene usato. -Il pacchetto \textsf{TOPtesi} contiene già alcuni file con configurazioni di default da usare come modello; chiunque se ne può copiare uno in un altro file mantenendo l'estensione \texttt{.cfg} e con il nome identico a quello del file principale della tesi. Questo file, se esiste, verrà letto durante l'esecuzione del programma e verranno eseguiti tutti i comandi che esso contiene; se quindi il laureando ne fa uso, deve servirsi del modello per cambiarne i dati e metterci le informazioni che ritiene utili per la sua tesi. Se non vuole servirsi del file di configurazione deve solo inserire nel suo file principale tutte le informazioni necessarie al frontespizio (e al retrofrontespizio, se lo vuole usare) dopo l'istruzione \verb|\begin{document}| ma prima di specificare l'ambiente \amb{frontespizio} o il comando \cs{frontespizio}. +\TOPtesi contiene già alcuni file con configurazioni di default da usare come modello; chiunque se ne può copiare uno in un altro file mantenendo l'estensione \texttt{.cfg} e con il nome identico a quello del file principale della tesi. Questo file, se esiste, verrà letto durante l'esecuzione del programma e verranno eseguiti tutti i comandi che esso contiene; se quindi il laureando ne fa uso, deve servirsi del modello per cambiarne i dati e metterci le informazioni che ritiene utili per la sua tesi. Se non vuole servirsi del file di configurazione deve solo inserire nel suo file principale tutte le informazioni necessarie al frontespizio (e al retrofrontespizio, se lo vuole usare) dopo +\verb|\begin{document}|, possibilmente all'interno dell'ambiente che i vari moduli di \TOPtesi mettono a disposizione per i vari tipi di tesi; le modalità cambiano con il modulo di default rispetto agli altri moduli. -{\tolerance=3000 Il laureando perciò può usare un diverso file di configurazione, sempre chiamato \meta{mainfile}\texttt{.cfg}, collocato nella stessa cartella dove risiede il materiale da comporre. Per esempio, potrebbe comporre la monografia di laurea creando da qualche parte la cartella \texttt{/monografia} e in questa cartella si crea \meta{mainfile}\texttt{.cfg} nel quale scrive quello che gli è necessario; in questa cartella sistema anche i file per comporre la monografia. Quando due anni dopo compone la sua tesi di laurea magistrale, crea da qualche parte la cartella \texttt{/tesi} e ci mette dentro un altro file \meta{mainfile}\texttt{.cfg} con la sua configurazione adattata alla tesi magistrale; in questa stessa cartella mette i file relativi alla sua tesi magistrale. Se dopo tre anni prende il dottorato e si scrive la sua dissertazione dottorale, si crea da qualche parte la cartella \texttt{/dissertazione} e vi mette dentro un altro file \meta{mainfile}\texttt{.cfg} che configura per la sua dissertazione; sempre in questa stessa cartella mette i file necessari per comporre la sua dissertazione. Ovviamente nei tre casi \meta{mainfile} è il nome del file principale che, altrettanto ovviamente, sarà diverso per ciascuna delle tre tesi.\par} +Nel file di configurazione non si possono inserire chiamate ad altri pacchetti; infatti i comandi \cs{usepackage} e \cs{RequirePackage} possono essere usati solo nel preambolo, mentre il file di configurazione viene letto solo dopo \verb|\begin{document}|. Inoltre siccome questo file viene letto (possibilmente sempre) dentro l'ambiente che crea il frontespizio, ogni definizione che non sia globale viene cancellata dalla memoria alla chiusura dell'ambiente. Meglio dunque riservare il file di configurazione alle istruzioni che vengono usate per il frontespizio e il retrofrontespizio, senza preoccuparsi d'altro. -{\tolerance=3000 Nota bene: il modulo \pack{topfront} che contiene i comandi per la composizione del frontespizio oltre al comando per caricare l'eventuale file di configurazione, chiama quest'ultimo file col nome \verb|\jobname.cfg|. La macro \verb|\jobname| è la stessa usata da \LaTeX\ per conservare il nome senza estensione del main file del documento che si sta componendo; quindi se il main file si chiamasse \texttt{GiorgioRossi"TesiMagistrale.tex} il file di configurazione associato a questo main file si deve chiamare obbligatoriamente \texttt{GiorgioRossiTesiMagistrale.cfg}. Siccome i sistemi operativi di tipo UNIX distinguono le lettere maiuscole dalla minuscole nei nomi dei file, se il file di configurazione si chiamasse \texttt{giorgiorossitesimagistrale."cfg} non verrebbe letto da Linux o da Mac~OS~X perché il nome proprio del file è scritto in tutte lettere minuscole, e non sarebbe uguale al nome proprio del main file che contiene anche delle lettere maiuscole. Per evitare problemi si consiglia di rispettare le maiuscole e le minuscole anche agli utenti dei sistemi operativi Windows, anche se questi sistemi operativi non distinguono i nomi dei file in base al fatto che contengano lettere maiuscole o minuscole.\par} +{\tolerance=3000 Il laureando perciò può usare diversi file di configurazione, sempre chiamati \meta{mainfile}\texttt{.cfg}, collocati nella stessa cartella dove risiede il materiale da comporre. Per esempio, potrebbe comporre la monografia di laurea triennale creando da qualche parte la cartella \texttt{/monografia} e in questa cartella si crea \meta{mainfile}\texttt{.cfg} nel quale scrive quello che gli è necessario; in questa cartella sistema anche i file per comporre la monografia. Quando due anni dopo compone la sua tesi di laurea magistrale, crea da qualche parte la cartella \texttt{/tesi} e ci mette dentro un altro file \meta{mainfile}\texttt{.cfg} con la sua configurazione adattata alla tesi magistrale; in questa stessa cartella mette i file relativi alla sua tesi magistrale. Se dopo tre anni prende il dottorato e si scrive la sua dissertazione dottorale, si crea da qualche parte la cartella \texttt{/dissertazione} e vi mette dentro un altro file \meta{mainfile}\texttt{.cfg} che configura per la sua dissertazione; sempre in questa stessa cartella mette i file necessari per comporre la sua dissertazione. Ovviamente nei tre casi \meta{mainfile} è il nome del file principale che, altrettanto ovviamente, sarà diverso per ciascuna delle tre tesi.\par} +{\tolerance=3000 Nota bene: sia il modulo \pack{topfront} sia gli altri moduli contengono i comandi per la composizione del frontespizio oltre al comando per caricare l'eventuale file di configurazione; chiamano quest'ultimo file col nome \verb|\jobname.cfg|. La macro \verb|\jobname| è la stessa usata da \LaTeX per conservare il nome senza estensione del main file del documento che si sta componendo; quindi se il main file si chiamasse \texttt{GiorgioRossi"TesiMagistrale.tex} il file di configurazione associato a questo main file si deve chiamare obbligatoriamente \texttt{GiorgioRossiTesiMagistrale.cfg}. Siccome i sistemi operativi di tipo UNIX distinguono le lettere maiuscole dalle minuscole nei nomi dei file, se il file di configurazione si chiamasse \texttt{giorgiorossitesimagistrale."cfg} non verrebbe letto da Linux o da Mac~OS~X perché il nome proprio del file è scritto in tutte lettere minuscole, e non sarebbe uguale al nome proprio del main file che contiene anche delle lettere maiuscole. Per evitare problemi si consiglia di rispettare le maiuscole e le minuscole anche agli utenti dei sistemi operativi Windows, anche se questi sistemi operativi non distinguono i nomi dei file in base al fatto che contengano lettere maiuscole o minuscole.\par} -\section{Pronti? Via!} + +\section{Tutto è ora pronto per cominciare} Ora siete pronti per comporre la vostra tesi o monografia o dissertazione. Ricordate solo di non giocare con quei pochi -comandi di \LaTeX\ che permettono di fare pasticcetti alla -WYSIWYG; \LaTeX\ compone da solo benissimo; al massimo, alla fine, +comandi di \LaTeX che permettono di fare pasticcetti alla +WYSIWYG; \LaTeX compone da solo benissimo; al massimo, alla fine, quando tutto sarà finito e non sarà più necessario apportare correzioni, potrete anche inserire qualche spazio fine positivo o negativo per fare degli aggiustamenti di seconda o terza approssimazione. Ricordatevi però che, anche se non c'è limite -al meglio (ma nemmeno al peggio!), \LaTeX\ lavora benissimo da +al meglio (ma nemmeno al peggio!), \LaTeX lavora benissimo da solo purché non lo si disturbi con interventi non professionali; se non siete un tipografo professionista, lasciate perdere ogni modifica tipografica; \LaTeX, lo ripeto, lavora generalmente meglio di molti tipografi; è proprio il motivo per il quale Knuth ha realizzato il sistema \TeX. +\section{Il preambolo del file principale} + +La classe \class{toptesi} richiede un semplice preambolo e nient'altro. In altre parole si specificano le opzioni alla classe e si specificano eventualmente le codifiche e i font da usare; magari si caricano altri pacchetti senza duplicare le chiamate ai pacchetti già caricati; si possono inserire delle definizioni di comandi personali. Alla classe si possono specificare alcune opzioni che non vengono usate dalla classe stessa, ma vengono messe a disposizione dei pacchetti chiamati. In sostanza le opzioni della classe sono globali e servono per tutto il documento, mentre le opzioni specificate ai pacchetti sono locali allo specifico pacchetto che le riceve. + +Questo documento contiene un lungo preambolo nel quale sono anche definiti molti comandi che mi sono serviti per comporre questo particolare documento. La parte essenziale, visto che ho compilato il documento con \LuaLaTeX, è la seguente: +\begin{verbatim} +\documentclass[corpo=12pt,tipotesi=monografia,twoside]{toptesi} +\ProvidesFile{toptesi-it.tex}[2017/10/08 v.0.9.24] +\usepackage{imakeidx}% Vedi documentazione +\indexsetup{headers={\indexname}{\indexname}} +\usepackage[a-1b]{pdfx}%%%% Vedi documentazione +\usepackage{fontspec} +\usepackage{xcolor} +\newfontfamily{\fetamont}{Fetamont} + \newcommand*\MP{{\fetamont METAPOST}\xspace} + \newcommand\GuIT{{\fontfamily{lmr}\scshape + \mbox{{g\raisebox{-0.308em}{\kern-0.562ex u}% + \kern-0.15em{I}\kern-0.14em t}}}\xspace} +\setmainfont[Ligatures=TeX]{TeX Gyre Termes} +\setsansfont[Ligatures=TeX, Scale=MatchLowercase]{TeX Gyre Heros} +\setmonofont{UM Typewriter} +\setmainlanguage[babelshorthands]{italian} +\usepackage{amsmath} +\usepackage[math-style=TeX]{unicode-math} +\setmathfont{XITS Math} +\setotherlanguage[variant=ancient]{greek} +\newfontfamily{\greekfont}{GFS Didot} + +\usepackage{metalogo,longtable,booktabs,array, +tabularx,enumitem,ragged2e,siunitx,curve2e,microtype} + +\usepackage{afterpage} + +\unless\ifcsname ver@hyperref.sty\endcsname\usepackage{hyperref}\fi +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} +} +... +\makeindex[intoc,columns=2] +\end{verbatim} + +Qualche commento non guasta. +\begin{enumerate}[noitemsep] +% +\item Le opzioni specificate oltre a \opz{twoside}, che fa parte delle opzioni proprie della classe \class{report}, sono le due nuove opzioni \chiave{tipotesi}{monografia} e \chiave{corpo}{12pt}. Il loro significato è ovvio; la prima specifica che si sta componendo una monografia e la seconda specifica il corpo normale per l'intero documento; i valori \tipotesi{monografia} e \tipotesi{triennale} sono equivalenti; ma siccome non sto scrivendo una tesi triennale, ho preferito usare il valore \tipotesi{monografia}. + +Per il corpo avrei potuto specificare un valore qualsiasi (compreso fra 9.5pt e 13.5pt - non per obbligo ma per decenza; usare corpi minori vuol dire rendere quasi illeggibile questa documentazione; usare valori maggiori significherebbe scrivere un testo adatto alla pratica di lettura di un bambino di seconda elementare). +% +\item Il comando \cs{ProvidesFile} non è obbligatorio, ma è sempre conveniente usarlo per identificare non solo il nome del file, ma anche la data dell'ultima modifica e l'eventuale versione. Sono valori che per questa documentazione debbono essere recuperati e scritti nel frontespizio, proprio per l'utilità del lettore. Per una tesi non credo che siano interessanti, ma è buona abitudine scrivere sempre in ogni file queste informazioni che tornano utili all'autore in molte circostanze. +% +\item Il pacchetto \pack{imakeidx} serve per comporre uno o più indici analitici in modo sincrono; in altre parole basta una sola compilazione per ottenere il documento tipocomposto insieme al suo indice analitico aggiornato al momento della compilazione. + +Va caricato prima di \pack{pdfx} perché questo ridefinisce alcune strutture sulle quali \pack{imakeidx} non può più intervenire. +% +\item Il pacchetto \pack{pdfx} serve per introdurre nel file PDF di uscita anche i metadati richiesti per l'archiviabilità a lungo termine; sono necessari, ma non sono assolutamente sufficienti; essi vanno completati con i metadati specifici del documento da comporre. Si veda l'apposita sezione sull'archiviabilità. + +Tuttavia si noti che ad oggi (2017) questo pacchetto è incompatibile con \pack{imakeidx}; per aggirare questa incompatibilità, se si deve produrre un file archiviabile secondo le norme, si proceda come descritto poco avanti in merito all'uso di \pack{imakeidx}. +% +\item Il pacchetto \pack{fontspec} serve per cariare i font OpenType usati in questa documentazione. +% +\item Il pacchetto \pack{xcolor} serve per gestire i colori in modo avanzato. +% +\item Il comando \cs{MP} serve per poter scrivere il logo del programma \MP del sistema \TeX; \LuaLaTeX\ non gradisce le definizioni dei pacchetti preposti a questo scopo, perché fanno uso di font che non sono OpenType; si possono usare tali font (\Font{Fetamont}) in formato OpenType, e infatti si è fatto così in questo preambolo.. +% +\item Un discorso simile vale per i comando \cs{GuIT}. +% +\item Come font principale con grazie viene scelto un clone dei font \Font{Times}; quelli denominati \Font{TeX Gyre Termes} sono specifici del sistema \TeX. +% +\item Come font lineare, senza grazie, viene specificato un clone dei font \Font{Helvetica}; nuovamente i font \Font{TeX Gyre Heros} fanno parte del sistema \TeX. +% +\item Per i font a spaziatura fissa vengono invece invocati gli \Font {UM Typewriter}, una versione OpenType dei font standard del sistema \TeX; dispongono anche degli alfabeti cirillico e greco, oltre a numerosissimi simboli. +% +\item Il pacchetto \pack{polyglossia} per gestire le lingue è già caricato dalla classe; qui si specificano l'italiano e l'inglese, con la prima dichiarata lingua principale. +% +\item Il pacchetto \pack{amsmath} serve per comporre la matematica avanzata; \pack{unicode-math} serve per accedere non solo ai font matematici OpenType (in questo caso vengono selezionati i font \Font{XITS Math}) ma fornisce tutte le macro compatibili con quelli del sistema \TeX per scrivere la matematica; non occorre invocare altri pacchetti per font matematici, come sarebbe necessario fare se si usasse il programma di composizione \pdfLaTeX. L'opzione \chiave{math-style}{TeX} serve a questo pacchetto per comporre i vari simboli secondo lo standard del sistema \TeX; in alternativa si potrebbero specificare le opzioni \chiave{math-style}{ISO}, per comporre nello stile prescritto dalle norme ISO; \chiave{math-style}{french}, per comporre secondo lo stile francese; \chiave{math-style}{upright}, per comporre tutta la matematica con font non inclinati. Va da sé che gli ultimi due stili sono da evitare accuratamente; lo stile ISO è raccomandato per le tesi in discipline che fanno uso della matematica delle grandezze. +% +\item Si specifica anche la lingua greca, nella sua varietà antica come lingua secondaria. Viene specificata anche questa lingua perché in questa documentazione si parla anche di tesi nelle scienze umane e si fanno esempi in greco antico. +% +\item Si invocano altri pacchetti necessari per la composizione di questa documentazione; \pack{metalogo} serve per scrivere in modo corretto i loghi dei vari programmi; esso è particolarmente importante per il logo \XeLaTeX, che, come si vede, contiene un simbolo particolare, la `E' speculare rispetto alla `E' normale. +I pacchetti \pack{longtaable}, \pack{array}, \pack{booktabs}, \pack{tabularx} servono per gestire tabelle particolari in modo professionale. Il pacchetto \pack{enumitem} serve per configurare le liste; il lettore avrà notato, infatti, che le liste di questa documentazione, compresa quella che sta leggendo, non hanno le varie voci distanziate verticalmente. Il pacchetto \pack{ragged2e} serve per configurare la composizione in bandiera, in modo che il margine non giustificato non sia troppo seghettato. Il pacchetto \pack{siunitx} serve per gestire i numeri e le unità di misura. Infine il pacchetto \pack{curve2e} serve per eseguire disegni avanzati nell'ambiente \amb{picture}. Il pacchetto \pack{microtype} serve per gli aggiustamenti fini della composizione dei capoversi. +% +\item Il pacchetto \pack{afterpage} serve per ritardare la composizione dell'argomento del comando \cs{afterpage} proprio alla fine della pagina corrente, prima che si inizi a comporre la pagina successiva. +% +\item Il pacchetto \pack{imakeidx} serve per comporre uno o più indici analitici in modo automatico e molto configurabile. +% +\item il comando \cs{makeindex} attiva la raccolta delle informazioni da mettere nell'indice analitico; Le sue opzioni specificano alcune impostazioni che si vogliono per la composizione di questo indice; in particolare \opz{intoc} specifica che si desidera l'inserimento della voce ``Indice analitico'' nell'indice generale. +% +\item Come ultimo si chiama il pacchetto \pack{hyperref}; in realtà è già stato chiamato dal pacchetto \pack{pdfx}, ma non succede niente a chiamarlo in questa posizione purché la chiamata sia priva di opzioni; queste però si possono specificare con il successivo comando \cs{hypersetup} +% +\item Il preambolo termina con la configurazione dell'indice analitico di questa documentazione; il comando \cs{makeindex} ordina di raccogliere le definizioni da indicizzare; le opzioni sono per la configurazione sia del comando \cs{index} che raccoglie cosa indicizzare, e il comando \cs{printindex} che provvede a comporre l'indice analitico e a spedirlo al file di uscita. +\end{enumerate} + +In generale per una tesi di qualunque tipo non è necessario ricorrere al caricamento di tanti pacchetti. In ogni caso il laureando caricherà solo quelli che gli servono davvero, senza esagerare con cose del tipo ``potrebbe servirmi''. + +\section{Le opzioni} +La classe \class*{toptesi} accetta diverse opzioni sue specifiche, oltre a quelle che si possono specificare per la classe \class*{report}; esse seguono con la sintassi \emph{chiave${}={}$valore}; le chiavi booleane non richiedono espressamente il valore \texttt{true}; di default il loro stato è \texttt{false}. +\begin{description}[noitemsep]\let\Item\item +\Item[\chiave{corpo}] + Imposta il corpo del testo normale; il valore preimpostato è + \texttt{10pt}, ma si può specificare qualunque valore, anche fratto, + non troppo distante da \texttt{11pt}; sotto 9.5\,pt il testo + diventa difficile da leggere; sopra 13.5\,pt il testo assume + un aspetto da testo per le scuole elementari. +\Item[\chiave{tipotesi}] + Serve per specificare il tipo di tesi che si sta componendo; con + particolare riferimento al layout del frontespizio; per alcuni + tipi di tesi vengono anche caricati alcuni altri pacchetti o + vengono eseguite particolari impostazioni. Senza specificare + nessun valore o specificando \chiave{tipotesi}{topfront}, il + frontespizio viene composto con le funzionalità del modulo + \pack{topfront}, quello tradizionale usato anche dalle versioni + precedenti di TOPtesi. Gli altri valori possibili sono: + \texttt{custom} per comporre il frontespizio in modo autonomo + \texttt{frontespizio} per comporre il frontespizio facendo uso + delle funzionalità del pacchetto esterno \pack{frontespizio}; + \texttt{triennale} e \texttt{monografia}, alias l'uno dell'altro, + per comporre con le funzionalità dell'apposito modulo il + frontespizio di una tesi triennale; \texttt{magistrale} per + comporre il frontespizio di una tesi magistrale, o di un corso + di studi a ciclo unico, mediante l'apposito modulo; \texttt{dottorale} + per comporre il frontespizio di una dissertazione dottorale + diversa da quella della Scuola di Dottorato (ScuDo) del Politecnico + di Torino; \texttt{scudo} per comporre il frontespizio della + dissertazione dottorale presso la ScuDo; \texttt{sss} per + comporre il frontespizio della tesina delle scuole secondarie + superiori italiane. I comandi specifici e le funzionalità + legati a questi vari frontespizi e ai relativi moduli sono + descritti più in dettaglio nei capitoli successivi. +\Item[\chiave{stile}] Lo stile per ciascun tipo di + frontespizio imposta alcune caratteristiche particolari; i valori + possibili sono \texttt{standard}, che è quello di default e non è + necessario specificare nulla, e \texttt{classica} che imposta + alcune variazioni compositive descritte meglio nel seguito. +\Item[\chiave{evenboxes}] Chiave booleana per imporre che le + ``scatole'' contenenti i nomi dei relatori e dei candidati siano + allineate superiormente; senza questa chiave le due scatole sono + disallineate per consentire di apporre la firma di fianco si + rispettivi nomi. +\Item[\chiave{oldstyle}] + Chiave booleana che permette di comporre i numeri con le cifre + minuscole, invece che con quelle maiuscole. +\Item[\chiave{autoretitolo}] + Chiave booleana che modifica le testatine in modo da farvi + comparire il nome dell'autore e il titolo della tesi. Si può + facoltativamente usare solo se è in vigore l'opzione + \chiave{tipo}{classica}. +\Item[\chiave{numerazioneromana}] + Chiave booleana che imposta la numerazione romana dei numeri di + pagina nella parte preliminare del corpo della tesi; la numerazione + cambia in cifre arabe con il primo capitolo numerato della tesi. + È un tipo di numerazione classico che veniva usato prima + dell'avvento della tipografia elettronica; non è vietato usarlo + oggi, ma oggi non sussistono più le circostanze che obbligavano + in passato a comporre la parte iniziale \emph{dopo} aver finito + di comporre il corpo del testo. Oggi questo tipo di numerazione + vuole essere un esplicito richiamo all'aspetto di testi datati + o antichi. Questa documentazione è stata composta senza specificare + questa chiave, quindi ha le pagine completamente numerate con + cifre arabe. +\Item[\chiave{libro}] + Chiave booleana che imposta i margini interni ed esterni come + si fa abitualmente nei libri, dove il margine esterno è maggiore + di quello interno ed è particolarmente indicato per il testo + stampato; senza questa impostazione i margini sono impostati + uguali e sono adatti per leggere il testo a schermo. +\Item[\chiave{cucitura}] + Questa chiave se non usata non imposta nessuna ``binding + correction''; se impostata senza specificare un valore, + imposta una correzione di 7\,mm (che è già tanto) se si + specifica un valore quello viene preso per spostare verso + l'esterno la gabbia di stampa. Non usare questa correzione + con l'opzione \chiave{libro} a meno che il ``libro'' non + venga rilegato con cucitura trasversale; usare con valori + moderati per una rilegatura con dorso incollato; usare con + valori meno moderati, ma sempre moderati per una cucitura + spillata, o a spirale o ad anelli. Non usare assolutamente + per una versione da leggere a schermo. Si vedano i maggiori + dettagli più avanti. +\Item[\chiave{chapterbib}] + Chiave booleana conservata per compatibilità con il passato; + sarebbe servita per predisporre una bibliografia particolare + alla fine di ogni capitolo. Andava bene 20 anni fa; oggi si + ottengono risultati migliori usando il pacchetto + \pack{biblatex} con le sue particolari opzioni. +\end{description} + +Di tutte queste chiavi si parlerà più diffusamente nell'ultimo capitolo dove si mostrano e si commentano tutti i comandi e le opzioni disponibili con \TOPtesi. Anche nei paragrafi dove si descrivono i vari tipi di tesi si esaminano alcune opzioni specifiche. + \section{I file accessori} -Qui verranno descritti alcuni usi del modulo \pack{topfront} e del modulo \pack{topcoman}. Il primo serve per comporre il frontespizio; il secondo mette a disposizione alcuni comandi utili. Né l'uno né l'atro sono indispensabili, ma sono utili. Questi due pacchetti sono sempre caricati da TOPtesi, tranne in alcuni casi specificati meglio più avanti. Ma il fato di venire o non venire caricati dipende dall'utente, cioè dalle opzioni che egli specifica alla classe \class{toptesi} e dai pacchetti aggiuntivi che egli vuole usare; in altre parole l'utente non ha mai bisogno di caricare esplicitamente questi due pacchetti ma può solo esplicitamente specificare azioni che ne impediscono il caricamento. +Qui verranno descritti alcuni usi del modulo \pack{topfront} e degli altri moduli specifici per determinati tipi di tesi oltre al modulo \pack{topcoman}. I primi servono per comporre il frontespizio; il secondo mette a disposizione alcuni comandi utili. Né gli uni né l'atro sono indispensabili, ma sono utili. Questi pacchetti sono sempre caricati da \TOPtesi, tranne in alcuni casi specificati meglio più avanti. Ma il fatto di venire o non venire caricati dipende dall'utente, cioè dalle opzioni che egli specifica alla classe \class{toptesi} e dai pacchetti aggiuntivi che egli vuole usare; in altre parole l'utente non ha mai bisogno di caricare esplicitamente questi due pacchetti ma può solo esplicitamente specificare azioni che ne impediscono il caricamento. \goodpagebreak +\subsection{La composizione del frontespizio} +Questo paragrafo tratta di diversi modi per comporre il frontespizio della tesi; per il frontespizio della tesi dottorale della ScuDo si rinvia ad un paragrafo specifico a tutto quanto riguarda la tesi di quella scuola (paragrafo~\ref{sec:scudo}). + +Non è generalmente necessario inserire nel frontespizio il logo dell'ateneo; si controlli presso la propria segreteria competente le regole fissate per la composizione del frontespizio. Se il logo è richiesto, allora la segreteria dice anche quale logo usare e da dove scaricarne il file che ne contiene la descrizione grafica; \textcolor{red}{bisogna essere precisi nel richiedere le limitazioni legali per l'uso del logo dell'ateneo, perché esso è proprietà esclusiva dell'ateneo e l'uso indebito potrebbe essere fonte di problemi legali non indifferenti.} Siccome tali limitazioni esistono, il pacchetto \TOPtesi non viene più distribuito con i file dei loghi di diversi atenei, come veniva fatto nelle prime edizioni. + +Si controlli se si tratta di un file vettoriale (estensione \file{.pdf} oppure \file{.eps}), oppure bitmapped (estensione \file{.jpg}, \file{.png}, \file{.bmp}, \file{.wmf}, \file{.tiff},\dots). Ci si ricordi che \prog{pdflatex}, \prog{xelatex} e \prog{lualatex} possono incorporare solo i formati \file{.pdf}, \file{.eps}, \file{.jpg}, \file{.png} o \file{.mps}\footnote{I file vettoriali in formato \file{.mps} sono ottenuti con il programma \MP; il lettore potrà interessarsi a questo formato quando sarà un utente avanzato di \LaTeX; non se ne preoccupi per la tesi.}. Se il file bitmapped viene fornito in un formato diverso da questi cinque, è necessario convertirlo in uno dei formati accettati. + +Vale la pena di ricordare che il formato \file{.jpg} va bene per immagini a colori sfumati come le fotografie, mentre il formato \file{.png} è più adatto per disegni al tratto con righe fortemente contrastate rispetto allo sfondo. In generale, quindi, sarebbe meglio convertire nel formato \file{.png} un logo bitmapped fornito in un formato diverso da quelli elencati sopra, ma il formato \file{.png} potrebbe contenere delle ``trasparenze'' che non sono accettabili con le prescrizioni PDF/A dei documenti archiviabili e in questo caso bisogna ricorrere al formato \file{.jpg}. Potendone disporre, sarebbe sempre meglio usare un disegno veramente vettoriale del logo. + +Merita segnalare che le tesi svolte nell'ambito di collaborazioni fra atenei possono richiedere i loghi dei diversi atenei partecipanti all'accordo; segnalo la Scuola Interpolitecnica di Dottorato condotta nell'ambito di un accordo fra i politecnici di Bari, Milano e Torino. Ricordo i programmi di doppia laurea condotti nell'ambito di accordi fra l'ateneo di appartenenza e un altro ateneo, generalmente europeo. Ricordo il programma europeo Erasmus Mundus dove il titolo di studio viene rilasciato da consorzi di almeno quattro atenei di nazioni europee diverse. In queste circostanze è spesso necessario inserire nel frontespizio i loghi di tutti gli atenei partecipanti alla convenzione. + +\subsection{Il logo dell'ateneo per l'uso con \TOPtesi e topfront}\label{ssec:loghi} + +Il modulo \pack{topfront} e gli altri moduli specifici contengono un comando molto potente, \cs{logosede}, che accetta la sintassi seguente: +\begin{flushleft}\obeylines +\cs{logosede}\oarg{altezza}\marg{file del logo} +\medskip +oppure +\medskip +\cs{logosede}\oarg{altezza}\marg{lista di nomi di file di loghi separati da virgole} +\end{flushleft} +dove il valore prefissato per l'\meta{altezza} del logo è 25\,mm per la carta A4, ed è scalato proporzionalmente per carte di formato diverso; con l'argomento facoltativo si può specificare un'altezza leggermente maggiore o minore del valore predefinito. L'argomento \meta{file del logo} o \meta{lista di nomi di file di loghi separati da virgole} è costituito da un solo nome di file o da una lista di nomi di file separati da virgole, corrispondenti ciascuno al logo di un diverso ateneo. Questi file devono avere i formati corrispondenti a una delle cinque estensioni consentite, ma non è necessario specificare il nome del file completo di estensione; questa specificazione potrebbe essere necessaria solo nel caso in cui si disponga del logo di uno stesso ateneo in diversi formati grafici (o, cosa da non fare mai, immagini o loghi diversi con il nome del loro file uguale e l'estensione diversa; questo genere di pasticci è fonte di numerosi errori, facilmente evitabili se si mantiene in ordine la scelta dei nomi e delle estensioni). + +Il programma codificato nel pacchetto \pack{toptesi} provvede a scalare tutti i loghi all'\meta{altezza} specificata e li compone affiancati su una sola riga distanziati mediante uno spazio predefinito di 3\,em; lo si può impostare ad un valore leggermente maggiore o minore tramite il comando \cs{setlogodistance}, per esempio: +\begin{verbatim} +\setlogodistance{2em} +\end{verbatim} + +Se la riga di loghi, eventualmente scalati in altezza e distanziati dello spazio predefinito o esplicitamente specificato, risultasse più larga della giustezza della pagina del titolo, il programma provvede ad uno scalamento dell'intera riga di loghi in modo che non superi la giustezza della pagina. Un solo logo viene composto centrato; due o più loghi vengono ugualmente composti centrati ma distanziati come si è detto. Seguono alcuni esempi, ma si tenga presente che i loghi usati per questi esempi sono solo dei disegni creati in modo tale da avere la forma di un logo; loghi veri di diverse università non sono distribuiti insieme a \TOPtesi, a causa delle restrizioni sulla loro proprietà legale; solo il vero logo del Politecnico di Torino appare nel frontespizio, perché questa è una pubblicazione ufficiale di quell'ateneo. Un solo logo appare come nel frontespizio di questo manuale; due loghi appaiono così:\\*[2pt] +\makebox[\textwidth]{\logosede{logouno,logodue}\printloghi} + + +\noindent Tre loghi appaiono così:\\*[\medskipamount] +\makebox[\textwidth]{\logosede{logodue,logotre,logoquattro} +\printloghi} + + +\noindent Quattro loghi, nonostante sia stata conservata l'\meta{altezza} predefinita, producono una riga di loghi di altezza ridotta per consentire che appaiano tutti e quattro nella stessa +riga:\\*[\medskipamount] +\makebox[\textwidth]{\logosede{logoquattro,logouno,logotre,logodue} +\printloghi} + +Si noti che il logo in testa alla pagina del frontespizio di questo documento è un disegno che imita il layout del logo del Politecnico di Torino; molte altre sedi come la quasi totalità delle case editrici che mettono il loro logo nel frontespizio, lo mettono nella metà inferiore della pagina; ma la tesi di laurea o di dottorato è una documento particolare, il cui frontespizio deve soddisfare ad alcune esigenze burocratiche, e non può, quindi, soddisfare a criteri estetici troppo stringenti. Per questo motivo, lo si vedrà meglio avanti, il modulo \pack{topfront} e gli altri moduli speciali consentono una variante del comando o dell'ambiente per creare i frontespizi: essa intesta la pagina col nome dell'ateneo e mette i loghi nella metà inferiore della pagina. Se il nome dell'ateneo fa parte del logo\footnote{Il logo di questo Politecnico è fatto di due parti: quella tonda di sinistra prende il nome di ``marchio'', mentre quella letterale a destra prende il nome di ``logotipo''; l'Ufficio Comunicazione e Immagine che si occupa di questi aspetti formali ha emesso una normativa specifica sui colori e le forme sia del marchio sia dei font usati per il logotipo. Il logo vero di questo ateneo deve essere richiesto alla Segreteria Studenti o alle segreterie degli organismi che presiedono allo svolgimento dei Corsi di Laurea.} non è il caso di ripetere il nome dell'ateneo nella parte alta della pagina perché vi appare già nel logotipo. + +Comunque, volendo, si può inserire in testa alla pagina sia il logo, sia il nome generico dell'ateneo sia il nome proprio dell'ateneo; come fare è riassunto nella tabella~\ref{tab:modalitaperfrontespizi} nella pagina~\pageref{tab:modalitaperfrontespizi}. + + +\section{I frontespizi} +La tesi ha un solo frontespizio, ma i modi di produrlo con \TOPtesi sono tanti; corrispondono ai vari \emph{valori} che si possono attribuire alla chiave \chiave{tipotesi}, compreso il \emph{valore} `vuoto' che implica la scelta di default: il modulo \pack{topfront}. I valori leciti sono i seguenti: \tipotesi{topfront}, \tipotesi{triennale}, \tipotesi{monografia}, \tipotesi{magistrale}, \tipotesi{dottorale}, \tipotesi{secondaria}, \tipotesi{scudo}, \tipotesi{frontespizio}, \tipotesi{custom}; qualsiasi altro valore (eccetto il valore vuoto) implica l'emissione di un messaggio d'errore. + +Di \tipotesi{custom} si è già detto; però nel seguito si mostrerà un esempio percomporre la pagina del titolo in una tesi in formato ``album'', cioè in \opz{landscape}, invece che nel normale formato \opz{portrait}. + +Lo si ripete: il modulo \pack{topfront} rimane per compatibilità con il passato; secondo me è più comodo servirsi dei moduli dedicati, ma nessuno vieta di usarlo. tuttavia, visto che è onnicomprensivo e servirebbe per comporre i frontespizi di tutti e tre i tipi di tesi universitarie, \tipotesi{triennale}, \tipotesi{magistrale} e \tipotesi{dottorale}, esso ha un codice complesso per gestire correttamente tre varietà diverse. + +Gli altri moduli hanno il codice decisamente più semplice, quindi più facile da tenere in ordine, correggere e aggiornare; ma sono anche più semplici da usare per l'utente finale. + \subsection{Comporre il frontespizio con topfront}\label{sec:frontespizi} -Il pacchetto TOPtesi contiene fra le sue parti il file +Il pacchetto \TOPtesi contiene fra le sue parti il file \pack{topfront} che serve solo per comporre il -frontespizio; può essere usato per comporre il solo frontespizio separatamente dalla tesi, ma in questo caso, talvolta, può essere meglio ricorrere a quanto esposto nel paragrafo~\ref{sec:solofrontespizio}. +frontespizio; può essere usato per comporre il solo frontespizio separatamente dalla tesi, ma in questo caso, talvolta, può essere meglio ricorrere a quanto esposto nel paragrafo~\ref{sec:solofrontespizio}. Attenzione: qui si sta parlando del pacchetto \pack{topfront} non degli altri moduli specializzati. -In questo paragrafo, comunque spiego come comporre il frontespizio indipendentemente dal fatto che rappresenti il frontespizio isolato della tesi o sia quello della tesi intera. +In questo paragrafo, comunque, spiego come comporre il frontespizio indipendentemente dal fatto che rappresenti il frontespizio isolato della tesi o sia quello della tesi intera. Questo pacchetto in effetti, oltre a leggere l'eventuale file di configurazione, contiene solo i comandi per definire gli elementi del frontespizio e per comporlo. -Comporre il frontespizio isolatamente può tornare utile in -diverse circostanze, per esempio quando si deve ancora modificare -la tesi quasi ultimata, ma è necessario cercare il o i relatori per far -loro firmare alcune copie del solo frontespizio. - -Basta predisporre un piccolo file come questo, salvandolo con un nome a -piacere, per esempio, con grande fantasia, \file{myfile.tex}: +Basta predisporre un piccolo file come questo, salvandolo con +un nome a piacere, per esempio, con grande fantasia, \file{myfile.tex}: \begin{flushleft}\ttfamily\obeylines \% !TEX TS-program = XeLaTeX \% !TEX encoding = UTF-8 Unicode -\verb|\documentclass[12pt]{toptesi}| +\verb|\documentclass[corpo=12pt]{toptesi}| \verb|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| \% Impostazioni per comporre con XeLaTeX \verb|\setmainfont[Ligatures=TeX]{TeX Gyre Termes}% o altro font| @@ -714,15 +1155,15 @@ piacere, per esempio, con grande fantasia, \file{myfile.tex}: \verb|\begin{frontespizio*}| \verb|\ateneo{Università di Marconia}| \verb|\logosede{logouno}| -\verb|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tesi magistrale| +\verb|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| \verb|\corsodilaurea{delle Telecomunicazioni}| -\verb|\titolo{Titolo della tesi\\ di laurea magistrale}| +\verb|\titolo{Titolo della tesi\\di laurea magistrale}| \verb|\sottotitolo{Sottotitolo della tesi di laurea magistrale}| \verb|\relatore{prof.\ Enrico Rosa}| \verb|\sedutadilaurea{Dicembre 2114}| \verb|\candidata{Susanna Rossi}| \verb|\secondacandidata{Laura Bruni}| -\verb|%\retrofrontespizio{...}| +\verb|%\retrofrontespizio{...}% in generale facoltativo| \verb|\end{frontespizio*}| ~ \meta{il resto della tesi} @@ -732,7 +1173,7 @@ piacere, per esempio, con grande fantasia, \file{myfile.tex}: La parte che ho indicato con \meta{il resto del preambolo} e \meta{il resto della tesi} sono facoltative; certo sono necessarie quando si compone l'intera tesi; per comporre il solo frontespizio si possono omettere. -Perciò bisogna fare attenzione: se si compone il frontespizio separatamente dalla tesi, la riga \cs{documentclass} deve essere identica alla corrispondente riga del vostro main file della tesi; siccome \pack{toptesi} può usare diversi formati di carta, è necessario che il frontespizio sia composto su carta dello stesso formato. Non è invece necessario usare come font normale un font dello stesso corpo della tesi; con carte particolarmente piccole potrebbe essere più opportuno usare il corpo di 10\,pt invece che quello di 12\,pt. Se si deve scrivere in un'altra lingua diversa dall'italiano e dall'inglese lo si specifica con \cs{setotherlanguage} con le modalità che verranno esposte più avanti. Si noti che l'esempio precedente è impostato per comporre il frontespizio con \XeLaTeX, ma se si lavora con \pdfLaTeX, allora vanno specificati i font da usare, e le codifiche di entrata e di uscita; bisogna anche impostare la lingua nella maniera specifica di \pack{babel}. Non scendo nei dettagli, perché fra i vari modelli forniti con il pacchetto TOPtesi, ce ne sono alcuni predisposti per lavorare con \pdfLaTeX\ e altri con \XeLaTeX\ o \LuaLaTeX. +Perciò bisogna fare attenzione: se si compone il frontespizio separatamente dalla tesi, la riga \cs{documentclass} deve essere identica alla corrispondente riga del vostro main file della tesi; siccome \pack{toptesi} può usare diversi formati di carta, è necessario che il frontespizio sia composto su carta dello stesso formato. Non è invece necessario usare come font normale un font dello stesso corpo della tesi; con carte particolarmente piccole potrebbe essere più opportuno usare il corpo di 10\,pt invece che quello di 12\,pt. Se si deve scrivere in un'altra lingua diversa dall'italiano e dall'inglese lo si specifica con \cs{setotherlanguage} con le modalità che verranno esposte più avanti. Si noti che l'esempio precedente è impostato per comporre il frontespizio con \XeLaTeX, ma se si lavora con \pdfLaTeX, allora vanno specificati i font da usare, e le codifiche di entrata e di uscita; bisogna anche impostare la lingua nella maniera specifica di \pack{babel}. Non scendo nei dettagli, perché fra i vari modelli forniti con il pacchetto \TOPtesi, ce ne sono alcuni predisposti per lavorare con \pdfLaTeX\ e altri con \XeLaTeX\ o \LuaLaTeX. Comunque, se si vuole usare \prog{pdflatex}, la parte fra le prime due righe \verb|%%%| va sostituita, per esempio, con: @@ -743,13 +1184,13 @@ va sostituita, per esempio, con: \end{verbatim} Ma se si deve scrivere il frontespizio in un'altra lingua bisogna agire come spiegato poco più avanti. -In realtà il pacchetto \pack{topfront} lavora bene in italiano e distingue i singolari dai plurali, i maschili dai femminili; non fa nulla di particolare se la lingua di composizione del frontespizio è l'inglese o un'altra lingua; ricordate che l'inglese è già impostato ma non attivato; lo si attiva nel main document con il comando \cs{english}. Se si vuole comporre il frontespizio in un'altra lingua, allora, usando \prog{xelatex}, la si specifica mediante il comando \cs{setotherlanguage}; invece usando \pdfLaTeX\ la si indica fra le opzioni di \cs{documentclass} e poi, prima di usare l'ambiente \amb{frontespizio} o \cs{frontespizio*} o i comandi corrispondenti, la si imposta con \cs{selectlanguage}. Poi si inseriscono i seguenti comandi, modificando gli argomenti in accordo con le restrizioni burocratiche per i frontespizi delle tesi nella vostra università: +In realtà il pacchetto \pack{topfront} lavora bene in italiano e distingue i singolari dai plurali, i maschili dai femminili; non fa nulla di particolare se la lingua di composizione del frontespizio è l'inglese o un'altra lingua; ci si ricordi che l'inglese è già impostato ma non attivato (tranne per le tesi della ScuDo, per le quali la lingua principale è l'inglese, ovviamente già attivata); lo si attiva nel main file con il comando \cs{english}. Se si vuole comporre il frontespizio in un'altra lingua, diversa dalle due preimpostate, allora, usando \prog{xelatex} o \prog{lualatex}, la si specifica mediante il comando \cs{setotherlanguage}; invece usando \pdfLaTeX\ la si indica fra le opzioni di \cs{documentclass} e poi, prima di usare l'ambiente \amb{frontespizio} o \cs{frontespizio*} o i comandi corrispondenti, la si imposta con \cs{selectlanguage}. Poi si inseriscono i seguenti comandi, modificando gli argomenti in accordo con le restrizioni burocratiche per i frontespizi delle tesi nella propria università\footnote{Le parole fisse in questo esempio sono in inglese; bisogna fare altrettanto per qualunque altra lingua.}: \begin{Verbatim}[fontsize=\small] \retrofrontespizio{This work is subject to the Creative Commons Licence} -\DottoratoIn{PhD Course in\space} +\DottoratoIn{Ph.D.\ Course in} \NomeMonografia{Bachelor Degree Thesis} \TesiDiLaurea{Master Degree Thesis} -\NomeDissertazione{PhD Dissertation} +\NomeDissertazione{Ph.D.\ Dissertation} \InName{in} \CandidateName{Candidate}% or Candidates \AdvisorName{Supervisor}% or Supervisors @@ -763,37 +1204,120 @@ In realtà il pacchetto \pack{topfront} lavora bene in italiano e distingue i si \logosede{logouno,logodue}% one logo or a comma separated list of logos \end{Verbatim} -Passando uno di questi file a \prog{xelatex} o a \prog{pdflatex}, si ottiene -un documento con il frontespizio e, facoltativamente, il retrofrontespizio, che si possono stampare in varie copie per gli scopi detti sopra. Ricordate che \class{toptesi} precarica \pack{babel} o \pack{polyglossia} a seconda che usiate \prog{pdflatex} oppure \prog{xelatex} o \prog{lualatex}; non avete quindi l'obbligo di invocare di nuovo questi pacchetti se componete il solo frontespizio usando \class{toptesi}, ma dovete specificare la lingua che volete usare nei modi descritti sopra. +Passando uno di questi file a uno dei programmi di composizione, si ottiene un documento con il frontespizio e, facoltativamente, il retrofrontespizio, che si può stampare in varie copie per gli scopi detti sopra. Bisogna ricordare che \class{toptesi} precarica \pack{babel} o \pack{polyglossia} a seconda che si stia usando \prog{pdflatex} oppure \prog{xelatex} o \prog{lualatex}; non si ha quindi l'obbligo di invocare di nuovo questi pacchetti se si compone il solo frontespizio usando \class{toptesi}, ma bisogna specificare la lingua che si vuole usare nei modi descritti sopra. + +Il retrofrontespizio non è necessario in senso assoluto quando si vuole produrre il frontespizio isolato. Non è nemmeno necessario quando si vuole comporre la tesi intera, tranne per le tesi da comporre per la scuola ScuDo, dove è obbligatorio. Tuttavia il comando è disponibile e permette di aggiungere la dichiarazione legale in merito alla licenza, oppure il disclaimer richiesto in molte atenei, specialmente stranieri; questo disclaimer è una frase in lingua che l'autore scrive per auto"certificare che la tesi è tutta ``farina del suo sacco''; esistono molte formule consolidate per questo disclaimer, ma ogni ateneo richiede la sua formula particolare; di solito è richiesta una firma autografa dell'autore della tesi in calce al disclaimer; così è, infatti, per le tesi della scuola ScuDo. + +Per il Politecnico di Torino, la dissertazione di dottorato richiede una formula da comporre in questo modo: +\begin{verbatim} +This thesis is licensed under a Creative Commons License, +Attribution -- Noncommercial -- NoDerivative Works 4.0 +International: see \url{www.creativecommons.org}. +The text may be reproduced for non-commercial purposes, +provided that credit is given to the original author. +\vspace{2\baselineskip} + +I hereby declare that the contents and organisation of this +dissertation constitute my own original work and does not +compromise in any way the rights of third parties, including +those relating to the security of personal data.} +\begin{flushright} +\begin{minipage}{0.5\textwidth}\centering +\rule{0pt}{3\baselineskip}\dotfill\null\\ +Mario Rossi\\[\medskipamount] +Turin, 29 of February 2345 +\end{minipage} +\end{flushright} +\end{verbatim} +e questo testo va seguito dallo spazio per la firma, con il nome in chiaro del firmatario immediatamente sotto e la data e la firma; vedi l'esempio nella pagina~\pageref{fig:disclaimer}. + +\begin{figure}[t] +\begin{medaglione}(\fboxsep=3mm) +\begin{center} +\strut +\end{center}\begin{flushleft} +This thesis is licensed under a Creative Commons License, +Attribution -- Noncommercial -- No Derivative Works -- +4.0 International: see \url{www.creativecommons.org}. +The text may be reproduced for non-commercial purposes, provided that credit is given to the original author. +\end{flushleft}\vspace{2\baselineskip} + +I hereby declare that, the contents and organisation of this dissertation constitute my own original work and does not compromise in any way the rights of third parties, including those relating to the security of personal data. + +\begin{flushright} +\begin{minipage}{0.5\textwidth}\centering +\rule{0pt}{3\baselineskip}\dotfill\null\\ +Mario Rossi\\[\medskipamount] +Turin, 29 of February 2123 +\end{minipage}\hspace*{2em} +\end{flushright} +\end{medaglione} +\label{fig:disclaimer} +\end{figure} -Il retrofrontespizio non è necessario in senso assoluto quando volete produrre il frontespizio isolato. Non è nemmeno necessario quando volete comporre la tesi. Tuttavia il comando è disponibile e permette di aggiungere la dichiarazione legale in merito alla licenza; il retrofrontespizio di questa documentazione è stato composto con i comandi seguenti\footnote{Questo codice contiene dei comandi \cs{ref} perché è servito per comporre l'intero documento dove le etichette invocate sono definite. Se si vuole usare questo codice per comporre il retrofrontespizio assieme al frontespizio, ma isolatamente dalla tesi (lo sconsiglio), bisogna sostituire quei comandi e i loro argomenti con i valori reali.}: +Il retrofrontespizio di questa documentazione è stato composto con i comandi seguenti\footnote{Questo codice contiene dei comandi \cs{ref} perché è servito per comporre l'intero documento dove le etichette invocate sono definite. Se si vuole usare questo codice per comporre il retrofrontespizio assieme al frontespizio, ma isolatamente dalla tesi (lo sconsiglio), bisogna sostituire quei comandi e i loro argomenti con i valori reali.}: \begin{verbatim} \retrofrontespizio{Questo testo è libero secondo le condizioni -stabilite dalla \LaTeX\ Project Public Licence (LPPL) riportata +stabilite dalla \LaTeX Project Public Licence (LPPL) riportata nell'appendice~\ref{ch:LPPL} alla pagina~\pageref{ch:LPPL}. \bigskip -\noindent Composto con \XeLaTeX\ il \today +\noindent Composto con \ifPDFTeX \pdfLaTeX\else +\ifXeTeX\XeLaTeX\else +\ifLuaTeX\LuaLaTeX\else +un programma sconosciuto\fi\fi\fi\ il \today \vspace*{5\baselineskip}} \end{verbatim} +Tutti i test che compaiono nell'ultimo capoverso sono funzionali per questa documentazione il cui file è predisposto per essere compilato con tutti e tre i programmi disponibili. Chiaramente una tesi non deve avere questa versatilità e può avere preambolo concepito per un solo tipo di programma di composizione. -Non dovete dimenticare che, se volete usare \prog{xelatex} o \prog{lualatex}, l'editor con cui scrivete i vostri file deve essere configurato per registrarli sul disco fisso con la codifica \texttt{UTF-8}. -Nell'esempio di frontespizio presentato sopra si è usato l'ambiente \amb{frontespizio*} che è disponibile a partire dalla versione del pacchetto TOPtesi 5.85. I comandi \cs{frontespizio} e \cs{frontespizio*} funzionano ancora, ma suggerisco di usare gli ambienti. +Non bisogna dimenticare che, se si vuole usare \prog{xelatex} o \prog{lualatex}, l'editor con cui vengono scritti i file sorgente deve essere configurato per registrarli sul disco fisso con la codifica \texttt{UTF-8}. Mi sono ripetuto? Sì, l'ho fatto apposta, perché è molto facile dimenticarsene. + +Nell'esempio di frontespizio presentato nella pagina~\pageref{fig:altri4frontespizi} si è usato l'ambiente \amb{frontespizio*} che è disponibile a partire dalla versione~ 5.85 del pacchetto \TOPtesi. I comandi omonimi \cs{frontespizio} e \cs{frontespizio*} funzionano ancora, ma si suggerisce di usare gli ambienti. Vediamo le differenze: nella figura~\ref{fig:4frontespizi} si vedono sempre i loghi all'inizio della pagina, non ci sono filetti di nessun genere, il nome dell'università ci può essere o può mancare, le diverse tipologie di tesi hanno informazioni diverse. I loghi sono tutti in testa alla pagina ma potrebbero essere anche nella parte inferiore; la differenza dipende dall'usare l'ambiente \amb{frontespizio} che mette i loghi in testa, o l'ambiente \amb{frontespizio*} che mette i loghi nella parte inferiore della pagina; la figura~\ref{fig:frontespizi} nella pagina~\pageref{fig:frontespizi}, infatti, mostra i frontespizi di sinistra che sono stati composti con l'ambiente \amb{frontespizio} e quelli di destra composti con l'ambiente \amb{frontespizio*}. Il nome dell'ateneo appare o non appare a seconda che il comando \cs{ateneo} contenga un argomento vuoto o un argomento con un nome esplicito. Le altre informazioni dipendono da quali comandi si sono usati per caratterizzare la tesi triennale, magistrale o dottorale. Questi comandi verrano descritti dettagliatamente più avanti. +Si noti che lo stile dei frontespizi di destra della figura~\ref{fig:frontespizi} nella pagina~\pageref{fig:frontespizi} è stato composto con l'ambiente asteriscato; salvo alcuni dettagli esso è quello che si ottiene indifferentemente con entrambi gli ambienti quando si imposta \chiave{stile}{classica}; la piccola differenza che si vede nel frontespizio eseguito con questa opzione è che l'etichetta che appare sopra il nome del candidato è ``Laureando'', mentre senza l'opzione essa è ``Candidato''. Si nota invece che nei frontespizi di sinistra il blocco dei relatori e quello dei candidati sono disallineati, mentre a destra sono allineati. Volendo averli allineati anche senza l'opzione \chiave{stile}{classica} basta aggiungere l'opzione \opz{evenboxes} alle opzioni date alla classe. + +Pertanto con i frontespizi il modulo \pack{topfront} con le varie opzioni e l'asterisco permette di avere molte varianti: +\begin{enumerate}[noitemsep] +\item + L'asterisco manca: i loghi sono in testa, tranne con l'opzione + \chiave{stile}{classica}; l'asterisco è presente: i loghi sono + sotto il titolo e il sottotitolo. +\item + L'opzione \chiave{stile}{classica} è specificata: i loghi + sono sotto il titolo e il sottotitolo e i blocchi di testo + dei relatori e dei candidati sono allineati; l'opzione non + è specificata: i loghi sono conformi alla eventuale presenza + dell'asterisco e i blocchi di testo sono conformi all'eventuale + opzione \opz{evenboxes}. +\item + L'opzione \opz{evenboxes} è specificata: i blocchi dei relatori + e dei candidati sono allineati sulla base delle rispettive + etichette; l'opzione non è specificata: i due blocchi suddetti + si trovano in accordo con l'eventuale opzione + \chiave{stile}{classica}. +\item + Il nome dell'ateneo, il suo nome proprio, il nome della + struttura e il suo nome specifico appaiono o non appaiono + sulla pagina a seconda che i comandi che li impostano + contengano delle stringe nulle o delle stringhe significative. + A questo proposito si consulti più avanti la problematica + dei nomi e dei loghi. +\end{enumerate} + \begin{figure}[p]\centering \includegraphics[height=0.875\textheight]{FrontespiziAssemblati1} \caption[Frontespizi composti con lo stile standard]{Frontespizi composti con lo stile standard. In questo stile mancano i filetti e i loghi delle università possono essere messi in posti diversi della pagina; il nome dell'università può essere presente esplicitamente oppure può essere compreso nel logo.}\label{fig:4frontespizi} \end{figure} -Nella figura~\ref{fig:altri4frontespizi} sono mostrati invece i quattro frontespizi che si ottengono quando alla classe (o anche al solo modulo \pack{topfront} quando lo si usa con una classe diversa da \class{toptesi}) viene specificata l'opzione \opt{classica}. Attenzione: le opzioni \opt{classica}, e quelle che da essa dipendono, come l'opzione \opt{oldstyle} e l'opzione \opt{autoretitolo}, possono venire specificate al pacchetto, quando questo viene usato con una classe diversa da \class{toptesi}; alcune non hanno molto a che vedere con il frontespizio, sebbene possano venire usate anche all'interno del pacchetto \pack{topfront}. +Nella figura~\ref{fig:altri4frontespizi} sono mostrati invece i quattro frontespizi che si ottengono quando alla classe (o anche al solo modulo \pack{topfront} quando lo si usa con una classe diversa da \class{toptesi}) viene specificata l'opzione \chiave{stile}{classica}. Attenzione: le opzioni \opt{classica}, e quelle che da essa dipendono, come \opt{oldstyle} e \opt{autoretitolo}, possono venire specificate al pacchetto senza usare la sintassi \emph{chiave$=$valore} quando questo viene usato con una classe diversa da \class{toptesi}; alcune non hanno molto a che vedere con il frontespizio, sebbene possano venire usate anche all'interno del pacchetto \pack{topfront}. -In particolare, se per esempio, si volesse comporre il frontespizio con lo stile \opz{classica} usando la classe \class{book}, ma con il frontespizio composto con \pack{topfront}, basterebbe impostare nel preambolo: +In particolare se si volesse comporre il frontespizio con lo stile \opz{classica} usando la classe \class{book}, ma con il frontespizio composto con \pack{topfront}, basterebbe impostare nel preambolo: \begin{flushleft}\ttfamily\obeylines \char92documentclass\oarg{opzioni}\Arg{book} ... @@ -802,11 +1326,11 @@ In particolare, se per esempio, si volesse comporre il frontespizio con lo stile \char92begin\Arg{document} \end{flushleft} -Nello stile \opz{classica} si nota che il nome dell'ateneo è separato dal resto della pagina da un filetto orizzontale; analogamente l'anno accademico in calce alla pagina è separato da un filetto orizzontale. I candidati sono chiamati ``Laureandi''. Il blocco contenente i nomi dei relatori e correlatori e quello contenente i nomi dei laureandi sono allineati superiormente e non sono sfasati come nello stile standard. La seduta di esame è indicata con la dicitura ``Anno accademico'' in maiuscoletto e l'anno, o l'intervallo di anni è indicato con le cifre arabe minuscole (old style). Con questo stile più classico, il logo o i loghi sono collocati fra i titolo e i blocchi dei relatori e dei laureandi. +Nello stile \chiave{stile}{classica} si nota che il nome dell'ateneo è separato dal resto della pagina da un filetto orizzontale; analogamente l'anno accademico in calce alla pagina è separato da un filetto orizzontale. I candidati sono chiamati ``Laureandi''. Il blocco contenente i nomi dei relatori e correlatori e quello contenente i nomi dei laureandi sono allineati superiormente e non sono sfasati come nello stile standard. La seduta di esame è indicata con la dicitura ``Anno accademico'' in maiuscoletto e l'anno, o l'intervallo di anni è indicato con le cifre arabe minuscole (old style). Con questo stile più classico, il logo o i loghi sono collocati fra i titolo e i blocchi dei relatori e dei laureandi. -Si noti infine che in entrambi gli stili esistono esempi con due loghi, per i quali i nomi dei due atenei vanno scritti in forma un poco ellittica, ma piuttosto antiestetica; in generale potrebbero formare una riga così lunga da non entrare nella pagina fisica. Si veda però più avanti nel paragrafo~\ref{sec:casi-particolari}. +Si noti, infine, che in entrambi gli stili esistono esempi con due loghi, per i quali i nomi dei due atenei vanno scritti in forma un poco ellittica, ma piuttosto antiestetica; in generale potrebbero formare una riga così lunga da non entrare nella pagina fisica; più avanti si mostra come comporre i nomi degli atenei in modo che non escano fuori dalla pagina. Si veda più avanti nel paragrafo~\ref{sec:casi-particolari}. -Lo si potrebbe considerare una ``feature'', una particolarità del pacchetto TOPtesi. In realtà non conosco altre classi o moduli di estensione dove sia possibile fare riferimento a diversi loghi e a diversi nomi. +Lo si potrebbe considerare una ``feature'', una particolarità del pacchetto \TOPtesi. In realtà non conosco altre classi o moduli di estensione dove sia possibile fare riferimento a diversi loghi e a diversi nomi. Quello che consiglierei in questi casi sarebbe di aggiungere il nome dell'ateneo al logo, se già non lo contenesse, e lo farei un con un font di contrasto, per esempio con un font senza grazie maiuscolo o maiuscoletto con iniziali maiuscole, magari su due righe collocato sotto il logo vero che non contenga a sua volta già il nome dell'ateneo; come per esempio nel logo modificato mostrato nella figura~\ref{fig:logomodificato}. @@ -825,14 +1349,14 @@ Fatta questa modifica per tutti i loghi privi del nome dell'università che è n Vale la pena di ricordare che la retrocompatibilità con i comandi \cs{frontespizio} e \cs{frontespizio*} è conservata. -Perciò merita ricordare la molteplicità di configurazioni offerta dal modulo \pack{topfront} mediante la tabella comparativa~\ref{tab:modalitaperfrontespizi}. +Perciò merita confrontare le molteplici configurazioni offerte dal modulo \pack{topfront} mediante la tabella comparativa~\ref{tab:modalitaperfrontespizi}. -\begin{table}\caption{Varie modalità di composizione del frontespizio}\label{tab:modalitaperfrontespizi} -\centering +\begin{table}[!htb]\caption{Varie modalità di composizione del frontespizio}\label{tab:modalitaperfrontespizi} +{\centering \begin{tabularx}{\textwidth}{*3{>\raggedright X}}\toprule -Comando o ambiente & Stile standard & Stile classica \tabularnewline +Comando, ambiente, opzione & Stile standard & Stile classica \tabularnewline \midrule -\amb{frontespizio} & loghi in testa & loghi in basso \tabularnewline +\amb{frontespizio} & loghi in testa & loghi in basso \tabularnewline \cs{ateneo} vuoto & senza nome dell'ateneo & messaggio d'errore\tabularnewline \cs{ateneo} non vuoto& Nome dell'ateneo in testa & nome dell'ateneo in testa \tabularnewline @@ -844,14 +1368,22 @@ filetti & assenti & presenti \tabularnewline filetti & assenti & presenti \tabularnewline \midrule \cs{frontespizio} & come \amb{frontespizio} &come \amb{frontespizio} - \tabularnewline +\tabularnewline \midrule -\cs{frontespizio*} & come \amb{frontespizio*} & come \amb{frontespizio*} \tabularnewline +\cs{frontespizio*} & come \amb{frontespizio*} & come \amb{frontespizio*} \tabularnewline +\midrule +\opz{evenboxes} presente & relatori e~candidati allineati + & relatori e~candidati allineati \tabularnewline +\opz{evenboxes} assente & relatori e~candidati disallineati + & relatori e~candidati allineati \tabularnewline \bottomrule -\end{tabularx} -\end{table} +\end{tabularx}\par}\vspace{1ex} +\footnotesize +Gli ambienti \amb{ThesisTitlePage} e \amb{FrontespizioTesina} definiti negli altri moduli, si comportano come l'ambiente \amb{frontespizio}; in alcuni di questi moduli l'ambiente accetta anche l'asterisco, con una sintassi particolare, ma con la stessa funzione che svolge nell'ambiente \amb{frontespizio*}. +\end{table} +\goodpagebreak[6] \begin{figure}[p]\centering @@ -859,126 +1391,405 @@ filetti & assenti & presenti \tabularnewline \caption[Frontespizi composti con lo stile \texttt{classica}]{Frontespizi composti con lo stile \texttt{classica}. Con questo stile si ha una disposizione diversa delle varie informazioni e i loghi sono sempre posti nella parte inferiore della pagina. Il nome dell'università è sempre presente.}\label{fig:altri4frontespizi} \end{figure} +\clearpage + +\subsection{Comporre il frontespizio della tesi di dottorato della ScuDo} + +Con lo stile prodotto dall'opzione \chiave{tipotesi}{scudo} il frontespizio contiene il logo della Scuola (messo a disposizione dei dottorandi dala Segreteria della Scuola; qui viene usata una imitazione per mostrare come appare un logo di forma simile nell'intestazione della dissertazione) e appare come nella figura~\ref{fig:frontescudo} nella pagina~\pageref{fig:frontescudo}. Questo frontespizio è quello prodotto compilando con \LuaLaTeX\ l'esempio costituito dal file \file{toptesi-scudo\discretionary{}{-}{-}example.tex}. + +Si noti: il logo della scuola ScuDo contiene il ``marchio'' e il ``logotipo''; il primo è un'immagine; il secondo è la denominazione esatta dell'ente. Pertanto sarebbe assurdo ripetere il nome dell'ente come nome dell'ateneo e nome della struttura nelle solite righe; il modulo \pack{toptesi-scudo.sty} non contiene nemmeno i comandi per impostare questi nomi. Gli altri blocchi di nomi come le loro etichette sono specifici per questo tipo di frontespizio. + +Come già detto il retrofrontespizio viene composto con le frasi esposte nella pagina~\pageref{fig:disclaimer}. + +\begin{figure}[p]\centering +\frame{\includegraphics[width=0.9\textwidth]{FrontespizioScudo}} +\caption{Frontespizio della dissertazione della ScuDo} +\label{fig:frontescudo} +\end{figure} -\subsection{I comandi accessori di topcoman} -L'altro file accessorio \pack{topcoman} contiene diversi utili comandi, alcuni già incorporati nella definizione della lingua italiana del sistema \TeX\ (solo se si usa \pack{babel}). Tuttavia se dovete scrivere in una lingua diversa dall'italiano quei comandi non sono disponibili e qui viene utile avere quei comandi in un pacchetto distinto da \pack{babel} e non soggetto a test sulla lingua in uso. Alcuni di questi comandi, non definiti da \pack{poliglossia} quando si scrive in italiano, si rendono particolarmente utili quando si compone con \prog{xelatex} o \prog{lualatex}. +Il codice usato per comporre quel frontespizio è indicato qui di seguito; per i singoli comandi da usare si veda il paragrafo~\ref{sec:scudo}. -Il file contiene anche un comando per stampare in modo verbatim il contenuto di un file esterno, per esempio il listato di un programma; ci sono altri pacchetti \LaTeX\ che consentono di stampare il listato di un programma in modo anche migliore, per esempio il pacchetto \pack{listings}, ma, visto che può servire per la tesi e, visto che una volta che lo si conosce -potrebbe piacere e poi si vorrebbe continuare ad usarlo, è meglio -disporne come pacchetto separato. Non sarebbe difficile per -esempio stamparsi in pulito il listato del proprio programma contenuto nel file -\texttt{myprogram.c}: si scrive semplicemente un file del tipo \begin{verbatim} -\documentclass{report} -\usepackage{topcoman} -\begin{document} -\pagestyle{plain} -\chapter*{Il programma myprogram.c} -\listing{myprogram.c} -\end{document} +\begin{ThesisTitlePage} +\PhDschoolLogo{Logo-ScuDo} +\ProgramName{Energy Enginering} +\CycleNumber{29.th} +\author{Mario Rossi} +\title{Writing your Doctoral~Thesis\\with \LaTeX} +\subtitle{Typeset with the \TOPtesi class} +\SupervisorNumber{2} +\SupervisorList{% + Prof.~A.B., Supervisor\\ + Prof.~C.D. Co-supervisor} +\ExaminerList{% +Prof.~A.B., Referee, University of \dots\\ +Prof.~C.D., Referee, University of \dots\\ +Prof.~E.F., University of \dots\\ +Prof.~G.H., University of \dots\\ +Prof.~I.J., University of \dots} +\ExaminationDate{February 29, 2123} +\end{ThesisTitlePage} \end{verbatim} -e lo si passa a \prog{pdflatex} per ottenere poi una stampa -ben composta da conservare per documentazione; per evitare che le -righe fuoriescano dalla larghezza normale del testo, o, peggio -ancora, fuori dalla carta, sarebbe opportuno che le righe del -programma non fossero più lunghe di una ottantina di caratteri -per la carta A4, proporzionalmente di meno per formati di carta più piccoli. -\section{La composizione del frontespizio} -Non è generalmente necessario inserire nel frontespizio il logo dell'ateneo; controllate presso la vostra segreteria competente le regole fissate per la composizione del frontespizio. Se il logo è richiesto, allora la segreteria vi dice anche quale logo usare e da dove scaricarne il file che ne contiene la descrizione grafica; \textcolor{red}{siate precisi nel richiedere le limitazioni legali d'uso del logo dell'ateneo, perché il logo è proprietà esclusiva dell'ateneo e l'uso indebito potrebbe essere fonte di problemi legali non indifferenti.} Siccome tali limitazioni esistono, il pacchetto TOPtesi non viene più distribuito con i file dei loghi di diversi atenei, come veniva fatto nelle prime edizioni. -Controllate se si tratta di un file vettoriale (estensione \file{.pdf} oppure \file{.eps}) oppure bitmapped (estensione \file{.jpg}, \file{.png}, \file{.bmp}, \file{.wmf}, \file{.tiff},\dots). Ricordate che \prog{pdflatex}, \prog{xelatex} e \prog{lualatex} possono incorporare solo i formati \file{.pdf}, \file{.eps}\footnote{Dall'edizione di \TeXLive 2010 anche \prog{pdflatex} è in grado di incorporare file in formato \file{.eps}, mentre prima era necessario convertirli preventivamente in formato \file{.pdf}.}, \file{.jpg}, \file{.png} o \file{.mps}\footnote{I file vettoriali in formato \file{.mps} sono ottenuti con il programma \MP; i file delle figure create con questo programma hanno di default una estensione numerica; si può impostare il programma per assegnare l''estensione \file{.mps} oppure si può cambiare il nome e l'estensione.}. Se il file bitmapped viene fornito in un formato diverso da questi cinque, è necessario convertirlo in uno dei formati accettati. +\subsection{Il frontespizio della tesi triennale} +Per la tesi triennale il frontespizio viene composto specificando alla classe l'opzione \chiave{tipotesi}{triennale} (oppure \chiave{tipotesi}{monografia} -- questa opzione è conservata per retrocompatibilità). -Vale la pena di ricordare che il formato \file{.jpg} va bene per immagini a colori sfumati come le fotografie, mentre il formato \file{.png} è più adatto per disegni al tratto con righe fortemente contrastate rispetto allo sfondo. In generale, quindi, sarebbe meglio convertire nel formato \file{.png} un logo bitmapped fornito in un formato diverso da quelli elencati sopra, ma il formato \file{.png} potrebbe contenere delle ``trasparenze'' che non sono accettabili con le prescrizioni PDF/A dei documenti archiviabili e in questo caso bisogna ricorrere al formato \file{.jpg}. Potendo disporne, sarebbe sempre meglio usare un disegno veramente vettoriale del logo. +I comandi usabili per impostare le parole fisse e i dati variabili sono sostanzialmente gli stessi indicati per il modulo \pack{topfront}; un cambiamento importante è costituito dal fatto che il titolo della tesi si descrive con lo stesso comando \cs{titolo} usato per le altre tesi, al posto del comando \cs{monografia} (che però è ancora usabile con questo modulo, conservato per retrocompatibilità). -Merita segnalare che le tesi svolte nell'ambito di collaborazioni fra atenei possono richiedere i loghi dei diversi atenei partecipanti all'accordo; segnalo la Scuola Interpolitecnica di Dottorato condotta nell'ambito di un accordo fra i politecnici di Bari, Milano e Torino. Ricordo i programmi di doppia laurea condotti nell'ambito di accordi fra l'ateneo di appartenenza e un altro ateneo, generalmente europeo. Ricordo il programma europeo Erasmus Mundus dove il titolo di studio viene rilasciato da consorzi di almeno quattro atenei di nazioni europee diverse. In queste circostanze è spesso necessario inserire nel frontespizio i loghi di tutti gli atenei partecipanti alla convenzione. +Un altro cambiamento importante è che gli ambienti \amb{frontespizio} e \amb{frontespizio*}, e gli omonimi comandi \cs{frontespizio} e \cs{frontespizio*} non sono più definiti, ma è disponibile solo l'ambiente \amb{ThesisTitlePage} che accetta un asterisco (non delimitato) come primo argomento; la sua sintassi è pertanto la seguente: +\begin{ttsintassi} +\Bambiente{ThesisTitlePage}\meta{*} +\meta{comandi per il frontespizio} +\Eambiente{ThesisTitlePage} +\end{ttsintassi} -\subsection{Il logo dell'ateneo per l'uso con TOPtesi e TOPfront}\label{ssec:loghi} +La funzione dell'asterisco opzionale è la stessa che si aveva con gli ambienti \amb{frontespizio} e \amb{frontespizio*}, solo che in questo caso l'ambiente è unico e l'asterisco non fa parte del nome: infatti nel comando di chiusura non appare più. -Il pacchetto \pack{topfront} contiene un comando molto potente, \cs{logosede}, che accetta la sintassi seguente: -\begin{flushleft}\obeylines -\cs{logosede}\oarg{altezza}\marg{file del logo} -\medskip -oppure -\medskip -\cs{logosede}\oarg{altezza}\marg{lista di nomi di file di loghi separati da virgole} -\end{flushleft} -dove il valore prefissato per l'\meta{altezza} del logo è 25\,mm per la carta A4, ed è scalato proporzionalmente per carte di formato diverso; con l'argomento facoltativo si può specificare un'altezza leggermente maggiore o minore del valore predefinito. L'argomento \meta{file del logo} o \meta{lista di nomi di file di loghi separati da virgole} è costituito da un solo nome di file o da una lista di nomi di file separati da virgole, corrispondenti ciascuno al logo di un diverso ateneo. Questi file devono avere i formati corrispondenti a una delle cinque estensioni consentite, ma non è necessario specificare il nome del file completo di estensione; questa specificazione potrebbe essere necessaria solo nel caso in cui si disponga del logo di uno stesso ateneo in diversi formati grafici (o, cosa da non fare mai, immagini o loghi diversi con il nome del loro file uguale e l'estensione diversa; questo genere di pasticci è fonte di numerosi errori, facilmente evitabili se si mantiene in ordine la scelta dei nomi e delle estensioni). +I \meta{comandi per il frontespizio} vengono letti dall'ambiente nel file di configurazione, se esiste, e poi dai comandi esplicitamente indicati per inserire, se occorre, delle stringhe fisse, diverse da quelle preimpostate, e i dati specifici della tesi: autore, titolo, sottotitolo, eccetera. -Il programma codificato nel pacchetto \pack{toptesi} provvede a scalare tutti i loghi all'\meta{altezza} specificata e li compone affiancati su una sola riga distanziati mediante uno spazio predefinito di 3\,em; lo si può impostare ad un valore leggermente maggiore o minore tramite il comando \cs{setlogodistance}, per esempio: +I comandi come \cs{ateneo}, \cs{struttura} eccetera agiscono come indicato per il modulo \pack{topfront}. + +Le opzioni \chiave{stile}{classica} e \opz{evenboxes} conservano le loro funzioni. + +Un esempio di frontespizio per tesi triennale è dato dal frontespizio di questa stessa documentazione, composto con i comandi: \begin{verbatim} -\setlogodistance{2em} +\begin{ThesisTitlePage} +\GetFileInfo{toptesi.cls} +\logosede{TITlogoCropped} +\NomeElaborato{Manuale d'uso} +\titolo{Il pacchetto \textsf{TOPtesi}} +\TitoloListaCandidati{} +\sottotitolo{Per comporre tesi al Politecnico di Torino\\ +e in molte altre università\\[1ex] +Il pacchetto \textsf{TOPtesi} contiene la classe omonima +e diversi altri file per comporre tesi di diverso tipo\\[1ex] +Questa documentazione fornisce anche le linee guida per comporre +una tesi rispettando certe regole tipografiche} +\sedutadilaurea{Pacchetto \textsf{toptesi} versione +\fileversion\ del \filedate} +\retrofrontespizio{Questo testo è libero secondo +le condizioni stabilite dalla \LaTeX Project Public +Licence (LPPL) riportata nell'appendice~\ref{ch:LPPL} +alla pagina~\pageref{ch:LPPL}. + +\bigskip + +\noindent Composto con \ifPDFTeX \pdfLaTeX\else +\ifXeTeX\XeLaTeX\else\ifLuaTeX\LuaLaTeX\else +un programma sconosciuto\fi\fi\fi\ il \today +\vspace*{5\baselineskip}} +\end{ThesisTitlePage} \end{verbatim} -Se la riga di loghi, eventualmente scalati in altezza e distanziati dello spazio predefinito o esplicitamente specificato, risultasse più larga della giustezza della pagina del titolo, il programma provvede ad uno scalamento dell'intera riga di loghi in modo che non superi la giustezza della pagina. Un solo logo viene composto centrato; due o più loghi vengono ugualmente composti centrati ma distanziati come si è detto. Seguono alcuni esempi, ma si tenga presente che i loghi usati per questi esempi sono solo dei disegni creati in modo tale da avere la forma di un logo; loghi veri di diverse università non sono distribuiti insieme a TOPtesi, a causa delle restrizioni sulla loro proprietà legale; solo il vero logo del Politecnico di Torino appare nel frontespizio, perché questa è una pubblicazione ufficiale di quell'ateneo. Un solo logo appare come nel frontespizio di questo manuale; due loghi appaiono così:\\*[\medskipamount] -\makebox[\textwidth]{\logosede{logouno,logodue}\printloghi} +Naturalmente in una vera tesi triennale la composizione del frontespizio e dell'eventuale retrofrontespizio è in generale molto più semplice; ma anche nel frontespizio di questo documento sono bastati poco meno di una dozzina di comandi per definire tutto il frontespizio e il retro del frontespizio. + +\subsection{Il frontespizio della tesi magistrale} +Per la tesi magistrale il frontespizio viene composto specificando alla classe l'opzione \chiave{tipotesi}{magistrale}. -\goodpagebreak[10] +I comandi usabili sono sostanzialmente gli stessi che fornisce il modulo \pack{topfront}, con alcune differenze. Innanzi tutto, e in modo del tutto ovvio, non sono disponibili i comandi di \pack{topfront} che si riferiscono specificatamente agli altri tipi di tesi triennale e dottorale. Poi è disponibile l'ambiente \amb{ThesisTitlePage} con le stesse caratteristiche descritte per l'omonimo ambiente per il modulo relativo alla tesi triennale. Si richiama l'attenzione sull'uso dell'asterisco da usare facoltativamente come primo token dopo l'apertura dell'ambiente. -\noindent Tre loghi appaiono così:\\*[\medskipamount] -\makebox[\textwidth]{\logosede{logodue,logotre,logoquattro} -\printloghi}\medskip +In realtà per retro compatibilità gli ambienti \amb{frontespizio} con o senza asterisco e i comandi \cs{frontespizio} con o senza asterisco, sarebbero ancora disponibili, ma se ne scoraggia l'uso, raccomandando la preferenza per il nuovo ambiente \amb{ThesisTitlePage}. +Nulla cambia in merito all'opzione \chiave{stile}{classica} e all'opzione specificata con \opz{evenboxes} e ai diversi aspetti che queste opzioni, unite all'asterisco facoltativo, producono sul frontespizio della tesi magistrale. -\noindent Quattro loghi, nonostante sia stata conservata l'\meta{altezza} predefinita, producono una riga di loghi di altezza ridotta per consentire che appaiano tutti e quattro nella stessa riga:\\*[\medskipamount] -\makebox[\textwidth]{\logosede{logoquattro,logouno,logotre,logodue} -\printloghi}\medskip -Si noti che il logo in testa alla pagina del frontespizio di questo documento è una esplicita richiesta espressa dal Politecnico di Torino; molte altre sedi come la quasi totalità delle case editrici che mettono il loro logo nel frontespizio, lo mettono nella metà inferiore della pagina; ma la tesi di laurea o di dottorato è una documento particolare, il cui frontespizio deve soddisfare ad alcune esigenze burocratiche, e non può, quindi, soddisfare a criteri estetici molto stringenti. Per questo motivo, lo si vedrà meglio avanti, il modulo \pack{topfront} consente una variante del comando per creare i frontespizi: essa intesta la pagina col nome dell'ateneo e mette i loghi nella metà inferiore della pagina. Se, come per il Politecnico di Torino, il nome fa parte del logo\footnote{Il logo di questo Politecnico è fatto di due parti: quella tonda di sinistra prende il nome di ``marchio'', mentre quella letterale a destra prende il nome di ``logotipo''; l'Ufficio Comunicazione e Immagine che si occupa di questi aspetti formali ha emesso una normativa specifica sui colori e le forme sia del marchio sia dei font usati per il logotipo.} non è il caso di ripetere il nome dell'ateneo nella parte alta della pagina perché vi appare già nel logotipo. -Comunque, volendo, si può inserire in testa alla pagina sia il logo, sia il nome generico dell'ateneo sia il nome proprio dell'ateneo; come fare lo sì è già descritto in precedenza e lo si è riassunto nella tabella~\ref{tab:modalitaperfrontespizi} nella pagina~\pageref{tab:modalitaperfrontespizi}. +\subsection{Il frontespizio della tesi dottorale} +La tesi dottorale di cui si parla in questa sezione non riguarda la tesi della scuola di dottorato del Politecnico di Torino, per la quale esiste l'apposita opzione e l'apposito modulo. Qui si parla di tesi dottorali da comporre secondo regole di altri atenei, se queste sono compatibili con gli stili disponibili in \TOPtesi; qualora non lo fossero, bisogna ricorrere a un frontespizio completamente personalizzato mediante l'opzione \chiave{tipotesi}{custom}. + +In ogni caso il modulo per la composizione delle tesi dottorali ``generiche'' si invoca specificando l'opzione \chiave{tipotesi}{dottorale}. Questo modulo non differisce granché dal modulo generico \pack{topfront}, salvo il fatto che manca di tutti i comandi che si riferiscono specificatamente alle tesi triennali e magistrali. -\section{Comporre il frontespizio senza ricorrere a TOPfront}\label{sec:solofrontespizio} -Potrebbe essere necessario comporre il frontespizio in modo diverso da come viene composto tramite i comandi contenuti nel pacchetto \pack{topfront}, sia pure ricorrendo alle due varianti dell'ambiente \amb{frontespizio} e \amb{frontespizio*}. +Anche per questo tipo di tesi è disponibile l'ambiente \amb{ThesisTitlePage} per comporre il frontespizio; come negli altri casi accetta un asterisco facoltativo come primo token dopo l'apertura dell'ambiente. A differenza del modulo per le tesi magistrali non conserva gli ambienti \amb{frontespizio} con o senza asterisco e i comandi \cs{frontespizio} con o senza asterisco. -Esistono alcune strade: una è quella di usare l'ambiente \amb{titlepage} e scriverci dentro quello che si vuole in accordo con le prescrizioni del proprio ateneo; l'altra è quella di usare altri pacchetti espressamente creati per comporre frontespizi, in particolare il pacchetto \pack{frontespizio}. +Nuovamente le opzioni \chiave{stile}{classica} e \opz{evenboxes} unite all'asterisco facoltativo dell'ambiente \amb{ThesisTitlePage}, producono gli stessi effetti già descritti per gli altri moduli. -Ci sono diversi motivi per i quali un laureando o dottorando vorrebbe comporre un frontespizio diverso da quello predefinito da TOPtesi con il suo modulo \pack{topfront}. +\subsection{Il frontespizio della tesina} +Per la tesina da presentare all'esame di stato per il conseguimento del diploma di maturità il frontespizio è evidentemente diverso da quello delle tesi universitarie. Un esempio è mostrato nella figura~\ref{fig:frontepizio-tesina}. + +\begin{figure}[p] +\fbox{\includegraphics[width=\dimexpr\textwidth-2\fboxrule-2\fboxsep]{Frontespizio-sss}} +\caption{Esempio di frontspizio per una tesina} +\label{fig:frontepizio-tesina} +\end{figure} + +Per comporre la tesina bisogna specificare la chiave \chiave{tipotesi}{sss}; questa chiave implica il caricamento di alcuni pacchetti aggiuntivi e la necessità di usare dei comandi specifici per immettere i dati necessari. + +Senza specificare altro \TOPtesi usa i font CM-Super; sarebbe meglio richiedere nel preambolo i font Latin Modern mediante il pacchetto \pack{lmodern}; meglio ancora con il pacchetto \pack{cfr-lm} che dispone di molte opzioni e usa meglio le potenzialità dei font Latin Modern. Abituati come sono ad usare i comuni word processor, i maturandi preferiscono usare i font Times; in questo caso raccomanderei di usare i Times extended, mediante il pacchetti \pack{newtxtext} e \pack{newtxmath}, rispettivamente per i font testuali e per quelli matematici; invece, preferendo un font più facilmente leggibile e un pochino più largo, suggerirei i font Palatino extended da richiamare con i pacchetti \pack{newpxtext} e \pack{newpxmath}. + +Va notato subito che è possibile inserire il logo della scuola, ma ovviamente bisogna richiederlo alla scuola, la quale potrebbe negarlo; non è cattiveria; semplicemente il logo è un suo simbolo legale e potrebbe venirne fatto un uso improprio; la scuola potrebbe però disporre di un logo secondario per questi scopi. Nella figura~\ref{fig:frontepizio-tesina} è stato usato un disegno di fantasia, solo per mostrare dove verrebbe inserito; se non si inserisce nulla, lo spazio inutilizzato viene automaticamente ridistribuito fra gli altri spazi. + +Vediamo subito i pacchetti aggiuntivi che bisogna \emph{evitare di ricaricare}. +\begin{description}[noitemsep] +\def\Item[#1]{\normalfont\item[\pack{#1}]} +\Item[amsmath] e \pack{amsthm} + sono caricati indipendentemente dal programma di composizione + usato per comporre la tesina; servono per comporre matematica + un po' complessa e per definire altri tipi di enunciati da + mettere in evidenza; bisogna leggerne la documentazione per + usarli in modo appropriato. +\Item[amssymb] + viene caricato solo se si usa come programma di composizione + \pdfLaTeX; serve per avere accesso ad un altro paio di + centinaia di simboli matematici adatti a complementare la + matematica componibile con il precedente pacchetto \pack{amsmath}. +\Item[unicode-math] + viene caricato quando \LuaLaTeX\ o \XeLaTeX\ vengono usati + come programmi di composizione. L'utente però deve specificare + nel preambolo quale font OpenType matematico vuole usare. +\Item[xparse] e \pack{xspace} e \pack{xcolor} + sono funzionali per la classe, ma le loro funzionalità possono + essere usate anche dall'utente. Ovviamente è necessario leggere + la documentazioni di quei pacchetti per usarli correttamente. +\Item[calc] e \pack{ifthen} + sono caricati per mettere l'utente nelle condizioni di eseguire + semplici calcoli aritmetici e/o logici se per caso desidera + crearsi delle macro personali. Non è necessario farne uso perché + da molti anni i programmi di composizione del sistema \TeX + sanno fare queste operazioni senza l'uso di pacchetti esterni; + tuttavia diversi utenti preferiscono usare questi pacchetti. +\Item[multirow] + viene caricato a beneficio di coloro che vogliono imitare + le tabelle composte con i soliti word processor che sono + in grado di comporre celle che si svolgono su più righe; + tipograficamente parlando non è una pratica molto rigorosa, + ma in rare circostanze poterebbe essere utile. +\Item[booktabs] + invece serve per comporre tabelle professionali senza filetti + verticali e senza quei filetti orizzontali che vengono + solitamente usati dai word processor. +\end{description} +Non si sono caricati pacchetti particolari per la composizione della bibliografia; lo studente ha tre possibilità: \begin{enumerate}[noitemsep] -\item Le specifiche per le tesi di una data università sono inconciliabili con quelle preimpostate da TOPtesi. -\item Le informazioni da inserire nel frontespizio sono diverse da quelle pre"impostate da TOPtesi. -\item Il laureando non deve soddisfare a specifiche particolari ma vuole comporre un frontespizio personalizzato a suo piacimento. +\item Compone la bibliografia a mano servendosi dell'ambiente + \amb{thebibliography}; non è complicato se la bibliografia + è breve; diventa molto complicato con una lunga bibliografia + a causa della moltitudine di errori che sfuggono ma, + specialmente, per la disuniformità della composizione delle + singole voci. +\item Si usa il pacchetto \pack{natbib} e si crea un database + bibliografico con il programma \prog{jabref} o con + \prog{bibdesk} (quest'ultimo, solo per il Mac, è già + installato solo per il fatto di avere installato il sistema + \TeX usando Mac\TeX). Predisposto il database bibliografico, + si usa l'elaboratore \prog{bibtex} per estrarre e formattare + alla \LaTeX gli estremi delle opere da citare, e poi il + comando \cs{printbibliography} e i vari tipi di comandi + \cs{cite} predisposti da \pack{natbib} permettono sia di + comporre la bibliografia nel documento, sia di citare + correttamente le opere elencate. Conviene leggere la + documentazione relativa ai databse bibliografici dando + da terminale il comando \texttt{texdoc bibtex}, in particolare + il suo paragrafo~3. +\item Si usa il database bibliografico come nel caso precedente, + ma si usa il pacchetto \pack{biblatex} e l'elaboratore di + database \prog{biber} per ottenere un risultato impeccabile; + la documentazione di \pack{biblatex} va letta con attenzione, + perché questo è un pacchetto molto performante e richiede di + essere usato con assoluta precisione. \end{enumerate} -A seconda dei motivi per i quali il laureando non vuole o non può usare il layout e la strutturazione del frontespizio predisposto da TOPtesi, le due strade offrono alcuni vantaggi e svantaggi. +Invece i comandi da usare per comporre il frontespizio sono raccolti nelle tabelle del capitolo~\ref{cap:comandispecifici}. +Qui si ripetono con una descrizione a parole, non nella forma stringata delle tabelle. Si ricorda che, come per gli altri tipi di tesi; si può disporre di un file di configurazione e che i comandi per il frontespizio vanno inseriti all'interno del ambiente \amb{FrontespizioTesina}; questo legge, se c'è, il file di configurazione, poi esamina i comandi che l'utente ha inserito fra lo statement di apertura e quello di chiusura. Se l'utente ha ripetuto qualche comando già presente nel file di configurazione, il comando dell'utente ha la prevalenza. + +\begin{description}[noitemsep] +\def\Item[#1]{\normalfont\item[\cs{#1}]} +\Item[SSSlogo] + Serve per definire il nome, senza estensione, del file che + contiene l'immagine del logo della scuola; se questo comando + non viene dato, non viene inserito nulla nel frontespizio. + Il file può avere solo certi formati di immagine corrispondenti + alle estensioni \file{.pdf}, \file{.eps}, \file{.png}, e + \file{.ipg}; i primi due formati possono essere vettoriali + e, se lo sono davvero\footnote{Potrebbero contenere al loro + interno una matrice di punti colorati, come i formati del + secondo tipo, quindi non sarebbero dei veri formati + vettoriali.}, sono riproducibili con qualunque fattore di + scala; i secondi due formati sono a matrici di punti e la + loro resa può essere scadente se la densità di pixel al + pollice è inferiore ai 150\unit{pxl/inch}. I primi formati + sono certamente preferibili. La sintassi è: +\begin{ttsintassi} +\cs{SSSlogo}\marg{nome del file} +\end{ttsintassi} +% +\Item[NomeTesina] + serve per impostare il nome dell'elaborato; la stringa di + default è ``Tesina di maturità'', ma l'utente può cambiarla + a suo piacimento; potrebbe persino indicare una stringa vuota. + La sintassi è: +\begin{sintassi} +\cs{NomeTesina}\marg{nome dell'elaborato} +\end{sintassi} +\Item[NomeCandidato] + Imposta l'indicazione da scrivere sopra il nome dello studente; + l'impostazione di default scrive ``Studente'' oppure + ``Studentessa'' a seconda che il nome del maturando venga + introdotto mediante il comando \cs{studente} o + \cs{studentessa}; l'utente che usa questo comando + \cs{NomeCandidato} evidentemente vuole cambiare + l'indicazione preimpostata, quindi non ha bisogno di + scrivere comandi complessi per distinguere il maschile + dal femminile; il maturando sa sicuramente di che genere + è, quindi mette un nome del genere corrispondente. + La sintassi è: + \begin{sintassi} + \cs{NomeCandidato}\marg{Etichetta del maturando} + \end{sintassi} +\Item[IndirizzoMiur] imposta l'indirizzo speciale della scuola + come risulta al Ministero. Questa indicazione è facoltativa. + Se si vuole impostare questo indirizzo, la sintassi è: + \begin{sintassi} + \cs{IndirizzoMiur}{Indirizzo speciale del Ministero} + \end{sintassi} +\Item[OpzioneMiur] + indicazione facoltativa che specifica la destinazione culturale + come risulta al Ministero; se la si vuole indicare, la sintassi è: + \begin{sintassi} + \cs{OpzioneMiur}\marg{opzione ministeriale} + \end{sintassi} +\Item[TipoScuola] + imposta la denominazione generica della scuola, per esempio + ``Liceo Classico'', oppure ``Istituto Tecnico Industriale + di Stato'' o quant'altro si riferisca alla scuola specifica + del maturando. Nessun valore preimpostato. Lo si imposta + con la sintassi: + \begin{sintassi} + \cs{TipoScuola}\marg{denominazione generica della scuola} + \end{sintassi} +\Item[NomeScuola] + imposta il nome della persona o dell'evento a cui è intitolata + la scuola, per esempio ``Vittorio Alfieri'', ``Sandro Pertini'', + e simili. Non tutte le scuole sono intitolate a qualcuno o a + qualche evento importante; se si vuole impostare questo nome, + la sintassi è: + \begin{sintassi} + \cs{NomeScuola}\marg{intitolazione} + \end{sintassi} +\Item[SedeScuola] + imposta la sede della scuola; può consistere del solo nome + della città dove ha sede la scuola, oppure può essere + l'intero indirizzo civico; il comando accetta anche + argomenti che contengono segni di ``a~capo'' (\cs{\char92}); + la sintassi è: + \begin{sintassi} + \cs{SedeScuola}\marg{sede della scuola} + \end{sintassi} +\Item[AnnoScolastico] + imposta l'anno scolastico durante il quale viene svolto + l'esame di stato; può essere una indicazione abbreviata, + del tipo ``33--34'', oppure completa ``2033--2034''. + Lo si imposta con la sintassi: + \begin{sintassi} + \cs{AnnoScolastico}\marg{anno scolastico} + \end{sintassi} +\Item[titolo] + imposta il titolo della tesina. È opportuno mantenere il + titolo molto lapidario affinché possibilmente occupi solo + una riga, al massimo due righe; nell'indicare dove andare + a capo si metta il segno \verb|\\| prima di un articolo, + di una preposizione, di un breve avverbio, in modo da non + andare a capo dopo simili parole. Se si devono aggiungere + dettagli al titolo, lo si faccia usando il successivo + comando \cs{sottotitolo}. La sintassi è: + \begin{sintassi} + \cs{titolo}\marg{titolo della tesina} + \end{sintassi} +\Item[sottotitolo] + imposta facoltativamente il sottotitolo; questo può essere + composto anche da più enunciati, come fatto nel frontespizio + di questa documentazione. Lo si può impostare con la sintassi: + \begin{sintassi} + \cs{sottotitolo}{un sottotitolo di uno o più enunciati} + \end{sintassi} + Di nuovo si raccomanda di andare a capo solo prima + di articoli, preposizioni, congiunzioni e simili brevi + parole usando esplicitamente il comando\verb|\\|. +\Item[studente] + o \textbf{\cs{studentessa}} imposta il nome e cognome del + maturando; si raccomanda di mettere sempre il cognome dopo + il nome; la sintassi valida per entrambi i comandi è la + seguente: + \begin{sintassi} + \cs{studente}\marg{Nome Cognome}\oarg{sigla della classe} + \end{sintassi} + La \meta{sigla della classe} è facoltativa; se è costituita + da una stringa non nulla, questa viene scritta di default + sotto il nome del maturando, rientrata e in carattere + normale; se si vuole una indicazione diversa, per esempio + in linea con il nome del maturando, si deve ridefinire la + macro \cs{IDlabel}; questa è predefinita così:\\[1ex] + \texttt{\string\newcommand*\string\IDlabel[1]\{\string\\% + \string\quad\{\string\normalfont\string\normalsize\#1\}\char92\textvisiblespace \}}\\[1ex] + Attenzione: il nome del maturando viene composto in + maiuscoletto nero; se il font in uso non ne dispone, esso + viene composto in tondo nero. + Per la \meta{sigla della classe} + si possono usare indicazioni lapidarie come ``{V F}'', o + espressioni più dettagliate come, ad esempio, ``{V sezione F}'' o + ``{V indirizzo linguistico}''. +\Item[Presidente] + imposta il nome del presidente della commissione d'esame; + va preceduto dal suo appellativo professionale, in genere solo + \verb*|prof.\ |; evitare ``prof.ssa'' la cui versione + abbreviata in modo burocratico non serve, visto che + l'appellativo è seguito dal nome proprio della persona. + Ovviamente il nome va sempre prima del cognome. La sintassi è: + \begin{sintassi} + \cs{Presidente}\marg{appellativo Nome Cognome} + \end{sintassi} + Attenzione: il nome di questa persona, compreso l'appellativo, + viene composto in maiuscoletto nero; se il font in uso non ne + dispone, esso viene composto in tondo nero; usando il + maiuscoletto, l'appellativo va indicato usando solo lettere + minuscole. +\Item[NumeroCommissione] + imposta una informazione non obbligatoria, costituito dal + numero identificativo assegnato dal Ministero alla specifica + commissione d'esame. Lo si imposta con la sintassi: + \begin{sintassi} + \cs{NumeroCommissione}\marg{numero identificativo della + \qquad commissione} + \end{sintassi} +\end{description} -La prima via, quella di usare l'ambiente \env{titlepage}, permette il massimo della libertà e consente di comporre il frontespizio come il laureando lo vuole, ma ha lo svantaggio che il laureando dentro quell'ambiente deve specificare ogni dettaglio di composizione. Se conosce bene \LaTeX\ e ha buone conoscenze tipografiche può ottenere un risultato gradevole, ma può anche cadere negli errori tipografici più comuni e produrre un frontespizio impresentabile. +Come esempio di applicazione si veda il file del pacchetto \TOPtesi, denominato \file{toptesi\discretionary{}{-}{-}example\discretionary{}{-}{-}sss.pdf}. -La seconda via può dare risultati buoni, grazie alla possibilità di personalizzazione che offre, in particolare con il pacchetto \pack{frontespizio}. Ma non si può fare sempre tutto; anche questo pacchetto è preimpostato per produrre il frontespizio nel formato di carta A4 e con due stili, ``standard'' ed ``elements'' specifico per l'uso con la classe \class{suftesi}. Più avanti indicherò come produrre frontespizi con altri formati di carta. +\subsection{Il frontespizio ``custom''} +Come già spiegato, l'opzione \chiave{tipotesi}{custom} impedisce il caricamento degli altri moduli di \TOPtesi, ma consente all'utente di caricarsi un suo file personale per la composizione del frontespizio; alternativamente l'utente può crearsi un frontespizio completamente personalizzato usando l'ambiente \amb{titlepage}. -\subsection{Comporre il frontespizio con l'ambiente titlepage} Per seguire questa strada, qui posso dare solo delle indicazioni generiche. \begin{enumerate}[noitemsep] \item Aperto l'ambiente \env{titlepage} sarebbe opportuno cambiare localmente la geometria del layout della pagina, specificandolo con \begin{flushleft} \cs{thispagestyle}\marg{stile} \end{flushleft} -dove \meta{stile} è stato precedentemente definito usando il pacchetto \pack{geometry} o altri pacchetti. Sarebbe opportuno ridefinire i due margini interno ed esterno in modo che siano uguali. Qualcuno desidera apportare un piccolo spostamento verso l'esterno di non più di 5\,mm per compensare la curvatura della prima pagina; questa curvatura dipenderebbe dal modo di confezionare/legare la tesi; di solito con una buona brossura ben eseguita o una legatura a filo, non è necessario apportare questa correzione, con una tesi spillata con punti metallici, probabilmente una piccola correzione non guasta; questa correzione è concepita per le pagine interne ma, siccome il frontespizio è la prima pagina della tesi, la curvatura della pagina è irrilevante e questo piccolo spostamento è del tutto superfluo. - +dove \meta{stile} è stato precedentemente definito usando il pacchetto \pack{geometry} o altri pacchetti. Sarebbe opportuno ridefinire i due margini interno ed esterno in modo che siano uguali. Qualcuno desidera apportare un piccolo spostamento verso l'esterno di non più di 5\,mm per compensare la curvatura della prima pagina; questa curvatura dipenderebbe dal modo di confezionare/legare la tesi; di solito con una brossura ben eseguita o una legatura a filo, non è necessario apportare questa correzione; con una tesi spillata con punti metallici, probabilmente una piccola correzione non guasterebbe; però questa correzione è concepita per le pagine interne ma, siccome il frontespizio è la prima pagina della tesi, la curvatura della pagina è irrilevante e questo piccolo spostamento è del tutto superfluo. +% \item Non è necessario che i margini laterali siano complessivamente equivalenti ai margini del corpo della tesi, ma non guasta se lo sono. - +% \item Per la disposizione verticale del testo, sarebbe preferibile che i margini superiore e inferiore siano otticamente equivalenti; questo dipende dal fatto che il primo elemento in alto sia, per esempio, il nome dell'ateneo scritto con caratteri relativamente alti e neri, oppure sia il logo dell'università, che può essere alto, ma di solito non è tanto largo. Inoltre lo stile della pagina non deve presentare né testatina con il suo spazio di separazione del testo, né piedino, con il suo spazio di separazione dal testo, e non deve contenere il numero della pagina. - -\item Il laureando deve provvedere autonomamente alle spaziature verticali fra un elemento e l'altro, deve decidere se certe parti siano da comporre in modo centrato, oppure in bandiera col palo a sinistra o a destra, se certe parti debbano essere affiancate e come debbano essere distanziate. - -\item Il laureando deve naturalmente scegliere collezione, codifica, famiglia, serie, forma, corpo e scartamento dei font che usa per le varie parti del testo. Una possibile scelta per un font senza grazie da usare per il nome dell'ateneo, potrebbe essere quella di riferirsi alla collezione Iwona, scegliendo la famiglia \Font{iwona} con codifica \opt{T1} nella serie \texttt{m} con la forma \texttt{n}, nel corpo di \texttt{15}\,pt, e con lo scartamento poco interlineato di soli \texttt{17}\,pt. Dovrebbe quindi chiamare il pacchetto \pack{iwona} nel preambolo e per usare il font dovrebbe usare la serie di comandi -\begin{flushleft} -\cs{fontsize}\Arg{15}\Arg{17} \cs{usefont}\Arg{T1}\Arg{iwona}\Arg{m}\Arg{n} +% +\item Il laureando deve provvedere autonomamente alle spaziature verticali fra un elemento e l'altro; deve decidere se certe parti siano da comporre in modo centrato, oppure in bandiera col palo a sinistra o a destra, se certe parti debbano essere affiancate e come debbano essere distanziate. +% +\item Il laureando deve naturalmente scegliere collezione, codifica, famiglia, serie, forma, corpo e scartamento dei font che usa per le varie parti del testo. Una possibile scelta per un font senza grazie da usare per il nome dell'ateneo, potrebbe essere quella di riferirsi alla collezione Iwona, scegliendo la famiglia \Font{Iwona} con codifica \opt{T1} nella serie \texttt{m} con la forma \texttt{n}, nel corpo di \texttt{15}\,pt, e con lo scartamento poco interlineato di soli \texttt{17}\,pt. Dovrebbe quindi chiamare il pacchetto \pack{iwona} nel preambolo e per usare il font dovrebbe usare la serie di comandi +\begin{flushleft}\ttfamily +\cs{fontsize}\Marg{15}\Marg{17}\cs{usefont}\Marg{T1}\Marg{iwona}\Marg{m}\Marg{n} \end{flushleft} quando compone quell'informazione; dovrebbe curare di fare questa operazione dentro un gruppo al fine di mantenere queste impostazioni solo per la scrittura di quella informazione. Sarebbe meglio definirsi un comando personale per evitare di dover ogni volta introdurre quella serie di istruzioni, con il rischio di commettere anche il più piccolo errore di battitura e quindi di generare fastidiosi messaggi d'errore. \end{enumerate} Non scendo in ulteriori dettagli; l'utente che volesse comporre un frontespizio molto personalizzato per questa via, deve sapere quello che sta facendo e deve farlo con la dovuta competenza tipografica e del linguaggio \LaTeX. I risultati estetici dipendono fortemente da queste sue capacità. -Un esempio di un frontespizio costruito per questa via è quello che un utente ha voluto creare con la pagina in \opt{landscape}; la sua tesi era veramente originale nel formato ``panoramico'' dovuta al fatto che conteneva molti disegni. Egli ha poi scritto questo codice:\label{proc:titlepage} +Un esempio di un frontespizio costruito per questa via è quello utente creato con la pagina in \opt{landscape}; era destinato ad una tesi veramente originale nel formato ``panoramico'' dovuta al fatto che conteneva molti disegni. Per venire incontro alle queste esigenze è stato scritto questo codice dove i dati sensibili sono sostituiti con nomi di fantasia:\label{proc:titlepage} \begin{verbatim} \documentclass [titlepage]{article} \usepackage[a4paper,left=3cm,bottom=1.5cm,right=3cm,top=1.5cm,% landscape]{geometry} \usepackage{graphicx} \usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} \usepackage{iwona} -\usepackage[italian]{babel} +\usepackage[italian]{babel} +\usepackage[utf8]{inputenc} \nofiles \newcommand {\institutionfont}{\fontsize {22}{30}\scshape} @@ -993,7 +1804,7 @@ Un esempio di un frontespizio costruito per questa via è quello che un utente h \begin{document} \begin{titlepage} - +% \centering \begin{minipage}[c]{.475\textwidth}\centering @@ -1005,7 +1816,7 @@ Un esempio di un frontespizio costruito per questa via è quello che un utente h {\divisionfont FACOLTÀ DI PENNUTOLOGIA\\[1ex] Corso di~laurea in~ingegneria del~volo~battente\par} \end{minipage}\vspace{\stretch{1}} - +% {\pretitlefont Tesi di laurea\par}\vspace{\baselineskip} {\titlefont STUDIO ANALITICO DELLE PROPRIETÀ DELLE PENNE, INCLUSE QUELLE DEGLI UCCELLI ACQUATICI, IN PARTICOLARE QUELLE @@ -1028,43 +1839,61 @@ Un esempio di un frontespizio costruito per questa via è quello che un utente h \namesfont Alfredo Bianchi \end{tabular} \end{minipage}\hfill\null} - +% \vspace{\stretch{1}} - +% {\footfont Anno accademico 2111--2112\par} - +% \end{titlepage} \end{document} \end{verbatim} -Nel codice precedente appaiono alcuni comandi per i font i cui nomi per le corrispondenti dichiarazioni sono ispirati a quelli contenuti nel pacchetto \pack{frontespizio}, ma i nomi sono irrilevanti, nel senso che qualunque altro nome sarebbe stato altrettanto valido; è invece utile che i nomi dei font siano scelti in modo che ricordino la funzione per la quale sono stati definiti. +Nel codice precedente appaiono alcuni comandi per i font i cui nomi per le corrispondenti dichiarazioni sono ispirati a quelli contenuti nel pacchetto \pack{frontespizio}, ma i nomi sono irrilevanti, nel senso che qualunque altro nome sarebbe stato altrettanto valido; però è utile che i nomi dei dei comandi relativi ai font siano scelti in modo che ricordino la funzione per la quale sono stati definiti. -La pagina che l'utente ha ottenuto è contenuta nella figura~\ref{fig:frontespizio-landscape}. Per inserirla come frontespizio della tesi egli ha poi usato il pacchetto \pack{pdfpages} che permette di inserire pagine scelte di un file PDF in un documento da comporre con \LaTeX. Se ne veda la documentazione aprendo un terminale o un prompt dei comandi, scrivendoci dentro \verb|texdoc pdfpages| e poi premendo il tasto \fbox{invio}. +La pagina che l'utente ha ottenuto è contenuta nella figura~\ref{fig:frontespizio-landscape}. Per inserirla come frontespizio della tesi egli ha poi usato il pacchetto \pack{pdfpages} che permette di inserire pagine scelte di un file PDF in un documento da comporre con uno qualsiasi dei tre programmi di composizione. Se ne veda la documentazione aprendo un terminale o un prompt dei comandi, scrivendoci dentro \verb|texdoc pdfpages| e poi premendo il tasto \tasto{invio}. \begin{figure}[t]\frame{\includegraphics[width=\textwidth]{FrontespizioLandscape}} \caption{Frontespizio con l'orientamento \opt{landscape} ottenuto con l'ambiente \env{titlepage}}\label{fig:frontespizio-landscape} \end{figure} +Volendo, si potrebbe mettere tutto il codice precedente in un file personale, per esempio \file*{IlMioFrontespizio.tex}, e immetterlo nel corpo della tesi semplicemente usando il comando \cs{input}. Il corpo della tesi risulta alleggerito e la sua gestione e manutenzione ne risulta semplificata. + + -\subsection{Comporre il frontespizio con il pacchetto \texorpdfstring{\pack}{}{frontespizio}} +\subsection{Il frontespizio composto con \texorpdfstring{\pack*}{}{frontespizio}}\label{sec:solofrontespizio} -Esistono altri pacchetti, oltre a \pack{frontespizio}, per comporre pagine di titoli; ma per le tesi questo pacchetto sembra il più indicato. Definisce comandi per inserire virtualmente qualsiasi informazione necessaria per un frontespizio di testi di laurea triennale, magistrale o dottorale; per impostazione predefinita tutte le informazioni fisse sono in italiano, ma ciascuna può essere modificata come si vuole in qualsiasi lingua. +Potrebbe essere necessario comporre il frontespizio in modo diverso da come viene composto tramite i comandi contenuti nei vari moduli di \TOPtesi. -Fra le opzioni della classe \class{toptesi} si deve inserire l'opzione \opt{noTOPfront} per evitare conflitti fra i comandi del modulo \pack{topfront} e quelli del pacchetto \pack{frontespizio}. \textcolor{red}{Dimenticarsi di specificare questa opzione vuol dire andare incontro a messaggi d'errore causati dai conflitti fra i due pacchetti}. -Questo pacchetto \pack{frontespizio} si avvale di un file ausiliario \file{-frn.tex} per comporre il frontespizio vero e proprio; questo implica che per disporne come frontespizio del documento finito, bisogna comporre anche questo file ausiliario. +Ci sono diversi motivi per i quali un laureando o dottorando vorrebbe comporre un frontespizio diverso da quelli predefiniti dai moduli di \TOPtesi. +\begin{enumerate}[noitemsep] +\item Le specifiche per le tesi di una data università sono inconciliabili con quelle impostate da tutti i moduli di \TOPtesi. +\item Le informazioni da inserire nel frontespizio sono diverse da quelle impostate dai moduli di \TOPtesi. +\item Il laureando non deve soddisfare a specifiche particolari ma vuole comporre un frontespizio personalizzato a suo piacimento. +\end{enumerate} + +A seconda dei motivi per i quali il laureando non vuole o non può usare il layout e la strutturazione del frontespizio predisposto da \TOPtesi, il laureando deve ricorrere a \chiave{tipotesi}{custom}, di cui si è già parlato, oppure a \chiave{tipotesi}{frontespizio}, la quale provvede a richiamare il pacchetto esterno \pack{frontespizio} rinunciando alle funzionalità di \TOPtesi. + +Questa seconda via può dare risultati buoni, grazie alla possibilità di personalizzazione che offre il pacchetto \pack{frontespizio}. Ma non si può fare sempre tutto; anche questo pacchetto è preimpostato per produrre il frontespizio nel formato di carta A4 e con due stili, ``standard'' ed ``elements'' specifico per l'uso con la classe \class{suftesi}. Più avanti indicherò come produrre frontespizi con altri formati di carta. -Precisamente tutte le informazioni riguardanti il frontespizio devono essere messe dentro un ambiente \amb{frontespizio} collocato dopo l'istruzione \cs{begin}\Arg{document}. Qui si metteranno i comandi per definire il nome del o dei candidati, il nome del o dei relatori e degli eventuali correlatori, il nome dell'università, il nome del corso di laurea, il nome del tipo di tesi, il titolo e il sottotitolo della tesi, eccetera. +Esistono altri pacchetti, oltre a \pack{frontespizio}, per comporre pagine di titoli; ma per le tesi questo pacchetto sembra il più indicato. Definisce comandi per inserire virtualmente qualsiasi informazione necessaria per un frontespizio di tesi di laurea triennale, magistrale o dottorale; per impostazione predefinita tutte le informazioni fisse sono in italiano, ma ciascuna può essere modificata come si vuole in qualsiasi lingua. -Eseguendo \prog{pdflatex} oppure \prog{xelatex} o \prog{lualatex} viene scritto il file ausiliario; se la tesi ha il main file che si chiama \texttt{MarioRossiTesiMagistrale.tex}, dopo averlo compilato, nella cartella di lavoro ci sarà anche il file ausiliario \texttt{MarioRossiTesiMagistrale-frn.tex}; bisognerà dunque compilare questo file ausiliario, e poi ricompilare il documento che \emph{riscriverà il file ausiliario} con i nuovi eventuali dati modificati, ma intanto ingloberà il file PDF appena prodotto. La sequenza delle compilazioni sarà dunque: +Per seguire questa strada bisogna specificare l'opzione \chiave{tipotesi}{frontespizio} alla classe. Questa opzione imposta tutte le variabili booleane necessarie per evitare dimenticanze e possibili errori, impedisce il caricamento di ogni altro modulo relativo ai vari tipi di tesi, e richiama il pacchetto esterno \pack{frontespizio} di cui è necessario conoscere i dettagli dalla sua documentazione. + +Questo pacchetto \pack{frontespizio} produce un file ausiliario \meta{nome del main file della tesi}\file{-frn.tex} per comporre il frontespizio vero e proprio; questo implica che per disporne come frontespizio del documento finito, bisogna comporre anche questo file ausiliario. + +Precisamente tutte le informazioni riguardanti il frontespizio devono essere messe dentro un ambiente \amb{frontespizio} collocato dopo l'istruzione \Bambiente{document}. Qui si metteranno i comandi per definire il nome del o dei candidati, il nome del o dei relatori e degli eventuali correlatori, il nome dell'università, il nome del corso di laurea, il nome del tipo di tesi, il titolo e il sottotitolo della tesi, eccetera. + +Eseguendo \prog{pdflatex} oppure \prog{xelatex} o \prog{lualatex} viene prodotto il file ausiliario; se la tesi ha il main file che si chiama \texttt{MarioRossiTesiMagistrale.tex}, dopo averlo compilato, nella cartella di lavoro ci sarà anche il file ausiliario \texttt{MarioRossiTesi\discretionary{}{}{}Magistrale-frn.tex}; bisognerà dunque compilare questo file ausiliario, e poi ricompilare il documento che \emph{riscriverà il file ausiliario} con i nuovi eventuali dati modificati, ma intanto ingloberà il file PDF appena prodotto. La sequenza delle compilazioni sarà dunque: \begin{verbatim} pdflatex MarioRossiTesiMagistrale pdflatex MarioRossiTesiMagistrale-frn pdflatex MarioRossiTesiMagistrale \end{verbatim} +Queste operazioni generalmente sono semplificate dall'uso di uno shell editor adeguato. Ancor meglio, disponendo di un editor giusto, si può usare il programma Java \prog{arara}, di Paulo Massa Cereda, che provvede da solo ad eseguire tutte le operazioni necessarie; nella documentazione di \pack{arara} (terminale: texdoc arara; \tasto{invio}) c'è scritto come fare; leggere in dettaglio la regola ``frontespizio'' descritta nella pagina~71. -Se il frontespizio deve essere composto con font diversi da quelli di default, con codifiche particolari, con altre impostazioni particolari è meglio che il file ausiliario sia dotato di un preambolo adeguato; quindi il file principale avrà la struttura seguente; -\begin{flushleft}\obeylines +Se il frontespizio deve essere composto con font diversi da quelli di default, con codifiche particolari, con altre impostazioni particolari è meglio che il file ausiliario sia dotato di un preambolo \emph{ad hoc}; quindi il file principale avrà la struttura seguente; +\begin{sintassi}(\fboxsep=3mm) \cs{documentclass}\oarg{opzioni-classe}\Arg{toptesi} \texttt{\% Preambolo del main file} ... @@ -1074,26 +1903,27 @@ Se il frontespizio deve essere composto con font diversi da quelli di default, ... \cs{begin}\Arg{document} \texttt{\% Per il preambolo del file ausiliario} -\quad\cs{begin}\Arg{Preambolo*} -\qquad\cs{usepackage}\marg{opzioni}\marg{pacchetto} +\quad\Bambiente{Preambolo*} +\qquad\cs{usepackage}\oarg{opzioni}\marg{pacchetto} \qquad\cs{newcommand}... \qquad\cs{renewcommand}... \qquad... \qquad\cs{renewcommand}... -\quad\cs{end}\Arg{Preambolo*} +\quad\Eambiente{Preambolo*} \texttt{\% Informazioni per il frontespizio} -\quad\cs{begin}\Arg{frontespizio} +\quad\Bambiente{frontespizio} \qquad\cs{Universita}\marg{nome corto dell'università} \qquad\cs{Logo}\oarg{altezza-logo}\marg{logo} \qquad\cs{facolta}\marg{nome della facoltà} \qquad... \qquad\cs{NCorrelatore}\marg{singolare}\marg{plurale} \qquad\cs{Correlatore}\marg{Nome-Cognome di un correlatore} -\quad\cs{end}\Arg{frontespizio} +\quad... +\quad\Eambiente{frontespizio} \texttt{\% Corpo del main file} \qquad... \cs{end}\Arg{document} -\end{flushleft} +\end{sintassi} Il contenuto dell'ambiente \amb{Preambolo*} può essere molto vario e dipende dal programma usato per la compilazione del frontespizio, da scelte particolari dei font, da comandi da ridefinire, eccetera. La documentazione di \pack{frontespizio} espone diversi esempi che danno un'ottima visione d'insieme per tutte le operazioni che si possono fare e dei risultati che si possono ottenere. @@ -1103,7 +1933,7 @@ Se si volesse comporre la tesi in formato B5, per esempio, bisogna sfruttare ade La procedura da seguire, dunque dovrebbe essere modificata come segue. Assumiamo che non si debbano apportare modifiche al contenuto del frontespizio; in caso contrario bisogna ripetere la procedura dopo ogni modifica del suo contenuto all'interno dell'ambiente \amb{frontespizio}. -\begin{Verbatim}[fontsize=\small] +\begin{Verbatim}[fontsize=\normalsize] \documentclass [11pt,b5paper]{book} % Preambolo del documento \usepackage[norules,swapnames]{frontespizio} @@ -1116,7 +1946,7 @@ La procedura da seguire, dunque dovrebbe essere modificata come segue. Assumiamo % Per il preambolo del file ausiliario \begin{Preambolo*} \usepackage[11pt,b5paper,top=25mm, bottom=25mm, - left=15mm,right=15mm]{geometry} + left=20mm,right=20mm]{geometry} \end{Preambolo*} \begin{frontespizio} @@ -1127,12 +1957,12 @@ La procedura da seguire, dunque dovrebbe essere modificata come segue. Assumiamo \end{document} \end{Verbatim} -Si noti che nel corpo dell'ambiente \amb{Preambolo*} si può inserire un intero preambolo, non semplicemente la chiamata al pacchetto \pack{geometry} con le sue opzioni; questo ambiente può contenere qualsiasi cosa sia ragionevole in un preambolo; l'importante è che l'opzione relativa al formato della carta sia identica sia fra le opzioni della classe, sia fra quelle di \pack{geometry} nell'ambiente \amb{Preambolo*}. +Si noti che nel corpo dell'ambiente \amb{Preambolo*} si può inserire un intero preambolo, non semplicemente la chiamata al pacchetto \pack{geometry} con le sue opzioni; questo ambiente può contenere qualsiasi cosa sia ragionevole in un preambolo; l'importante è che l'opzione relativa al formato della carta sia identica sia fra le opzioni della classe, sia fra quelle di \pack{geometry} nell'ambiente \amb{Preambolo*}. -Compilando questo documento si ottiene un'unica pagina contenente il frontespizio composto, che può poi venire incorporato nella tesi mediante l'uso del pacchetto \pack{pdfpages} che, come si è già detto, consente di inserire pagine scelte di un file PDF dentro un documento da comporre con \pdfLaTeX. In questo modo la composizione del frontespizio e quello della tesi procedono separatamente e non c'è bisogno, ogni volta che si cambino i dati per il frontespizio, di eseguire le tre compilazioni. +Compilando questo documento si ottiene un'unica pagina contenente il frontespizio composto, che può poi venire incorporato nella tesi mediante l'uso del pacchetto \pack{pdfpages} che, come si è già detto, consente di inserire pagine scelte di un file PDF dentro un documento da comporre con \prog{pdflatex}. In questo modo la composizione del frontespizio e quello della tesi procedono separatamente e non c'è bisogno, ogni volta che si cambiano i dati per il frontespizio, di eseguire le tre compilazioni. \subsection{Casi particolari}\label{sec:casi-particolari} -Esistono delle università con nomi lunghissimi, in particolare nomi bi lingui o trilingui. Ne cito due, entrambi italiani: +Esistono delle università con nomi lunghissimi, in particolare nomi bilingui o trilingui. Ne cito due, entrambi italiani: \begin{itemize}[noitemsep] \item Università della valle d'Aosta -- Universitè de la Vallée d'Aoste \item Freie Universität Bozen -- Libera Università di Bolzano -- Università Liedia de Bulsan @@ -1141,14 +1971,14 @@ In questi casi se il nome dell'ateneo va in testa al frontespizio in corpo \verb Questa operazione funziona automaticamente in modo decisamente accettabile se il nome dell'ateneo eccede la giustezza di 10 o 15 punti percentuali, ma con nomi così lunghi come quelli elencati sopra, il meccanismo funziona ma il risultato lascia molto a desiderare perché i font con cui è composto il nome dell'ateneo, ridotti di una grossa percentuale, diventano più chiari e inaccettabilmente piccoli per la funzione che il nome dell'ateneo svolge nel frontespizio di una tesi. -In questi casi sarebbe più consono usare una immagine, come quella del logotipo dell'Università di Bolzano dove, accanto al ``timbro'' dell'università, i tre nomi sono elencati in colonna invece che su un'unica riga. Sono scritti con un carattere piccolo, ma affiancando il ``timbro'' l'insieme è giusto. Ovviamente, usando il logotipo, non è poi necessario usarlo di nuovo come simbolo dell'ateneo a metà della pagina. +In questi casi sarebbe più consono usare una immagine, come quella del logo dell'Università di Bolzano dove, accanto al ``timbro'' dell'università, i tre nomi sono elencati in colonna invece che su un'unica riga. Sono scritti con un carattere piccolo, ma affiancando il ``timbro'' l'insieme è giusto. Ovviamente, usando il logo, non è poi necessario usarlo di nuovo come simbolo dell'ateneo a metà della pagina. Con i nomi in due sole lingue, come per l'università valdostana, si potrebbe anche pensare ad una soluzione di questo tipo: \begin{verbatim} \DeclareRobustCommand{\uniVdA}{\smash{% \parbox[b]{\textwidth}{\centering \Large \MakeUppercase{Università della Valle d'Aosta}\\ - \MakeUppercase{Universitè de la Vallée d'Aoste}}}} + \MakeUppercase{Université de la Vallée d'Aoste}}}} \end{verbatim} e usando il comando \verb|\uniVdA| come argomento per il comando \verb|\ateneo|. Probabilmente si può usare anche con i nomi in tre lingue, con un corpo leggermente minore, definendo per esempio: @@ -1176,26 +2006,150 @@ Queste tecniche si possono usare con creatività anche per ottenere effetti dive e Reggio Emilia}}}}} \end{verbatim} usando poi \cs{uniModenaReggio} come argomento del comando \cs{ateneo}; -il nome è inserito in una scatola \LaTeX\ di larghezza pari alla giustezza, per cui la sua larghezza vera viene mascherata da quella della scatola e il meccanismo di ridimensionamento non entra in funzione. - +il nome è inserito in una scatola \LaTeX di larghezza pari alla giustezza, per cui la sua larghezza vera viene mascherata da quella della scatola e il meccanismo di ridimensionamento non entra in funzione. + +\section{Il file accessorio \texorpdfstring{\pack*}{}{topcoman}} +L'altro file accessorio \pack{topcoman} contiene diversi utili comandi, alcuni già incorporati nella definizione della lingua italiana del sistema \TeX (solo se si usa \pack{babel}). Tuttavia se si deve scrivere in una lingua diversa dall'italiano, quei comandi non sono disponibili e qui viene utile disporre di quei comandi in un pacchetto distinto da \pack{babel} e non soggetto a test sulla lingua in uso. Alcuni di questi comandi non sono definiti da \pack{polyglossia} quando si scrive in italiano, e si rendono particolarmente utili quando si compone con \prog{xelatex} o \prog{lualatex}. + +Il file contiene anche un comando per stampare in modo verbatim il contenuto di un file esterno, per esempio il listato di un programma; ci sono altri pacchetti \LaTeX che consentono di stampare il listato di un programma in modo anche migliore, per esempio il pacchetto \pack{listings}, ma, visto che può servire per la tesi e, visto che una volta che lo si conosce potrebbe piacere e poi si vorrebbe continuare ad usarlo, è meglio disporne come pacchetto separato. Non sarebbe difficile per esempio stamparsi in pulito il listato del proprio programma contenuto nel file \texttt{myprogram.c}: si scrive semplicemente un file del tipo +\begin{verbatim} +\documentclass{report} +\usepackage{topcoman} +\begin{document} +\pagestyle{plain} +\chapter*{Il programma myprogram.c} +\listing{myprogram.c} +\end{document} +\end{verbatim} +e lo si passa a \prog{pdflatex} per ottenere poi una stampa +ben composta da conservare per documentazione; per evitare che le +righe fuoriescano dalla larghezza normale del testo, o, peggio +ancora, fuori dalla carta, sarebbe opportuno che le righe del +programma non fossero più lunghe di una ottantina di caratteri +per la carta A4, proporzionalmente di meno per formati di carta più piccoli. + +Più avanti, nella descrizione del codice, si è abbandonata la definizione iniziale di \cs{listing}, ma la si è ridefinita come sostituto per lanciare un comando del pacchetto \pack{fancyvrb}; si è scelto questo piuttosto che \pack{listings} perché lavorando con \LuaLaTeX o \XeLaTeX non ha problemi con i caratteri con codifica multibyte. \pack{listings}, invece, lavora bene solo con caratteri \sigla{ascii} codificati a 7~bit e ha certe rigidezze con le codifiche a 8~bit; può lavorare con \LuaLaTeX o \XeLaTeX, ma bisogna che il programma da listare contenga solo caratteri \sigla{ascii}. + +\begin{otherlanguage}{english} +\section[Doctoral dissertation for the ScuDo school of Politecnico di Torino]{\raggedright Doctoral dissertation for~the~ScuDo school of~Politecnico di~Torino} \label{sec:scudo} + +When you specify the \chiave{tipotesi}{scudo} option to the class, some extra files are loaded and the \pack{topfront} module loading is inhibited. + +The main module file is \pack{toptesi-scudo.sty}; on turn it loads several other packages. + + +\subsection{Further packages loaded for typesetting ScuDo theses} +The \chiave{tipotesi}{scudo} option loads some other packages. If it was for me, I would not have loaded three or four of these packages, but this choice was taken from a previous template suggested to the ScuDo Ph.D.\ students; therefore some packages are loaded for backwards compatibility. +\begin{description}[noitemsep] +\def\Item[#1]{\item[\normalfont\pack{#1}]} +% +\Item[amsmath] and \pack{amsthm} are loaded independently from the particular typesetting engine used. +% +\Item[amssymb] is loaded only if \pdfLaTeX is used to typeset the dissertation. +% +\Item[unicode-math] is loaded with option \chiave{math-style}{ISO} only if \LuaLaTeX or \XeLaTeX is used to typeset the dissertation. In this case is up to the user to select a Unicode Math font suitable to match the text fonts specified for the document; see the example file \file{toptesi-scudo-example.tex} to view how to do this choice. +% +\Item[xparse] allows advanced definitions of commands and environments; it is functional for the definitions of some internal bundle macros, but may be used also by the end user, provided s/he reads with great attention its documentation. +% +\Item[lscape] allows to typeset full pages in landscape orientation. It may be useful to insert large tables and/or figures; when typesetting with a LuaTeX engine version lower than 1.0.4, this landscape orientation does not work. +% +\Item[setspace] is used to typeset draft versions of the dissertation, +but it should not be used at all for the final version; if a particular paragraph required some extra spacing, the regular \amb{interlinea} environment of \TOPtesi will do the job. But remember: the paragraph must be really special to require extra leading. In general extra leading is poor typography. +% +\Item[calc] performs some calculations in a supposedly easier form than the native commands available in the original \TeX since its birth, and extended by the \ped{$\varepsilon$}\TeX since 2005 or so. +% +\Item[ifthen] defines a comfortable set of macros to execute conditional statements; since this bundle loads the \pack{etoolbox} package, other more efficient and more robust commands are available. +% +\Item[caption] as described elsewhere in this documentation, when this package is loaded the user becomes responsible of the caption style and the internal definitions of \TOPtesi are not available. +% +\Item[subcaption] defines the \amb{subfigure} and \amb{subtable} environments and their individual subcaptions. +% +\Item[tabularx] defines a tabular environment of specified width; the automatic sizing of the table is performed by means of a special column descriptor \verb|X| (that can be used multiple times in a given table) that behaves as the \verb|p|\marg{width} descriptor, with the difference that the X-column width is computed by the package macros so as to reach the specified table width. The package is used for this module internal structures, but is available also for all users. +% +\Item[booktabs] allows typesetting professional tables with special horizontal rules; we strongly recommend to use the facilities of this package. +% +\Item[multirow] allows to describe table cells that span several rows; in general this practice should be avoided, but many users like it very much. + +The example file \file{toptesi-scudo-example.tex} shows how to avoid the use of this package functionalities, while maintaining full control of the cell contents positioning. +% +\Item[siunitx] offers special functionalities to handle units of measure and to format numerical fractional values; it also defines some efficient facilities to format numerical table columns so as to align the numerical data on the basis of their decimal separator. +% +\Item[float] allows to define other floating environments in addition to \amb{figure} and \amb{table}. Unfortunately it defines also the \texttt{H} position option that kills the floating property and produces typographic results that are absolutely not acceptable. +% +\Item[imakeidx] allows to generate one or more indices in a synchronous way. This means that the indices are produced with one run of the typesetting program, avoiding any manual intervention. +% +\Item[nomencl] allows to produce nomenclature lists; some of its commands are patched so as to produce a synchronous typesetting of the nomenclature the same way as it is done with indices. +% +\Item[biblatex] is the most recent and powerful package to typeset bibliographies; it is loaded with a specific set of options, in particular the \prog{biber} program is requested to handle bibliography databases; sorting is based on the first author surname, the title and the year; the bibliographic list is numbered and citations are executed by numbering, but the various \pack{natbib} citation facilities are available. +% +\Item[indentfirst] is required only if \pdfLaTeX\ is being used for typesetting in order to indent the first line of the first paragraph of every document section; in this way the dissertation composition is not different when using \pdfLaTeX\ or \LuaLaTeX\ or \XeLaTeX. +% +\end{description} + + +\subsection{New commands available with the \texorpdfstring{\pack*}{}{toptesi-scudo} module} + +Many new commands are defined for creating the title page; they are described in the next section. + +Among real new commands it is better to recall that the ISO standards on math typesetting in science and technology require an attentive use of font series and shapes. In particular the upright serifed font (roman style) should be used for mathematical constants, the differential symbol, all the multi-letter function names; single letter functions may be typeset either in roman or in math italics, but it is a personal choice that must be exercised with caution; whatever style is chosen it is necessary to use it in a consistent way. The School suggests to use math italic. Function commands must not be ``invented''; for example, the ISO standard name for the circular tangent is ``tan'' (command \texttt{\string\tan}); sometimes ``tg'', or ``tang'' are encountered in math papers; the phantasy names are wrong and should not be used. Similarly hyperbolic inverse functions do not have predefined commands to mark them in \LaTeX; the official names are ``arsinh'', ``arcosh'', ``artanh''; if you want, you can add to your preamble the following code: +\begin{verbatim} +\DeclareOperatorName{\arsinh}{arsinh} +\DeclareOperatorName{\arcosh}{arcosh} +\DeclareOperatorName{\artanh}{artanh} +\end{verbatim} +were the first argument is the \LaTeX function macro, while the second argument is the actual name that is being typeset with the ``operators'' font (roman). + +For what concerns the base of natural logarithms and the imaginary unit, commands \cs{eu} and \cs{gei} are already provided; \cs{iu} is an alias to \cs{gei}; if you do not like ``j'' as the symbol of the imaginary unit (in spite of the fact the ``j'' is generally used in engineering disciplines), you can redefine \cs{iu} the way you like best (possibly avoiding the greek $\iota$ that is not an ISO official symbol). + +For the differential symbol this extension file contains the definition: +\begin{verbatim} +\newcommand{\diff}{\mathop{}\!\mathrm{d}} +\end{verbatim} +that accepts exponents as any regular symbol, but \LaTeX uses it in a particular way: it spaces it at its left as a regular operator, but it does not space it at its right. It is especially useful to write the integrator in an integral expression, such as +\[ +F(p) = \int_{0-}^{+\infty} \eu^{-pt}f(t) \diff t +\] +This spacing does not disturb in differential equations, for example: +\[ +a\frac{\diff^2x}{\diff t^2} + b\frac{\diff x}{\diff t} +cx = f(t) +\] + +This extension file contains also some patches for composing a nomenclature; the sample file \texttt{toptesi-scudo-example.tex}, part of \TOPtesi, contains sample definition to establish shortcuts for nomenclature groups: +\begin{verbatim} +\renewcommand{\nomgroup}[1]{% +\ifstrequal{#1}{A}{\item[\textbf{Roman Symbols}]}{% +\ifstrequal{#1}{G}{\item[\textbf{Greek Symbols}]}{% +\ifstrequal{#1}{Z}{\item[\textbf{Acronyms / Abbreviations}]}{% +\ifstrequal{#1}{R}{\item[\textbf{Superscripts}]}{% +\ifstrequal{#1}{S}{\item[\textbf{Subscripts}]}{% +\ifstrequal{#1}{X}{\item[\textbf{Other Symbols}]}{}}}}}}} +\end{verbatim} +It can be used as a model to define a larger collection of nomenclature groups. + +The user may not be interested in the fine points of automatic rendering of the nomenclature list; but its is sufficient to know that to print it out, it is necessary to use a new defined command that extends the original \cs{printnomenclature} one; this new extension is called simply \cs{printnomencl} and accepts an optional argument, as the original command does, but provides the necessary variants to let \pdfLaTeX\ and \XeLaTeX\ exploit the typesetting program functionality \emph{shell escape}, while letting \LuaLaTeX\ exploit its particular Lua interpreter to do the same job. Whatever these tricks, the user finds out that the nomenclature list appears where it should, with just one typesetting run, in the back matter section where the \cs{printnomencl} command was used. + +For the ScuDo title page see section~\ref{sec:frontescudo}. + +\end{otherlanguage} + \section{Come si comincia}\label{sec:cominciare} -Non vi dico niente di come si scriva una tesi; so per +Non dico niente su come si scriva una tesi; so per esperienza che all'inizio ci si sente sperduti davanti allo schermo vuoto. -Ma i laureandi possono scaricare dal portale della didattica del sito -del Politecnico \url{http://didattica.polito.it} l'opuscoletto + +Ma i laureandi possono scaricare dal sito +del \GuIT\footnote{Fino a qualche anno fa questo opuscoletto, prodotto da un'apposita commissione di docenti del Politecnico, era scaricabile dal portale della didattica del Politecnico di Torino. Ora un'altra commissione è al lavoro per fornire ai suoi studenti un manuale completamente nuovo che, però, non è ancora disponibile; nel frattempo la versione di Saper comunicare presente nel portale della didattica è ormai diventato obsoleto in alcune sue parti. La versione presente nel sito del \GuIT, invece, continua ad essere aggiornata.} \url{http://www.guitex.org/home/images/doc/} l'opuscoletto \emph{Saper Comunicare --- Cenni di scrittura tecnico-scientifica} dove c'è scritto più o meno tutto quel che bisogna sapere per impostare e scrivere un rapporto tecnico-scientifico qual è la tesi, la monografia o la dissertazione. -Qui dirò solo come si comincia a scrivere il file sorgente della tesi. Ci sono essenzialmente due vie, ognuna delle quali offre vantaggi e svantaggi, quindi non si può dire a priori quale via sia la più indicata. -\begin{enumerate} -\item Si compone un unico file come esemplificato con i file \file{toptesi-example.tex}, \file{toptesi-example-xetex.tex} e \texttt{toptesi-example-con-frontespizio.tex}\index{file!toptesi-example-con-frontespizio.tex@\texttt{toptesi\discretionary{-}{}{-}example\discretionary{-}{}{-}con\discretionary{-}{}{-}frontespizio.tex}} allegati alla documentazione di TOPtesi. Questi file permettono di sperimentare diverse cose semplicemente mettendo o togliendo dei segni di commento all'inizio delle righe del preambolo che contengono alcuni comandi particolari. Essi sono completi di bibliografia e quell'unico file permette di comporre una tesi completa; ovviamente può essere usato come modello per una tesi; basta cambiare il contenuto dei comandi che contengono i nomi dei candidati, dei relatori, del titolo, dell'ateneo, della eventuale facoltà, eccetera. Ovviamente bisogna cambiare anche il contenuto dei capitoli e della bibliografia. +Qui dirò solo come si comincia a scrivere il file sorgente della tesi. Ci sono essenzialmente due vie, ognuna delle quali offre vantaggi e svantaggi, quindi non si può dire a priori quale via sia quella più indicata. +\begin{enumerate}[noitemsep] +\item {\tolerance=3000 Si compone un unico file come esemplificato con i file \file{toptesi-example.tex}, \file{toptesi-example-xetex.tex} e \texttt{toptesi-example-con-frontespizio\discretionary{}{.}{.}tex}\index{file!toptesi-example-con-frontespiziotex@\texttt{toptesi\discretionary{}{-}{-}example\discretionary{}{-}{-}con\discretionary{}{-}{-}frontespizio\discretionary{}{.}{.}tex}} allegati alla documentazione di \TOPtesi. Questi file permettono di sperimentare diverse cose semplicemente mettendo o togliendo dei segni di commento all'inizio delle righe del preambolo che contengono alcuni comandi particolari. Essi sono completi di bibliografia e quell'unico file permette di comporre una tesi completa contenente un testo fasullo; ovviamente può essere usato come modello per una tesi vera; basta cambiare il contenuto dei comandi che contengono i nomi dei candidati, dei relatori, del titolo, dell'ateneo, della eventuale facoltà, eccetera. Ovviamente bisogna cambiare anche il contenuto dei capitoli e della bibliografia.\par} -\item Si spezza il file sorgente in un numero adeguato di file parziali da gestire come specificato qui di seguito; ogni file parziale conterrà solo una parte della tesi, per esempio un solo capitolo; siccome il tutto è gestito dal master file, ciascun file parziale non dovrà più contenere la dichiarazione della classe né il preambolo né le righe \cs{begin}\Arg{document} e \cs{end}\Arg{document}, ma solo il materiale relativo ad uno specifico capitolo cominciando appunto con la riga che ne specifica il titolo: -\cs{chapter}\Arg{Il titolo di questo capitolo}. +\item {\tolerance=3000 Si spezza il file sorgente in un numero adeguato di file parziali da gestire come specificato qui di seguito e che si ritrova nell'esempio costituito da \texttt{toptesi\discretionary{}{-}{-}scudo\discretionary{}{-}{-}example\discretionary{}{.}{.}tex}; ogni file parziale conterrà solo una parte della tesi, per esempio un solo capitolo; siccome il tutto è gestito dal master file, ciascun file parziale non dovrà più contenere la dichiarazione della classe né il preambolo né le righe \Bambiente{document} e \Eambiente{document}, ma solo il materiale relativo ad uno specifico capitolo cominciando appunto con la riga che ne specifica il titolo: \cs{chapter}\Marg{Il titolo di questo capitolo}.\par} Il file che contiene il capitolo può venire chiuso con il comando \cs{endinput}, dopo il quale il file può contenere qualunque cosa che non verrà mai letta dal programma di tipocomposizione, ma per il laureando potrebbe essere molto utile per scrivere alcune annotazioni personali. \end{enumerate} @@ -1207,114 +2161,74 @@ si predispone un master file con un nome ``diverso'' da \file{tesi.tex}; bisogna sbizzarrire la fantasia, ma che il nome sia mnemonico e ricordi subito a che cosa ci si riferisce. Questo master file sarà dunque composto, per esempio, così: -\begin{verbatim} -\documentclass[b5paper,11pt]{toptesi} - \includeonly{% - preliminari,% - capitolo1,% - capitolo2,% - capitolo3,% - appendici,% - bibliografia% - } -\begin{document} -\begin{frontespizio} - \ateneo{Università di Bengodi} - \nomeateneo{La Saggezza} - \titolo{Studi di tricotetratomia applicata} - \sottotitolo{Cosa succede quando si spacca un capello in quattro} - \candidata{Maria Chiomafolta} - \relatore{prof.\ Piero Scapigliati} - \sedutadilaurea{Maggio 2125} - \end{frontespizio -% - \include{preliminari} - \include{capitolo1} - \include{capitolo2} - \include{capitolo3} - \appendix - \include{appendici} - \include{bibliografia} -\end{document} -\end{verbatim} +\begin{flushleft}\ttfamily\obeylines +\cs{documentclass}\Oarg[b5paper,corpo=11pt,tipotesi=triennale]\Marg{toptesi} +\quad\cs{includeonly}\Marg{\% +\qquad preliminari,\% +\qquad capitolo1,\% +\qquad capitolo2,\% +\qquad capitolo3,\% +\qquad appendici,\% +\qquad bibliografia\% +\quad } +\Bambiente{document} +\Bambiente{\meta{ambiente per la pagina del titolo}} +\quad \cs{ateneo}\Marg{Università di Bengodi} +\quad \cs{nomeateneo}\Marg{La Saggezza} +\quad \cs{titolo}\Marg{Studi di tricotetratomia applicata} +\quad \cs{sottotitolo}\Marg{Cosa succede quando si spacca un capello in quattro} +\quad \cs{candidata}\Marg{Maria Chiomafolta} +\quad \cs{relatore}\Marg{prof.\ Piero Scapigliati} +\quad \cs{sedutadilaurea}\Marg{Maggio 2345} +\Eambiente{\meta{ambiente per la pagina del titolo}} +\% +\quad \cs{include}\Marg{preliminari} +\quad \cs{include}\Marg{capitolo1} +\quad \cs{include}\Marg{capitolo2} +\quad \cs{include}\Marg{capitolo3} +\quad \cs{appendix} +\cs{backmatter} +\quad \cs{include}\Marg{appendici} +\quad \cs{include}\Marg{bibliografia} +\Eambiente{document} +\end{flushleft} + +L'\meta{ambiente per la pagina del titolo} sarà uno dei vari ambienti descritti nei paragrafi precedenti; nell'esempio della laurea triennale riportato sopra, l'ambiente è \amb{ThesisTitlePage}. -È da osservare in particolare che l'aver scritto l'argomento di -\cs{includeonly} nel modo esemplificato sopra, permette di -inserire dei segni di commento all'inizio di alcune delle righe in -modo da eseguire, per esempio, la compilazione selettiva di un -solo capitolo conservando tutte le informazioni incrociate -relative agli altri capitoli già compilati. Con i PC di oggi la -compilazione è rapidissima, quindi lo scopo di risparmiare tempo -di compilazione non è il motivo per il quale raccomando di seguire -questa procedura; faccio invece -notare che tenere separate le varie parti della tesi -permette di lavorare con più ordine e di risparmiare non poco -tempo per la gestione dei vari file sorgente e per le loro -correzioni. +È da osservare in particolare che l'aver scritto l'argomento di \cs{includeonly} nel modo esemplificato sopra, cioè con un solo nome di file in ogni riga, permette di inserire dei segni di commento all'inizio di alcune delle righe in modo da eseguire, per esempio, la compilazione selettiva di un solo capitolo conservando tutte le informazioni incrociate relative agli altri capitoli già compilati. Con i PC di oggi la compilazione è rapidissima, quindi lo scopo di risparmiare tempo di compilazione non è il motivo per il quale raccomando di seguire questa procedura; faccio invece notare che tenere separate le varie parti della tesi permette di lavorare con più ordine e di risparmiare non poco tempo per la gestione dei vari file sorgente e per le loro correzioni. Non sarebbe male nemmeno tenere sgombra la cartella di lavoro, cercando di confinare tutto il materiale ausiliario (per esempio disegni, fotografie, brani di codice, eccetera) in sottocartelle della cartella di lavoro; ma queste raccomandazioni sono quelle -che valgono per ogni lavoro da eseguire con \LaTeX\ e il lettore +che valgono per ogni lavoro da eseguire con \LaTeX e che il lettore con un minimo di esperienza sa già come gestire. All'occorrenza vale la pena di ripassare l'argomento nella guida \emph{L'Arte di scrivere con LaTeX} da scaricare dalla sezione Documentazione del sito \url{http://www.guitex.org}. -Il file \file{preliminari.tex} conterrà presumibilmente il sommario, -molto facoltativamente i ringraziamenti\footnote{I ringraziamenti -in una tesi non sono quasi mai necessari; lo sono quando bisogna -ringraziare una istituzione o una o più persone \emph{esterne} -alla propria università che hanno messo a disposizione le loro -strutture o le loro competenze per lo svolgimento della tesi. Non -si ringraziano genitori, fidanzati/e, amici, e tutti i parenti di -ogni grado, il quali saranno più che contenti di sapervi laureati, -piuttosto che vedere il loro nome scritto sulla tesi\dots. -Inoltre rappresenta un atto di piaggeria ringraziare il o i -propri relatori; essi hanno svolto un loro compito istituzionale, -non vi hanno fatto un piacere. Naturalmente questo non vieta che -la consuetudine del lavoro assieme non abbia dato origine a -sentimenti di reciproca stima e anche di amicizia, ma questa è -un'altra faccenda.} e gli indici. - -Il file \file{capitolo1.tex} conterrà l'introduzione e in -pratica esporrà lo stato dell'arte oltre allo scopo del lavoro e -ai risultati che si vorrebbero ottenere. - -I file \file{capitolo2.tex}, \file{capitolo3.tex}, eccetera, -conterranno la descrizione del lavoro svolto e l'analisi critica -dei risultati via via ottenuti; l'ultimo file prima delle -appendici conterrà i commenti finali, quali ad esempio un sunto dei risultati raggiunti, una breve esposizione degli ulteriori sviluppi, possibili approfondimenti, eccetera. - -Nelle varie appendici verranno raccolte le misure eseguite, gli -sviluppi matematici, i listati dei programmi, le note critiche, le -lunghe citazioni e tutte le altre cose che rovinerebbero la -fluidità del testo, se fossero inserite direttamente nel corpo -della tesi. - -La bibliografia conclude la tesi. A seconda del campo disciplinare in cui si svolge la tesi può essere importante scegliere un metodo di citazione piuttosto di un altro; la collezione di pacchetti del sistema \TeX\ vi consente un'ampia scelta di personalizzazioni per gli stili di composizione e di citazione. Da alcuni anni, poi, è disponibile il pacchetto di estensione \pack{biblatex} che consente una gestione diretta della bibliografia mediante comandi \LaTeX; in ogni caso per queste personalizzazioni è necessario creare un database bibliografico (con estensione \file{.bib}) in un formato particolare, e poi è necessario elaborare questo database mediante il programma \prog{bibtex} o, ancor meglio, con il programma \prog{biber} (predefinito con \pack{biblatex} dal 2012), sempre facente parte della distribuzione del sistema \TeX. I risultati che si possono ottenere sono estremamente professionali. +Il file \texttt{preliminari.tex} conterrà presumibilmente il sommario, molto facoltativamente i ringraziamenti\footnote{I ringraziamenti in una tesi non sono quasi mai necessari; lo sono quando bisogna ringraziare una istituzione o una o più persone \emph{esterne} alla propria università che hanno messo a disposizione le loro strutture o le loro competenze per lo svolgimento della tesi. Non si ringraziano genitori, fidanzati/e, amici, e tutti i parenti di ogni grado, il quali saranno più che contenti di sapervi laureati, piuttosto che vedere il loro nome scritto sulla tesi\dots\ Inoltre rappresenta un atto di piaggeria ringraziare il o i propri relatori; essi hanno svolto un loro compito istituzionale, non vi hanno fatto un piacere. Naturalmente questo non vieta che la consuetudine del lavoro assieme non abbia dato origine a sentimenti di reciproca stima e anche di amicizia, ma questa è un'altra faccenda.} e gli indici. + +Il file \texttt{capitolo1.tex} conterrà l'introduzione e in pratica esporrà lo stato dell'arte oltre allo scopo del lavoro e ai risultati che si vorrebbero ottenere. + +I file \texttt{capitolo2.tex}, \texttt{capitolo3.tex}, eccetera, conterranno la descrizione del lavoro svolto e l'analisi critica dei risultati via via ottenuti; l'ultimo file prima delle appendici conterrà i commenti finali, quali ad esempio un sunto dei risultati raggiunti, una breve esposizione degli ulteriori sviluppi, possibili approfondimenti, eccetera. + +Nelle varie appendici verranno raccolte le misure eseguite, gli sviluppi matematici, i listati dei programmi, le note critiche, le lunghe citazioni e tutte le altre cose che rovinerebbero la fluidità del testo, se fossero inserite direttamente nel corpo della tesi. + +La bibliografia conclude la tesi. A seconda del campo disciplinare in cui si svolge la tesi può essere importante scegliere un metodo di citazione piuttosto di un altro; la collezione di pacchetti del sistema \TeX vi consente un'ampia scelta di personalizzazioni per gli stili di composizione e di citazione. Da alcuni anni, poi, è disponibile il pacchetto di estensione \pack{biblatex} che consente una gestione diretta della bibliografia mediante comandi \LaTeX; in ogni caso per queste personalizzazioni è necessario creare un database bibliografico (con estensione \file{.bib}) in un formato particolare, e poi è necessario elaborare questo database mediante il programma \prog{bibtex} o il programma \prog{biber} (predefinito con \pack{biblatex} dal 2012), sempre facente parte della distribuzione del sistema \TeX. I risultati che si possono ottenere sono estremamente professionali. \subsection{La scelta della codifica per il file sorgente}\label{sec:codifica} -Si noti che per comporre i file del corpo della tesi si possono -usare direttamente le lettere accentate della tastiera italiana o -quelle che si possono ottenere con combinazioni di tasti sia sotto -Windows sia sotto Linux o Mac~OS~X; per default \textsf{TOPtesi} -non specifica nessuna particolare codifica per l'input; ma perché -il programma di tipocomposizione elabori correttamente i file sorgente, o si usa \prog{xelatex} o \prog{lualatex} ricordando di salvare i file con la codifica UNICODE o UTF-8, oppure non si specifica nessuna particolare codifica ma si usano solo i caratteri ASCII a 7~bit; oppure ancora si usano i caratteri nazionali direttamente da tastiera ma si specifica la codifica che l'editor ha -impiegato per salvare nei file i codici dei caratteri non ASCII, -per esempio le lettere accentate; a meno che non usiate \prog{xelatex} o \prog{lualatex}, vi suggerisco di specificare esplicitamente la codifica -mediante il comando +Si noti che per comporre i file del corpo della tesi si possono usare direttamente le lettere accentate della tastiera italiana o quelle che si possono ottenere con combinazioni di tasti sia sotto Windows sia sotto Linux o Mac~OS~X; per default \textsf{TOPtesi} non specifica nessuna particolare codifica per l'input; ma perché il programma di tipocomposizione elabori correttamente i file sorgente, o si usa \prog{xelatex} o \prog{lualatex} ricordando di salvare i file con la codifica UTF-8\footnote{Ci si ricordi che UTF-8\index{UTF-8} è il nome della codifica, mentre \opz{utf8} è la sua sigla da usare come opzione per il pacchetto \pack{inputenc}; in linguaggio corrente anche \opz{utf8} viene chiamata codifica, ma non è esattamente corretto.}, oppure non si specifica nessuna particolare codifica ma si usano solo i caratteri ASCII a 7~bit; oppure ancora si usano i caratteri nazionali direttamente da tastiera ma si specifica la codifica che l'editor ha impiegato per salvare nei file i codici dei caratteri non ASCII, per esempio le lettere accentate; a meno che non usiate \prog{xelatex} o \prog{lualatex}, vi suggerisco di specificare esplicitamente la codifica mediante il comando \begin{verbatim} \usepackage[utf8]{inputenc} \end{verbatim} che va bene sia per le macchine Windows, sia per quelle basate su UNIX. -Gli editor \TeX{}Shop, \TeX{}works, TeXstudio, Texmaker, e qualcun altro, consentono di usare la codifica \opt{utf8} che permette di inserire qualunque segno fra le decine o centinaia di migliaia che la codifica UNICODE consente -- se usate \prog{xelatex} o \prog{lualatex} questa codifica è necessaria ma non bisogna esplicitarla nel file sorgente. Il problema, in effetti, non è la codifica, ma è la tastiera. Con sistemi operativi diversi si sono sviluppati programmi di vario genere per scrivere in alfabeti diversi da quello latino esteso, qual è quello invocato, per esempio, con l'opzione \opt{utf8}. Ma se dovete scrivere la vostra tesi con brani in greco o in russo o in arabo o in lingue con segni sillabici o ideogrammi, questo problema si presenterebbe qualunque sia l'editor e il programma di composizione che usate, ed è un problema che dovete risolvere da soli. +Gli editor \TeXShop, \TeXworks, TeXstudio, Texmaker, e qualcun altro, consentono di usare la codifica \opt{utf8} che permette di inserire qualunque segno fra le decine o centinaia di migliaia che la codifica UNICODE consente -- se si usa \prog{xelatex} o \prog{lualatex} questa codifica è necessaria ma non bisogna esplicitarla nel file sorgente. Il problema, in effetti, non è la codifica, ma è la tastiera. Con sistemi operativi diversi si sono sviluppati programmi di vario genere per scrivere in alfabeti diversi da quello latino esteso, qual è quello invocato tra gli altri con l'opzione \opt{utf8}. Ma se dovete scrivere la vostra tesi con brani in greco o in russo o in arabo o in lingue con segni sillabici o ideogrammi, questo problema si presenterebbe qualunque sia l'editor e il programma di composizione che usate, ed è un problema che dovete risolvere da soli. -Bisogna notare che in italiano vanno accentate anche le lettere maiuscole; siccome la tastiera italiana non le prevede, consiglio di inserire nel preambolo la definizione del comando \cs{E} per scrivere `È'. Credo che questa sia la maiuscola accentata più frequente in italiano e le altre non capitano mai all'inizio di un periodo; possono capitare nei titoli e allora bisogna arrangiarsi con codici numerici o con tabelle di caratteri. Il comando: +Bisogna notare che in italiano vanno accentate anche le lettere maiuscole; siccome la tastiera italiana non le prevede, consiglio di inserire nel preambolo la definizione del comando \cs{E} per scrivere `È'. Credo che questa sia la maiuscola accentata più frequente in italiano e le altre non capitano mai all'inizio di un periodo; possono capitare nei titoli e allora bisogna arrangiarsi con codici numerici o con tabelle di caratteri o con le macro di basso livello del linguaggio \LaTeX. Il comando: \begin{verbatim} \usepackage{xspace} \newcommand*\E{\`E\xspace} @@ -1325,13 +2239,14 @@ inserisce direttamente una È all'inizio di un periodo e inserisce direttamente \end{verbatim} per ottenere: \begin{quote} -È conveniente rilevare che\dots +\`E\ conveniente rilevare che\dots \end{quote} -L'uso del pacchetto \pack{xspace} fa sì che esso, tramite il comando \cs{xspace} inserisca uno spazio, a meno che il comando \cs{E} non sia seguito da qualunque cosa che non sia uno spazio, per esempio un segno di interpunzione, o una tilde di legatura; anche il comando esplicito di spazio \verb*|\ | impedisce l'inserimento di un ulteriore spazio da parte di \cs{xspace}. +L'uso del pacchetto \pack{xspace} fa sì che esso, tramite il comando \cs{xspace}, inserisca uno spazio, a meno che il comando \cs{E} non sia seguito da qualunque cosa che non sia uno spazio, per esempio un segno di interpunzione, o una tilde di legatura; anche il comando esplicito di spazio \verb*|\ | impedisce l'inserimento di un ulteriore spazio da parte di \cs{xspace}. -Se il vostro editor vi consente di selezionare le maiuscole accentate da una tabella oppure vi consente di usare combinazioni di tasti per inserire direttamente le maiuscole accentate nel file sorgente, fatene uso, perché la lettura del file sorgente ne guadagna moltissimo. +Se l'editor consente di selezionare le maiuscole accentate da una tabella oppure consente di usare combinazioni di tasti per inserire direttamente le maiuscole accentate nel file sorgente, se ne faccia uso, perché la lettura del file sorgente ne guadagna moltissimo. -Se volete o dovete usare \prog{pdflatex}, dovete caricare nel vostro preambolo tutto quello che è necessario per gestire quelle lingue scritte con alfabeti diversi, ma non chiedetemi come si fa, perché so dirvelo solo per il greco. Per questa lingua, se usate l'ortografia monotonica, basta inserire l'opzione della lingua \opt{greek} fra le opzioni \emph{della classe}; se usate l'ortografia politonica\footnote{Il greco moderno può essere politonico o monotonico; quello antico è sempre e solo politonico; però le regole di sillabazione sono diverse; con \pack{polyglossia} non ci sono problemi; con \pack{babel} a tutt'oggi (ottobre 2015) esiste l'attributo \opt{ancient} per selezionare la sillabazione antica oltre alla grafia politonica, ma non è ancora possibile disporre effettivamente della sillabazione antica completa.}, allora dovete richiedere per \pack{babel} lo specifico attributo seguendo questo procedimento (per \pack{polyglossia} si veda più avanti): +Se si vuole o si deve usare \prog{pdflatex}, si deve caricare nel +preambolo tutto quello che è necessario per gestire quelle lingue scritte con alfabeti diversi, ma mi si chieda come si fa, perché so dirlo solo per il greco. Per questa lingua, se si usa l'ortografia monotonica, basta inserire l'opzione della lingua \opt{greek} fra le opzioni \emph{della classe}; se si usa l'ortografia politonica\footnote{Il greco moderno può essere politonico o monotonico; quello antico è sempre e solo politonico; però le regole di sillabazione sono diverse; con \pack{polyglossia} non ci sono problemi; con \pack{babel} a tutt'oggi (ottobre 2017) esiste l'attributo \opt{ancient} per selezionare la sillabazione antica oltre alla grafia politonica, ma non è ancora possibile disporre effettivamente della sillabazione antica completa.}, allora si deve richiedere per \pack{babel} lo specifico attributo seguendo questo procedimento (per \pack{polyglossia} si veda più avanti): \begin{verbatim} \documentclass[...,greek.ancient,...]{toptesi} ... @@ -1350,114 +2265,78 @@ oppure \end{verbatim} Al posto di \opt{ancient} si può specificare \opt{polutoniko}; \opt{polutoniko} si riferisce al greco moderno scritto con tutta la varietà di accenti e diviso in sillabe con i criteri adatti alla lingua moderna; \opt{ancient} si riferisce al greco classico, che oltre ad usare la solita varietà di accenti, usa altre regole per la sillabazione di questa varietà di lingua. -Per una tesi che tratti il greco antico in forma filologica, consiglio l'uso del pacchetto \pack{teubner}; visto che l'ho scritto io, un po' di réclame non guasta~\dots\ Bisogna però leggerne la documentazione con attenzione. In particolare conviene ricordare che \pack{teubner} non viene caricato se non è stato precedentemente specificata la lingua greca fra le opzioni, ma poi provvede da solo ad impostare l'attributo \opt{ancient} e tutte le altre caratteristiche necessarie per comporre in greco con il \emph{mark-up} filologico. A tutt'oggi (2016) il pacchetto \pack{teubner} non è stato adeguatamente controllato sotto \XeLaTeX\ e \LuaLaTeX. Probabilmente non è completamente compatibile, ma non sono ancora in grado di dire niente né in positivo né in negativo. +Per una tesi che tratti il greco antico in forma filologica, consiglio l'uso del pacchetto \pack{teubner}; visto che l'ho scritto io, un po' di réclame non guasta~\dots\ Bisogna però leggerne la documentazione con attenzione. In particolare conviene ricordare che \pack{teubner} non viene caricato se non è stato precedentemente specificata la lingua greca fra le opzioni, ma poi provvede da solo ad impostare l'attributo \opt{ancient} e tutte le altre caratteristiche necessarie per comporre in greco con il \emph{mark-up} filologico. A tutt'oggi (2017) il pacchetto \pack{teubner} non è stato adeguatamente controllato sotto \XeLaTeX\ e \LuaLaTeX. Probabilmente non è completamente compatibile, ma non sono ancora in grado di dire niente né in positivo né in negativo. %%% MODIFICARE LA FRASE PRECEDENTE QUANDO TEUBNER SARÀ A POSTO!!!! -Immagino che per usare le lingue che si scrivono in cirillico, basti specificare l'opzione della lingua, come si fa per il greco. Per alcune altre lingue bisogna invece caricare l'apposito pacchetto, il quale provvede a tutte le impostazioni necessarie; in questi casi bisogna leggere con attenzione la documentazione di quei pacchetti. +Immagino che per usare le lingue che si scrivono in cirillico, basti specificare l'opzione della lingua, come si fa per il greco. Per alcune altre lingue bisogna invece caricare l'apposito pacchetto, il quale provvede a tutte le impostazioni necessarie; in questi casi bisogna leggere con attenzione la documentazione di quel pacchetto. -Suggerisco di riferirsi al documento \emph{L'Arte di scrivere in diverse lingue con (Xe)LaTeX}, liberamente scaricabile dalla sezione Documentazione del sito \url{www.guitex.org}. Questa guida tratta molti argomenti utili per comporre in lingue straniere comprese alcune di quelle che si scrivono con insiemi di caratteri diversi da quelli latini; descrive anche molte caratteristiche delle tradizioni tipografiche in uso in nazioni diverse dall'Italia oltre, ovviamente, le tradizioni italiane. +Suggerisco di riferirsi al documento \emph{L'Arte di scrivere in diverse lingue con (Xe)LaTeX}, liberamente scaricabile dalla sezione Documentazione del sito \url{www.guitex.org}. Questa guida tratta molti argomenti utili per comporre in lingue straniere comprese alcune di quelle che si scrivono con insiemi di caratteri diversi da quelli latini; descrive anche molte caratteristiche delle tradizioni tipografiche in uso in nazioni diverse dall'Italia oltre, ovviamente, la descrizione delle tradizioni italiane. -Ma, tornando alla codifica UTF-8, il problema non è tanto l'editor che consenta o non consenta di usare quella codifica; quasi tutti i sistemi operativi consentono di installare diversi driver per la tastiera del PC, cosicché con un semplice click del mouse si può passare da un alfabeto all'altro; il problema sono i tasti della tastiera sulla cui faccia è riportato il segno che si ottiene premendo quel tasto quando è attivo il driver corrispondente a quella specifica tastiera. Non è ovviamente possibile cambiare il disegno che appare sui tasti, semplicemente cliccando per cambiare driver; forse lo si può fare con le tastiere virtuali dei PC \emph{touch screen}, ma con i PC normali questo non è possibile. Ecco quindi che la difficoltà di scrivere con un alfabeto diverso richiede una memoria ferrea per ricordare a quale segno dell'altro alfabeto corrisponda il tasto della nostra tastiera. +Ma, tornando alla codifica UTF-8, il problema non è tanto l'editor che consenta o non consenta di usare quella codifica; quasi tutti i sistemi operativi consentono di installare diversi driver per la tastiera del PC, cosicché con un semplice click del mouse si può passare da un alfabeto all'altro; il problema sono i tasti della tastiera sulla cui faccia è riportato il segno che si ottiene premendo quel tasto quando è attivo il driver corrispondente a quella specifica tastiera. Non è ovviamente possibile cambiare il disegno che appare sui tasti semplicemente cliccando per cambiare driver; forse lo si può fare con le tastiere virtuali dei PC \emph{touch screen}, ma con i PC normali questo non è possibile. Ecco quindi che la difficoltà di scrivere con un alfabeto diverso richiede una memoria ferrea per ricordare a quale segno dell'altro alfabeto corrisponda il tasto della nostra tastiera. -Per il greco moderno e classico, se si usano i font di default con la codifica LGR (Local GReek), che vengono installati praticamente con ogni installazione del sistema \TeX\ aggiornata e, soprattutto, completa, le corrispondenze con la tastiera latina sono studiate in modo da semplificare molto questo processo di ``memorizzazione''. Tuttavia ad una persona abituata a leggere il greco scritto (giustamente) in greco, vederlo scritto con caratteri latini fa un certo effetto; la documentazione di \textsf{babel} e quella di \textsf{teubner} ricordano questa corrispondenza fra i tasti latini e i segni greci (lettere, accenti, spiriti, segni speciali, ecc.). La corrispondenza fra greco e latino è abbastanza semplice perché il greco ha 24 maiuscole e 25 minuscole, mentre il latino ne ha 26 di ciascun tipo. Non so che cosa succeda con il cirillico che ha un alfabeto composto di più di 30 segni, per cui la corrispondenza diretta con l'alfabeto latino è impossibile. +Per il greco moderno e classico, se si usano con \prog{pdflatex} i font di default con la codifica LGR (Local GReek) (che vengono installati praticamente con ogni installazione del sistema \TeX aggiornata e, soprattutto, completa) le corrispondenze con la tastiera latina sono studiate in modo da semplificare molto questo processo di ``memorizzazione''. Tuttavia ad una persona abituata a leggere il greco scritto (giustamente) in greco, vederlo scritto con caratteri latini fa un certo effetto; la documentazione di \textsf{babel} e quella di \textsf{teubner} ricordano questa corrispondenza fra i tasti latini e i segni greci (lettere, accenti, spiriti, segni speciali, eccetera). La corrispondenza fra greco e latino è abbastanza semplice perché il greco ha 24 maiuscole e 25 minuscole, mentre il latino ne ha 26 di ciascun tipo. Non so che cosa succeda in generale con il cirillico che ha un alfabeto composto di più di 30 segni, per cui la corrispondenza diretta con l'alfabeto latino è impossibile; so che una delle traslitterazioni latine del cirillico permette di scrivere in russo giocando con combinazioni di lettere che vengono trasformate in legature e quindi nei segni cirillici che non corrispondono direttamente a quelli latini. -Con le macchine Macintosh il sistema operativo Mac OS X mette a disposizione una specie di tastiera virtuale sui tasti della quale si può cliccare con il mouse; si possono installare diverse tastiere che possono venire scambiate con un semplice click sulla icona disegnata nella barra superiore; per cui scrivere in greco politonico o in russo o in ebraico, o in\dots, non è un problema. Temo che lo sia con altre macchine e altri sistemi operativi. +Con le macchine Mac il sistema operativo Mac OS X mette a disposizione una specie di tastiera virtuale sui tasti della quale si può cliccare con il mouse; si possono installare diverse tastiere che possono venire alternate con un semplice click sulla icona disegnata nella barra superiore; per cui scrivere in greco politonico o in russo o in ebraico, o in\dots, non è un problema. Temo che lo sia con altre macchine e altri sistemi operativi. -Mi dicono che sulle macchine Linux l'editor \prog{Vim} e, su tutte le macchine, l'editor \prog{emacs} prevedano delle combinazioni di tasti che consentono di scrivere direttamente in greco sullo schermo, nella finestra del file \texttt{.tex}. Ho letto qualcosa in merito, ma non sono in grado di confermare per esperienza diretta. +Sembra che sulle macchine Linux l'editor \prog{Vim} e, su tutte le macchine, l'editor \prog{emacs} prevedano delle combinazioni di tasti che consentono di scrivere direttamente in greco sullo schermo, nella finestra del file \texttt{.tex}. Ho letto qualcosa in merito, ma non sono in grado di confermare per esperienza diretta. \goodpagebreak \subsection{La scelta della codifica per il file di uscita} -Solo per scrivere in inglese non è necessario specificare nessuna codifica per i font da usare per comporre la tesi; questo è vero in quanto l'inglese, fra le lingue più comuni nel mondo occidentale, è l'unica che non fa uso di accenti o altri segni diacritici. Perciò la codifica di default \opt{OT1} per i font di uscita adatti a scrivere in inglese va benissimo e non è necessario specificare nulla. Ma attenzione: come ho già detto, se si deve inserire anche una sola parola diversa dall'inglese e che contenga un accento, o se si deve scrivere in ``middle English'', che usava gli accenti, questa vecchia codifica non va assolutamente bene per produrre file PDF/A compatibili. Quindi anche per l'inglese sarebbe opportuno usare una codifica più avanzata. +Quando si usa \prog{pdflatex}, solo per scrivere in inglese non è necessario specificare nessuna codifica per i font da usare per comporre la tesi; questo è parzialmente vero in quanto l'inglese, fra le lingue più comuni nel mondo occidentale, è l'unica che non fa uso di accenti o altri segni diacritici. Perciò la codifica di default \opt{OT1} per i font di uscita adatti per scrivere in inglese va benissimo e non è necessario specificare nulla. Ma attenzione: come ho già detto, se si deve inserire anche una sola parola diversa dall'inglese e che contenga un accento, o se si deve scrivere in ``middle English'', che usava gli accenti, questa vecchia codifica non va assolutamente bene per produrre file PDF/A compatibili. Quindi anche per l'inglese sarebbe opportuno usare una codifica più avanzata. -Inoltre con questa codifica \opt{OT1} la presenza di accenti impedisce la divisione in sillabe o ne riduce molto l'efficacia; per l'italiano il problema è relativamente modesto perché normalmente gli accenti compaiono solo sull'ultima vocale delle parole \emph{tronche}. Quindi con questa codifica la parola \emph{qualità} viene divisa in ``qua-lità'' invece che in ``qua-li-tà''. Invece in francese una parola come \emph{électricité} non viene divisa per niente a causa dell'accento sulla prima vocale. +Inoltre con la codifica \opt{OT1} la presenza di macro per gli accenti impedisce la divisione in sillabe o ne riduce molto l'efficacia; per l'italiano il problema è relativamente modesto perché normalmente gli accenti compaiono solo sull'ultima vocale delle parole \emph{tronche}. Quindi con questa codifica la parola \emph{qualità} viene divisa in ``qua-lità'' invece che in ``qua-li-tà''. Invece in francese una parola come \emph{électricité} non viene divisa per niente a causa dell'accento sulla prima vocale. -Allora per tutte le lingue diverse dall'inglese, ma anche per l'inglese, è quanto mai opportuno specificare per i font di uscita la codifica \opt{T1}. C'è però un problemino, facilmente risolubile, ma bisogna pensarci: fino ad oggi (2015) i font di default usati da \pdfLaTeX\ sono i font della collezione Computer Modern con codifica \opt{OT1}; e ogni installazione del sistema \TeX\ li può usare sia nella versione ``bitmapped'' sia in quella PostScript Type~1. Quest'ultimo formato dei font dovrebbe essere quello da usare sempre con qualunque font per il formato PDF del file di uscita, perché questo formato è portabile da una macchina ad un'altra, indipendentemente dal sistema operativo usato. Se poi il file deve essere archiviato, esso deve essere in formato PDF, quindi, di fatto non ci sono scelte. +Allora per tutte le lingue diverse dall'inglese, ma anche per l'inglese, è quanto mai opportuno specificare per i font di uscita la codifica \opt{T1}. C'è però un problemino, facilmente risolubile, ma bisogna pensarci: fino ad oggi (2017) i font di default usati da \pdfLaTeX\ sono i font della collezione Computer Modern con codifica \opt{OT1}; e ogni installazione del sistema \TeX li può usare sia nella versione ``bitmapped'' sia in quella PostScript Type~1. Quest'ultimo formato dei font dovrebbe essere quello da usare sempre con qualunque font per il formato PDF del file di uscita, perché questo formato è portabile da una macchina all'altra, indipendentemente dal sistema operativo usato. Se poi il file deve essere archiviato, esso deve essere in formato PDF, quindi, di fatto non ci sono scelte. -I file della collezione Computer Modern con codifica \opt{T1}, conosciuti anche come font EC, sono invece distribuiti solo nella forma bitmapped, la quale, oltre ad essere vietata nei file PDF archiviabili, si legge molto male sullo schermo, se il programma di visualizzazione non è molto ben adattato ai font bitmapped. Esiste la collezione di font \textsf{cm-super} per ovviare a questo inconveniente (questa collezione è installata di default in ogni installazione completa del sistema \TeX), ma l'uso di questi font implica un aumento non trascurabile delle dimensioni del file di uscita. Per aggirare questi inconvenienti è meglio usare i font della collezione Latin Modern, per cui nel preambolo del file da gestire con \prog{pdflatex} si specificherà: +I file della collezione Computer Modern con codifica \opt{T1}, conosciuti anche come font EC, sono invece distribuiti solo nella forma bitmapped, la quale, oltre ad essere vietata nei file PDF archiviabili, si legge molto male sullo schermo, se il programma di visualizzazione non è molto ben adattato ai font bitmapped. Esiste la collezione di font \Font{CM-Super} per ovviare a questo inconveniente (questa collezione è installata di default in ogni installazione completa del sistema \TeX), ma l'uso di questi font implica un aumento non trascurabile delle dimensioni del file di uscita. Per aggirare questi inconvenienti è meglio usare i font della collezione Latin Modern, per cui nel preambolo del file da gestire con \prog{pdflatex} si specificherà: \begin{verbatim} \documentclass[...]{toptesi} ... \usepackage[T1]{fontenc} -\usepackage{lmodern} +\usepackage{lmodern}% per usare la collezione Latin Modern ... \begin{document} ... \end{document} \end{verbatim} -Se il file viene gestito con \prog{xelatex} o \prog{lualatex}, oltre alla codifica \opt{utf8} di default \emph{che non va esplicitata}, basta richiedere l'uso del pacchetto \pack{fontspec} senza ulteriori opzioni e viene automaticamente caricata ed usata la collezione dei font Latin Modern nella loro versione OpenType; a questo provvede direttamente la classe \class{toptesi}. Usando \prog{xelatex} o \prog{lualatex}, gli appositi comandi per la selezione dei font sia testuali sia per la matematica può essere eseguita nel preambolo senza bisogno di ricaricare il pacchetto \pack{fontenc}. Volendo, invece di usare i font Latin Modern, si possono impostare facilmente altre famiglie di font con comodi comandi che fanno riferimento ai font OpenType installati sulla propria macchina. +Se invece il file viene gestito con \prog{xelatex} o \prog{lualatex}, oltre alla codifica \opt{utf8} di default (\emph{che non va esplicitata}), basta richiedere l'uso del pacchetto \pack{fontspec} senza ulteriori opzioni e viene automaticamente caricata ed usata la collezione dei font Latin Modern nella loro versione OpenType; a questo provvede direttamente la classe \class{toptesi}. Usando \prog{xelatex} o \prog{lualatex}, la selezione dei font sia testuali sia per la matematica può essere eseguita nel preambolo senza bisogno di ricaricare il pacchetto \pack{fontenc}. Volendo, invece di usare i font Latin Modern, si possono impostare facilmente altre famiglie di font con comodi comandi che fanno riferimento ai font OpenType installati sulla propria macchina. -Naturalmente per gli utenti esperti di \LaTeX\ ci sono anche altri pacchetti usabili per impiegare altri font diversi da quelli della collezione Latin Modern, che comunque, secondo me, sono i migliori per la loro completezza; grazie al diverso disegno dei corpi minori la lettura dei pedici e degli apici ne risulta agevolata. +Naturalmente per gli utenti esperti di \LaTeX ci sono anche altri pacchetti usabili per impiegare altri font diversi da quelli della collezione Latin Modern, che comunque, secondo me, sono i migliori per la loro completezza; inoltre, grazie al diverso disegno dei corpi minori, la lettura dei pedici e degli apici ne risulta agevolata. -Qui, per la composizione della tesi con \prog{pdflatex} segnalo solo la collezione dei font Times eXtended, richiamabili con i pacchetti \pack{newtxtext} e \pack{newtxmath}, e la collezione dei font Palatino eXtended, richiamabili con i pacchetti \pack{newpxtext} e \pack{newpxmath}. I Times sono font più stretti di quelli della collezione Latin Modern e sono forse indicati per rendere più compatta una tesi un po' voluminosa. I Palatino sono un po' più larghi dei font della collezione Latin Modern e allungano la tesi di qualche pagina. I nuovi pacchetti \pack{newtx...} e \pack{newpx...} sono configurabili con diverse opzioni; li consiglio a coloro che vogliono usare i font Times o Palatino, ma se devo dare un consiglio assoluto, direi che sia sempre preferibile usare i font Latin Modern dalle prestazioni molto migliori grazie ai corpi ottici; volendo si può usare il pacchetto \pack{cfr-lm} che consente di personalizzare fortemente le proprietà dei font Latin Modern da usare, per esempio permettendo l'uso delle cifre minuscole \ifPDFTeX\oldstylenums{1234567890}\else {\addfontfeature{Numbers=OldStyle}{1234567890}}\fi\ nel testo, e le cifre maiuscole 1234567890 nella composizione della matematica. +Qui, per la composizione della tesi con \prog{pdflatex} segnalo solo la collezione dei font Times eXtended, richiamabili con i pacchetti \pack{newtxtext} e \pack{newtxmath}, e la collezione dei font Palatino eXtended, richiamabili con i pacchetti \pack{newpxtext} e \pack{newpxmath}. I Times sono font più stretti di quelli della collezione Latin Modern e sono forse indicati per rendere più compatta una tesi un po' voluminosa. I Palatino sono un po' più larghi dei font della collezione Latin Modern e talvolta allungano la tesi di qualche pagina. I nuovi pacchetti \pack{newtx...} e \pack{newpx...} sono configurabili con diverse opzioni; li consiglio a coloro che vogliono usare i font Times o Palatino, ma se devo dare un consiglio assoluto, direi che sia sempre preferibile usare i font Latin Modern dalle prestazioni migliori grazie ai corpi ottici; volendo si può usare il pacchetto \pack{cfr-lm} che consente di personalizzare fortemente le proprietà dei font Latin Modern da usare, per esempio permettendo l'uso delle cifre minuscole \ifPDFTeX\oldstylenums{1234567890}\else {\addfontfeature{Numbers=OldStyle}{1234567890}}\fi\ nel testo, e le cifre maiuscole 1234567890 nella composizione della matematica. -Tanto per confronto, questo testo di documentazione su \textsf{TOPtesi} è composto con il motore di composizione \prog{lualatex} usando i font OpenType TeX Gyre Termes con codifica UNICODE presenti nella distribuzione del sistema \TeX; come si vede la divisione delle parole in fin di riga non presenta inconvenienti particolari; forse con un testo di altro genere, con composizione in colonne strette o all'interno di tabelle, si potrebbe verificare la presenza di righe molto lasche, dove è stato allargato troppo lo spazio interparola. Per questo, quando si usa il motore di composizione \prog{pdflatex}, si consiglia sempre di usare la codifica \opt{T1}; non si sa mai, ma certamente con questa codifica si hanno meno inconvenienti e le lettere accentate sono disegnate meglio. Se si usa come motore \prog{pdflatex}, è conveniente usare anche il pacchetto di estensione \pack{microtype} che consente di comporre ancora meglio le righe del testo; con \prog{xelatex}, invece, le funzionalità di questo pacchetto sono solo parzialmente usabili; comunque si può usare \pack{microtype} anche compilando con \prog{xelatex} sebbene i miglioramenti siano meno ``vistosi'' che con \prog{pdflatex}; con \prog{lualatex} il pacchetto \pack{microtype} produce gli stessi benefici che si ottengono con \prog{pdflatex}, senza i piccoli inconvenienti che si manifestano con \prog{xelatex}. +Tanto per confronto, questo testo di documentazione su \textsf{TOPtesi}, quando è composto con il motore di composizione \prog{lualatex}, usa i font OpenType TeX Gyre Termes con codifica UNICODE presenti nella distribuzione del sistema \TeX; come si vede la divisione delle parole in fin di riga non presenta inconvenienti particolari; forse con un testo di altro genere, con composizione in colonne strette o all'interno di tabelle, si potrebbe verificare la presenza di righe molto lasche, dove è stato allargato troppo lo spazio interparola. Per questa eventualità di ottenere righe lasche, quando si usa il programma di composizione \prog{pdflatex}, si consiglia sempre di usare la codifica \opt{T1}; non si sa mai, ma certamente con questa codifica si hanno meno inconvenienti e le lettere accentate sono disegnate meglio. Se inoltre si usano i programmi \prog{pdflatex} o \prog{lualatex}, è conveniente invocare anche il pacchetto di estensione \pack{microtype} che consente di comporre ancora meglio le righe del testo; invece con \prog{xelatex} le funzionalità di questo pacchetto sono solo parzialmente usabili; comunque si può usare \pack{microtype} anche compilando con \prog{xelatex} sebbene i miglioramenti siano meno ``vistosi\footnote{``Vistosi'' è fra virgolette, perché il compito di \pack{microtype} è quello di \emph{non far vedere} i piccolissimi difetti che si hanno quando non lo si usa; troppe righe con cesura alla fine, ruscelletti bianche che serpeggiano fra le righe; spazi interparola disomogenei e altri simili difettucci. voglio segnalare che con i normali word processor la divisione in sillabe in fin di riga è consentita, ma di solito non viene attivata dall'utente; inoltre anche impostando questa funzionalità, lavorando in italiano l'apostrofo impedisce la sillabazione, quindi in certe circostanze gli spazi interparola diventano immensi. Ecco perché con i word processor il risultato della composizione non è di qualità tipografica.}'' che con \prog{pdflatex} o \prog{lualatex}.\enlargethispage{\baselineskip} \section{Come stampare la tesi} -Il pacchetto \textsf{TOPtesi} contiene anche l'opzione di composizione -\emph{in bianca e volta}, ma di default compone su una facciata sola -della pagina. - -Qual è la differenza? È quella che si osserva nei libri composti -meglio, cioè nei libri con i fogli stampati davanti e di dietro: -quando il libro è aperto la striscia bianca formata dai due -margini interni delle pagine affacciate è circa uguale a ciascuno -dei margini esterni. Invece quando si stampa su una facciata sola -il corpo del testo è centrato e i margini laterali sono -uguali. Inoltre nelle testatine delle pagine stampate solo in -bianca compare sempre e solo il titolo del capitolo corrente, -mentre nelle testatine delle pagine \emph{pari} stampate in bianca -e volta compare il titolo del capitolo, mentre nelle pagine -\emph{dispari} compare il titolo del paragrafo con cui comincia la -pagina. - -Molti laureandi ritengono di fare una cosa utile stampando fronte -e retro, o, come dicono i tipografi, in bianca e volta. Certamente -è una buona idea, sia perché il fascicolo della tesi viene ad -assumere un aspetto più professionale, sia perché, ecologicamente -parlando, si consuma meno carta. - -Per questo ho cambiato le impostazioni di default della classe -\class{report}, sulla quale è basata la classe \class{toptesi}, -per far sì che comunque la stampa della pagina, sia essa solo in -bianca o in bianca e volta, appaia sempre con i margini laterali -uguali. - -Ho deciso per questa soluzione perché quando si rilega la tesi, -necessariamente dal lato della cucitura o dell'incollatura le -pagine sono piegate e l'insieme dei due margini interni delle -pagine affacciate appare visivamente più piccolo di ciascuno dei -margini esterni. Se si stampa solo in bianca invece sarebbe il -caso di aumentare il margine sinistro; tuttavia non ho realizzato -questo spostamento non solo perché il margine destro resta di una -certa ampiezza e può accogliere le note -marginali\marginpar{\footnotesize\sffamily\raggedright Questa è una nota -marginale}, se si decide di farne uso, ma anche perché, almeno al -Politecnico di Torino, la copia da depositare nella segreteria -didattica non deve essere realizzata su carta, ma deve essere -registrata su un CD-ROM in formato \texttt{.pdf} e chi legge la -tesi sullo schermo preferisce senz'altro avere il testo centrato -piuttosto che spostato alternativamente da un lato o dall'altro -dello schermo. - -Però questa soluzione potrebbe non piacere ad alcuni laureandi, -specialmente se compongono tesi piuttosto voluminose e/o se le -rilegano con una costola piuttosto rigida. In questo caso la -classe \class{toptesi} accetta l'opzione \opt{cucitura} -mediante la quale le facciate di sinistra e di destra vengono -spostate all'esterno di 7\,mm, per compensare la rigidezza -della cucitura e la forte curvatura delle pagine causate dallo -spessore e/o dal tipo di rilegatura. Questo implica che la -copia da memorizzare sul CD-ROM dovrà essere compilata senza -specificare questa opzione, che invece sarà specificata per -ricomporre il file prima della stampa su carta. + \TOPtesi ridefinisce il layout della pagina seguendo questi criteri, concordati con la segreteria del Politecnico di Torino; in realtà queste sono le preferenze di quella segreteria, ma se si legge con attenzione si vede che compaiono diverse volte parole come ``ameno'', ``non meno di'' e simili. Esse rappresentano dei limiti entro cui restare e se si rispettano questi limiti qualunque layout di pagina sarebbe accettabile; il requisito più importante è dato da questa frase: “Lo specchio di stampa deve avere le dimensioni di almeno 150\unit{mm} per 210\unit{mm} e deve contenere almeno 43 righe di testo. Il margine interno non deve essere inferiore a 25\unit{mm}.” + +In un foglio A4, di 210\unit{mm} per 297\unit{mm} quello spazio lascia complessivamente 60\unit{mm} per i margini laterali e 87\unit{mm} per quelli verticali. Siccome i margini interno ed esterno vengono fissati da TOPtesi, è opportuno che anche i margini superiore e inferiore siano uguali; siccome il numero di pagina nel piedino non ha alcun impatto visivo, mentre le testatine, al contrario, sono visivamente importanti; i valori numerici dei due margini vengono posti a valori diversi, proprio per tenere conto che le “almeno 43 righe” occupino la posizione visivamente corretta nonostante i margini verticali siano, in definitiva, numericamente un po' diversi. + +Quelle erano le prescrizioni della segreteria del Politecnico; e continuano ad essere valide, specialmente in vista dell'archiviazione elettronica che viene fatte per tutte le tesi. In altri Atenei vengono accettati anche altri formati, specialmente il formato B5 in molte facoltà umanistiche. TOPtesi, pertanto accetta anche altre opzioni di formato di carta e provvede alle giuste impostazioni anche per quel che riguarda questo tipo di informazioni all'interno del file PDF di uscita; questo in vista della stampa, ma più ancora per le lettura a video. Ovviamente con i formati di carta più piccoli le dimensioni sono ridotte proporzionalmente, tranne lo scartamento delle righe di testo che viene mantenuto uguale a quello che si sarebbe usato con la carta~A4. -\goodpagebreak +Per questi motivi TOPtesi, qualunque sia il formato della carta, divide lo spazio complessivo in parti uguali fra i margini laterali quando si desidera produrre una versione del file PDF da leggere a video. Invece divide lo spazio complessivo in parti diverse se il file PDF deve essere stampato; in particolare la proporzioni fra il margine interno e quello esterno sono uguali a quelle fa la giustezza e la larghezza della carta e questa stessa proporzione viene usata fra il margine superiore e quello inferiore; ne consegue che, se non si usano caratteri troppo grandi, una delle diagonali dello specchio di stampa coincide con la corrispondente diagonale della pagina. Questa disposizione coincide con uno dei disegni classici del layout di pagina. + +Ora si tenga presente che per la leggibilità confortevole del testo sarebbe opportuno che in ogni riga fossero presenti tanti caratteri, spazi e segni di interpunzione compresi, in numero compreso nella fascia di $66\pm6$. Ovviamente a pari giustezza del testo il numero di caratteri varia a seconda del loro corpo e del loro disegno; una buona indicazione approssimata della “larghezza” di un font è dato dalla lunghezza della stringa che contiene l'alfabeto minuscolo. Secondo Bringhurst (vedi la guida tematica \url{http://guitex.org/home/images/doc/GuideGuIT/IntroPageDesign.pdf} nella pagina~6) la lunghezza ottima di una riga di stampa (la giustezza) dovrebbe essere pari a due volte e mezza la lunghezza dell'alfabeto; si vede anche nella figure~1.1 di quella guida, che i font di default di TOPtesi, i Latin Modern, sono lunghi 128\unit{pt} pari a 45\unit{mm}; quindi la giustezza ottimale dovrebbe essere di 113\unit{mm} invece dei 150\unit{mm} prescritti dalla segreteria\footnote{Questi conti e quelli immediatamente successivi sono arrotondati al millimetro; non è importantissimo fare i conti precisissimi, visto che la regola di Bringhurst concede circa il 10\% di tolleranza.}. Con i Times che hanno una larghezza dell'alfabeto di 119\unit{pt} pari a 42\unit{mm} la giustezza ottimale dovrebbe essere di 105\unit{mm}; con i Palatino l'alfabeto è lungo 133\unit{pt} pari a 47\unit{mm} e la giustezza ottimale sarebbe di 118\unit{mm}. Aumentando il corpo a 12\unit{pt} le tre giustezze ottimali appena determinate diventano rispettivamente di 136\unit{mm}, 126\unit{mm} e 142\unit{mm}. come si vede solo componendo in corpo 12\unit{pt} con i font Palatino si resterebbe dentro i margini indicati (verso il limite superiore) dalla regola di Bringhurst; con i Times usati in questo testo e la giustezza di 150\unit{mm} si arriva ad una numero medio di caratteri per ogni riga di circa 79 caratteri, fuori del margine superiore indicato dalla regola di Bringhurst. Non è un eccesso terribile, ed è sopportabile; ma le esigenze di archiviazione dell'Ateneo richiedono di non sprecare spazio nelle pagine senza però sacrificare il contenuto. + +Con il formato B5 i problemi di leggibilità indicati sopra non esistono; meno che mai con il formato A5; tuttavia i formati più piccoli a pari contenuto richiedono più pagine, quindi i problemi di archiviazione “cartacea” si ripresentano. Inoltre i formati più piccoli richiedono una paziente messa a punto delle singole pagine, perché in una tesi con molta matematica ed altri oggetti “ingombranti” potrebbero esserci molte pagine mal composte; suggerirei di non scendere mai sotto il formato~B5. + +Insomma TOPtesi sacrifica un poco la leggibilità, ma viene incontro ad altre esigenze. Altre classi possono avere layout più consone alle regole di Bringhurst, ma anche in formato A4 consumano più pagine. + +Alla luce di quanto sopra descritto TOPtesi non solo usa uno scartamento leggermente minore di quello ritenuto ottimale per i font in uso, ma richiede che l'utente non metta mano ad allontanare le righe; per lo stesso motivo TOPtesi invita gli utenti a servirsi della stampa fronte/retro. + +Il pacchetto \textsf{TOPtesi} accetta anche l'opzione di composizione in \emph{bianca e volta}, ma di default compone su una facciata sola della pagina (impostazione di default della sottostante classe \class{report} come anche il formato della carta, di default \texttt{letter}); resta responsabilità dell'utente quella di specificare l'opzione \opz{twoside} al fine di non sprecare inutilmente lo spazio disponibile stampando su entrambe le facciate di ogni pagina, e una delle opzioni \opz{a4paper} (default) o \opz{b5paper}, o qualsiasi altra opzione di formato di carta accettata dalla classe \class{report} per confezionare lo specchio di stampa in modo più consono al formato della carta; in realtà \TOPtesi provvede a realizzare uno specchio di stampa che si adatta particolarmente bene ai formati ISO, mentre non rispetta i formati americani, anche se gli specchi di stampa tutto sommato vanno bene anche per questii formati. + +Inoltre qual è la differenza fra la stampa in bianca e quella in bianca e volta? È quella che si osserva nei libri composti meglio: cioè, nelle testatine delle pagine stampate solo in bianca compare sempre e solo il titolo del capitolo corrente, mentre stampando in bianca e volta nelle testatine delle pagine \emph{pari} compare il titolo del capitolo, mentre nelle pagine \emph{dispari} compare il titolo del paragrafo con cui comincia quella pagina. + +I libri stampati meglio hanno i margini laterali diversi, con quello interno più piccolo di quello esterno; questo si ottiene facilmente impostando \opz{libro} fra le opzioni per la classe; l'utente che volesse conservarsi la tesi in forma cartacea, può comporre la versione d'archivio in forma elettronica con i margini uguali e poi ricomporre la versione a stampa con i margini diversi grazie all'opzione indicata; ricompilando il documento, si ottengono tutti gli elementi per i riferimenti incrociati perfettamente coerenti con la nuova impaginazione; si tratta di un'operazione che dura complessivamente poche decine di secondi. + +\goodpagebreak[5] \section{Comporre la tesi in diverse lingue}\label{sec:lingue} Il pacchetto \textsf{TOPtesi} usa di default il pacchetto \pack{babel} o il pacchetto \pack{polyglossia} per gestire la composizione in diverse lingue. @@ -1465,26 +2344,26 @@ Tuttavia la composizione in lingue diverse dall'inglese (che è la lingua di default per una installazione ``vergine'' del sistema \TeX) richiede che il sistema sia configurato per gestire diverse lingue; perciò le operazioni da fare sono essenzialmente due. -\begin{enumerate} -\item Bisogna configurare il sistema \TeX\ per gestire diverse lingue. -\item Bisogna specificare nel comando di apertura del master file di quali altre +\begin{enumerate}[noitemsep] +\item Bisogna configurare il sistema \TeX per gestire diverse lingue. +\item Bisogna specificare nel preambolo del master file di quali altre lingue ci si vuole servire \textcolor{red}{oltre all'italiano e all'inglese che sono già automaticamente invocati da \textsf{TOPtesi}}. Si ricorda che non si può più invocare nel preambolo il pacchetto \textsf{babel} una seconda volta, quando esso è già stato invocato una prima volta nel corpo della classe. Si veda nel seguito come bisogna specificare le ulteriori lingue oltre all'italiano e all'inglese. \end{enumerate} \subsection{Configurazione iniziale} -Per la prima parte, cioè per configurare il sistema \TeX\ per -gestire diverse lingue, subito dopo l'installazione lanciate -\LaTeX\ su un file di prova qualunque, per esempio -\file{sample.tex} (facente parte della distribuzione del sistema \TeX), poi apritene il file \texttt{.log}, -nell'esempio \texttt{sample.log}; nelle prime righe di questo file -troverete le lingue per le quali il vostro sistema è già +Per la prima parte, cioè per configurare il sistema \TeX per +gestire diverse lingue, subito dopo l'installazione si lanci +\LaTeX su un file di prova qualunque, per esempio +\file{sample.tex} (facente parte della distribuzione del sistema \TeX), poi se ne apra il file \texttt{.log}, +nell'esempio: \texttt{sample.log}; nelle prime righe di questo file +si trovano le lingue per le quali il sistema \TeX è già configurato. -Per esempio, componendo con \prog{pdflatex} questo file di documentazione, il file -\texttt{toptesi\discretionary{}{-}{-}it\discretionary{}{-}{-}xetex.log} nel 2012 conteneva nelle prime righe quanto segue: -\begin{verbatim} +Componendo con \prog{pdflatex} questo file di documentazione, il file +\texttt{toptesi\discretionary{}{-}{-}it.log} nel 2012 conteneva nelle prime righe quanto segue: +\begin{Verbatim}[fontsize=\small] This is pdfTeX, Version 3.1415926-2.4-0.9998 (TeX Live 2012) (format=xelatex 2012.7.10) 9 SEP 2012 16:04 entering extended mode @@ -1507,78 +2386,79 @@ mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, slovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded. -\end{verbatim} +\end{Verbatim} Dal 2014, purtroppo l'elenco delle lingue è sostituito dalla seguente laconica frase: \begin{verbatim} Babel <3.9k> and hyphenation patterns for 81 languages loaded. \end{verbatim} -Non c'è bisogno di preoccuparsi; nella mia macchina sono installate alcune lingue in più di quelle di default, ma se il numero è così alto, vuol dire che sono installate tutte le lingue che i programmi di composizione del sistema \TeX\ sono capaci di gestire; fra queste c'è l'italiano, tre versioni di greco, tre versioni di latino, eccetera. L'elenco completo può venire letto nel file \file{xelatex.log} (o, componendo con \prog{pdflatex}, nel file \file{pdflatex.log}) che si trovano in uno degli alberi del sistema \TeX. La lettura è un po' criptica, anche perché il file è piuttosto lungo, ma basta cercare la stringa \texttt{l@english}, e di lì in avanti è registrato tutto quello che serve conoscere per l'elenco delle lingue installate. \LuaLaTeX, diversamente da \pdfLaTeX\ e da \XeLaTeX, carica le impostazioni, sillabazione compresa, per le lingue del documento solo al momento di compilare quel dato documento; per questo compilatore solo l'inglese è precaricato, ma al momento opportuno esso si carica tutto ciò che è necessario per comporre in ciascuna dell'ottantina di lingue che riesce a gestire, o meglio in ciascuna delle lingua specificate per la composizione di ogni particolare documento, massimo un'ottantina (bastano?\dots). +Non c'è bisogno di preoccuparsi; nella mia macchina sono installate alcune lingue in più rispetto a quelle di default, ma se il numero è così alto, vuol dire che sono installate tutte le lingue che i programmi di composizione del sistema \TeX sono capaci di gestire; fra queste c'è l'italiano, tre versioni di greco, tre versioni di latino, eccetera. L'elenco completo può venire letto nei file \file{pdflatex.log}, \file{xelatex.log} che si trovano in uno degli alberi del sistema \TeX. La lettura è un po' criptica, anche perché il file è piuttosto lungo, ma basta cercare la stringa \texttt{l@english}, e di lì in avanti è registrato tutto quello che serve conoscere per l'elenco delle lingue installate. \LuaLaTeX, diversamente da \pdfLaTeX\ e da \XeLaTeX, carica le impostazioni, sillabazione compresa, per le lingue del documento solo al momento di compilare quel dato documento; per questo compilatore solo l'inglese è precaricato, ma al momento opportuno esso si carica tutto ciò che è necessario per comporre in ciascuna dell'ottantina di lingue che riesce a gestire, o meglio in ciascuna delle lingue specificate per la composizione di ogni particolare documento, massimo un'ottantina (dovrebbero essere sufficienti\dots). -Quel listato o quella riga è quanto appare sempre quando si usa la distribuzione \TeXLive completa o quando si usa la distribuzione \MiKTeX~2.9 (o successiva) completa; serve per dare un'idea di quello che contengono le prime righe del file in questione. Se, come è possibile, dopo la prima installazione il vostro primo file \texttt{.log} non contiene fra le lingue elencate anche l'italiano (oppure sono elencate solo una mezza dozzina di lingue, oppure si dice che le lingue installate sono in un numero molto inferiore a 80), allora questa è la cosa più urgente da fare; non vorrete mica che la vostra tesi, scritta in italiano, abbia le parole divise in sillabe in fin di riga con le regole angloamericane? Se poi siete su un programma di doppia laurea e dovete scrivere parte della tesi nella lingua dell'università straniera di cui prendete l'altro titolo, allora è necessario avere disponibile almeno anche quella lingua. Questo inghippo avviene quando si scarica una versione ridotta delle distribuzioni del sistema \TeX, oppure quando si usa la distribuzione \TeXLive/Debian (sempre sconsigliabile per vari motivi, non escluso il fatto che l'installazione di default prevede solo la sillabazione per l'inglese). +Quel listato o quella riga è quanto appare sempre quando si usa la distribuzione \TeXLive completa o quando si usa la distribuzione \MiKTeX~2.9 (o successiva) completa; serve per dare un'idea di quello che contengono le prime righe del file in questione. Se, come è possibile, dopo la prima installazione il vostro primo file \texttt{.log} non contiene fra le lingue elencate anche l'italiano (oppure sono elencate solo una mezza dozzina di lingue, oppure si dice che le lingue installate sono in un numero molto inferiore a 80), allora questa è la cosa più urgente da fare; non vorrete mica che la vostra tesi, scritta in italiano, abbia le parole divise in sillabe in fin di riga con le regole angloamericane? Se poi siete su un programma di doppia laurea e dovete scrivere parte della tesi nella lingua dell'università straniera di cui prendete l'altro titolo, allora è necessario avere disponibile almeno anche quella lingua. Questo inconveniente si manifesta quando si installa una versione ridotta delle distribuzioni del sistema \TeX, oppure quando si usa la distribuzione \TeXLive/Debian (sempre sconsigliabile per vari motivi, non escluso il fatto che l'installazione di default di solito prevede solo la sillabazione per l'inglese). -Le regole per inizializzare le lingue gestibili differiscono da -distribuzione a distribuzione del sistema \TeX. Bisogna quindi leggere la -documentazione che accompagna la vostra distribuzione; qui darò -alcuni cenni relativi alle distribuzioni che io conosco. +Le regole per inizializzare le lingue gestibili differiscono da distribuzione a distribuzione del sistema \TeX. Bisogna quindi leggere la documentazione che accompagna la distribuzione che si sta usando; qui darò alcuni cenni relativi alle distribuzioni che io conosco. \subsubsection{\MiKTeX} Questa distribuzione è forse quella che più sovente viene installata nella forma ``basic'' (errore! mai installare la versione di base, perché è tutt'altro che completa) e perciò è fra quelle che hanno bisogno di essere gestite. Si apre il wizard da \texttt{Avvio\discretionary{}{|}{|}Programmi\discretionary{}{|}{|}MiKTeX\discretionary{}{|}{|}MiKTeX\textvisiblespace Settings}. Esso apre una finestra di dialogo con diverse linguette; si clicca sulla linguetta \textsf{Languages} e viene aperta un'altra finestra con l'elenco di tutte le lingue gestibili, alcune già con il segno di spunta alla loro sinistra nell'apposito quadratino, altre senza il segno di spunta. Potete cliccare per togliere il segno di spunta sulle lingue già spuntate ma che non userete mai, ma ve lo sconsiglio, e potete aggiungere il segno di spunta cliccando nel quadratino corrispondente alle lingue desiderate, ma vi consiglio di spuntarle tutte. -Poi uscite dal dialogo per la scelta delle lingue cliccando \texttt{OK} e tornate sulla linguetta \textsf{General}; qui trovate due bottoni il primo dei quali serve per aggiornare il database dei nomi dei file, mentre il secondo serve per re-inizializzare i file di formato, cioè quei file che contengono già la traduzione in linguaggio macchina di tutte le operazioni che la vostra distribuzione del sistema \TeX\ è capace di compiere con i suoi vari applicativi. La divisione in sillabe è una di quelle operazioni che deve essere inizializzata, perché richiede strutture dati particolari che sarebbe troppo lungo generare di volta in volta (\LuaLaTeX, però ci riesce). Cliccate sul bottone per re-inizializzare i file di formato; alla fine di questa operazione potete chiudere il wizard e controllare, dopo aver ricomposto, per esempio, \file{sample.tex} che le prime righe del file \texttt{.log} contengano tutte le lingue che volete usare. +Poi, usciti dal dialogo per la scelta delle lingue, si clicca \texttt{OK} e si torna sulla linguetta \textsf{General}; qui si trovano due bottoni il primo dei quali serve per aggiornare il database dei nomi dei file, mentre il secondo serve per re-inizializzare i file di formato, cioè quei file che contengono già la traduzione in linguaggio macchina di tutte le operazioni che la distribuzione del sistema \TeX è capace di compiere con i suoi vari applicativi. La divisione in sillabe è una di quelle operazioni che deve essere inizializzata, perché richiede strutture dati particolari che sarebbe troppo lungo generare di volta in volta (\LuaLaTeX, però ci riesce). Si clicchi sul bottone per re-inizializzare i file di formato; alla fine di questa operazione si può chiudere il wizard e controllare, dopo aver ricomposto, per esempio, \file{sample.tex} che le prime righe del file \texttt{.log} contengano tutte le lingue che volete usare. \subsubsection{\TeXLive} -La distribuzione \TeXLive completa distribuita sul circuito \url{ctan} nasce già configurata per tutte le lingue che \LaTeX\ è capace di gestire, quindi anche l'italiano; bisogna ricorrere ai suoi comandi di configurazione solo se si vuole aggiungere una lingua la cui sillabazione non sia distribuita insieme a \TeX\ Live. Questo evento è talmente raro che non vale la pena di insistervi sopra. Tuttavia un laureando che svolga la sua tesi sull'ostrogoto altomedievale e disponesse solo della sillabazione per l'ostrogoto classico e per l'ostrogoto contemporaneo, si troverebbe in difficoltà; infatti, prima ancora di inserire le regole per l'ostrogoto altomedievale, dovrebbe scriversi le regole di sillabazione e codificarle nel linguaggio specifico richiesto dal sistema \TeX; questo è tutt'altro che facile ed è riservato a specialisti molto avanzati. +La distribuzione \TeXLive completa distribuita sul circuito \acro{ctan} nasce già configurata per tutte le lingue che \LaTeX è capace di gestire, quindi anche l'italiano; bisogna ricorrere ai suoi comandi di configurazione solo se si vuole aggiungere una lingua la cui sillabazione non sia distribuita insieme a \TeX Live. Questo evento è talmente raro che non vale la pena di insistervi sopra. Tuttavia un laureando che svolga la sua tesi sull'ostrogoto altomedievale e disponesse solo della sillabazione per l'ostrogoto classico e per l'ostrogoto contemporaneo, si troverebbe in difficoltà; infatti, prima ancora di inserire le regole per l'ostrogoto altomedievale, dovrebbe scriversi le regole di sillabazione e codificarle nel linguaggio specifico richiesto dal sistema \TeX; questo è tutt'altro che facile ed è riservato a specialisti molto avanzati. \subsubsection{Mac\TeX} Dal 2007 la distribuzione di \prog{Mac\TeX} sostanzialmente coincide con \TeX-live, salvo che contiene anche programmi accessori specifici per le macchine Macintosh; è pre"configurato per gestire tutte le lingue di cui il sistema è capace, compreso l'italiano. Ma per l'ostrogoto altomedievale\dots - -\subsubsection{Distribuzioni commerciali} -Le distribuzioni commerciali differiscono da quelle gratuite essenzialmente per i programmi accessori che accompagnano la distribuzione del sistema \TeX\ che, di sua natura, è gratuito; il costo delle distribuzioni commerciali corrisponde al valore delle parti accessorie, all'assistenza per i clienti, eccetera. - -Fra le parti accessorie in generale ci sono anche i programmi realizzati attraverso comode interfacce grafiche per la inizializzazione e l'aggiornamento del software. - -Perciò con queste distribuzioni bisogna leggere il manuale di istruzioni e provvedere corrispondentemente. - \subsection{Le lingue della tesi} +\subsubsection{Comporre in italiano} +Di default \textsf{TOPtesi} compone la tesi in italiano e per scrivere la tesi in italiano non occorre altro. La lingua inglese è già predisposta, ma va attivata; vedi poco più avanti. -Di default \textsf{TOPtesi} compone la tesi in italiano e per scrivere la tesi in italiano non occorre altro. - -Se si devono inserire nella tesi brani di testo in lingua straniera, ma lasciando la struttura della tesi in italiano, se si usa \prog{pdflatex} basta elencare fra le altre opzioni nel comando di apertura del master file i nomi (inglesi) delle lingue da usare; per esempio, per inserire brani in francese si scriverà: +Se si devono inserire nella tesi brani di testo in lingua straniera, ma lasciando la struttura della tesi in italiano, se si usa \prog{pdflatex} basta elencare fra le altre opzioni nel comando \cs{documentclass} del master file i nomi (inglesi) delle lingue da usare; per esempio, per inserire brani in francese si scriverà: +\begin{verbatim} +\documentclass[corpo=12pt,twoside,french]{toptesi} +\end{verbatim} +Poi nel corpo della tesi includerà i brani in francese dentro l'ambiente \amb{otherlanguage*} in questo modo: \begin{verbatim} -\documentclass[12pt,twoside,french]{toptesi} +I primi versi della marsigliese sono i seguenti: +«\begin{otherlanguage*}{french} +Allons enfants de la Patrie / Les jour de la gloire +sont arrivés. +\end{otherlanguage*}» \end{verbatim} +L'ambiente \amb{otherlanguage*}\marg{lingua} è definito sia da \pack{babel} sia da ]pack{polyglossia}; la versione asteriscata attiva la sillabazione e altre peculiarità della lingua francese, ma non cambia le impostazioni generali valido per l'intero documento. +\subsubsection{Comporre in inglese} Se invece si vuole scrivere la tesi in inglese, lingua già inserita di default in \textsf{TOPtesi}, ma non attivata, bisogna dare l'indicazione esplicita dopo l'inizio del documento mediante il comando \cs{english}; così: \begin{verbatim} -\documentclass[11pt,cucitura]{toptesi} +\documentclass[corpo=11pt,cucitura]{toptesi} ... \begin{document} \english ... \end{verbatim} +\subsubsection{Comporre in italiano e in inglese} \begin{sloppypar} -Per commutare dall'italiano all'inglese e viceversa basta alternare le dichiarazioni \cs{italiano} e \cs{english}. Attenzione: queste dichiarazioni alterano anche le parole come Chapter o Capitolo, Table o Tabella, quindi per inserire brani nell'altra lingua è opportuno servirsi dei comandi di \pack{babel}, in particolare l'ambiente \amb{otherlanguage}, per esempio: -\begin{verbatim} +Per commutare dall'italiano all'inglese e viceversa basta alternare le dichiarazioni \cs{italiano} e \cs{english}. Attenzione: queste dichiarazioni alterano anche le parole come Chapter o Capitolo, Table o Tabella, quindi per inserire brani nella lingua secondaria è opportuno servirsi dei comandi di \pack{babel} o di \pack{polyglossia}, in particolare l'ambiente \amb{otherlanguage*}, per esempio: +\begin{Verbatim}[fontsize=\fontsize{11.5}{13.8}\selectfont] ... disse: -``\begin{otherlanguage}{english} +``\begin{otherlanguage*}{english} Mr Livingstone, I suppose\dots -\end{otherlanguage}'' +\end{otherlanguage*}'' e si strinsero la mano. -\end{verbatim} +\end{Verbatim} \end{sloppypar} -L'ambiente \amb{otherlanguage} è adatto per citazioni relativamente lunghe; per citazioni brevi, come quella dell'esempio, sarebbe meglio usare così il comando -\cs{foreignlanguage}: -\begin{verbatim} -disse: ``\foreignlanguage{english}{Mr Livingstone, I suppose\dots}'' +L'ambiente \amb{otherlanguage*} è adatto per citazioni relativamente lunghe; per citazioni brevi, come quella dell'esempio, sarebbe meglio usare \cs{foreignlanguage} in questo modo: +\begin{Verbatim}[fontsize=\fontsize{11.5}{13.8}\selectfont] +disse: +``\foreignlanguage{english}{Mr Livingstone, I suppose\dots}'' e si strinsero la mano. -\end{verbatim} +\end{Verbatim} +\subsubsection{Impostare le lingue con \texorpdfstring{\prog*}{}{lualatex} o \texorpdfstring{\prog*}{}{xelatex}} Con i programmi \prog{xelatex} e \prog{lualatex} le lingue ausiliarie, oltre l'italiano e l'inglese già preinstallate in \pack{toptesi}, basta specificare nel preambolo, per esempio: \begin{verbatim} \setotherlanguages{french,spanish} @@ -1586,33 +2466,36 @@ Con i programmi \prog{xelatex} e \prog{lualatex} le lingue ausiliarie, oltre l'i Oppure, se la lingua richiede un alfabeto speciale, se ne può specificare il font specifico e prescrivere, per esempio: \begin{verbatim} \setotherlanguage[variant=ancient]{greek} -\newfontfamily{\greekfont}{GFS Didot} +\newfontfamily{\greekfont}{GFS Bodoni} \end{verbatim} -Ciò fatto si dispone per ogni lingua, tranne quella principale, di un ambiente dal nome uguale alla lingua, che all'occorrenza seleziona anche il font specifico, la cui famiglia abbia un nome che comincia con lo stesso nome della lingua. Per esempio: +Ciò fatto si dispone per ogni lingua, tranne quella principale, di un ambiente col nome uguale alla lingua, che all'occorrenza seleziona anche il font specifico, la cui famiglia abbia un nome che comincia con lo stesso nome della lingua. Per esempio: \begin{verbatim} \begin{greek} -Οἰόνται τινές, βασιλεῦ Γέλων, τοῦ ψάμμον τὸν ἀριθμὸν ἄπειρον εἶμεν -τῷ πλήθει· λέγω δὲ οὐ μόνον τοῦ περὶ Συρακούσας τε καὶ τὰν ἄλλαν -Σικελίαν ὑπάρχοντος, ἀλλὰ καὶ τοῦ κατὰ πᾶσαν χώραν τάν τε οἰκημέναν -καὶ τὰν ἀοὶκητον. +Οἰόνται τινές, βασιλεῦ Γέλων, τοῦ ψάμμον τὸν ἀριθμὸν ἄπειρον +εἶμεν τῷ πλήθει· λέγω δὲ οὐ μόνον τοῦ περὶ Συρακούσας τε καὶ +τὰν ἄλλαν Σικελίαν ὑπάρχοντος, ἀλλὰ καὶ τοῦ κατὰ πᾶσαν +χώραν τάν τε οἰκημέναν καὶ τὰν ἀοὶκητον. \end{greek} \end{verbatim} -\unless\ifPDFTeX la cui composizione risulta la seguente.\medskip - -\begin{greek}\noindent -Οἰόνται τινές, βασιλεῦ Γέλων, τοῦ ψάμμον τὸν ἀριθμὸν ἄπειρον εἶμεν -τῷ πλήθει· λέγω δὲ οὐ μόνον τοῦ περὶ Συρακούσας τε καὶ τὰν ἄλλαν -Σικελίαν ὑπάρχοντος, ἀλλὰ καὶ τοῦ κατὰ πᾶσαν χώραν τάν τε οἰκημέναν -καὶ τὰν ἀοὶκητον. +permette di comporre la citazione: +\begin{quote} +\begin{greek} +Οἰόνται τινές, βασιλεῦ Γέλων, τοῦ ψάμμον τὸν ἀριθμὸν ἄπειρον +εἶμεν τῷ πλήθει· λέγω δὲ οὐ μόνον τοῦ περὶ Συρακούσας τε καὶ +τὰν ἄλλαν Σικελίαν ὑπάρχοντος, ἀλλὰ καὶ τοῦ κατὰ πᾶσαν +χώραν τάν τε οἰκημέναν καὶ τὰν ἀοὶκητον. \end{greek} -\fi +\end{quote} +con il font associato alla lingua greca: \Font{GFS Bodoni}. -Bisogna definire i comandi \cs{sommario} e \cs{ringraziamenti} nella stessa maniera illustrata qui di seguito per comporre con il programma \prog{pdflatex} anche quando si usano \prog{xelatex} o \prog{lualatex} . +Anche usando \prog{xelatex} e \prog{lualatex} bisogna definire \cs{sommario} e \cs{ringraziamenti} nella stessa maniera illustrata qui di seguito per comporre con il programma \prog{pdflatex}. -Invece per comporre la tesi in una lingua diversa dall'italiano e dall'inglese bisogna lavorare un pochino di più perché bisogna ridefinire alcune cose; per esempio, per scrivere la tesi in spagnolo bisogna agire così: -\begin{verbatim} -\documentclass[12pt,spanish]{toptesi}% <--- la lingua come opzione - % della classe! +\subsubsection {Comporre in lingue diverse dall'italiano e dall'inglese} + +Invece per comporre la tesi in una lingua diversa dall'italiano e dall'inglese con \prog{pdflatex} bisogna lavorare un pochino di più perché bisogna ridefinire alcune cose; per esempio, per scrivere la tesi in spagnolo bisogna agire così: +\begin{Verbatim}[fontsize=\fontsize{10.5}{13.2}\selectfont] +\documentclass[corpo=12pt,spanish]{toptesi}% <-- la lingua come opzione + % della classe! \ExtendCaptions{spanish}{Resumen}{Agradecimientos} \newcommand*{\spagnolo}{\selectlanguage{spanish}}% ... @@ -1620,12 +2503,10 @@ Invece per comporre la tesi in una lingua diversa dall'italiano e dall'inglese b \spagnolo ... \end{document} -\end{verbatim} +\end{Verbatim} Ovviamente le parole ``Resumen'' (Sommario) e ``Agradecimientos'' (Ringraziamenti) andranno scelte accuratamente; io ho indicato solo ciò che ho trovato sul vocabolario. -È anche possibile servirsi del file di configurazione; per esempio le definizioni dei comandi suddetti possono venire scritte nel file di configurazione e alternando i comandi \cs{italiano}, \cs{english} e \cs{spagnolo} si possono alternare le regole di sillabazione oltre a cambiare le parole \emph{infix}, come Chapter, Capitolo, Capítulo, eccetera. - Se si usa \prog{xelatex} o \prog{lualatex} ci si ricordi che il pacchetto \pack{polyglossia} è già caricato dalla classe \class{toptesi}, che provvede già a dichiarare l'italiano come lingua principale e l'inglese come lingua accessoria; si possono nominare nel preambolo della tesi diverse altre lingue accessorie, per esempio: \begin{verbatim} \setotherlanguages{french, spanish} @@ -1635,25 +2516,32 @@ e per le lingue che richiedono un trattamento particolare si usa un comando simi \setotherlanguage[variant=ancient]{greek} \end{verbatim} -Per scrivere in lingue che implicano alfabeti diversi da quello latino, ovviamente, bisogna aver curato di disporre di una configurazione del sistema \TeX\ completa anche dei font che servono. Non dovrebbero esserci problemi con il cirillico e con il greco; per altri alfabeti e per le lingue che si scrivono da destra a sinistra bisogna ovviamente disporre dei pacchetti necessari. Si tenga presente che le versioni moderne del sistema \TeX\ \emph{non} usano come interprete il programma originario di Knuth, ma la sua estensione che in origine si chiamava $\epsilon$-\TeX; la variante che produce il file del documento composto in formato \texttt{.pdf} si chiama \prog{pdftex}, ma questa versione comprende tutte le estensioni di $\epsilon$-\TeX. Bene, queste estensioni servono anche per gestire le lingue con scrittura retrograda pur di disporre dei pacchetti relativi a queste lingue. +Per scrivere in lingue che implicano alfabeti diversi da quello latino, ovviamente, bisogna aver curato di disporre di una configurazione del sistema \TeX completa anche dei font che servono. Non dovrebbero esserci problemi con il cirillico e con il greco; per altri alfabeti e per le lingue che si scrivono da destra a sinistra bisogna ovviamente disporre dei pacchetti necessari. Si tenga presente che le versioni moderne del sistema \TeX \emph{non} usano come interprete il programma originario di Knuth ma, invece di usare \prog{tex}, usano come interpreti \prog{pdftex}, \prog{luatex} o \prog{xetex}. L'estensione di \prog{tex}, già un avanzamento rispetto al programma di Knuth, in origine si chiamava $\epsilon$-\TeX; la variante moderna, che produce il file del documento composto in formato \texttt{.pdf}, si chiama \prog{pdftex} e comprende tutte le estensioni di $\epsilon$-\TeX. Ciò premesso, queste versioni moderne servono anche per gestire le lingue con scrittura retrograda pur di disporre dei pacchetti relativi a queste lingue. + +I programmi \prog{xelatex} e \prog{lualatex} sono in grado di gestire le lingue retrograde ma sono anche capaci, con modesti adattamenti di alcuni comandi, di comporre in verticale (cinese, giapponese,\dots). + +\subsubsection{Comporre la tesi di dottorato secondo il modello della Scuola di Dottorato del Politecnico di Torino} + +La Scuola di Dottorato (ScuDo) del Politecnico di Torino richiede un ulteriore impostazione, che riguarda specialmente il frontespizio e il retrofrontespizio. Tuttavia in questi paragrafi che riguardano le lingue si precisa subito che in quella Scuola la tesi deve essere composta in inglese e solo in inglese. Per la classe \TOPtesi non ci sono problemi nel comporre in inglese, ma le altre particolari specifiche richiedono ulteriori pacchetti di estensione; nel crearli si è già impostata la lingua inglese per il corpo del documento. Tutto ciò è automatico quando si specifichi alla classe l'opzione \chiave{tipotesi}{scudo}. -Anche \prog{xelatex} e \prog{lualatex} sono in grado di gestire le lingue retrograde e sono capaci di comporre in verticale (cinese, giapponese,\dots) con modesti adattamenti di alcuni comandi. +Più avanti si daranno indicazioni sull'uso di questi ulteriori pacchetti e saranno scritte in inglese a beneficio anche dei numerosi dottorandi stranieri che frequentano quella Scuola. -\section{Il formato PDF/A}\label{sec:PDFA} +\section{Il formato PDF archiviabile}\label{sec:PDFA} -Il Politecnico di Torino, come anche molte università italiane e straniere, intende ``smaterializzare'' le copie di archivio delle tesi di laurea. Questo intendimento è cominciato nel 2008 ma non sono al corrente dell'esito di questa operazione a cui ho collaborato parzialmente prima di andare in pensione. +Il Politecnico di Torino, come anche molte università italiane e straniere, intende ``smaterializzare'' le copie di archivio delle tesi di laurea. Questo intendimento è cominciato nel 2008; sono al corrente che l'apposito gruppo di lavoro sta studiando come richiedere le tesi da archiviare in modo che siano accessibili anche a chi è affetto da disabilità; è un ottimo progetto, ma non esistono ancora (2017) norme ISO che specifichino come debbano essere composti tali documenti. -Il problema dell'archiviazione elettronica è che il materiale archiviato deve essere reperibile, leggibile e stampabile per un tempo indefinito! Per questo è necessario che esso sia archiviato in un formato standard e che nel futuro continuino ad esistere i programmi per la visualizzazione e la stampa di questo formato, non necessariamente quelli che esistono oggi. +Il problema dell'archiviazione elettronica è che il materiale archiviato deve essere reperibile, leggibile e stampabile per un tempo indefinito, anche secoli! Per questo è necessario che esso sia archiviato in un formato standard e che nel futuro continuino ad esistere i programmi per la visualizzazione e la stampa di questo formato, non necessariamente quelli che esistono oggi. -L'International Standards Organization (ISO) ha pubblicato nel 2005 uno standard per l'archiviazione dei file con la norma ISO 19005-1:2005 (nel 2011 e poi ancora nel 2012 sono stati approvati due aggiornamenti dello standard, ma per quello che interessa qui non è necessario vederne in dettaglio le modifiche). Secondo questa norma i file archiviabili devono avere il formato PDF della versione 1.4 e devono soddisfare ad altri requisiti, oltre a contenere un certo numero di \emph{metadati} specificati dalla norma stessa. +L'International Standards Organization (ISO) ha pubblicato nel 2005 uno standard per l'archiviazione dei file con la norma ISO 19005-1:2005 (nel 2011 e poi ancora nel 2012 sono stati approvati due aggiornamenti dello standard, ma per quello che interessa qui non è necessario vederne le modifiche in dettaglio). Secondo questa norma i file archiviabili devono avere il formato PDF del livello 1.4 e devono soddisfare ad altri requisiti, oltre a contenere un certo numero di \emph{metadati} specificati dalla norma stessa. -Esistono due sotto"formati: il PDF/A-1a e il PDF/A-1b. Il formato PDF/A-1a deve rispondere ai requisiti del formato PDF/A-1b oltre ad altri requisiti specifici, in particolare che i font siano tutti inclusi nel file ed abbiano codifica UNICODE, che il file debba contenere le informazioni relative alla sua struttura logica, e che queste possano essere esaminate con i motori di ricerca. Viceversa il formato PDF/A-1b, con meno pretese, richiede che i font siano tutti inclusi nel file, anche se non rispettano la codifica UNICODE, e che il file sia riproducibile a schermo e sia stampabile esattamente nello stesso modo di quando il file è stato archiviato. +Esistono due sotto"formati: il PDF/A-1a e il PDF/A-1b. Il formato PDF/A-1a deve rispondere ai requisiti del formato PDF/A-1b oltre ad altri requisiti specifici, in particolare che i font siano tutti inclusi nel file ed abbiano codifica UNICODE, che il file debba mantenere le informazioni relative alla sua struttura logica, e che queste possano essere esaminate con i motori di ricerca. Viceversa il formato PDF/A-1b, con meno pretese, richiede che i font siano tutti inclusi nel file, anche se non rispettano la codifica UNICODE, e che il file sia riproducibile a schermo e sia stampabile esattamente nello stesso modo di quando il file è stato archiviato. -Per il Politecnico sarebbe sufficiente il sotto"formato PDF/A-1b. Mi risulta che sia allo studio da parte del Politecnico la possibilità di richiedere il rispetto di una norma molto più restrittiva, che garantisca l'accessibilità e la fruibilità dei documenti archiviati anche a coloro che hanno alcune forme di disabilità; tuttavia a tutt'oggi (2016) l'ISO non ha ancora messo a punto tale norma, quindi l'apposita commissione del Politecnico sta giustamente precorrendo i tempi perché l'Ateneo sia pronto ad attuare la futura norma. Nel frattempo l'apposito gruppo di lavoro del TUG sta cercando di estendere i suoi pacchetti per l'archiviabilità anche per la norma PDF/A-1a, che richiede di disporre di file PDF classificati come \emph{taggged PDF}. +Per il Politecnico, per ora, sarebbe sufficiente il sotto"formato PDF/A-1b. Come ho già detto, mi risulta che sia allo studio da parte del Politecnico la possibilità di richiedere il rispetto di una norma molto più restrittiva, che garantisca l'accessibilità e la fruibilità dei documenti archiviati anche a coloro che hanno alcune forme di disabilità; tuttavia a tutt'oggi (2017) l'ISO non ha ancora messo a punto tale norma, quindi l'apposita commissione del Politecnico sta giustamente precorrendo i tempi perché l'Ateneo sia pronto ad attuare la futura norma. Nel frattempo l'apposito gruppo di lavoro del TUG sta cercando di estendere i suoi pacchetti per l'archiviabilità anche per la norma PDF/A-1a, che richiede di disporre di file PDF classificati come \emph{taggged PDF}. -Le istruzioni che seguono per la produzione di un file conforme alla normativa PDF/A sono applicabili se si compone la tesi sia con il programma \prog{pdflatex} sia con \prog{xelatex} sia con \prog{lualatex}. Si notate che se si è predisposto il preambolo del file sorgente per la tesi in modo da poterlo compilare con \prog{pdflatex}, si può ugualmente compilare il documento anche con \prog{xelatex} o \prog{lualatex}, perché TOPtesi è perfettamente conscio del motore di composizione che si sta usando e sa che il file sorgente parte dal presupposto che si volevano creare gli hyperlink. In altre parole, non c'è bisogno di modificare sostanzialmente il file sorgente per passare da \prog{pdflatex} a \prog{xelatex} o \prog{lualatex}, se non eventualmente usando solo il ramo \emph{vero} oppure \emph{falso} del test indicato qui sotto. Però il file prodotto con \prog{xelatex} necessita di ulteriore elaborazione per soddisfare le specifiche richieste dalla norma ISO relativa al formato archiviabile, mentre con \prog{pdflatex} e \prog{lualatex} non sono necessarie operazioni di post"processing. +Le istruzioni che seguono per la produzione di un file conforme alla normativa PDF/A sono applicabili se si compone la tesi sia con il programma \prog{pdflatex} sia con \prog{xelatex} sia con \prog{lualatex}. In particolare, per sfruttare al meglio le possibilità offerte da \prog{xelatex} e \prog{lualatex} è necessario usare il pacchetto \pack{fontspec} che, senza ulteriori opzioni o specificazioni, usa di default i font Latin Modern nella versione OpenType; volendo si possono usare i comandi specifici disponibili con quel pacchetto per caricare font diversi. Notare che se si è predisposto il preambolo del file sorgente per la tesi in modo da poterlo compilare con \prog{pdflatex}, si può ugualmente compilare il documento anche con \prog{xelatex} o \prog{lualatex}, perché \TOPtesi è perfettamente conscio del motore di composizione che si sta usando e sa che il file sorgente parte dal presupposto che si volevano creare gli hyperlink. In altre parole, non c'è bisogno di modificare sostanzialmente il file sorgente per passare da \prog{pdflatex} a \prog{xelatex} o \prog{lualatex}, se non eventualmente usando solo il ramo \emph{vero} oppure \emph{falso} del test indicato qui sotto. Però il file prodotto con \prog{xelatex} necessita di ulteriore elaborazione (\emph{postprocessing}) per soddisfare le specifiche richieste dalla norma ISO relativa al formato archiviabile; con \prog{pdflatex} e \prog{lualatex} non è necessaria nessuna operazione di post"processing; è per questo che qui si è aggiunto un test per evitare di caricare il pacchetto \pack{pdfx} quando si compila con \prog{xelatex}; ma si veda più avanti. -Si può comunque fare riferimento alla parte iniziale del preambolo del file usato per comporre questa stessa documentazione, che qui si riporta nuovamente:\label{pag:preambolo-pdfa} +Si può comunque fare riferimento alla parte iniziale del preambolo del file usato per comporre questa stessa documentazione, che si riporta a partire dalla pagina~\pageref{pag:preambolo-pdfa}. +\label{pag:preambolo-pdfa} \begin{Verbatim}[fontsize=\small,numbers=left,numbersep=3pt] % !TEX encoding = UTF-8 Unicode % !TEX TS-program = luaLaTeX @@ -1670,12 +2558,16 @@ XeLaTeX\sep LuaLaTeX} \end{filecontents*} % -\documentclass[12pt,twoside]{toptesi} -\ProvidesFile{toptesi-it.tex}[2016/11/10 v.0.9.15] -\ifPDFTeX -% +\documentclass[corpo=12pt,twoside,tipotesi=monografia]{toptesi} +\ProvidesFile{toptesi-it.tex}[2017/10/08 v.0.9.24] +\usepackage{imakeidx} +\indexsetup{headers={\indexname}{\indexname}} + +\unless\ifXeTeX \usepackage[a-1b]{pdfx} +\fi % +\ifPDFTeX \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{newtxtext,newtxmath,textcomp,textalpha} @@ -1684,15 +2576,8 @@ LuaLaTeX} \usepackage{guit} \setactivedoublequote \else - \ifLuaTeX - \usepackage[a-1b]{pdfx} - \fi \usepackage{fontspec} \usepackage{xcolor} - \newcommand*\MP{{\setbox0\hbox{M}\relax - \includegraphics[height=\ht0]{MPlogo}}} - \newcommand*\GuIT{{\setbox0\hbox{Hg}\relax - \raisebox{-\dp0}{\includegraphics[height=\dimexpr\ht0+\dp0]{GuITlogo}}}} \setmainfont[Ligatures=TeX]{TeX Gyre Termes} \setsansfont[Ligatures=TeX, Scale=MatchLowercase]{TeX Gyre Heros} \setmonofont{UM Typewriter} @@ -1703,223 +2588,172 @@ LuaLaTeX} \setotherlanguage[variant=ancient]{greek} \newfontfamily{\greekfont}{GFS Didot} \fi -\usepackage{metalogo,longtable,booktabs,array,tabularx,fancyvrb} +\usepackage{metalogo,longtable,booktabs,array, +tabularx,enumitem,ragged2e,siunitx,curve2e,microtype} % -\usepackage{imakeidx} -\usepackage{hyperref} - \hypersetup{% - pdfpagemode={UseOutlines}, - bookmarksopen, - pdfstartview={FitH}, - colorlinks, - linkcolor={blue}, - citecolor={blue}, - urlcolor={blue} - } +\unless\ifcsname ver@hyperref.sty\endcsname\usepackage{hyperref}\fi +\hypersetup{% + pdfpagemode={UseOutlines}, + bookmarksopen, + pdfstartview={FitH}, + colorlinks, + linkcolor={blue}, + citecolor={blue}, + urlcolor={blue} +} +\newcommand*\MP{{\setbox0\hbox{M}\relax +\includegraphics[height=\ht0]{MPlogo}}} +\newcommand*\GuIT{{\setbox0\hbox{Hg}\relax +\raisebox{-\dp0}{% + \includegraphics[height=\dimexpr\ht0+\dp0]{GuITlogo}}}} \end{Verbatim} -Un commento va fatto subito: il lettore non si spaventi di una prima parte di preambolo così complessa, e non ha nessun bisogno di copiarla integralmente. Per questo documento ho predisposto un test per verificare con quale programma di composizione compilo il documento e come si vede imposto i font e le lingue come specificato sopra, ma nel ramo \emph{falso} (cioè non si sta compilando con \prog{pdflatex} ma con \prog{lualatex} oppure \prog{xelatex}; tuttavia se il programma con cui si compila è \prog{xelatex} si evita di caricare il pacchetto speciale \pack{pdfx}, necessario per produrre file PDF/A compatibili. Il lettore sa perfettamente con quale programma vuole compilare la sua tesi e può tranquillamente mettere nel suo preambolo solo il ramo \emph{vero} del test se compila con \prog{pdflatex} o solo il ramo \emph{falso} se compila con \prog{lualatex} o con \prog{xelatex}. Se vuol produrre un file PDF/A compatibile con \prog{xelatex} ha due vie: -\begin{itemize} +Un commento va fatto subito: il lettore non si spaventi di una prima parte di preambolo così complessa, e non ha nessun bisogno di copiarla integralmente. Per questo documento ho predisposto un test per verificare con quale programma di composizione compilo il documento e, come si vede, imposto i font e le lingue come specificato sopra, ma nel ramo \emph{falso} (cioè non si sta compilando con \prog{pdflatex} ma con \prog{lualatex} oppure \prog{xelatex}); tuttavia se il programma con cui si compila è \prog{xelatex}, si evita di caricare il pacchetto speciale \pack{pdfx}, necessario per produrre file PDF/A compatibili. + +Il lettore sa perfettamente con quale programma vuole compilare la sua tesi e può tranquillamente mettere nel suo preambolo solo il ramo \emph{vero} del test se compila con \prog{pdflatex} o solo il ramo \emph{falso} se compila con \prog{lualatex} o con \prog{xelatex}. Se vuol produrre un file PDF/A compatibile con \prog{xelatex} ha due vie: +\begin{itemize}[noitemsep] \item lascia perdere \prog{xelatex} e compila con \prog{lualatex}; il frutto della compilazione è persino migliore, visto che \prog{lualatex} usa le funzionalità del pacchetto \pack{microtype} in modo più avanzato rispetto a \prog{xelatex}; -\item ma se proprio non può fare a meno di usare \prog{xelatex}, usa solo il ramo \emph{falso} del test \verb|\ifPDFTeX| e toglie il test \verb|\ifLuaTeX|, coservando solo l'istruzione \cs{usepackage} per caricare \pack{pdfx}; tuttavia ciò non basta perché deve poi procedere ad un certo postprocessing come specificato nel paragrafo~\ref{sec:XePDFA}. +% +\item ma se proprio non può fare a meno di usare \prog{xelatex}, toglie il test \verb|\ifXeTeX|, conservando solo \cs{usepackage}\Marg{pdfx} e usa solo il ramo \emph{falso} del test \verb|\ifPDFTeX|; tuttavia ciò non basta perché deve poi procedere ad un certo postprocessing come specificato nel paragrafo~\ref{sec:XePDFA}. \end{itemize} -Nel codice precedente le prime due righe sono commenti per il programma di compilazione, ma per il programma di editing sono comandi di autoconfigurazione; essi dicono al programma di editing di salvare il documento dopo la prima creazione e dopo ogni modifica con la codifica \opz{utf8}; e la seconda dice che quando si preme il bottone per la compilazione deve dare al sistema operativo di lanciare il programma \prog{lualatex}. Ricordo che questo tipo di commenti di autoconfigurazione sono decifrati correttamente dagli editor TeXShop, TeXworks e TeXstudio (forse anche da altri editor, ma questi tre sono quelli che io consiglieri per ogni utente). +Nel codice precedente le prime due righe sono commenti per il programma di compilazione, ma per il programma di editing sono comandi di autoconfigurazione; essi dicono al programma di editing di salvare il documento dopo la prima creazione e dopo ogni modifica con la codifica \opz{utf8}; la seconda riga dice che quando si clicca il bottone per la compilazione l'editor deve inviare al sistema operativo il comando di lanciare il programma \prog{lualatex}. Ricordo che questo tipo di commenti di autoconfigurazione sono decifrati correttamente dagli editor \TeXShop, \TeXworks e TeXstudio (forse anche da altri editor, ma questi tre sono quelli che io consiglieri per ogni utente). Le righe dalla 3 alla 14 contengono l'ambiente \amb{filecontents*} che provvede a generare la lista dei metadati che ho usato per questo documento. -La riga 16 contiene la dichiarazione della classe; come si vede specifico solo il corpo normale dei font al valore di 12\,pt, e seleziono la composizione in bianca e volta, successivamente non specifico nessuna correzione per la legatura. -Importante per questo documento è la riga 17, dove specifico il nome del file, ma ne specifico anche la data e la versione; così sono sempre sicuro di quale versione mi sto servendo e i lettori che trovano questo file fra la documentazione di \class{toptesi} sanno subito se si tratta di documentazione aggiornata o se non sia il caso di aggiornare la propria installazione. +La riga 16 contiene la dichiarazione della classe; come si vede, specifico solo il corpo normale dei font al valore di 12\,pt, e seleziono la composizione in bianca e volta, successivamente non specifico nessuna correzione per la legatura; specifico solo che il tipo di documento è quello che corrisponde alla \chiave{tipotesi}{monografia}, dove ho preferito usare il nome \texttt{monografia} piuttosto che il nome \texttt{triennale}, visto che questo documento non è una tesi. + +Importante per questo documento è la riga 17, dove specifico il nome del file, ma ne specifico anche la data e la versione; così sono sempre sicuro di sapere quale versione sto componendo e i lettori, che trovano questo file fra la documentazione di \class{toptesi}, sanno subito se si tratta di documentazione aggiornata o se non sia il caso di aggiornare la propria installazione. -Con la riga 18 comincia il test importante per configurare il preambolo correttamente secondo le necessità di compilazione; dalla riga 19 alla riga 28 si ha il ramo \emph{vero} da usarsi quando si compila con \prog{pdflatex}; invece dalla riga 30 alla riga 45 si ha il ramo \emph{falso} da usarsi quando si compila con \prog{lualatex}; per compilare con \prog{xelatex} ho già detto che, oltre a togliere le righe 30 e 32 (ma non la riga 31), bisogna poi procedere come specificato nel paragrafo~\ref{sec:XePDFA}. +Con le righe 18 e 19 carico il pacchetto \pack{imakeidx} e lo configuro. Questo pacchetto va caricato prima di \pack{pdfx}, perché questo ridefinisce alcuni comandi sui quali \pack{imakeidx} non può più intervenire. -Le righe successive dalla 47 alla 59 servono per mostrare non solo i pacchetti che ho caricato, ma anche come ho configurato le opzioni per \pack{hyperref}; nessuna opzione nella chiamata del pacchetto, ma tutte le impostazioni eseguite mediate l'argomento del comando \verb|\hypersetup|. +Con le righe 21--23 eseguo il test per sapere se sto componendo con \prog{xelatex} (il cui interprete si chiama \prog{xetex}) così da \emph{non} caricare il pacchetto \pack{pdfx}. -Vorrei sottolineare l'opportunità di specificare come indicato nel codice precedente i metadati richiesti per la compilazione del documento in modo che sia conforme con lo standard PDF/A. Non è obbligatorio ma in questo modo si è sicuri che il file dei metadati abbia l'estensione giusta e il nome assolutamente coincidente con il nome del main file del documento, cioè della tesi. +Poi dalla riga 25 comincia il test importante per configurare il preambolo correttamente secondo le necessità di compilazione; dalla riga 26 alla riga 32 si ha il ramo \emph{vero} da usarsi quando si compila con \prog{pdflatex}; invece dalla riga 34 alla riga 44 si ha il ramo \emph{falso} da usarsi quando si compila con \prog{lualatex}; per compilare con \prog{xelatex} ho già detto che, oltre a togliere le righe 21 e 23 (ma non la riga 22), bisogna poi procedere come specificato nel paragrafo~\ref{sec:XePDFA}. -L'altro punto importante è non solo caricare il pacchetto \pack{pdfx}, ma è necessario caricarlo nell'ordine indicato, cioè come primo pacchetto. +Le righe successive dalla 43 alla 64 servono per mostrare non solo i pacchetti che ho caricato, ma anche come ho configurato le opzioni per \pack{hyperref}: un test serve per verificare (tramite l'esistenza della macro il cui nome contiene una stringa col nome completo del pacchetto adeguatamente prefissato con \texttt{ver@}) se \pack{hyperef} è già stato caricato; se non lo è, lo si carica e poi si impostano le opzioni. Infine si impostano i comandi \cs{MP} e \cs{GuIT} per importare due piccoli file che contengono il logo di \MP\ e quello del \GuIT. Questo artificio è stato usato per evitare di usare certi font che potrebbero dare luogo a problemi per l'archiviabilità -Ho collaudato questo preambolo compilando sia con \prog{pdflatex} sia con \prog{lualatex}; volendo, avrei potuto seguire le raccomandazioni che scrivo nel paragrafo~\ref{sec:XePDFA} ma non l'ho fatto; visto che ottengo lo stesso risultato, anzi un risultato migliore, con \prog{lualatex} mi è parso un collaudo superfluo. Con questo non voglio dire che \prog{xelatex} sia diventato inutile; esso come \prog{pdflatex} ha un file di formato che contiene tutte le impostazioni per tutte le lingue che il sistema \TeX\ può gestire, mentre \prog{lualatex} in questo momento di ogni lingua può gestire una sola impostazione per la sua sillabazione; per esempio il greco ha tre varianti e il file di formato di \prog{xelatex} le potrebbe gestire tutte e tre come ci riesce \prog{pdflatex}; lo stesso vale per il latino e per diverse altre lingue; \prog{lualatex} al momento può gestire una sola variante di ogni lingua. Perciò in questo momento \prog{xelatex} potrebbe essere preferibile a \prog{lualatex} per le tesi di carattere linguistico, filologico, umanistico in generale. Personalmente ora (giugno 2016) dispongo di impostazioni mie personali per gestire le tre varianti del greco e le tre varianti del latino, ma esse non sono ancora state approvate dal gruppo di lavoro \textsf{tex-hyphen} del \TeX\ Users Group (TUG) e non le posso distribuire senza la loro approvazione; quando saranno approvate, saranno direttamente disponibili con gli aggiornamenti di \TeXLive. +Per la compilazione del documento in modo che sia conforme con lo standard PDF/A vorrei sottolineare l'opportunità di specificare i metadati richiesti come indicato nel codice precedente. Non è obbligatorio, ma in questo modo si è sicuri che il file dei metadati abbia l'estensione giusta e il nome assolutamente coincidente con il nome del main file del documento, cioè della tesi. +L'altro punto importante è non solo caricare il pacchetto \pack{pdfx}, ma è necessario caricarlo nell'ordine indicato, cioè, se lo si usa, subito dopo il pacchetto \pack{imakeidx}. -Va inoltre notato che i due rami del test contengono le istruzioni per caricare pacchetti diversi e alcune definizioni, quelle dei loghi di \GuIT\ e di \MP, che ricorrono a font vettoriali, ma non OpenType, per cui potrebbero dare luogo a problemi per la conformità alle norme PDF/A quando si usa \XeLaTeX. Si spiegherà meglio nell'apposito paragrafo. +Ho collaudato questo preambolo compilando sia con \prog{pdflatex} sia con \prog{lualatex}. Volendo, avrei potuto seguire le raccomandazioni che scrivo nel paragrafo~\ref{sec:XePDFA} ma non l'ho fatto e, visto che ottengo lo stesso risultato, anzi un risultato migliore, con \prog{lualatex}, mi è parso un collaudo superfluo. Con questo non voglio dire che \prog{xelatex} sia diventato inutile; esso come \prog{pdflatex} ha un file di formato che contiene tutte le impostazioni per tutte le lingue che il sistema \TeX può gestire, mentre \prog{lualatex} in questo momento (2017) di ogni lingua può gestire una sola impostazione; per esempio il greco ha tre varianti e il file di formato di \prog{xelatex} le potrebbe gestire tutte e tre come ci riesce \prog{pdflatex}; lo stesso vale per il latino e per diverse altre lingue; \prog{lualatex} al momento può gestire una sola variante di ogni lingua. Perciò in questo momento \prog{xelatex} potrebbe essere preferibile a \prog{lualatex} per le tesi di carattere linguistico, filologico, umanistico in generale. +Personalmente (dal 2016) dispongo di impostazioni mie personali per gestire le tre varianti del greco e le diverse varianti del latino, ma esse non sono ancora state approvate dal gruppo di lavoro \textsf{tex-hyphen} del \TeX Users Group (TUG) e non le posso distribuire senza la loro approvazione; se e quando saranno approvate, saranno direttamente disponibili con gli aggiornamenti di \TeXLive. -%\goodpagebreak -\subsection{\texorpdfstring{\prog}{}{pdflatex} e il formato PDF/A} +\goodpagebreak + + +\subsection{\texorpdfstring{\prog*}{}{pdflatex} e il formato PDF/A} Usando \prog{pdflatex} è necessario usare il pacchetto specifico \pack{pdfx} richiamandolo con l'opzione giusta; precisamente il preambolo deve contenere la richiesta: \begin{verbatim} \usepackage[a-1b]{pdfx} \end{verbatim} -come è stato mostrato precedentemente nella pagina~\pageref{pag:preambolo-pdfa}; quando si usa \prog{pdflatex} non è molto importante l'ordine con cui si caricano i vari pacchetti, ma la documentazione di \pack{pdfx} raccomanda di caricarlo il più presto possibile. \pack{pdfx} carica già \pack{hyperref} per configurarne i collegamenti ipertestuali in modo conforme alle specifiche della norma PDF/A. Questo implica, però, che il pacchetto \pack{pdfx} venga caricato prima che nel preambolo venga caricato \pack{hyperref}; anzi, avendo caricato \pack{pdfx} non è necessario caricare \pack{hyperref}, ma basta configurarlo con \cs{hypersetup} per le esigenze specifiche del documento. Non è vietato caricarlo di nuovo, purché nel preambolo, dopo aver caricato \pack{pdfx}, \pack{hyperref} sia caricato senza opzioni proprio per evitare l'errore ``option clash''. Questa possibilità di tenere separato il caricamento di \pack{hperref} dalla sua configurazione mediante \cs{hypersetup}, è comoda perché consente di aggiungere la chiamata di \pack{pdfx} (prima di \pack{hyperref}) in un secondo tempo, quando si vuole aggiungere la compatibilità con le norme PDF/A. +come è stato mostrato precedentemente nella pagina~\pageref{pag:preambolo-pdfa}; quando si usa \prog{pdflatex} non è molto importante l'ordine con cui si caricano i vari pacchetti, ma la documentazione di \pack{pdfx} raccomanda di caricarlo il più presto possibile; tuttavia, poiché sarebbe meglio caricarlo dopo aver specificato tutti i pacchetti aggiuntivi che potrebbero influire sui collegamenti ipertestuali, cioè i pacchetti che modificano i comandi di sezionamento, la composizione delle didascalie e simili, \pack{pdfx} carica già \pack{hyperref} per configurarne i collegamenti ipertestuali in modo conforme alle specifiche della norma PDF/A. -Il pacchetto \pack{pdfx} è già presente con ogni installazione completa del sistema \TeX; se si disponesse di una installazione di base o, comunque, parziale e il pacchetto non fosse già installato, bisogna provvedere con i metodi specifici di ciascuna installazione. Se consiglia la lettura della sua documentazione, perché consente una certa dose di personalizzazione. +Questo implica, però, che il pacchetto \pack{pdfx} venga caricato prima che nel preambolo venga caricato \pack{hyperref}; anzi, avendo caricato \pack{pdfx} non è necessario caricare \pack{hyperref}, ma basta configurarlo con \cs{hypersetup} per le esigenze specifiche del documento. Non è vietato caricarlo di nuovo, purché nel preambolo, dopo aver caricato \pack{pdfx}, \pack{hyperref} sia caricato senza opzioni proprio per evitare l'errore ``option clash''. Questa possibilità di tenere separato il caricamento di \pack{hyperref} dalla sua configurazione mediante \cs{hypersetup}, è comoda perché consente di aggiungere la chiamata di \pack{pdfx} in un secondo tempo, quando si vuole aggiungere la compatibilità con le norme PDF/A. Ma in questo documento si è preferito eseguire direttamente il test per sapere se il pacchetto sia o non sia stato precedentemente caricato, così da non correre nessun rischio di ``option clash''. -Il pacchetto \pack{pdfx} con l'opzione \opz{a-1b} provvede a quasi tutto il necessario, per esempio a definire un profilo di colore, ma non provvede ai metadati specifici di ogni particolare documento, di cui invece parlerò più avanti. +Il pacchetto \pack{pdfx} è già presente con ogni installazione completa e aggiornata del sistema \TeX; se si disponesse di una installazione di base o, comunque, parziale e il pacchetto non fosse già installato, bisogna provvedere con i metodi specifici di ciascuna installazione. Si consiglia la lettura della documentazione di \pack{pdfx}, perché consente una certa dose di personalizzazione. -I {metadati} di carattere generale sono inseriti nel file di uscita dall'azione diretta del file \file{pdfx.sty}; ma per i {metadati} specifici del documento che si sta componendo è necessario predisporre nella cartella dove risiede il file principale della tesi (quello sul quale opera l'eseguibile \prog{pdflatex}) un file contenente i {metadati}. Il metodo migliore per farlo è mostrato nel codice della pagina~\pageref{pag:preambolo-pdfa}: si tratta di inserire i metadati all'interno dell'ambiente \amb{filecontents*} prima ancora della dichiarazione della classe; questo ambiente \LaTeX\ è l'unica struttura del linguaggio di mark-up che può essere inserita prima di \cs{documentclass}. +Il pacchetto \pack{pdfx} con l'opzione \opz{a-1b} provvede a quasi tutto il necessario, per esempio, a definire un profilo di colore, ma non provvede ai metadati specifici di ogni particolare documento, che invece descrivo qui di seguito. -Ci si ricordi solo che il pacchetto \pack{toptesi} controlla solo se si sta usando \prog{pdflatex} e assume che se non si sta componendo con \prog{pdflatex} allora si sta usando \prog{xelatex} oppure \prog{lualatex}. In particolare si ottiene un errore se si compila con \prog{latex}, il programma ancora esistente ma che io considero obsoleto, con il quale si produce un file in formato DVI, ormai quasi estinto. Si noti che, in effetti, sebbene il comando \prog{latex} esista ancora, il motore di composizione di \prog{latex} e di \prog{pdflatex} è lo stesso, ma ne differiscono le impostazioni; il test \cs{ifPDFTeX} che usa TOPtesi per conoscere se si sta usando \prog{pdftex} per produrre un file in formato PDF piuttosto che in formato DVI, non è detto che riesca a distinguere questi due casi. Non ho mai verificato, perché usando un calcolatore Apple, il mio formato di default è sempre PDF; per ottenere il formato DVI devo dare comandi specifici mediante il terminale, cosa che evidentemente non faccio mai perché, oltretutto, non dispongo di un visualizzatore per il formato DVI. +I {metadati} di carattere generale sono inseriti nel file di uscita dall'azione diretta del file \file{pdfx.sty}; ma per i {metadati} specifici del documento che si sta componendo è necessario predisporre nella cartella dove risiede il file principale della tesi (quello sul quale opera il programma di composizione) un file contenente questi {metadati}. Il metodo migliore per farlo è mostrato nel codice della pagina~\pageref{pag:preambolo-pdfa}: si tratta di inserire i metadati all'interno dell'ambiente \amb{filecontents*} prima ancora della dichiarazione della classe; questo ambiente \LaTeX è l'unica struttura del linguaggio di mark-up che può essere inserita prima di \cs{documentclass}. -Se esistono validi motivi per non usare \prog{pdflatex}, allora bisogna usare il semplice \prog{latex}, e poi convertire il file DVI ottenuto in un file PS da trasformare i un file PDF con gli strumenti del sistema \TeX, e successivamente procedere la conversione nel formato PDF/A con il metodo esposto nel paragrafo~\ref{sec:pdfPDFA}. È meglio evitare di usare quei pacchetti che richiedono comandi PostScript, come per esempio \pack{PSTricks} o \pack{XYpic}, ma è preferibile usare i pacchetti di grafica, come \pack{pgf} con il suo modulo \pack{tikz}, che consentono di fare quasi tutto quello che si può fare con gli altri pacchetti che richiedono il linguaggio PostScript. Inoltre esistono pacchetti da usare con \prog{pdflatex} che permettono di usare (almeno) il potentissimo PSTricks anche con \prog{pdflatex}; questi pacchetti, lavorando in background senza che l'utente debba metterci mano, estraggono il codice di PSTricks dal file sorgente, lo salvano in un nuovo file \file{.tex} di servizio che compilano con \prog{latex} e ne trasformano il file di uscita in formato PDF per poi importarlo già scontornato nel file che interessa all'utente; se fra una compilazione e l'altra non sono state eseguite modifiche al codice PSTricks, questa operazione in background viene tranquillamente saltata, quindi non si nota nemmeno nessun rallentamento nell'elaborazione della tesi. Vale comunque il consiglio di non usare questi moduli che richiedono l'uso del linguaggio PostScript, perché i moduli che lavorano direttamente con il linguaggio PDF lavorano altrettanto bene nella stragrande maggioranza dei casi. +Ci si ricordi solo che il pacchetto \pack{toptesi} controlla solo se si sta usando \prog{pdflatex} e assume che, se non si sta componendo con \prog{pdflatex}, allora si sta usando \prog{xelatex} oppure \prog{lualatex}. In particolare si ottiene un errore se si compila con \prog{latex} (il programma ancora esistente ma che io considero obsoleto) con il quale si produce un file in formato DVI, ormai quasi estinto. Si noti che, in effetti, sebbene il comando \prog{latex} esista ancora, il motore di composizione di \prog{latex} e di \prog{pdflatex} è lo stesso, ma ne differiscono le impostazioni; il test \cs{ifPDFTeX} che usa \TOPtesi per conoscere se si sta usando \prog{pdftex} per produrre un file in formato PDF piuttosto che in formato DVI, non è detto che riesca a distinguere questi due casi. Non ho mai verificato, perché usando un Mac, il mio formato di default è sempre PDF; per ottenere il formato DVI devo dare comandi specifici mediante il terminale, cosa che evidentemente non faccio mai perché, oltretutto, non dispongo di un visualizzatore per il formato DVI (sono capace di aggirare questi ostacoli grazie al Mac stesso, ma non lo faccio mai perché il formato DVI non è conforme a quanto solitamente scrivo). -Bisogna ricordare che produrre un file PDF/A non è semplice, ma se si usa \prog{pdflatex} con i font di default, se si incorporano solo figure PNG (senza trasparenze) e JPEG con profilo di colore RGB (red, green, blue), se ogni file PDF da incorporare contiene al suo interno anche i font che eventualmente sono necessari per comporre il suo testo, non si dovrebbero incontrare problemi di certificazione della natura PDF/A del file della tesi. +Nei rarissimi casi in cui esistono validi motivi per non usare \prog{pdflatex}, allora bisogna usare il semplice \prog{latex}, e poi convertire il file DVI ottenuto in un file PDF; per la conversione in file PDF/A, bisogna poi procedere come indicato sotto nel paragrafo~\ref{sec:XePDFA}. -Più avanti c'è un paragrafo dedicato al caso che un file così prodotto non risulti conforme alla norma PDF/A. +È meglio evitare di usare quei pacchetti che richiedono comandi PostScript, come per esempio \pack{PSTricks} o \pack{XYpic}, ma è preferibile usare i pacchetti di grafica, come \pack{pgf} con il suo modulo \pack{tikz}, che consentono di fare quasi tutto quello che si può fare con gli altri pacchetti che richiedono il linguaggio PostScript. All'occorrenza, però, esistono pacchetti da usare con \prog{pdflatex} che permettono (almeno) di usare il potentissimo PSTricks anche con \prog{pdflatex}; questi pacchetti, lavorando in background senza che l'utente debba metterci mano, estraggono il codice di PSTricks dal file sorgente, lo salvano in un nuovo file \file{.tex} di servizio che compilano con \prog{latex} e ne trasformano il file di uscita in formato PDF per poi importarlo già scontornato nel file che interessa all'utente. Se fra una compilazione e l'altra non sono state eseguite modifiche al codice PSTricks, questa operazione in background viene tranquillamente saltata, quindi non si nota nemmeno nessun rallentamento nell'elaborazione del documento. Vale comunque il consiglio di non usare questi moduli che richiedono l'uso del linguaggio PostScript, perché i moduli che lavorano direttamente con il linguaggio PDF lavorano altrettanto bene nella stragrande maggioranza dei casi. -\goodpagebreak -\subsection{\texorpdfstring{\prog}{}{lualatex} e il formato PDF/A} -A partire dalla distribuzione del sistema \TeXLive del 2016 anche il programma \prog{lualatex} può produrre direttamente file PDF/A conformi. +Bisogna ricordare che produrre un file PDF/A non è semplice, ma se si usa \prog{pdflatex} con i font di default con codifica \opz{T1}, se si incorporano solo figure PNG (senza trasparenze) e JPEG con profilo di colore RGB (red, green, blue), se ogni file PDF da incorporare contiene al suo interno anche i font che eventualmente sono necessari per comporre il suo testo, se sono presenti tutti i metadati necessari, non si dovrebbero incontrare problemi di certificazione della conformità PDF/A del file della tesi. + +Più avanti c'è un paragrafo dedicato al caso che un file così prodotto non risulti conforme alla norma PDF/A. + +\subsection{\texorpdfstring{\prog*}{}{lualatex} e il formato PDF/A} +A partire dalla distribuzione \TeXLive del 2017, anche il programma \prog{lualatex} può produrre direttamente file PDF/A conformi. Con \prog{lualatex} è importante specificare il preambolo come mostrato nella pagina\pageref{pag:preambolo-pdfa} sia per quel che riguarda i metadati sia per quel che riguarda la posizione della chiamata del pacchetto \pack{pdfx}. -Il programma \prog{lualatex} è meno elastico rispetto al programma \prog{pdflatex} per quel che riguarda la posizione della chiamata del pacchetto \pack{pdfx} che deve essere assolutamente il primo dopo \cs{documentclass}. +Il programma \prog{lualatex} è meno elastico rispetto al programma \prog{pdflatex} per quel che riguarda la posizione della chiamata del pacchetto \pack{pdfx} che deve essere assolutamente il primo dopo \cs{documentclass} o il secondo se si carica \pack{imakeidx}. Per il resto valgono le stesse indicazioni scritte per l'uso del programma \prog{pdflatex}. Sottolineo ancora che il file sorgente della tesi deve essere assolutamente salvato con la codifica \opz{utf8} e che i metadati devono essere scritti e salvati nel loro file \file{.xmpdata} con la stessa codifica. -Se i metadati devono essere usati da programmi di biblioteconomia per la ricerca dei contenuti, delle parole chiave, e simili, suggerirei di scrivere i metadati in inglese sia perché probabilmente la ricerca delle informazioni biblioteconomiche risulta facilitata anche all'estero, sia perché si evitano i caratteri accentati, almeno in tutti i campi in cui l'italiano non è essenziale, come il titolo (se è in italiano) e i nomi propri. +Se i metadati devono essere usati da programmi di biblioteconomia per la ricerca dei contenuti, delle parole chiave, e simili, suggerirei di scrivere i metadati in inglese sia perché probabilmente la ricerca delle informazioni biblioteconomiche risulta facilitata anche all'estero, in quanto si evitano i caratteri accentati; consiglio l'inglese almeno in tutti i campi in cui l'italiano non è essenziale, come lo è invece nel titolo (se è in italiano) e nei nomi propri italiani. Come si legge nella parte di preambolo che appare nella pagina~\pageref{pag:preambolo-pdfa}, questo stesso file è stato composto con \prog{lualatex} e la verifica della conformità ha dato esito positivo. - - -\subsection{\texorpdfstring{\prog}{}{xelatex} e il formato PDF/A}\label{sec:XePDFA} +\subsection{\texorpdfstring{\prog*}{}{xelatex} e il formato PDF/A}\label{sec:XePDFA} Con \prog{xelatex} le cose sono un po' più complesse che con \prog{lualatex}, ed è per questo motivo che consiglio di usare direttamente \prog{lualatex}. + Il motivo è dovuto al fatto che \prog{xelatex} non produce direttamente la sua uscita nel formato PDF, ma in un formato DVI esteso che viene trasformato in PDF dal programma \prog{xdvipdfmx}, che di per sé non sa nulla a proposito del fatto che il file da trasformare contenga o non contenga dei metadati. Per questo motivo si deve compilare ``a mano'', dando il comando di compilazione dal terminale nel modo seguente: \begin{flushleft}\ttfamily -xelatex -shell-escape -output-driver="xdvipdfmx -z 0" <filename>.tex +xelatex -shell-escape -output-driver="xdvipdfmx -z 0" \meta{filename} \end{flushleft} -Come si vede \prog{xelatex} deve lavorare con l'opzione \opz{-shell-escape} che consente di lanciare un programma esterno; in questo caso l'uscita di \prog{xelatex} viene inviata al driver di uscita \prog{xdvipdfmx} (e fin qui non ci sono sorprese rispetto a quello che \prog{xelatex} fa di solito), ma la differenza consiste nell'opzione passata a \prog{xdvipdfmx}: \opz{-z 0}. Questa opzione dice al programma di non comprimere il suo file di uscita; questo fatto produce due effetti: quello buono è che non comprime i metadati; quello ``cattivo'' è che il file di uscita è enormemente grande, anche 10 volte più grande rispetto a quando fosse compresso. - -Per il resto, avendo predisposto il main file della tesi come se si dovesse lavorare con \prog{lualatex} e avendo osservato le stesse cautele per i font, i colori, eccetera, il file ottenuto, nonostante le sue dimensioni, può venire sottoposto a verifica attraverso il modulo Preflight di Adobe Acrobat Pro, come si può fare anche quando il file PDF fosse ottenuto con \prog{pdflatex} o \prog{lualatex}; ma il buono, questa volta, è che, se il file ottenuto passa la verifica di conformità, Adobe Acrobat è anche in grado di comprimere il file, lasciando inalterati (non compressi) i metadati. - -Vista questa trafila, si capisce anche perché sconsiglio di comporre la tesi con \prog{xelatex} ma consiglio di usare direttamente \prog{lualatex}. - -\subsection{Uso di \texorpdfstring{\prog}{}{ghostscript} o di \texorpdfstring{\pack}{}{pdfpages}} - -Esistono altri metodi per ottenere la produzione di file conformi alla norma PDF/A. Uno è quello di ottenere la trasformazione mediante il programma \prog{ghostscript} e l'altro consiste nel produrre un secondo file importando le pagine del primo mediante il pacchetto \pack{pdfpages}. Nel seguito si illustrerà solo il secondo metodo. +Come si vede \prog{xelatex} deve lavorare con l'opzione \opz{-shell-escape} che consente di lanciare un programma esterno; in questo caso l'uscita di \prog{xelatex} viene inviata al driver di uscita \prog{xdvipdfmx} (e fin qui non ci sono sorprese rispetto a quello che \prog{xelatex} fa di solito), ma la differenza consiste nell'opzione passata a \prog{xdvipdfmx}: \opz{-z 0}. Questa opzione dice al programma di non comprimere il suo file di uscita; questo fatto produce due effetti: quello buono è che non comprime i metadati; quello ``cattivo'' è che il file di uscita è enormemente più grande, anche 10 volte più grande rispetto a quando fosse compresso. -Infatti è meglio creare un piccolo file presumibilmente PDF/A-compatibile e verificarne la compatibilità: se è compatibile, non ci sono problemi ad importarlo nella tesi; se è incompatibile prima si esaminano le cause dell'incompatibilità, prima lo si può correggere per renderlo compatibile o si possono prendere decisioni valide su cosa farne per importarlo nella tesi. +Per il resto, avendo predisposto il main file della tesi come se si dovesse lavorare con \prog{lualatex} e avendo osservato le stesse cautele per i font, i colori, eccetera, il file ottenuto, nonostante le sue dimensioni, può venire sottoposto a verifica attraverso il modulo Preflight di Adobe Acrobat Pro, come bisogna fare anche quando il file PDF fosse ottenuto con \prog{pdflatex} o \prog{lualatex}; ma il buono, questa volta, è che, se il file ottenuto passa la verifica di conformità, Adobe Acrobat è anche in grado di comprimere il file, lasciando inalterati (non compressi) i metadati. -In versioni precedenti di questa guida, si era illustrato il metodo per trasformare un file PDF in un file PDF/A usando \prog{ghostscript}; in realtà \prog{ghostscript} non offre vantaggi particolari, se non quello di poter trasformare un file PS direttamente in un file PDF/A. Il vantaggio è molto modesto visto che il sistema \TeX\ dispone autonomamente dei mezzi per trasformare un file PS in un file PDF. Perciò in questa versione della guida non si parla più di come usare \prog{ghostscript} per produrre file PDF/A-compatibili. +Vista questa trafila di post"processing, si capisce anche perché sconsiglio di comporre la tesi con \prog{xelatex} ma consiglio di usare direttamente \prog{lualatex}. -\iffalse -\subsubsection{Uso di \texorpdfstring{\prog}{}{ghostscript}} +\subsection[Uso di pdfpages o ghostscript]{Uso di \texorpdfstring{\pack*}{}{pdfpages} o di \texorpdfstring{\prog*}{}{ghostscript}} -Dopo aver ottenuto un file PDF della tesi e ci si ritrova con un file che non è ancora conforme allo standard PDF/A, si può provvedere con altri programmi. Qui indicherò due o tre metodi che possono avere vantaggi o svantaggi; nessuno è perfetto, ma funzionano. +Esistono altri metodi per ottenere la produzione di file conformi alla norma PDF/A. Uno è quello che consiste nel produrre un secondo file importando le pagine del primo mediante il pacchetto \pack{pdfpages}; un altro è quello di ottenere la trasformazione mediante il programma \prog{ghostscript}. Nel seguito si illustrerà il primo metodo; anche se nel seguito continuerò ad esemplificare parlando della tesi, ritengo che questi due metodi siano più utili per i lettori proprio allo scopo di controllare singoli file esterni da importare nella tesi. -Si può usare \prog{ghostscript} per trasformare un file PDF in un altro PDF/A. Bisogna predisporre nella stessa cartella dove si trova il main file del documento un file che contenga i {metadati}; per comporre questo documento composto con \prog{xelatex}, il file adatto per \prog{ghostscript} è il seguente: -\begin{Verbatim}[fontsize=\small] -%! -% This is a sample prefix file for creating a PDF/A document. -% Feel free to modify entries marked with "Customize". -% This assumes an ICC profile to reside in the file (srgb.icc), -% unless the user modifies the corresponding line below. - -% Define entries in the document Info dictionary : -/ICCProfile (~/icc/srgb.icc) def % Customize -def - -[ /Title (La classe TOPtesi) % Customize. - /Author (Claudio Beccari) % Customize. - /Subject (File PDF ottenuto con XeLaTeX) % Customize. - /DOCINFO pdfmark - -% Define an ICC profile : - -[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark -[{icc_PDFA} -<< - /N currentpagedevice /ProcessColorModel known { - currentpagedevice /ProcessColorModel get dup /DeviceGray eq - {pop 1} { - /DeviceRGB eq - {3}{4} ifelse - } ifelse - } { - (ERROR, unable to determine ProcessColorModel) == flush - } ifelse ->> /PUT pdfmark -[{icc_PDFA} ICCProfile (r) file /PUT pdfmark - -% Define the output intent dictionary : - -[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark -[{OutputIntent_PDFA} << - /Type /OutputIntent % Must be so (the standard requires). - /S /GTS_PDFA1 % Must be so (the standard requires). - /DestOutputProfile {icc_PDFA} % Must be so (see above). - /OutputConditionIdentifier (sRGB) % Customize ->> /PUT pdfmark -[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark -\end{Verbatim} - -Questo file è formato dal nome del file \texttt{.tex.}, (per esempio \texttt{toptesi-it} per questo file), agglutinato alla ``desinenza'' \texttt{-def.ps}, per un nome complessivo, per esempio, \texttt{toptesi-it-def.ps}. Ripeto: deve essere memorizzato nella stessa cartella dove si trova il main file del documento. Voglio far notare che ho usato questo file di metadati per alcuni anni; oggi la libreria di \prog{ghostscript}, versione 9.16, indica di modificare un file \verb|PDFA_def.ps| diverso da quel modello, ma, devo ammetterlo, la documentazione di che cosa indicare nelle nuove parti configurabili è tutt'altro che chiara e, pur essendo possibile farlo, non ci sono riuscito. +Infatti è meglio creare un piccolo file presumibilmente PDF/A compatibile e verificarne la compatibilità: se è compatibile, non ci sono problemi ad importarlo nella tesi; se è incompatibile prima si esaminano le cause dell'incompatibilità, poi lo si può correggere per renderlo compatibile, oppure si possono prendere decisioni valide su casa farne per importarlo nella tesi. -Si noti ancora che i file \file{.icc} necessari per specificare i profili di colore devono risiedere in una cartella accessibile attraverso uno dei percorsi indicati nella variabile di sistema \verb|PATH|; io per la mia macchina ho creato una cartella chiamata \verb|icc|, inserita nella mia \verb|$HOME|; nei sistemi UNIX il simbolo \verb|~| indica questa `casa' delle cartelle; nei sistemi Windows recenti, la \verb|$HOME| non è rappresentata da un simbolo, ma corrisponde al nome dell'utente nella cartella \verb|C:\Users\|; quindi la \verb|$HOME| dell'utente Mario, sarà indicata con \verb|C:\Users\Mario\|. Nella cartella \verb|icc| (o comunque la si voglia chiamare) bisogna copiare i vari file \file{.icc} distribuiti insieme all'installazione di \prog{ghostscript}; nelle macchine UNIX, questi file si trovano in una sottocartella di sistema che si chiama \verb|/usr/local/share/ghostscript/|\meta{versione}\verb|/iccprofiles/|. Con la versione che sto usando \meta{versione} vale 9.16 e contiene una decina di file che descrivono i profili di colore, compreso il file \file{srgb.icc} indicato nel precedente listato di codice PostScript (che quindi, se va bene per lo scopo, non necessita di nessuna personalizzazione). - -Comunque per eseguire la conversione conviene predisporsi una procedura .bat (per Windows) o bash {per UNIX} del tipo seguente (mostro la procedura bash che con minime modifiche si trasforma in una procedura bat) dal nome \texttt{pdf2pdfa}: -\begin{verbatim} -#!/bin/bash -file1=$1.pdf -file2=$1-a.pdf -file3=$1-def.ps -echo 'Running gs to pdfa' -# QUANTO SEGUE DEVE ESSERE SCRITTO SU UNA SOLA RIGA -gs -dPDFACompatibilityPolicy=1 -dPDFA=1 -dBATCH -dNOPAUSE --sColorConversionStrategy=/RGB -sDEVICE=pdfwrite --sOutputFile=$file2 $file3 $file1 -\end{verbatim} +Dopo aver ottenuto un file PDF della tesi, se ci si ritrova con un file che non è ancora conforme allo standard PDF/A, si può provvedere con altri programmi. Qui indicherò un metodo che può avere vantaggi o svantaggi; nessuno è perfetto, ma funziona. Accennerò appena ad un altro metodo solo per segnalare che il primo non è l'unico; tuttavia ho usato questo secondo metodo per anni prima di ``scoprire'' come fare con il primo (l'uovo di Colombo), ma siccome il secondo è decisamente più complesso, ritengo che il primo sia da preferire. -Salvato il file in un ramo del \texttt{PATH} dove il sistema operativo può trovare i file (per esempio in \texttt{~/bin/}) e assicuratici che sulle macchine UNIX il file abbia impostato il bit di eseguibilità, basta dare il comando nella finestra comandi: -\begin{flushleft} -\texttt{pdf2pdfa} \meta{Nome del main file senza estensione} -\end{flushleft} -e \prog{ghostscript} si mette a lavorare finché produce in uscita un file PDF con il nome del file originario allungato con \texttt{-a}. A questo punto si può procedere con il software di verifica della natura PDF/A del file ottenuto. -Se bisogna trasformare un file PS, basta cambiare la seconda riga \verb|file1=$1.pdf| in \verb|file1=$1.ps| senza la necessità di modificare altro. +\subsubsection{Conformità con TOPtesi} +I file di esempio che fan parte del bundle di \TOPtesi sono tutti conformi allo standard ISO per l'archiviabilità, qualunque sia il programma con cui sono stati composti. -Le variazioni per Windows consistono nel fatto che l'eseguibile di \prog{ghostscript} si chiama \prog{gswin32c} invece che \prog{gs} e che i parametri di una macro si indicano con \verb|%1|, \verb|%2|, -eccetera, mentre quelli per UNIX si indicano con \verb|$1|, \verb|$2|, eccetera; in bash i commenti iniziano con il segno \texttt{\#} mentre in bat essi cominciano con \texttt{REM}. +Come è stato già osservato, anche con \XeLaTeX sarebbe possibile ottenere file archiviabili, ma la laboriosità e delicatezza del postprocessing, inclusa la disponibilità del programma commerciale Adobe Acrobat Pro~XI, o posteriore, rende sconsigliabile l'uso di \XeLaTeX\ per comporre qualunque tesi da archiviare. -Nessuno vieta di arricchire la definizione delle due versioni della procedura per verificare l'esistenza del file PDF o PS da convertire, o l'esistenza del file dei {metadati}, con la possibilità di emettere dei messaggi cosicché l'utente possa regolarsi nel caso qualcosa risulti mancante. Tuttavia l'essenza dello script bash è quella indicata. +\subsubsection{Conformity with \TOPtesi and option \texorpdfstring{\chiave{tipotesi}}{}{scudo}} +The example file \file{toptesi-scudo-example.tex} included in this \TOPtesi bundle shows exactly how to produce an ISO PDF/A-1b conforming output PDF file. -Va notato che i collegamenti ipertestuali all'interno del file convertito con \prog{ghostscript} in un file conforme alla norma PDF/A vengono tutti disattivati; secondo me non è una grave perdita per un file da archiviare, ma certamente lo è per un documento da consultare a schermo. -\fi +Of course the procedure is correct, but the difficulty to produce a PDF/A conforming output depends on the correctness of metadata, on the correct color profile, on the used fonts, on the quality and contents of the imported figures. The rules to follow are described both in the previous sections in Italian, and in the documentation in English of the the \TOPtesi bundle: \file{toptesi.pdf}. -\subsubsection{Uso di \texorpdfstring{\pack}{}{pdfpages}}\label{sec:pdfPDFA} +\subsubsection{Uso di \texorpdfstring{\pack*}{}{pdfpages}} -Un metodo con il quale ho avuto risultati positivi ricorre al pacchetto \pack{pdfpages}, ma ha il difetto di perdere gli eventuali collegamenti ipertestuali interni oltre a quelli esterni. +Il metodo, con il quale ho avuto risultati positivi, ricorre al pacchetto \pack{pdfpages}, ma ha il difetto di perdere gli eventuali collegamenti ipertestuali interni. Considero questo un male minore e un piccolo prezzo da pagare per disporre di un metodo che riesce quasi sempre a produrre un file PDF/A compatibile, quando si parte da un file PDF ottenuto com mezzi diversi dall'uso del sistema \TeX e che non risulta compatibile. -Supponiamo quindi di disporre di un file PDF composto secondo le raccomandazioni indicate nei paragrafi precedenti. Tanto per mettere i puntini sulle `i', il lettore attento ha notato che le due parti del test indicato nella pagina~\pageref{pag:preambolo-pdfa} sono leggermente diverse, infatti per i loghi \GuIT\ e \MP\ ho creato le definizioni per produrre questi loghi importando e scalando due file PDF appositamente predisposti (con \prog{pdflatex}), conformi alla norma PDF/A e opportunamente scontornati. Li ho predisposti con i loghi molto grandi, ma pur sempre vettoriali, in modo che possano venire ingranditi o rimpiccioliti a piacere. Entrambe le macro \cs{GuIT} \cs{MP}, infatti, scalano le loro immagini PDF in modo che siano grandi come il testo circostante e abbiano la linea di base esattamente allineata con quella del testo. In quanto file PDF/A, essi contengono tutte le informazioni che devono contenere, metadati e font, esattamente come la norma richiede; presi a sé, essi passano le verifiche eseguite con Adobe Acrobat Pro~XI. +Supponiamo quindi di disporre di un file PDF composto secondo le raccomandazioni indicate nei paragrafi precedenti. Tanto per mettere i puntini sulle `i', il lettore attento ha notato che per i loghi \GuIT\ e \MP\ ho creato le definizioni per produrre questi loghi importando e scalando due file PDF opportunamente scontornati e appositamente predisposti (con \prog{pdflatex}), conformi alla norma PDF/A. Li ho creati con i loghi molto grandi, ma pur sempre vettoriali, in modo che possano venire ingranditi o rimpiccioliti a piacere. Le due macro \cs{GuIT} e \cs{MP}, infatti, scalano quelle due immagini PDF in modo che siano grandi come il testo circostante e abbiano la linea di base esattamente allineata con quella del testo. In quanto file PDF/A, essi contengono tutte le informazioni che devono contenere, metadati e font esattamente come la norma richiede; presi a sé, essi passano le verifiche eseguite con Adobe Acrobat Pro~XI. -{\tolerance=3000 Si prepara ora un altro semplicissimo file che viene chiamato, per esempio, \file{toptesi-it-pages.tex} con il seguente contenuto: +{\tolerance=3000 Si prepara ora un altro semplicissimo file che viene chiamato, per esempio, \file{toptesi-it\discretionary{}{}{-}pages.tex} con il seguente contenuto: \begin{verbatim} % !TEX encoding = UTF-8 Unicode % !TEX TS-program = pdflatex \documentclass[a4paper]{report} -\usepackage[a-1b]{pdfx} \usepackage{pdfpages} +\usepackage[a-1b]{pdfx} \nofiles \begin{document}\pagestyle{empty} \includepdf[pages=-]{toptesi-it.pdf} \end{document} \end{verbatim} -e lo si affianca con il corrispondente file \file{toptesi-it-pages.xmpdata} il cui contenuto è identico al file \file{toptesi-it.xmpdata} che si sarebbe preparato per comporre l'analogo file se lo si fosse potuto comporre direttamente con \prog{pdflatex}.\par} +e lo si affianca con il corrispondente file \file{toptesi-it-pages.xmpdata} il cui contenuto è identico al file \file{toptesi-it.xmpdata} che si sarebbe preparato per comporre l'analogo file se lo si fosse potuto comporre con \prog{pdflatex}.\par} + +Il piccolo file precedente è in grado di produrre un file PDF/A perché il suo preambolo è correttamente predisposto per questo scopo; carica il pacchetto \pack{pdfpages} che serve per importare tutte le pagine (o una loro selezione) di un file PDF comunque composto, dentro il file che si ottiene elaborandolo con \textcolor{red}{\prog{pdflatex}}. Se il file \file{toptesi-it.pdf} non contiene file importati con caratteristiche incompatibili, il file PDF ottenuto risulta conforme alla norma PDF/A, ma se il file di partenza conteneva collegamenti ipertestuali, il file finale ottenuto ne è privo. + +Ho usato come esempio il nome di questo stesso file di documentazione; il lettore capisce che si tratta solo di un esempio, perché questo documento si compila perfettamente in formato PDF/A senza ricorrere a questo procedimento. Ma, se per esempio, si fosse composta la tesi con un word processor e la si fosse esportata in formato PDF, questo procedimento potrebbe crearne la versione PDF/A compatibile senza sforzo e con la sola spesa di perdere i collegamenti ipertestuali interni. -Il piccolo file precedente è in grado di produrre un file PDF/A perché il suo preambolo è correttamente predisposto per questo scopo; carica il pacchetto \pack{pdfpages} che serve per importare tutte o una selezione di pagine di un file PDF comunque composto, dentro il file che si ottiene elaborandolo con \textcolor{red}{\prog{pdflatex.}} Se il file \file{toptesi-it.pdf} non contiene file importati con caratteristiche incompatibili, il file PDF ottenuto risulta conforme alla norma PDF/A, ma se il file di partenza conteneva collegamenti ipertestuali, il file finalmente ottenuto è privo di collegamenti ipertestuali. +Più comodamente il procedimento descritto in questo paragrafo può servire per aggiungere quanto manca, per esempio, ad una figura PDF per verificarne la conformità oppure per scoprirne le cause di non conformità, eventualmente per modificarla in modo che sia compatibile tanto da poterla includere nella tesi vera e propria. -Ho usato come esempio il nome di questo stesso file di documentazione; il lettore capisce che si tratta solo di un esempio, perché questo documento si compila perfettamente in formato PDF/A senza ricorrere a questo procedimento; ma, se per esempio, si fosse composta la tesi con un word processor e la si fosse esportata in formato PDF, questo procedimento potrebbe crearne la versione PDF/A compatibile senza sforzo e con la sola spesa di perdere i collegamenti ipertestuali interni. +Per esperienza diretta, come ho già detto, quando devo convertire un file PDF comunque ottenuto io ora preferisco seguire questo procedimento che ricorre al pacchetto \pack{pdfpages} e lo consiglio vivamente rispetto ad altri metodi. -Più comodamente il procedimento descritto in questo paragrafo può servire per aggiungere quanto manca, per esempio, ad una figura PDF per verificarne la conformità oppure per scoprirne le cause di non conformità al fine, eventualmente, modificarla in modo che sia compatibile tanto da poterla includere nella tesi vera e propria. +\subsubsection{Uso di \texorpdfstring{\prog*}{}{ghostscript}} + +Si potrebbe anche usare \prog{ghostscript} per trasformare un file PDF in un altro conforme alla norma PDF/A. L'operazione non è semplice ed è, secondo me, mal descritta nella documentazione di \prog{ghostscript}. Se ci si sente a proprio agio con il linguaggio PostScript e si padroneggia bene il suddetto programma, si può provare. Tuttavia, pur essendomi servito di questo procedimento per diversi anni prima di poter disporre del metodo descritto nel paragrafo precedente, non lo consiglio e rimando il lettore alla documentazione di \prog{ghostscript}. \subsubsection[Non usare \texorpdfstring{\pack}{}{pax} e \texorpdfstring{\pack}{}{pdfpages} assieme]{Non usare i due pacchetti \pack{pax} e \pack{pdfpages} assieme allo scopo di conservare i collegamenti ipertestuali} + Il pacchetto \pack{pax} è stato costruito per ridare funzionalità ai collegamenti ipertestuali contenuti in file PDF immessi completamente o in parte dentro altri file PDF. Funziona perfettamente, ma il pacchetto \pack{pdfx} non riesce a gestire le operazioni del pacchetto \pack{pax}, per cui tutte le informazioni relative ai collegamenti vengono ripristinate, ma il file complessivo non rispetta le specifiche della norma PDF/A e gli errori segnalati dalla funzione Preflight di Adobe Acrobat Pro~XI riguardano solo gli hyperlink, quando invece lo stesso file PDF ricomposto solo con l'uso di \pack{pdfx} e \pack{pdfpages} è perfettamente conforme con le norme PDF/A, anche se i suoi link non sono attivi. @@ -1929,24 +2763,29 @@ Bisogna innanzi tutto disporre degli strumenti per verificare se un file è conf In rete ci sono siti dove viene eseguita la verifica della conformità di un file PDF con la norma del sotto"formato PDF/A-1b, ma di solito l'esito della verifica è negativo, per lo meno a me non è mai capitato che un file conforme venisse riconosciuto tale mediante le verifiche in rete. -Per verificare in modo serio la conformità ci sono due strade che non si escludono a vicenda. -\begin{enumerate} -\item Ci si procura la versione sperimentale (2016) del programma \prog{verPDF}; questo software è ancora in fase di sviluppo e per questo è considerato sperimentale. L'azienda che se ne occupa è sostenuta dalla Unione Europea proprio perché la versione definitiva si aperta e libera. Non è ancora affidabile al 100\%, ma funziona benissimo e i suoi verdetti, secondo l'esperienza già fatta, sono praticamente sempre concordi con quelli del modulo Preflight di Adobe Acrobat Pro~XI. Questo programma, disponibile per le tre piattaforme Windows, Mac, Linux, è ancora un po' ruspante da installare, e si può sperare che la versione definitiva, attesa epr il 2017, sia più facile da installare. -\item Si cerca in dipartimento una stazione di lavoro dove un computer sia dotato del programma commerciale {Adobe Acrobat Pro XI}; spesso i dipartimenti dispongono di licenze multiple, oppure è possibile che un ricercatore dia una mano lasciando usare un suo calcolatore sul quale è montato il software indicato. Si procede poi come indicato qui di seguito. -\item La Adobe, come molte altre imprese produttrici di software, dispone di un programma \emph{Education} che consente agli studenti e ai docenti di università e scuole secondarie superiori di acquistare i loro software a prezzi molto, molto vantaggiosi. Io come privato cittadino non mi sarei mai comprato l'Adobe Acrobat Pro~XI se non avessi avuto la possibilità di avvantaggiarmi di questa offerta vantaggiosissima, ma come professore ho potuto farlo senza bisogno di ricorrere ad una versione fornitami dal Politecnico sotto una sua licenza multipla. +Per verificare in modo serio la conformità ci sono alcune strade che non si escludono a vicenda. +\begin{enumerate}[noitemsep] +\item Ci si procura la versione del programma \prog{veraPDF}; questo software nel 2016 era ancora in fase di sviluppo e per questo era considerato sperimentale; ora, 2017, il programma non è più sperimentale ma, senza escludere possibili aggiornamenti, ora è stabile. L'azienda che se ne occupa è sostenuta dalla Unione Europea proprio affinché la versione definitiva sia aperta e libera. Funziona benissimo e i suoi verdetti, secondo l'esperienza già fatta, sono praticamente sempre concordi con quelli del modulo Preflight di Adobe Acrobat Pro~XI. Questo programma è disponibile per le tre piattaforme Windows, Mac, Linux. +% +\item Si cerca in dipartimento una stazione di lavoro dove un computer sia dotato del programma commerciale {Adobe Acrobat Pro XI}; spesso i dipartimenti dispongono di licenze multiple, oppure è possibile che un ricercatore dia una mano lasciando usare un suo calcolatore sul quale è montato il software indicato. Si procede poi come indicato tra poco +%. +\item La Adobe, come molte altre imprese produttrici di software, dispone di un programma \emph{Education} che consente agli studenti e ai docenti di università e scuole secondarie superiori di acquistare i loro software a prezzi molto, molto vantaggiosi. Io come privato cittadino non mi sarei mai comprato l'Adobe Acrobat Pro~XI se non avessi avuto la possibilità di avvantaggiarmi di questa offerta vantaggiosissima ma, come professore, ho potuto farlo senza bisogno di ricorrere a nessuno per procurarmene legalmente una copia. \end{enumerate} \subsection{Verifica con veraPDF} -Nell'installare \prog{veraPDF} si sarà avuta attenzione di creare anche un link simbolico verso la componente \prog{verapdf-gui} che è l'applicazione da usare; il link simbolico si troverà in una cartella che sia sul percorso di ricerca dei programmi da eseguire, secondo le impostazioni della propria macchina; comunque tutti i sistemi operativi consentono di impostare il percorso di ricerca attraverso i loro propri comandi o attraverso interfacce grafiche. +Nell'installare \prog{veraPDF} si sarà avuta attenzione di creare anche un link simbolico verso la componente \prog{verapdf-gui} che è l'applicazione da usare; il link simbolico si troverà in una cartella che sia sul percorso di ricerca dei programmi da eseguire secondo le impostazioni della propria macchina; comunque tutti i sistemi operativi consentono di impostare il percorso di ricerca attraverso i loro propri comandi o attraverso interfacce grafiche. -Fatto questo, si apre un terminale e si dà il comando \texttt{verapdf-gui}; si pare una finestra come quella che appare nella figura~\ref{fig:veraPDFinitial}. +Fatto questo, si apre un terminale e si dà il comando \texttt{verapdf-gui}; si apre una finestra come quella che appare nella figura~\ref{fig:veraPDFinitial}. -\begin{figure}[!htb]\centering -\includegraphics[width=0.7\textwidth]{VeraPDFinitial} -\caption{Finestra iniziale di veraPDF}\label{fig:veraPDFinitial} +\begin{figure}[!htb] +\begin{SDbox}{figure}[0.35] +\SDimage{\includegraphics[width=\hsize]{VeraPDFinitial}} +\SDcaption{Finestra iniziale di veraPDF}{fig:veraPDFinitial} +\end{SDbox} \end{figure} -In questa interfaccia grafica si clicca il bottone \fbox{Choose PDF} e nella finestra che si apre si cerca la cartella che lo contiene e il file da controllare. Avendo selezionato il file da controllare si ``accende'' il tasto \fbox{Execute}, cliccato il quale parte l'azione di verifica, che dura diversi secondi; finita la verifica, a seconda dell'esito, nella riga allo stesso livello del tasto \fbox{Execute} appare una scritta verde che segnala la conformità del file, oppure na scritta rossa che ne segnala la non conformità, come appare nelle due schermate della figura~\ref{fig:veraPDFesito}. + +In questa interfaccia grafica si clicca il bottone \fbox{Choose PDF} e nella finestra che si apre si cerca la cartella che contiene il file da controllare. Avendolo selezionato si ``accende'' il tasto \tasto{Execute}, cliccato il quale parte l'azione di verifica, che dura diversi secondi; finita la verifica, a seconda dell'esito, nella riga allo stesso livello del tasto \tasto{Execute} appare una scritta verde che segnala la conformità del file, oppure na scritta rossa che ne segnala la non conformità, come appare nelle due schermate della figura~\ref{fig:veraPDFesito}. \begin{figure}[!htb] \centering @@ -1957,100 +2796,70 @@ $\vcenter{\hsize=0.7\textwidth\includegraphics[width=0.7\textwidth]{veraPDFnocon \caption[Verdetto dell'analisi di veraPDF su due file]{Verdetto dell'analisi di veraPDF su due file}\label{fig:veraPDFesito} \end{figure} -Qualunque sia l'esito conviene visualizzare ed eventualmente salvare il verdetto cliccando sui tasti \fbox{View XML} e/o \fbox{Save XML}, oppure sui corrispondenti tasti~HTML. Se il verdetto è positivo, quanto si stampa può valere come certificazione di conformità; se l'esito è negativo il rapporto contiene una succinta spiegazione dei motivi per i quali il file non è conforme. +{\tolerance=3000 +Qualunque sia l'esito conviene visualizzare ed eventualmente salvare il verdetto cliccando sui tasti \fbox{View XML} e/o \fbox{Save XML}, oppure sui corrispondenti tasti~HTML. Se il verdetto è positivo, quanto si stampa può valere come certificazione di conformità; se l'esito è negativo il rapporto contiene una succinta spiegazione dei motivi per i quali il file non è conforme.\par} -\subsubsection{Verifica con Adobe Acrobat Pro XI} -Disponendo di Adobe Acrobat Pro XI, si apre il file PDF, si va nella voce di menù \textsf{Edit} e si sceglie l'opzione \textsf{Preflight}; nella finestrina che si apre si sceglie la voce \textsf{PDF/A compliance} e sotto questa la voce \textsf{Verify compliance with PDF/A-1b}; poi si clicca sul bottone \textsf{Analyse}; dopo pochi secondi si apre una seconda finestrina dove appare il risultato dell'analisi. Se il risultato è positivo il file è definitivamente pronto come conforme alla norma PDF/A-1b. -Se invece l'analisi indicasse errori, bisogna provvedere a correggerli; è vero che nella stessa finestrina c'è anche il bottone \textsf{Analyse and fix}, ma l'operazione di ``aggiustamento'' di solito riesce a correggere errori molto veniali, quindi con i programmi di composizione del sistema \TeX\ (col quale non si compiono errori veniali) questo aggiustamento è raro che abbia successo. -\subsubsection{Correzione degli errori} +\subsection{Verifica con Preflight} + +Disponendo di Adobe Acrobat Pro XI, si apre il file PDF, si va nella voce di menù \textsf{Edit} e si sceglie l'opzione \textsf{Preflight}; nella finestrina che si apre si sceglie la voce \textsf{PDF/A compliance} e sotto questa la voce \textsf{Verify compliance with PDF/A-1b}; poi si clicca sul bottone \textsf{Analyse}; dopo pochi secondi si apre una seconda finestrina dove appare il risultato dell'analisi. Se il risultato è positivo il file è definitivamente pronto come conforme alla norma PDF/A-1b. + +Se invece l'analisi indicasse errori, bisogna provvedere a correggerli; è vero che nella stessa finestrina c'è anche il bottone \textsf{Analyse and fix}, ma l'operazione di ``aggiustamento'' di solito riesce a correggere errori molto veniali, quindi con i programmi di composizione del sistema \TeX (col quale non si compiono errori veniali) questo aggiustamento è raro che abbia successo. Ma non bisogna dimenticare che questo genere di piccoli errori spesso si presentano quando si importano file esterni; quindi tanto vale, invece, selezionare nella finestra di dialogo di Preflight la funzione Fixup; che parte e richiede con che nome si vuole salvare il file ``difettoso''; si può tranquillamente specificare di sovrascrivere il file da sistemare; fra le altre operazioni che Fixup può fare c'è anche quella di modificare il profilo di colore dei file che ne hanno uno errato, e questa, fra le altre è una operazione da fare piuttosto spesso quando si importano file esterni. L'ho dovuto fare anche con questo file di documentazione a causa di alcune figure create da me stesso per le quali non avevo controllato che avessero il profilo di colore corretto, cioè~RGB. + +\subsection{Correzione degli errori} Bisogna avere pazienza e cercare di leggere con attenzione i messaggi di diagnostica che \prog{veraPDF} o \textsf{Preflight} producono. Se mancano i metadati e/o il profilo di colore, significa che il file non è stato prodotto con le procedure descritte nei paragrafi precedenti. Gli errori che restano sono di solito dei tipi seguenti. -\begin{enumerate} -\item Se è stato specificato un profilo di colore CMYK (celeste, lilla, giallo, nero) si è fatto un errore nello specificare il profilo di colore oppure si è inserita un'immagine a colori che è colorata con lo schema CMYK. Nel primo caso è bene verificare di avere specificato il profilo giusto. Nel secondo caso bisogna convertire il profilo di colore mediante qualsiasi programma di fotoritocco; segnalo il programma aperto e libero GIMP (GNU Image Management Program), disponibile per le tre piattaforme più comuni e i sistemi operativi Mac, Windows e Linux. Esso è in grado di aprire immagini in ``qualsiasi'' formato bitmapped o vettoriale, di elaborarlo secondo i desideri dell'utente, per poi salvarlo in qualsiasi formato bitmapped, ma non nei formati vettoriali. +\begin{enumerate}[noitemsep] +\item Se è stato specificato un profilo di colore CMYK (celeste, lilla, giallo, nero) si è fatto un errore nello specificare il profilo di colore oppure si è inserita un'immagine a colori che è colorata con lo schema CMYK. Nel primo caso è bene verificare di avere specificato il profilo giusto. Nel secondo caso bisogna convertire il profilo di colore mediante qualsiasi programma di fotoritocco; segnalo il programma aperto e libero GIMP (GNU Image Management Program), disponibile per le tre piattaforme più comuni e i sistemi operativi Mac, Windows e Linux. Esso è in grado di aprire immagini in ``qualsiasi'' formato bitmapped o vettoriale, di elaborarne il file secondo i desideri dell'utente, per poi salvarlo in qualsiasi formato bitmapped, ma non nei formati vettoriali. % -\item Alcuni font hanno glifi di larghezza nulla, fra questi ci sono almeno due glifi della famiglia matematica \texttt{cmsym}; \pack{toptesi} provvede già da solo a sostituire questi glifi con altri simili o con disegni, in modo da correggere l'errore; tuttavia questi glifi potrebbero essere presenti nei file importati. +\item Alcuni font hanno glifi di larghezza nulla, fra questi ci sono almeno due glifi della famiglia matematica \texttt{cmsym}; \pack{toptesi} provvede già da solo a sostituire questi glifi con altri simili o con disegni, in modo da correggere l'errore; tuttavia questi glifi potrebbero essere presenti in alcuni dei file importati. % -\item Alcune figure sia raster (a cui siano state sovrapposte legende testuali con caratteri vettoriali) sia vettoriali (che contengono legende testuali) possono mancare dell'inclusione dei font; per cui quando queste immagini vengono immesse nel file PDF che si vorrebbe conforme con la norma, questa conformità viene a mancare. Se si sono prodotti personalmente tali file da includere, bisogna avere cura di far sì che tutti i glifi dei font usati nel file da includere siano essi stessi inclusi direttamente; esattamente com ho fatto con i loghi \GuIT\ e \MP\ di cui ho detto prima. Purtroppo questo è un caso molto frequente; quindi capita sovente di dover procedere alla correzione di questi file. +\item Alcune figure sia raster (a cui siano state sovrapposte legende testuali con caratteri vettoriali) sia vettoriali (che contengono legende testuali) possono mancare dell'inclusione dei font; per cui quando queste immagini vengono immesse nel file PDF che si vorrebbe conforme alla norma, questa conformità viene a mancare. Se si sono prodotti personalmente tali file da includere, bisogna avere cura di far sì che tutti i glifi dei font usati nel file da includere siano essi stessi inclusi direttamente; esattamente com ho fatto con i loghi \GuIT\ e \MP\ di cui ho detto prima. Purtroppo questo è un caso molto frequente; quindi capita sovente di dover procedere alla correzione di questo genere di file. -Per le figure con legende testuali, basta convertire l'intera figura nel formato \file{.png} (se contiene disegni al tratto e purché non contenga trasparenze) oppure \file{.jpg} se contiene colori sfumati) e il gioco è fatto. +Per le figure con legende testuali, basta convertire l'intera figura nel formato \file{.png} (se contiene disegni al tratto e purché non contenga trasparenze) oppure \file{.jpg} se contiene colori sfumati), e il gioco è fatto. Ma se si vuole mantenere la natura vettoriale si potrebbe usare il programma gratuito \prog{Inkscape} che è in grado di aprire file vettoriali (PDF, EPS, PS) e di trasformarli in file con le estensioni vettoriali, avendo trasformato nel contempo i caratteri nelle loro outline, cioè nei disegni dei contorni dei glifi, riempiti dello stesso colore che avevano quei glifi nella figura originale. Spesso questa trasformazione va a buon fine. -Come esperienza personale ritengo che sia opportuno convertire ogni figura vettoriale con i glifi sostituiti dai loro contorni, solo nel formato EPS, che non gestisce le trasparenze, gestite, invece, dal formato PDF. In questo modo i tre programmi che ci interessano, \prog{pdflatex}, \prog{xelatex} e \prog{lualatex}, sono tutti e tre in grado di ricevere figure in formato \file{.eps}, e di incorporarle nel file PDF in uscita. In questo modo si è sicuri di poter evitare le trasparenze, che sono vietate con il formato PDF/A-1b. +Come esperienza personale ritengo che sia opportuno convertire ogni figura vettoriale con i glifi sostituiti dai loro contorni, solo nel formato EPS, che non gestisce le trasparenze, che sono invece gestite dal formato \file{.pdf}. In questo modo i tre programmi che ci interessano, \prog{pdflatex}, \prog{xelatex} e \prog{lualatex}, sono tutti e tre in grado di ricevere figure in formato \file{.eps}, e di incorporarlo nel file PDF in uscita. In questo modo si è sicuri di poter evitare le trasparenze, che sono vietate con lo standard PDF/A-1b. Alternativamente si riapre il file \file{.eps} sempre cn \prog{Inkscape} e lo si salva in formato \file{.pdf}; il file \file{.eps} non conteneva trasparenze, quindi nemmeno il nuovo file \file{.pdf} ne contiene. \end{enumerate} -Come si vede, dunque, la produzione di un file conforme alla norma PDF/A non è una operazione semplice e senza disporre di \prog{veraPDF} o di Adobe Acrobat Pro XI si consuma molto tempo a ricorrere a postazioni di lavoro esterne, dovendo chiedere favori a laboratori o ad altre persone. Però se si osservano le indicazioni di questo paragrafo, è possibile che il file della tesi sia conforme alla norma fin dal primo momento. Questa stessa guida è stata prodotta con questo tipo di correzioni, ma io sono avvantaggiato perché dispongo personalmente del software necessario alla verifica. +\subsection{Considerazioni sulla verifica} +Come si vede, dunque, la produzione di un file conforme alla norma PDF/A non è una operazione semplice e senza disporre di Adobe Acrobat Pro XI o di VeraPDF si consuma molto tempo per ricorrere a postazioni di lavoro esterne, dovendo chiedere favori a laboratori o ad altre persone. Però se si osservano le indicazioni di questo paragrafo, è possibile che il file della tesi sia conforme alla norma fin dal primo momento. Questa stessa guida è stata prodotta con questo tipo di procedimenti; io sono avvantaggiato per la verifica perché dispongo personalmente di entrambi i software descritti nei paragrafi precedenti. Ma, appunto, questo mio privilegio mi ha permesso di sviluppare una certa esperienza e di formulare i consigli che ho indicato nei paragrafi indicati, grazie alle soluzioni che sono riuscito a trovare nei numerosi file che ho prodotto in modo conforme alla norma. Non sono consigli infallibili e completi per risolvere qualunque problema di conformità, tuttavia ne risolvono molti e quasi sempre il procedimento ha successo. \chapter{I comandi specifici introdotti da \textsf{TOPtesi}}\label{cap:comandispecifici} \section{Introduzione} I comandi specifici introdotti da \textsf{TOPtesi} si aggiungono a -tutti quelli definiti da \LaTeX\ e dalla sua classe standard +tutti quelli definiti da \LaTeX e dalla sua classe standard \class{report}; mentre questi sono tutti in inglese o sono abbreviazioni inglesi, i comandi introdotti da \textsf{TOPtesi} sono prevalentemente in italiano o sono abbreviazioni italiane. -Questi comandi sono di diverse categorie; alcuni si possono usare solo -in modo matematico altri solo in modo testo; alcuni solo nel preambolo, -alcuni hanno senso solo durante la composizione del testo; alcuni -servono solo per il frontespizio. Essi saranno descritti nei paragrafi -seguenti. +Questi comandi sono di diverse categorie; alcuni si possono usare solo in modo matematico altri solo in modo testo; alcuni solo nel preambolo, alcuni hanno senso solo durante la composizione del testo; alcuni servono solo per il frontespizio. Essi saranno descritti nei paragrafi seguenti. \section{Le opzioni} La classe \class{toptesi} accetta diverse opzioni nel -comando di dichiarazione della classe; negli esempi acclusi al pacchetto ne sono -state usate diverse, ma qui forse vale la pena di elencarle tutte -in ordine, senza ripetere le opzioni già definite per -la classe \class{report}. - -\begin{description}\def\Item[#1]{\item[\normalfont\opt{#1}]} -\Item[chapterbib] serve per specificare che si desidera la composizione della bibliografia alla fine di ogni capitolo; la bibliografia va composta a mano; se si desidera comporla con \textsc{Bib\TeX} si invochi invece il pacchetto \texttt{chapterbib.sty} con il solito comando \cs{usepackage}. Si abbia cura di leggere attentamente la documentazione di quel pacchetto. Alternativamente si può usare il pacchetto \pack{biblatex} (con la bibliografia da elaborare con il programma esterno \prog{biber}); bisogna specificargli opportune opzioni e si possono comporre direttamente bibliografie distinte per capitoli; si legga con attenzione la documentazione di \pack{biblatex}. -% -\Item[classica] Serve per usare delle denominazioni un po' diverse -dei comandi e per dare una forma diversa al loro contenuto; il -frontespizio ne viene un poco modificato con un look più adatto -alle tesi in discipline classiche. Si veda la tabella~\ref{tab:front5} -per i comandi disponibili quando questa opzione è attivata. -% -\Item[cucitura] Serve per spostare il blocco del testo verso l'esterno -quando si teme che la piegatura delle pagine verso il centro del -fascicolo rilegato possa impedire la lettura agevole delle parole -vicino al margine interno. Con legature eseguite bene, questa correzione non è necessaria; si ritiene che possa essere utile quando la tesi cartacea viene spillata. -% -\Item[14pt] Aumenta la possibilità di scelta del corpo normale per -la composizione della tesi; può contribuire a migliorare la -lettura quando il testo è fitto di notazioni molto articolate, ma in -generale il corpo così grande è un trucco per rimpolpare una -tesi di modeste dimensioni; ne sconsiglio l'uso per questo secondo -scopo. Avverto che con un corpo così grande è facile che certe -righe risultino troppo lunghe e vadano a capo in punti non -adeguati e/o producano righe non giustificate con gli avvisi -``Overfull hbox''; questo è un altro motivo per il quale -sconsiglio di usare questa opzione, se non quando è strettamente -necessario. Se la si usa, si verifichi che il titolo, i titoli dei -capitoli, quelli dei paragrafi, eccetera siano composti -correttamente. In particolare il titolo della tesi e i titoli dei -capitoli possono andare a capo solo prima di articoli, -preposizioni semplici o articolate, congiunzioni e brevi avverbi -come ``non''; per evitare di andare a capo dopo queste parti del -titolo si abbia l'accortezza di inserire il segno di legatura -\verb|~| fra queste brevi parole e le parole seguenti; per -esempio, il titolo della tesi fornita come modello va scritto -nella forma \verb|La~pressione barometrica di~Giove|. +comando di dichiarazione della classe; negli esempi acclusi al pacchetto ne sono state usate diverse, ma qui forse vale la pena di elencarle tutte, senza ripetere le opzioni già definite per la classe \class{report}. + +\begin{description}[noitemsep]\def\Item[#1]{\item[\normalfont\opt{#1}]} +\Item[chapterbib] Si raccomanda all'utente di non farne uso; esiste ancora per compatibilità con il passato. + +Servirebbe per specificare che si desidera la composizione della bibliografia alla fine di ogni capitolo; la bibliografia va composta a mano; se si desidera comporla con \textsc{Bib\TeX} si invochi invece il pacchetto \texttt{chapterbib.sty} con il solito comando \cs{usepackage}. Si abbia cura di leggere attentamente la documentazione di quel pacchetto. Alternativamente si può usare il pacchetto \pack{biblatex} (con la bibliografia da elaborare con il programma esterno \prog{biber}); bisogna specificargli opportune opzioni e si possono comporre direttamente bibliografie distinte per capitoli; si legga con attenzione la documentazione di \pack{biblatex}. Va da sé che l'uso di \pack{biblatex} con la gestione del database mediante \prog{biber} è molto più efficace e professionale della bibliografia gestita con questa opzione. % +\Item[classica] È un valore che può essere specificato alla chiave \chiave{stile} mediante l'opzione \chiave{stile}{classica}; l'alternativa è quella di non specificare niente, perché l'opzione \chiave{stile}{standard} è quella di default. Per compatibilità con il passato esiste ancora l'opzione \chiave{stile}{trieste}, che ricorda i vecchi tempi quando questo stile era stato definito per le tesi umanistiche dell'università di Trieste; se ne scoraggia l'uso. Serve per usare delle denominazioni un po' diverse dei comandi e per dare una forma diversa al loro contenuto; il frontespizio ne viene un poco modificato con un look più adatto alle tesi in discipline classiche. Si veda la tabella~\ref{tab:front5} per i comandi disponibili quando questa opzione è attivata. +% +\Item[cucitura] La chiave \chiave{cucitura} di default imposta lo spostamento della gabbia di stampa verso l'esterno; si possono specificare opzioni da \chiave{cucitura}{5mm} fino ad un massimo \chiave{cucitura}{10mm}; di default, senza specificare nemmeno la chiave \chiave{cucitura}, lo spostamento della gabbia del testo verso l'esterno della pagina è nullo; se si specifica l'opzione senza un valore, questo viene assunto pari a 7\unit{mm}; si raccomanda di non esagerare e in particolare si raccomanda di non usare questa opzione per impostare un margine interno molto più grande di quello esterno. Serve per spostare il blocco del testo verso l'esterno quando si teme che la piegatura delle pagine verso il centro del fascicolo rilegato possa impedire la lettura agevole delle parole vicino al margine interno. Con legature eseguite bene, questa correzione non è necessaria; si ritiene che possa essere utile solo quando la tesi cartacea viene spillata. +% +\Item[corpo] La chiave \chiave{corpo} serve per impostare il corpo normale per il documento; se si non si specifica nulla o si specifica questa chiave senza nessun valore, il corpo normale viene impostato al valore di 10\unit{pt}; altrimenti si può specificare l'opzione da \chiave{corpo}{9.5pt} fino a \chiave{corpo}{14.5pt}. Internamente qualunque valore intero o fratto, sempre accompagnato dall'unità di misura, imposta il corpo normale secondo le stesse progressioni usate dalle impostazioni di ogni classe standard; ma per i corpi maggiori di 10\unit{pt} viene usata una progressione geometrica di ragione $1.2$, mentre per i corpi inferiori viene scelta una progressione aritmetica proporzionale a quella delle classi standard. Per tesi normali il corpo di 9.5\unit{pt} rappresenta il minimo assoluto per non rendere troppo faticosa la lettura continua del testo; per i corpi maggiori, 12.5\unit{pt} è il massimo ragionevole per la lettura da parte di adulti senza problemi di vista; corpi fino a 14.5\unit{pt} sono utili per testi che contengano molti segni di mark-up filologico che aumentano abbastanza l'altezza e la profondità delle righe che contengano questo genere di marcature. L'esperienza ha indicato il valore di 14\unit{pt} come adatto alla composizione di simili testi con marcatura filologica. Va da sé che usando corpi così grandi la giustificazione del testo e la composizione dei titoli può diventare problematica. % \Item[autoretitolo] {\leavevmode\tolerance=9999 Questa opzione funziona solo se viene -specificata anche l'opzione \texttt{classica}; se la si inserisce -senza specificare \texttt{classica}, non succede nulla di male, -semplicemente la classe informa di aver trovato delle opzioni che -né lei né altri pacchetti hanno usato. Serve per comporre la +specificata anche l'opzione \chiave{stile}{classica}; se la si inserisce senza specificare questa opzione, non succede nulla di male, semplicemente la classe informa di aver trovato delle opzioni che né lei né altri pacchetti hanno usato. Serve per comporre la testatina di sinistra sulle pagine pari con l'indicazione del candidato e del titolo della tesi. È ovvio che il titolo della tesi con questa opzione deve essere molto breve, ed è per questo @@ -2060,103 +2869,148 @@ un titolo di tre o quattro parole (brevi) ma di senso compiuto, che possa sostituire il titolo normale, specialmente se questo è un po' lungo.\par} % -\Item[oldstyle] Anche questa opzione funziona solamente insieme -all'opzione \texttt{classica}; serve per scrivere i numeri delle -pagine con le cifre minuscole o all'antica, cioè con segni di altezze e -profondità diverse; si confronti \oldstylenums{1234567890} con -1234567890. +\Item[oldstyle] Anche questa opzione è adatta a funzionare con \chiave{stile}{classica}; serve per scrivere i numeri +delle pagine con le cifre minuscole o all'antica, cioè con segni +di altezze e profondità diverse; si confrontino le cifre minuscole \oldstylenums{123456\discretionary{}{}{}7890} con quelle maiuscole 1234567890. +% +\Item[numerazioneromana] Questa opzione è inserita più per retrocompattibilità che per altro. Nelle versioni precedenti di \TOPtesi la parte iniziale aveva le pagine numerate con numeri romani; col primo capitolo automaticamente cominciava la ``main matter'', il corpo principale della tesi, e la numerazione ricominciava da~1 con cifre arabe. Questo modo di procedere era giustificato quando la tipografia si serviva di caratteri metallici, con i quali prima si componevano le pagine del corpo principale e solo quando queste erano state completate con la loro numerazione in cifre arabe a partire da~1, allora si potevano comporre gli indici, le introduzioni, le presentazioni e quant'altro andasse composto nella parte iniziale, con numerazione romana per non dover cambiare la numerazione della parte principale. Con la tipografia elettronica questo artifizio non ha più motivo di essere ancora usato. Tuttavia graze a questa opzione si può ripristinare il comportamento delle versioni precedenti; oppure si può usare questa opzione per dare un tocco di ``antichità'' alla tesi. +% +\Item[libro] Questa opzione permette di comporre la tesi con i margini esterno e interno diversi, precisamente nel rapporto $3:2$ con il margine esterno più largo di quello interno, conformemente alla tradizione tipografica. Lo specchio di stampa resta invariato rispetto a quando i margini sono uguali; questo cambiamento dei margini consente il funzionamento della variazione della correzione di legatura prodotto dal valore assegnato alla chiave \chiave{cucitura}. Tuttavia se l'utente vuole stamparsi la tesi con i margini diversi secondo la tradizione, vuol dire che ci tiene a che il “libro” della tesi sia confezionato bene; quindi se lo legherà o se lo farà rilegare con le segnature cucite e con una copertura rigida, lasciando perdere la confezione più economica col dorso incollato. % \Item[pdfa] Prima della distribuzione di \TeXLive 2016 il pacchetto \pack{pdfx} doveva essere caricato dalla classe, non nel preambolo del documento come si può fare ora con la distribuzione aggiornata di \TeXLive. Per compatibilità con il passato, l'opzione esiste ancora, ma produce solo un avviso e non carica \pack{pdfx}. % -\Item[noTOPfront] e \opt{usefrontespizio} sono opzioni equivalenti; servono per evitare il caricamento del pacchetto nativo di TOPtesi, \pack{topfront}, in modo da poter comporre il frontespizio con pacchetti esterni, evitando conflitti con quei pacchetti. +\Item[tipotesi] La chiave \chiave{tipotesi} serve per esprimere delle opzioni che riguardano il tipo della tesi, almeno il modo di comporre il suo frontespizio; essa accetta diversi valori; se non si specifica l'opzione o non si specifica nessun valore, per il frontespizio viene usato il modulo \pack{topfront}. I valori che si possono specificare sono indicati nella tabella~\ref{tab:tipotesi} \end{description} +\afterpage{% +\begin{table}[p]\centering +\caption[Valori particolari per la chiave \texttt{tipotesi}]{Valori particolari per la chiave \chiave{tipotesi}}\label{tab:tipotesi} +{\small +\begin{tabularx}{\linewidth}{llX} +\toprule +Opzione & Modulo caricato & Scopo \\ +\midrule +nessuna & \pack{topfront} & {Serve per comporre la tesi usando il modulo di default, che essendo di tipo generale, può risultare difficile da usare\par} \\ +\chiave{tipotesi} & \pack{topfront} &{Come nel caso precedente\par}\\ +\chiave{tipotesi}{triennale}& \pack{toptesi-triennale} & {Serve per comporre il frontespizio del lavoro finale del primo ciclo triennale universitario\par}\\ +\chiave{tipotesi}{monografia}& \pack{toptesi-triennale} & {Come nel caso precedente \par}\\ +\chiave{tipotesi}{magistrale}& \pack{toptesi-magistrale} & {Serve per comporre il frontespizio della tesi del secondo ciclo biennale universitario che porta al diploma di laurea magistrale; vale anche per i corsi di studio a ciclo unico \par}\\ +\chiave{tipotesi}{dottorale}& \pack{toptesi-dottorale} & {Serve per comporre il frontespizio di una dissertazione dottorale generica, e diversa da quella dalla Scuola di Dottorato del Politecnico di Torino \par}\\ +\chiave{tipotesi}{scudo}& \pack{toptesi-scudo} & {Serve per comporre il frontespizio delle tesi dottorali presso la Scuola di Dottorato del Politecnico di Torino \par}\\ +\chiave{tipotesi}{frontespizio}& \pack{frontespizio} & {Usa un pacchetto esterno e i suoi specifici comandi per comporre il frontespizio \par}\\ +\chiave{tipotesi}{secondaria}& \pack{toptesi-sss} & {Serve per comporre il frontespizio per la tesina dell'esame di maturità \par}\\ +\chiave{tipotesi}{custom}& nessuno & {Richiede l'intervento attivo dell'utente. \par}\\ +\bottomrule +\end{tabularx}} +\end{table}} + \section{Comandi di tipo generale} I comandi di tipo generale si possono usare in ogni contesto, in -particolare alcuni sono fatti per essere usati sia in modo testo sia in -modo matematico. Essi sono raccolti nella tabella~\ref{tab:generale}. +particolare alcuni sono fatti per essere usati sia in modo testo +sia in modo matematico. Essi sono raccolti nella +tabella~\ref{tab:generale}. -\begin{table}\def\V{\rule{0pt}{2.5ex}} +\goodpagebreak[6] + +\afterpage{% +\begin{table}[p]%\def\V{\rule{0pt}{2.5ex}} \caption{Comandi di tipo generale}\label{tab:generale} -\centering \footnotesize +\centering \cambiacorpo{9.5}% \begin{tabular}{llp{.26\textwidth}p{.30\textwidth}} \toprule - Comando\V & Default & Scopo & Esempio d'uso \\[.5ex] + Comando & Default & Scopo & Esempio d'uso \\[.5ex] \midrule \cs{interlinea}\Arg{...} & 1.0 & Modifica l'argomento di - \cs{linespread}\newline \textcolor{red}{NON usare se non - costretti con la forza!}\newline Modo testo - &\cs{interlinea}\Arg{1.05} \newline + \cs{linespread}\newline \textcolor{red}% + {NON usare se non + costretti con la forza!}\newline Modo + testo + &\raggedright + \cs{interlinea}\Marg{1.05} \newline oppure \newline - \cs{begin}\Arg{interlinea}\Arg{1.05}\newline + \Bambiente{interlinea}% + \Marg{1.05}\newline \dots\newline - \cs{end}\Arg{interlinea}\newline - Vedi annotazioni sull'\hskip0pt interlinea nel testo \\ + \Eambiente{interlinea}\newline + Vedi annotazioni + sull'interlinea nel testo\cr \cs{ohm} & & Omega ``diritto''\newline - Modi testo e matematico & \texttt{45\string\ohm}\\ -\cs{ped}\Arg{...}& - nessuno & Pedice in tondo\newline + Modi testo e matematico & + \texttt{45\string\ohm}\\ +\cs{ped}\Arg{...}& nessuno & Pedice in tondo\newline + Modi testo e matematico + & \texttt{\string$V\relax + \string\ped\{eff\}\string$} \\ +\cs{ap}\Arg{...}& nessuno & Apice in tondo\newline Modi testo e matematico - & \texttt{\string$V\string\ped\string{eff\string}\string$} \\ -\cs{unit}\Arg{...}& - nessuno & Unità di misura in + & \texttt{\string$M\relax + \string\ap\{T\}\string$} \\ +\cs{unit}\Marg{...}&nessuno & Unità di misura in tondo unite al numero\newline Modi testo e matematico - & \texttt{15\string\unit\Arg{k\string\ohm}} \\ + & \texttt{15\string + \unit\Arg{k\string\ohm}} \\ \cs{gei} & & Unità immaginaria in tondo \newline Solo modo matematico - & \texttt{\string$\string\eu\string^\string{\string\gei + & \texttt{\string$ + \string\eu\string^\string{\string\gei \string\omega\ t\string}\string$} \\ -\cs{eu} & & Numero ``e'' in tondo\newline Solo modo matematico - & \texttt{\string$\string\eu\string^\Arg{\string\gei +\cs{eu} & & Numero ``e'' in tondo\newline + Solo modo matematico + & \texttt{\string$ + \string\eu\string^\Arg{\string\gei \string\omega\ t}\string$} \\ \cs{gradi} & & circoletto alzato\newline Modo testo e matematico & \texttt{27\string\unit \Arg{\string\gradi\ C}} \\ \cs{listing}\Arg{...}& - nessuno & Listato di un programma in caratteri typewriter - & \texttt{\string\listing\string{toptesi.tex\string}}\\ -\cs{blankpagestyle}\Arg{...}&plain & Impostazione dello stile della pagina eventualmente - emessa da \cs{cleardoublepage} quando deve passare ad una - pagina dispari in composizione fronte retro + nessuno & Listato di un programma in caratteri + typewriter & \texttt{\string\listing + \string{toptesi.tex\string}}\\ +\cs{blankpagestyle}\Arg{...}&plain &\raggedright Impostazione dello stile della + pagina eventualmente emessa da + \cs{cleardoublepage} quando deve + passare ad una pagina dispari in + composizione fronte retro & \cs{blankpagestyle}\Arg{empty}\\ -\cs{ifTOPfront} & true & Viene impostato a false quando viene specificata - l'opzione \opt{noTOPfront};\ può essere usato per - specificare azioni diverse a seconda del tipo di - frontespizio da comporre&\\ \cs{goodpagebreak}\Oarg{...} - & 4 & Inserisce un fine pagina condizionale; l'argomento facoltativo serve per specificare il numero di righe necessarie prima della fine pagina condizionale - &\cs{goodpagebreak}\Oarg{5}\\[.5ex] + & 4 & Inserisce un fine pagina condizionale; + l'argomento facoltativo serve per + specificare il numero di righe + necessarie prima del fine pagina + condizionale + &\cs{goodpagebreak}\Oarg{5}\\ +\amb{SDbox}\Marg{...}& \Marg{} & Figura con didascalia accanto + & Vedi nella pagina~\pageref{pag:SD}\\ +\cs{captionof} & nessuno & Permette di assegnare una didascalia + ad oggetti non inseriti dentro un + ambiente mobile + & \cs{captionof}\Marg{figure}% + \discretionary{\%}{}{}% + \Marg{Didascalia}\\[.5ex] \bottomrule \end{tabular} -\end{table} +\end{table}} +\subsubsection{Il comando \texorpdfstring{\cs}{}{interlinea} e l'ambiente corrispondente} {\tolerance=6000 Vale la pena di commentare sull'uso dell'ambiente \amb{interlinea} e del comando \cs{interlinea}. Il primo confina il suo effetto all'interno dell'ambiente da lui stesso formato; il secondo agisce come una dichiarazione che resta in vigore finché una dichiarazione contraria non ne modifichi il -valore.\par} +valore. +\textcolor{red}{Tuttavia sia l'ambiente sia il comando non dovrebbero essere mai usati!}\par} -\textcolor{red}{Tuttavia sia l'ambiente sia il comando non dovrebbero essere mai usati!} -La composizione tipografica non ha nulla a che vedere con la -composizione dattilografica. -Quest'ultima si faceva con mezzi avanzati per l'epoca, ma oggi quei -mezzi sono del tutto obsoleti; le poche macchine da scrivere -meccaniche o elettromeccaniche che esistono ancora fuori da qualche -museo, vengono usate per riempire formulari o compilare le informazioni -sui documenti cartacei che sopravvivono alla invasione delle carte -plastificate; ma tolti gli usi burocratici non mi viene in mente nessun -altro uso degno di nota. +La composizione tipografica non ha nulla a che vedere con la composizione dattilografica. Quest'ultima si faceva con mezzi avanzati per l'epoca, ma oggi quei mezzi sono del tutto obsoleti; le poche macchine da scrivere meccaniche o elettromeccaniche che esistono ancora fuori da qualche museo, vengono usate per riempire formulari o compilare le informazioni sui documenti cartacei che sopravvivono alla invasione delle carte plastificate; ma tolti gli usi burocratici non mi viene in mente nessun altro uso degno di nota. -La composizione tipografica esige un perfetto equilibrio fra il corpo del font usato e la distanza fra due righe successive, distanza che prende il nome tecnico di \emph{scartamento} o \emph{avanzamento di riga}, ma spesso viene chiamato impropriamente \emph{interlinea}; questo scartamento a seconda del font in uso può essere dal 10\% al 20\% maggiore del corpo del font usato. +La composizione tipografica esige un perfetto equilibrio fra il corpo del font usato e la distanza fra le righe su cui sono appoggiati i caratteri di due righe di testo consecutive; questa distanza prende il nome tecnico di \emph{scartamento} o \emph{avanzamento di riga}, ma spesso viene chiamato impropriamente \emph{interlinea}; questo scartamento a seconda del font in uso può essere dal 10\% al 20\% maggiore del corpo del font usato. Questa documentazione è scritta in corpo 12\,pt e lo scartamento è di 14,5\,pt; si dice che questo testo è composto in corpo 12/14,5. \begin{interlinea}{1.05} -L'interlinea, come suggerisce il nome, era originariamente lo spazio aggiuntivo da inserire fra una linea e l'altra; quando la composizione tipografica era eseguita con font ricavati da punzoni metallici, l'interlinea era la striscia di metallo che veniva interposta fra una riga di caratteri metallici e la successiva. Il comando \cs{interlinea} e l'ambiente corrispondente hanno pertanto dei nomi che si rifanno alla tipografia tradizionale, ma vengono usati come in dattilografia. In effetti l'argomento del comando e dell'ambiente serve solo come fattore moltiplicativo dello \emph{scartamento}; porre questo fattore al valore \texttt{1.05} vuol dire moltiplicare lo scartamento per 1,05 portandolo quindi al valore di 15,5225\,pt. Questo capoverso è composto con questo fattore impostato con l'ambiente \amb{interlinea} e, nonostante si tratti solo di un aumento del 5\% dello scartamento, l'occhio lo percepisce in modo più grande di quanto non faccia pensare il suo piccolo valore. +L'interlinea, come suggerisce il nome, era originariamente lo spazio aggiuntivo da inserire fra una linea e l'altra; quando la composizione tipografica era eseguita con font metallici, l'interlinea era la striscia di metallo che veniva interposta fra una riga di caratteri e la successiva. Il comando \cs{interlinea} e l'ambiente corrispondente hanno pertanto dei nomi che si rifanno alla tipografia tradizionale, ma vengono usati come in dattilografia. In effetti l'argomento del comando e dell'ambiente serve solo come fattore moltiplicativo dello \emph{scartamento}; porre questo fattore al valore \texttt{1.05} vuol dire moltiplicare lo scartamento per 1,05 portandolo quindi dal valore di 14.5\,pt al valore di 15,5225\,pt. Questo capoverso è composto con questo fattore impostato con l'ambiente \amb{interlinea} e, nonostante si tratti solo di un aumento del 5\% dello scartamento, l'occhio lo percepisce in modo più grande di quanto non faccia pensare il suo piccolo valore. \end{interlinea} L'avanzamento di default scelto per i caratteri in uso è @@ -2165,33 +3019,32 @@ diverso da quello di default, si potrebbe, per esempio, invocare il pacchetto \Font{newpxtext} per usare il Palatino esteso come font di testo. Siccome questo font a pari corpo ha le minuscole più grandi di quelle dei font di default, potrebbe -essere una idea sensata quello di sperimentare con diversi valori +essere una idea sensata quella di sperimentare con diversi valori del fattore di \amb{interlinea}, ma poi si scoprirebbe che questo fattore differirebbe di pochi centesimi dall'unità e quindi ci sarebbe da domandarsi se ne valga la pena. -Se proprio si vuole stampare su carta delle bozze scritte abbastanza -larghe per potervi inserire le correzioni e le annotazioni a mano, -allora si imposti il fattore di \amb{interlinea} al massimo a -\texttt{1.5}, ma quando stampate la bella copia, la versione finale, -ricordatevi di re-impostare per \amb{interlinea} il valore unitario +Se proprio si vogliono stampare su carta delle bozze scritte abbastanza larghe per potervi inserire le correzioni e le annotazioni +a mano, allora si imposti il fattore di \amb{interlinea} al massimo a +\texttt{1.5}, ma quando si stampa la bella copia, la versione finale, +ci si ricordi di re-impostare per \amb{interlinea} il valore unitario di default. Tra l'altro non si vuole mica usare l'espediente di un grande fattore di interlinea solo per rimpolpare una tesi dal volume modesto? Esso sarebbe un espediente talmente puerile che sarebbe scoperto al primo -sguardo. Ricordate che alcune tesi svolte all'inizio degli anni 20 e non superavano le 30~pagine dattiloscritte o scritte a mano (!) e sulle quali -si sta studiando ancora oggi dopo più di 80~anni! +sguardo. Ricordate che alcune tesi svolte al Politecnico di Torino all'inizio degli anni 20 del XX secolo non superavano le 30~pagine dattiloscritte o scritte a mano (!), ma ricevettero la dignità di stampa\footnote{Una era del candidato Carlo Alberto Castigliano e vi veniva enunciato il teorema di Castigliano; un'altra era di Placido Cicala e vi si svolgeva la teoria delle volte sottili, teoria che gli strutturisti considerano assolutamente fondamentale ancora oggi.}; le si sta studiando ancora oggi dopo quasi un secolo! +\subsubsection{La misteriosa pagina bianca} Vale la pena di commentare il misterioso comando \cs{blankpagestyle}. Quando si compone fronte e retro senza usare l'opzione di classe \opt{openright}, i capitoli vengono sempre aperti nelle pagine di destra, cioè nelle pagine dispari. Per fare questo il comando \cs{chapter} agisce eseguendo subito il comando \cs{cleardoublepage} che, fra le altre cose, controlla se la nuova pagina su cui scrivere il titolo del capitolo sia dispari. Se non lo fosse provocherebbe la stampa di una pagina ``bianca''; bianca nel senso che non contiene testo ma contiene la testatina e il piedino. -Fino alla versione 0.62 di TOPtesi, questa eventuale pagina bianca prima dell'apertura di un nuovo capitolo conteneva la testatina e il piedino; d'accordo nel piedino c'è solo il numero della pagina, e ci può stare, ma nella testatina rimaneva il titolo del capitolo precedente: tipograficamente molto antiestetico ed errato. Ora di default questa pagina bianca viene composta solo con il piedino che, ricordiamo, contiene solo il numero della pagina. Alcuni preferiscono che questa pagina bianca sia completamente bianca e non contenga nemmeno il piedino; ecco, in questo caso basta specificare: +Fino alla versione 0.62 di \TOPtesi, questa eventuale pagina bianca prima dell'apertura di un nuovo capitolo conteneva la testatina e il piedino; d'accordo nel piedino c'è solo il numero della pagina, e ci può stare, ma nella testatina rimaneva il titolo del capitolo precedente: tipograficamente molto antiestetico ed errato. Da molti annni questa pagina bianca viene composta di default solo con il piedino che, ricordiamo, contiene solo il numero della pagina. Alcuni preferiscono che questa pagina bianca sia davvero vuota e non contenga nemmeno il piedino; ecco, in questo caso basta specificare: \begin{flushleft}\ttfamily \cs{blankpagestyle}\{empty\} \end{flushleft} e il problema è risolto. Volendo si potrebbe specificare il nome di qualunque altro stile di pagina già definito ma, ad essere franchi, non vedo alternative fra i due stili \texttt{plain} e \texttt{empty} rispetto agli altri stili che contengono sempre le testatine, eventualmente ridotte al solo loro filetto. -Se lo si vuole usare, consiglio di farlo subito dopo \cs{begin}\Arg{document}. +Se lo si vuole usare, consiglio di farlo subito dopo \Bambiente{document}. Se invece si desidera lasciare il valore di default a \texttt{plain} e usare saltuariamente un altro stile, si usi esplicitamente il comando \cs{cleradoublepage} specificando lo stile desiderato come argomento facoltativo, per esempio: \begin{verbatim} @@ -2202,17 +3055,209 @@ Riassumendo: per una pagina veramente vuota sempre e in ogni caso; si specifichi \begin{verbatim} \blankpagestayle{empty} \end{verbatim} -subito dopo \cs{begin}\Arg{document}. +subito dopo \Bambiente{document}. Se si desidera una pagina vuota saltuariamente si espliciti \cs{cleardoublepage} con l'argomento facoltativo \texttt{empty}. Se si desidera modificare lo stile della pagina bianca quando il comando \cs{cleardoublepage} è emesso da uno specifico comando \cs{part} o uno specifico comando \cs{chapter} si usi \cs{cleardoublepage}\texttt{[empty]} \emph{subito prima} di quel comando di sezionamento. -Qualche annotazione va fatta per il comando \cs{goodpagebreak}. Il nucleo di \LaTeX\ contiene il comando \cs{goodbreak} che dovrebbe impostare un consenso di eseguire un fine pagina impostando una penalità molto piccola negativa, più o meno simile a quello che fa il comando \cs{pagebreak}\Oarg{1}. In realtà questo comando nativo di Plain \TeX, conservato in \LaTeX, di fatto non funziona come ci si aspetterebbe. Il comando di questa classe, \cs{goodpagebreak} procede in un altro modo, anche perché si comporta in modo diverso se vene specificato in modo verticale o in modo orizzontale. +\subsubsection{L'ambiente \texorpdfstring{\amb*}{}{SDbox}} +Un nuovo ambente \amb{SDbox}\label{pag:SD} è disponibile per comporre una figura o una tabella o qualunque altro contenuto, con una didascalia accanto invece che sotto come avviene con gli ambienti normali. Richiede un primo argomento costituito dal nome del tipo di oggetto da gestire; vedi sotto. -Infatti in modo orizzontale inserisce incondizionatamente un comando \cs{vadjust} il cui argomento vale esattamente \cs{newpage} incondizionato quando la \emph{riga} che lo contiene viene scritta nel file di uscita; si dovrà porre un minimo di attenzione a fare sì che lo spazio alla fine della macro non elimini spazi interparola, né introduca spazi spuri; quando lo si usa, quindi, sarà opportuno lasciare uno spazio prima e dopo la macro, per esempio \begin{flushleft}\verb*|...prima \goodpagebreak di...|\end{flushleft} Vale la pena di usare questo comando in certi casi in cui la bozza mostra un salto pagina prima dell'ultima riga di un capoverso, cioè quando viene prodotta una riga vedova; quando si corregge la bozza si cerca il testo delala riga prima di quella vedova e si inserisce la macro fra due parole qualsiasi di quel testo. È evidente che se si modifica il capoverso e non c'è più bisogno del salto pagina incondizionato, bisogna cancellare la macro da quella posizione. +Si tratta di un ambiente non flottante, per cui può apparire in mezzo al testo o anche insieme ad un altro oggetto in un ambiente flottante qualsiasi; capita, per esempio, di dover comporre una tabella di dati che si vogliono rappresentare anche con un grafico; è comodo che tabella e figura siano associati dentro lo stesso ambiente flottante in modo che rimangano sempre assieme. Il diagramma potrebbe essere dotato di una didascalia numerata con le sue spiegazioni; e qui l'ambiente \amb{SDbox} torna comodo. -In modo verticale, invece, viene calcolata la differenza fra le lunghezze \cs{pagegoal} e \cs{pagetotal}; la prima corrisponde più o meno a \cs{textheight} diminuita dello spazio riservato alle note in calce e del loro spazio di separazione dal testo; è insomma l'obbiettivo per raggiungere la giusta altezza del testo; la seconda lunghezza è la lunghezza netta del testo raggiunta fino a quel momento; se questa differenza è \emph{non maggiore} (che per la sintassi nativa di \TeX\ vuol dire \emph{minore o uguale} al numero di righe specificate di default (4 righe) o specificate mediante l'argomento facoltativo, allora viene inserito un salto pagina incondizionato. Vale la pena servirsi di questo comando in modo verticale quando un oggetto relativamente grande e indivisibile viene rinviato alla pagina successiva, così da obbligare \LaTeX\ a stiracchiare lo spazio elastico verticale al fine di giustificare la pagina che precede il salto pagina. +Per usare questo ambiente bisogna seguire una sintassi particolare che richiede argomenti non delimitati o delimitati in modo particolare, per cui è opportuno specificare la sintassi in modo dettagliato. +\begin{flushleft}\obeylines +\Bambiente{\meta{foat}} +\qquad\Bambiente{SDbox}\marg{tipo}\meta{asterisco facoltativo}% + \oarg{frazione} +\qquad\qquad\cs{SDimage}\meta{comandi per l'immagine} +\qquad\qquad\cs{SDcaption}\oarg{didascalia breve}\marg{didascalia}% + \marg{etichetta} +\qquad \Eambiente{SDfigure} +\Eambiente{\meta{float}} +\end{flushleft} +dove i vari argomenti hanno il seguente significato. +\begin{enumerate}[noitemsep] +\item + Il \meta{tipo} indica il tipo di oggetto da presentare con la + didascalia accanto; deve coincidere con uno dei nomi nome degli + ambienti che fanno flottare gli oggetti; quindi normalmente + \meta{tipo} può valere ``figure'', oppure ``table'' e, se + sono stati definiti altri ambienti flottanti con le + funzionalità del pacchetto \pack{float}, i nomi di questi + altri ambienti. Nel seguito ci si riferirà ad ogni tale + oggetto con la parola ``immagine'', sia essa davvero una + figura, o una tabella, o un algoritmo, o qualunque altro + \meta{tipo} che si possa etichettare con una didascalia. +\item + L'\meta{asterisco facoltativo} va inserito dopo il \meta{tipo}. + Senza usare l'asterisco l'oggetto formato complessivamente + dall'immagine e dalla sua didascalia viene composto dentro + una scatola larga quanto la giustezza ordinaria del testo + circostante; se invece si usa l'asterisco la scatola che + contiene l'oggetto è più larga e protrude nel margine esterno + occupando quasi tutto lo spazio che sarebbe destinato alle + note marginali; si vedano le figure~\ref{fig:logo} + e~\ref{fig:logo-largo}, la prima composta senza asterisco + e la seconda con l'asterisco. Nel seguito + chiameremo \emph{scatola SD} questa scatola che contiene + oggetto e didascalia.\footnote{Nella figura~\ref{fig:logo-largo} + lo spazio tra l'immagine e la didascalia è maggiore + di quello della figura~\ref{fig:logo}; non dipende dal fatto + che la scatola SD sia più larga, ma dal fatto che la didascalia + composta con le funzionalità di \TOPtesi si ridimensiona + automaticamente per non lasciare l'ultimo righino troppo corto.} + + \begin{figure} + \begin{SDbox}{figure} + \SDimage{\centering\includegraphics[width=\hsize]{TITlogoCropped}} + \SDcaption[Il logo di PoliTO (1)]{Il Logo del Politecnico di + Torino inserito con una didascalia a fianco}{fig:logo} + \end{SDbox}\\[\bigskipamount] + \begin{SDbox}{figure}* + \SDimage{\centering\includegraphics[width=\hsize]{TITlogoCropped}} + \SDcaption[Il logo di PoliTO (2)]{Il Logo del Politecnico di + Torino inserito con una didascalia a fianco che fuoriesce + nel margine}{fig:logo-largo} + \end{SDbox} + \end{figure} +% +\item + L'argomento \meta{frazione} serve per definire mediante + un numero decimale compreso fra 0.3 e 0.7\footnote{Usare il punto, + non la virgola, per questi dati da dare in pasto a \LaTeX.} + la frazione della larghezza della scatola SD da dedicare + alla didascalia; la parte restante della + larghezza di tale scatola viene dedicata all'immagine; in realtà + entrambe verranno diminuite dello spazio intercolonna per + lasciare una netta distinzione fra la didascalia e l'immagine. + Se per sbaglio venisse indicata una \meta{frazione} esterna + all'intervallo indicato, essa verrebbe riportata all'estremo + più vicino dell'intervallo. Ovviamente né la didascalia né + l'immagine debbono avere uno spazio orizzontale troppo piccolo + e questo è il motivo per il quale si sono definiti dei limiti + all'intervallo dentro il quale deve cadere il valore di questa + \meta{frazione}. +\item + I \meta{comandi per l'immagine} sono quei comandi che servono + per generare o per importare un'immagine; possono essere + formati da una serie di comandi di disegno programmato (con + l'ambiente \amb{picture} o con gli ambienti disponibili + con i pacchetti \pack{tikz} o \pack{pgfplots}; possono essere + tabelle costruite con gli ambienti \amb{tabular}, + \amb{tabular*}, \amb{tabularx}, \amb{widetable} e simili, + ma bisogna curare che agli ambienti di larghezza prefissata sia + specificata una larghezza che on ecceda la larghezza della + scatola; a questa ci si riferisce con il nome \cs{SDfigurewidth} + o con la macro del nucleo di \LaTeX \cs{hsize}; possono essere + formati da comandi di centratura nello spazio della + frazione destinata all'immagine; possono essere costituti + dal comando \cs{includegraphics} con le sue molteplici + opzioni. A questo proposito vale la pena di ribadire che lo + scalamento dell'immagine grafica va fatto con riferimento + alla larghezza destinata all'immagine; larghezza che + \emph{non è indicata} da \cs{linewidth} o da simili comandi + che si riferiscono solo al testo circostante, ma ai parametri + interni alla scatola destinata all'immagine, cioè la lunghezza + indicata con \cs{SDfigurewidth} oppure con \cs{hsize}. +\item + La \emph{didascalia breve} è l'indicazione facoltativa da + usare anche con \cs{caption} per inviare alla + ``lista delle figure'' un titolo sufficientemente breve, + e non l'intera didascalia, che spesso impegnerebbe più + righe; in quell'elenco bisognerebbe usare una riga sola, + massimo due, ma il valore `due' costituisce già una eccezione + alla regola. +\item + Non occorre specificare nulla in merito alla \meta{didascalia}. + Si ricorda soltanto che la didascalia è fatta di tre parti; + il prefisso con il nome e il numero seguito da qualche + segno di separazione, talvolta formato solo da spazio non + scritto; il titolo che è generalmente una frase senza verbo + e che se non è seguita da altro non termina col punto finale; + questo invece è presente se c'è la terza parte: la descrizione + (facoltativa), che contiene dettagli ulteriori relativi + all'immagine e termina con il punto finale. Nessun comando + che io conosca, anche definito in altre classi o in altri + pacchetti distingue con argomenti diversi queste tre parti; + sarebbe utile ma non ne ho creato una definizione in \TOPtesi. + +\afterpage{% +\begin{table}[!htb] +\caption[Possibilità d'uso di \cs{SDbox}]{Combinazioni possibili con le situazioni facoltative dell'uso di \cs{SDbox}} +\label{tab:SDcombinazioni} + +\centering +\begin{tabularx}{\textwidth}% + {m{0.2\textwidth} c *2{>{\centering}X}} +\toprule +\multicolumn4c{Prefisso del numero della didascalia nella scatola SD libera} \\[0.5ex] +&&\multicolumn2c{\meta{tipo}\ap{*}} \\ +\cmidrule{3-4} + & & Sì & No \cr +\midrule + & Sì & uguale a \meta{tipo} o errore\ap{*} & non numerata \cr + \raisebox{0.5\baselineskip}[0pt][0pt]{\meta{etichetta}} + & No & non numerata & non numerata \tabularnewline\\[0.5ex] +\midrule +\multicolumn4c{\parbox{0.95\textwidth}{\centering Prefisso del numero della didascalia nella scatola SD dentro un ambiente \meta{float}}} \\[0.5ex] +&&\multicolumn2c{\meta{tipo}\ap{*}} \\ +\cmidrule{3-4} + & & \meta{tipo}${}={}$\meta{float}& \meta{tipo}${}\ne{}$\meta{float}\cr +\midrule + & Sì & uguale a \meta{float} & uguale a \meta{tipo} o errore\ap{*} \cr +\raisebox{0.5\baselineskip}[0pt][0pt]{\meta{etichetta}} + & No & non numerata & non numerata \tabularnewline[2ex] +\multicolumn4{p{0.95\textwidth}}{\footnotesize\ap{*} Si manifesta un errore se \meta{tipo} è diverso dal nome di qualsiasi ambiente flottante definito.}\\ +\bottomrule +\end{tabularx} +\end{table}} +% +\item + Il terzo argomento del comando \cs{SDcaption} termina con + l'\meta{etichetta} da assegnare alla figura; questa etichetta + è quella che solitamente costituisce l'argomento del comando + \cs{label} qui non lo si usa direttamente perché ci pensa + \cs{SDcaption} a usare \cs{label} al momento opportuno e a + conservare l'etichetta in un dato registro perché i + comandi di chiusura dell'ambiente possano gestire correttamente + la scatola della didascalia e quella dell'immagine in modo + che la didascalia sia sempre verso il lato esterno della pagina; + questa quindi verrà composta a destra nelle pagine di destra e + a sinistra nelle pagine di sinistra. Componendo solo in bianca, + la didascalia cade sempre a destra. +\item + Il \meta{float} (se viene usato), il \meta{tipo} e l'\meta{etichetta} + giuocano ruoli fra loro subalterni + a quelli descritti sopra. Bisogna ricordare che la scatola SD + può contenere una didascalia numerata col suo prefisso, oppure una + didascalia non numerata e priva di prefisso. Se + l'\meta{etichetta} (facoltativa) non viene specificata la + didascalia non viene numerata se il \meta{tipo} non è noto; + se il \meta{tipo} (opzionale) viene specificato, può essere + anche diverso da quello dell'ambiente flottante circostante, + altrimenti viene assunto uguale a quello dell'ambiente + circostante; ancora la scatola SD non deve necessariamente + essere dentro un ambiente flottante. Dunque le possibilità di + numerare o non numerare la didascalia e con un prefisso + specifico sono molteplici; si veda la + tabella~\ref{tab:SDcombinazioni}. +\end{enumerate} + +Questa lunga descrizione si è resa necessaria per consentire al lettore di usare correttamente questo ambiente; esso è molto utile quando si devono inserire delle piccole figure che altrimenti lascerebbero troppo spazio ai loro fianchi; vale anche con figure che hanno un prevalente sviluppo verticale. Non è il caso di usarlo sempre, ma solo quando il contenuto lo richiede. Vale anche, come si è già detto quando una figura con didascalia va inserita assieme ad una tabella dentro l'ambiente \amb{table}, o viceversa. + +Preciso che se viene caricato il pacchetto \pack{caption}, la definizione di questo ambiente non è più disponibile perché essa fa riferimento a come è stato ridefinito il comando \cs{caption} di questa classe. Se si volessero usare ugualmente alcune figure con la didascalia a lato, si può usare il pacchetto \pack{sidecap} che ha prestazioni simili, ma con meno funzionalità rispetto a quelle qui descritte, in quanto produce solo figure (e tabelle) flottanti. + +\subsubsection{Il comando \texorpdfstring{\cs*}{}{goodpagebreak}} +Qualche annotazione va fatta per il comando \cs{goodpagebreak}. Il nucleo di \LaTeX contiene il comando \cs{goodbreak} che dovrebbe impostare un consenso di eseguire un fine pagina impostando una penalità molto piccola negativa, più o meno simile a quello che fa il comando \cs{pagebreak}\Oarg{1}. In realtà questo comando nativo di Plain \TeX, conservato in \LaTeX, di fatto non funziona come ci si aspetterebbe. Il comando di questa classe, \cs{goodpagebreak} procede in un altro modo, anche perché si comporta in modo diverso se viene specificato in modo verticale o in modo orizzontale. + +Infatti in modo orizzontale inserisce d'ufficio un comando \cs{vadjust} il cui argomento vale esattamente \cs{newpage} che agisce in modo incondizionato quando la \emph{riga} che lo contiene viene scritta nel file di uscita; si dovrà porre un minimo di attenzione a fare sì che lo spazio alla fine della macro non elimini spazi interparola, né introduca spazi spuri; quando lo si usa, quindi, sarà opportuno lasciare uno spazio prima e dopo la macro, per esempio +\begin{flushleft}\verb*|...prima \goodpagebreak di...|\end{flushleft} + +Vale la pena di usare questo comando in certi casi in cui la bozza (non interlineata) mostra un salto pagina prima dell'ultima riga di un capoverso, cioè quando viene prodotta una riga vedova; quando si corregge la bozza si cerca il testo della riga prima di quella vedova e si inserisce la macro fra due parole qualsiasi di quel testo. È evidente che se si modifica il capoverso e non c'è più bisogno del salto pagina incondizionato, bisogna cancellare la macro da quella posizione. + +In modo verticale, invece, viene calcolata la differenza fra le lunghezze \cs{pagegoal} e \cs{pagetotal}; la prima corrisponde più o meno a \cs{textheight} diminuita dello spazio riservato alle note in calce e del loro spazio di separazione dal testo; è insomma l'obbiettivo per raggiungere la giusta altezza del testo; la seconda lunghezza è la lunghezza netta del testo raggiunta fino a quel momento; se questa differenza è \emph{non maggiore} (che per la sintassi nativa di \TeX vuol dire \emph{minore o uguale}) al numero di righe specificate di default (4 righe), o specificate mediante l'argomento facoltativo, allora viene inserito un salto pagina incondizionato. Vale la pena servirsi di questo comando in modo verticale quando un oggetto relativamente grande e indivisibile viene rinviato alla pagina successiva, così che obbligherebbe \LaTeX a stiracchiare lo spazio elastico verticale al fine di giustificare la pagina che precede il salto pagina. -Questa spiegazione contorta descrive una situazione piuttosto frequente che si manifesta prima dei titoli di sezioni, sottosezioni, e simili. Infatti ogni titolo è separato da un certo spazio dal testo che inizia la sezione e siccome le righe orfane sono tipograficamente molto sgradevoli (meno delle righe vedove, ma comunque sgradevoli), il titolo della sezione deve essere seguito da almeno due righe di testo. Quindi il titolo della sezione, lo spazio verticale di separazione e le due righe di testo formano un blocco di almeno 4~righe; se non ci stanno in fondo alla pagina, \LaTeX\ manda tutto questo blocco alla pagina successiva, stiracchiando gli spazi verticali della pagina corrente. Mettendo la macro \cs{goodpagebreak} prima del titolo di quella sezione che viene rinviata alla pagina successiva, si produce una pagina mozza, ma non troppo, e senza spazi stiracchiati, seguita da una pagina che inizia con il titolo della nuova sezione; ecco come fare. +Questa spiegazione contorta descrive una situazione piuttosto frequente che si manifesta prima dei titoli di sezioni, sottosezioni, e simili. Infatti ogni titolo è separato da un certo spazio dal testo che inizia la sezione e siccome le righe orfane sono tipograficamente molto sgradevoli (meno delle righe vedove, ma comunque sgradevoli), il titolo della sezione deve essere seguito da almeno due righe di testo. Quindi il titolo della sezione, lo spazio verticale di separazione e le due righe di testo formano un blocco di almeno 4~righe; se non ci stanno in fondo alla pagina, \LaTeX manda tutto questo blocco alla pagina successiva, stiracchiando gli spazi verticali della pagina corrente. Mettendo la macro \cs{goodpagebreak} prima del titolo di quella sezione che viene rinviata alla pagina successiva, si produce una pagina mozza, ma non troppo, e senza spazi stiracchiati, seguita da una pagina che inizia con il titolo della nuova sezione; ecco come fare. \begin{verbatim} ... fine dell'ultimo capoverso. @@ -2221,87 +3266,122 @@ Questa spiegazione contorta descrive una situazione piuttosto frequente che si m \section{...} \end{verbatim} -L'algoritmo non è infallibile, ma funziona quasi sempre; può talvolta succedere che il fine pagina produca una pagina quasi vuota e la nuova sezione cominci dopo questa pagina; questo inconveniente è causato dal modo asincrono con cui vengono composte le pagine del file di uscita rispetto alla sequenza di capoversi che creano la bozza non impaginata; in sostanza il funzionamento asincrono fra la composizione del testo, il \emph{paragraph builder} e il \emph{page builder}. La cosa è difficile da spiegare in questa documentazione e la si rimanda alla guida tematica \emph{Il \LaTeX\ Reference Manual commentato} liberamente scaricabile dal sito \url{www.guitex.org}. Ma in questi rari casi la soluzione consiste nello spostare \cs{goodpagebreak} in modo orizzontale fra le parole della penultima riga prima di questo salto pagina mal gestito. -Il lettore non si scoraggi: questi sono ritocchi destinati a rifinire la tesi quando la si è sostanzialmente completata. In questa documentazione non ho mai usato \cs{goodpagebreak} in modo orizzontale e l'ho usato in modo verticale solo due tre volte. +L'algoritmo non è infallibile, ma funziona come previsto se il comando, come esemplificato sopra, viene inserito in modo verticale prima della nuova sezione. Al massimo, a secondo del titolo della nuova sezione potrebbe essere necessario specificare un numero di righe superiore a~4, magari~5 o~6, senza eccedere; ma quasi sempre il valore~4 è sufficiente. In alcuni rari casi potrebbe essere necessario spostare \cs{goodpagebreak} fra le parole della terzultima riga del capoverso precedente. +\begin{wrapfigure}[10]{o}[0.6\marginparwidth]{40mm} +\includegraphics[height=30mm, width=40mm,keepaspectratio]{Logotre} +\caption[Logo di fantasia]{\raggedright Logo di fantasia} +\end{wrapfigure} +Il lettore non si scoraggi: questi sono ritocchi destinati a rifinire la tesi quando la si è sostanzialmente completata. Non ho mai usato \cs{goodpagebreak} in modo orizzontale in questa documentazione; l'ho usato in modo verticale solo due o tre volte. -\section{Comandi per il frontespizio} -\textcolor{red}{Questo paragrafo descrive i comandi per comporre il frontespizio con il pacchetto \pack{top"front}, nativo della classe \class{toptesi}. Se si vuole comporre il frontespizio con un altro pacchetto, non si usino questi comandi ma quelli descritti nella documentazione del pacchetto alternativo. Naturalmente si sarà specificata l'opzione \opt{noTOPfront} fra le opzioni della classe, al fine di evitare conflitti con i pacchetti esterni.} +Infine il comando \cs{captionof} serve per assegnare una didascalia ad un oggetto che avrebbe potuto, ma che non è stato composto all'interno di un ambiente mobile come \amb{figure} o \amb{table}. +Il pacchetto \pack{caption} lo definisce, ma se l'utente di \TOPtesi non lo ha caricato, questo comando non sarebbe disponibile. Invece \TOPtesi lo definisce nel caso che, appunto, non sia disponibile. La sua sintassi è semplice: \cs{captionof}\marg{nome di float}\marg{didascalia}. Tuttavia l'abitudine di inserire dei (piccoli) oggetti con didascalia in ambienti fissi in display all'interno del testo, deriva dal desiderio di imitare il comportamento dei word processor. Io ritengo che non sia una buona pratica, ma forse è solo una questione di gusti personali; esistono altri modi per inserire (piccoli) oggetti più o meno flottanti e dotati della loro didascalia ricorrendo a pacchetti esterni come \pack{wrapfig} che permette di inserire un oggettino flottante con tanto di didascalia sia nel margine, sia nel testo, ma con il testo che lo avvolge; oppure usando il pacchetto \pack{sidecap} e i suoi ambienti (vedi documentazione), che permette di comporre la didascalia a fianco invece che sotto o sopra l'oggetto; il fatto di avere disponibile il lato della figura ed eventualmente il margine della pagina per disporvi la didascalia permette di risparmiare un poco di spazio verticale o di sfruttare meglio lo spazio a fianco di una figura relativamente stretta. -{\tolerance=3000\textcolor{red}{I comandi per la composizione del frontespizio \emph{non possono} essere inseriti nel preambolo, cioè prima di \cs{begin}\Arg{document}, qualunque sia il programma di compilazione usato, perché nessuno di quei comandi è definito prima di che il modulo \pack{topfront} sia stato eventualmente caricato, il che avviene solo al momento di eseguire il comando \cs{begin}\Arg{document}; se si specifica l'opzione \opt{noTOPfront} il modulo \pack{topfront} non viene nemmeno caricato.}\par} +\section{Comandi per il frontespizio} +\textcolor{red}{Questo paragrafo descrive i comandi per comporre il frontespizio con i moduli di \TOPtesi (vedi la tabella~\ref{tab:tipotesi}). Se si vuole comporre il frontespizio con un altro pacchetto, non si usino questi comandi ma quelli descritti nella documentazione del pacchetto alternativo. Naturalmente si sarà specificata l'opzione giusta, o \chiave{tipotesi}{custom} o \chiave{tipotesi}{frontespizio}, fra le opzioni della classe.} -È per questo che si consiglia di usare facoltativamente il file di configurazione e comunque tutti i comandi necessari per il frontespizio, non presenti nel file di configurazione, all'interno dell'ambiente \amb{frontespizio} o \amb{frontespizio*}. In questo modo non si corre il rischio di inserirli nel preambolo. Se poi si usa un pacchetto esterno per comporre il frontespizio, a maggior ragione bisogna specificare i comandi necessari come specificato nella documentazione di quel pacchetto esterno. +{\tolerance=3000\textcolor{red}{I comandi per la composizione del frontespizio \emph{non possono} essere inseriti nel preambolo, cioè prima di \Bambiente{document}, qualunque sia il programma di compilazione usato, perché nessuno di quei comandi è definito prima che il modulo scelto sia stato eventualmente caricato, il che avviene solo al momento di eseguire il comando \Bambiente{document}.}\par} -Con le variazioni di TOPtesi a partire dalla versione 5.85, lo si ripete, la cosa migliore da fare è quella di usare questi comandi dentro uno degli ambienti \amb{frontespizio} o \amb{frontespizio*}; si pigliano due piccioni con una fava; siccome questi ambienti compongono direttamente il frontespizio, essi devono trovarsi dopo \cs{begin}\Arg{document} e questo va bene sia per \pdfLaTeX\ sia per \LuaLaTeX. +È per questo che si consiglia di usare facoltativamente il file di configurazione e/o di inserire i comandi necessari per il frontespizio, non presenti nel file di configurazione, all'interno degli ambienti destinati alla composizione dei vari frontespizi. In questo modo non si corre il rischio di inserirli nel preambolo. Se poi si usa un pacchetto esterno per comporre il frontespizio, a maggior ragione bisogna specificare i comandi necessari come specificato nella documentazione di quel pacchetto esterno. I comandi di questa sezione possono essere introdotti in un ordine qualunque, ma è più chiaro se sono introdotti nell'ordine in cui sono elencati nelle tabelle~\ref{tab:front1}-\ref{tab:front4} riportate dalla pagina~\pageref{tab:front1} alla pagina~\pageref{tab:front4}. -Essi possono anche essere scritti nel file di configurazione -\meta{mainfile}\texttt{.cfg}, anzi, direi che è meglio che siano inseriti -in quel file, lasciando nel preambolo solo quelli che cambiano i -valori di default o che inseriscono informazioni non presenti di -default. +Alcuni comandi sono generali; altri si riferiscono specificatamente alla monografia di laurea, o alla tesi laurea, o alla dissertazione dottorato. In una colonna di queste tabelle vi è indicato la sigla del modulo per il quale quel comando è valido; se manca questa sigla, il comando vale per tutti i moduli. Le sigle sono `t' per la triennale, `m' per la magistrale, `d' per la dottorale, `S' per la tesi dottorale della ScuDo, `n' per usare il modulo di default, e `s' per la tesina della scuola secondaria. -Alcuni comandi sono generali; altri si riferiscono specificatamente -alla monografia di laurea, o alla tesi laurea, o alla dissertazione di -dottorato. +%%%%%%%% SI PUÒ METTERE QUI QUALCHE SPIEGAZIONE PER LA TESI DI ScuDo -La differenza è che generalmente la monografia di laurea non ha +La differenza è che generalmente la tesi di laurea triennale non ha un relatore; se nella vostra facoltà anche la monografia di laurea -ha un relatore comportatevi come per la tesi di laurea. Se nel -vostro ateneo o nella vostra facoltà succede così, allora inserite -nel file di configurazione il seguente comando -\begin{verbatim} -\TesidiLaurea{Tesi di Laurea} -\end{verbatim} -Per la tesi del secondo ciclo aggiungete dopo la parola ``laurea'' l'indicazione ``magistrale'' (oppure ``specialistica'', se così è l'uso nel vostro ateneo). +ha un relatore comportatevi come per la tesi di laurea. -Similmente cambiate le stringhe inserite dai vari comandi facendo ampio uso -di quelli esposti nelle tabelle~\ref{tab:front1}--\ref{tab:front4}; in -particolare consiglierei di inserirli nel file di configurazione, specialmente se devono -rappresentare delle modifiche ``permanenti''. \textcolor{red}{Usateli -anche per predisporre quelle stringhe in una lingua diversa -dall'italiano}. +Similmente cambiate le stringhe inserite dai vari comandi facendo ampio uso di quelli esposti nelle tabelle~\ref{tab:front1}--\ref{tab:front4}; in particolare consiglierei di inserirli nel file di configurazione, specialmente se devono rappresentare delle modifiche ``permanenti''. \textcolor{red}{Sono da usare anche per predisporre quelle stringhe in una lingua diversa dall'italiano}. Per comporre questo testo si è usata la classe \class{toptesi}, e si è supposto di scrivere una monografia; tuttavia alcune delle stringhe di default non sono adeguate a questo uso, quindi il preambolo di questo documento contiene le seguenti specificazioni che illustrano l'impiego di diversi fra i comandi descritti nelle -tabelle citate\footnote{In verità ho imbrogliato un poco. I comandi qui elencati producono un frontespizio molto simile a quello effettivamente presente in questo documento, ma non esattamente identico; in fondo questo documento non è una vera monografia di laurea, quindi mi sono permesso qualche lieve ``abbellimento''.}: -\begin{verbatim}\begin{frontespizio} - \NomeMonografia{Manuale d'uso} - \monografia{La classe \textsf{TOPtesi}} - \sottotitolo{Per comporre le tesi al Poli\\ - e in molte altre università} - \candidato{Claudio Beccari} - \sedutadilaurea{Versione \fileversion} - \ateneo{}% senza il nome che è già contenuto nel logo - \logosede{logo_blu} - \end{frontespizio} -\end{verbatim} +tabelle citate: +\begin{Verbatim}[fontsize=\footnotesize] +\begin{ThesisTitlePage} +\GetFileInfo{toptesi.cls}% per recuperare versione e data della classe +\let\classvers\fileversion \let\classdate\filedate +\logosede{TITlogoCropped} +\NomeElaborato{Manuale d'uso} +\titolo{Il pacchetto \TOPtesi\\ +\textnormal{\normalsize Versione\ \classvers\ del \classdate}} +\TitoloListaCandidati{} +\sottotitolo{Per comporre tesi al Politecnico di Torino + \\e in molte altre università\\[1ex] +...} +\GetFileInfo{toptesi-it.tex}% per recuperare versione e data di questa +% documentazione +\sedutadilaurea{Documentazione: versione \fileversion\ del \filedate} +\retrofrontespizio{Questo testo è libero secondo le condizioni +...}. + +\bigskip + +\noindent Composto con \ifPDFTeX \pdfLaTeX +\else \ifXeTeX\XeLaTeX +\else\ifLuaTeX\LuaLaTeX +\else un programma diverso\fi\fi\fi\ +il \today \vspace*{5\baselineskip}} +\end{ThesisTitlePage} +\end{Verbatim} + +Naturalmente per usare l'ambiente \amb{ThesisTitlePage} ho usato il modulo per le tesi triennali/monografie specificando anche \chiave{tipotesi}{monografia} fra le opzioni della classe. Inoltre ho usato il comando \cs{titolo} che, con il pacchetto di default \pack{topfront}, per le monografie non è disponibile. \begin{figure}[p]\centering -\includegraphics[height=.9\textheight]{FrontespiziAssemblati1} +\includegraphics[height=.9\textheight]{FrontespiziAssemblati} \caption{I quattro frontespizi fondamentali}\label{fig:frontespizi} \end{figure} Vale la pena di fare le seguenti osservazioni. -\begin {enumerate} -\item Se si usa l'ambiente \amb{frontespizio} o il comando \cs{frontespizio} il logo viene messo in testa; se si usa la forma asteriscatadel comando o l'ambiente \amb{frontespizio*} il logo viene messo nella metà inferiore della pagina del titolo. Se il logo dell'ateneo contiene per disteso il logotipo, cioè il nome per disteso, allora l'uso del comando \cs{ateneo} contenente il nome generico dell'ateneo implica una ridondanza di informazioni che potrebbe anche essere antiestetica; quindi -se si usa il comando \cs{ateneo} sarebbe meglio usare l'ambiente \amb{frontespizio*}, e viceversa. Ma questa possibilità di scelta per la posizione del logo e la presenza del nome dell'ateneo consente di rispettare le diverse specifiche indicate dalle segreterie didattiche degli atenei; si veda la tabella riassuntiva~\ref{tab:modalitaperfrontespizi} nella pagina~\pageref{tab:modalitaperfrontespizi}. +\begin {enumerate}[noitemsep] +\item Se per comporre la pagina del titolo si usa un ambiente senza asterisco, il logo viene messo in testa; se si usa la forma asteriscata il logo viene messo nella metà inferiore della pagina del titolo. Se il logo dell'ateneo contiene per disteso il logotipo, cioè il nome per disteso, allora l'uso del comando \cs{ateneo} contenente il nome generico dell'ateneo implica una ridondanza di informazioni che potrebbe anche essere antiestetica; quindi se si usa il comando \cs{ateneo} sarebbe meglio usare un ambiente asteriscato, e viceversa. Ma questa possibilità di scelta per la posizione del logo e la presenza del nome dell'ateneo consente di rispettare le diverse specifiche indicate dalle segreterie didattiche degli atenei; si veda la tabella riassuntiva~\ref{tab:modalitaperfrontespizi} nella pagina~\pageref{tab:modalitaperfrontespizi}. +% +\item Il comando \cs{titolo} non è disponibile per la monografia nel modulo di default \pack{topfront}, mentre negli altri moduli esso è definito e si può usare tranquillamente anche per la monografia. % -\item \cs{titolo} non deve -essere usato per la monografia (ma \cs{sottotitolo} si -può usare, come si è fatto per il frontespizio di questo -manuale); per la monografia il comando \cs{monografia} -imposta sia il titolo sia le altre informazioni che distinguono la -monografia da una tesi di laurea magistrale. +\item Il comando \cs{titolo} accetta un argomento facoltativo, la versione breve del titolo del frontespizio; serve con \chiave{stile}{classica} e l'opzione \opt{autoretitolo}, dove il titolo breve va nella testatina delle pagine; se il titolo del frontespizio fosse troppo lungo la testatina verrebbe molto, molto male! % -\item Il comando \cs{titolo} accetta un argomento facoltativo, la versione breve del titolo del frontespizio; serve con l'opzione \opt{classica} e l'opzione \opt{autoretitolo}, dove il titolo breve va nella testatina delle pagine; se il titolo del frontespizio fosse troppo lungo la testatina verrebbe molto male! +\item Se non si danno i comandi \cs{relatore}, \cs{secondorelatore} +e \cs{terzorelatore} non viene scritto nulla nel frontespizio che riguardi questi ruoli; di solito né per la dissertazione di dottorato né per la monografia si hanno le figure dei relatori, ma ``di solito'' non vuol dire né ``sempre'' né ``mai''. % -\item Non dare i comandi \cs{relatore}, \cs{secondorelatore} -e \cs{terzorelatore} né per la dissertazione di dottorato né per la monografia. +\item Solo con l'opzione \chiave{stile}{classica} si può ottenere la separazione fra l'intestazione e il nome del relatore, da una parte, e l'intestazione e i nomi dei correlatori. Se i correlatori, che vanno introdotti come se fossero il secondo e il terzo relatore, fossero più di due, allora si sfrutti il trucco seguente (come già, detto valido solo per l'opzione \chiave{stile}{classica}): +\begin{verbatim} +% Solo con "stile=classica" e solo per laurea magistrale +\relatore{prof.~Giovanni Bianchi} +\secondorelatore{ing.~Lucio Verdi} +\terzorelatore{\tabular[t]{@{}l} +dott.~Mario Rossi\\[0.5ex] +dott.~Piero Neri +\endtabular} +\end{verbatim} + +Apparirà l'indicazione Correlatori prima del nome di Verdi seguita dai nomi dei tre correlatori: Verdi, Rossi e Neri. + +D'aḹtra parte si può anche usare, adattandolo alle proprie esigenze, il metodo indicato nella pagina~\pageref{proc:titlepage}, dove la tabella dei relatori e correlatori è composta ``a mano''; per esempio, se si volesse indicare una lista di correlati senza l'opzione \chiave{stile}{classica}, oppure se si volesse aumentare il numero dei relatori oltre il tre, basta inserire la tabella al posto dell'argomento del secondo o del terzo componente della lista, in questo modo (senza l'opzione \chiave{stile}{classica}): +\begin{verbatim} +\AdvisorName{Relatore} +\relatore{prof.~Giovanni Bianchi} +\secondorelatore{\tabular{@{}l}% +\bfseries Correlatori:\\[0.5ex] +ing.~Lucio Verdi\\[0.5ex] +dott.~Mario Rossi\\[0.5ex] +dott.~Piero Neri +\endtabular} +\end{verbatim} +oppure con quattro relatori (sempre senza l'opzione \chiave{stile}{classica}): +\begin{verbatim} +\relatore{prof.~Giovanni Bianchi} +\secondorelatore{ing.~Lucio Verdi} +\terzorelatore{\tabular{@{}l} +dott.~Mario Rossi\\ +dott.~Piero Neri +\endtabular} +\end{verbatim} +Il file d'esempio \file{toptesi-example.tex}, da compilare sia con, sia senza l'opzione \chiave{stile}{classica}, contiene diversi modi di usare queste impostazioni. % \item L'indicazione della materia su cui si svolge la tesi di laurea o di dottorato non viene normalmente indicata se non, talvolta, nelle facoltà umanistiche. % @@ -2309,411 +3389,659 @@ e \cs{terzorelatore} né per la dissertazione di dottorato né per la monografia \begin{flushleft}\obeylines \cs{candidato}\marg{Nome Cognome} oppure -\cs{candidato}\marg{Nome Cognome \textnormal{\cs{IDN}} numero di matricola} +\cs{candidato}\marg{Nome Cognome}\oarg{numero di matricola} \end{flushleft} -Il \meta{numero di matricola} non è quasi mai necessario, quindi la sequenza \cs{IDN} viene inserita solo se si vuole indicare anche il numero di matricola. La macro \cs{IDN} è predefinita per contenere la stringa \cs{\char92}\cs{quad} matricola:\cs{space}; può venire ridefinita per contenere il nome dell'\emph{Identification number} oppure semplicemente \emph{ID}, e i due punti prima del comando \cs{space} potrebbero essere sostituiti con qualche altro segno o semplicemente eliminati. Ovviamente questo è possibile anche per il comando \cs{candidata}. +Il \meta{numero di matricola} non è quasi mai necessario, quindi l'argomento facoltativo viene usato solo se si vuole indicare anche il numero di matricola perché richiesto dalle prescrizioni dell'ateneo. Se presente, il \meta{numero di matricola} viene composto preceduto da una etichetta ``matricola'' generata dal comando interno \cs{IDlabel} che è predefinito nel modo seguente: +\begin{verbatim*} +\newcommand*\IDlabel{\\\quad matricola\ }} +\end{verbatim*} +e questa definizione corrisponde a scrivere l'etichetta e il numero con un rientro nella riga sottostante a quella del nome del candidato. Il comando può venire ridefinito dall'utente nel modo che crede più opportuno sia per scrivere l'informazione sulla stessa riga, sia per sostituire la parola ``matricola'' con un'altra, eventualmente in un'altra lingua. Avere il nome del candidato separato dal suo numero di matricola, permette di gestire quest'ultimo separatamente dal primo, in modo che, per esempio, il numero appaia nell frontespizio, ma non appaia nella testatina di sinistra quando è in vigore l'opzione \opz{autoretitolo} nello \chiave{stile}{classica}. % -\item Per la monografia l'informazione della data può essere omessa se non c'è una data per la presentazione. +\item Per la triennale/monografia l'informazione della data può essere omessa se non c'è una data per la presentazione. % -\item Il pacchetto TOPtesi inizialmente veniva distribuito con un certo numero di loghi di università italiane e straniere. La politica di \TeXLive è quella di distribuire solo materiale con licenza libera e incondizionata; i loghi delle varie università certamente non lo sono, quindi i loghi non vengono più distribuiti con \class{toptesi}. Ogni laureando è quindi tenuto a chiedere il logo alla sua università accettandone tutte le limitazioni d'uso che l'università potrebbe imporgli. +\item \TOPtesi inizialmente veniva distribuito con un certo numero di loghi di università italiane e straniere. La politica di \TeXLive è quella di distribuire solo materiale con licenza libera e incondizionata; i loghi delle varie università certamente non lo sono, quindi i loghi non vengono più distribuiti con \class{toptesi}. Ogni laureando è quindi tenuto a chiedere il logo alla sua università accettandone tutte le limitazioni d'uso che l'università potrebbe imporgli. \end{enumerate} -Per quanto riguarda i loghi, la loro inserzione implica l'uso del pacchetto \pack{graphicx}, che \class{toptesi} carica di default; specificare nuovamente quel pacchetto non produce nessun danno, perché \LaTeX\ controlla da solo se lo deve caricare o non lo deve ricaricare. Però, evidentemente, lo si è già detto all'inizio, non è bene caricare una seconda volta i pacchetti che sono già stati caricati +Per quanto riguarda i loghi, la loro inserzione implica l'uso del pacchetto \pack{graphicx}, che \class{toptesi} carica di default; specificare nuovamente quel pacchetto non produce nessun danno, perché \LaTeX controlla da solo se lo deve caricare o non lo deve ricaricare. Però, evidentemente, lo si è già detto all'inizio, non è bene caricare una seconda volta i pacchetti che sono già stati caricati -\textcolor{red}{Per i formati dei file grafici da includere, le versioni recenti di \pdfLaTeX, di \XeLaTeX\ e di \LuaLaTeX\ accettano i formati PDF, PNG, JPG, MPS, EPS. La cosa è scritta a chiare lettere nella guida \file{grfguide.pdf} (già presente nella propria installazione del sistema \TeX\ aggiornata e completa), ma è un fatto che viene dimenticato troppo spesso e che obbliga a cercare aiuto da chi ne sa di più, compagni o professori; ma che anche loro talvolta dimenticano.} +\textcolor{red}{Per i formati dei file grafici da includere, le versioni recenti di \pdfLaTeX, di \XeLaTeX e di \LuaLaTeX accettano i formati PDF, PNG, JPG, MPS, EPS. La cosa è scritta a chiare lettere nella guida \file{grfguide.pdf} (già presente nella propria installazione del sistema \TeX aggiornata e completa), ma è un fatto che viene dimenticato troppo spesso e che obbliga a cercare aiuto da chi ne sa di più, compagni o professori, ma che anche loro talvolta dimenticano.} \textcolor{red}{Esistono programmi per passare da un formato all'altro, ma anche disponendo di quei programmi e conoscendo i vantaggi e gli svantaggi di un formato rispetto ad un altro, questa operazione viene dimenticata troppo spesso, perché troppo spesso ci si dimentica di queste limitazioni sui formati.} Per questo io preferisco usare sempre e solamente i compilatori -\pdfLaTeX, \XeLaTeX\ o \LuaLaTeX. L'unico inconveniente è che non posso usare direttamente il pacchetto \pack{PSTricks}; ma finora me la sono cavata molto -bene anche senza le prestazioni di questo bellissimo pacchetto. D'altra parte esistono pacchetti che consentono di usare \pack{PSTricks} anche con \pdfLaTeX e gli altri programmi; l'operazione diventa un po' più complicata ma se ne occupa direttamente il programma di tipocomposizione usato; l'utente deve solo caricare uno di quei pacchetti e seguirne le indicazioni specificate nella sua documentazione (vedi per esempio il pacchetto \pack{pdftricks} già presente in ogni installazione aggiornata e completa di \TeXLive; documentazione: \texttt{texdoc pdftricks}). +\pdfLaTeX, \XeLaTeX\ o \LuaLaTeX. L'unico inconveniente è che non posso usare direttamente il pacchetto \pack{PSTricks}; ma finora me la sono cavata molto bene anche senza fruire delle prestazioni di questo bellissimo pacchetto. D'altra parte esistono pacchetti che consentono di usare \pack{PSTricks} anche con \pdfLaTeX e gli altri programmi; l'operazione diventa un po' più complicata ma se ne occupa direttamente il programma di tipocomposizione usato; l'utente deve solo caricare uno di quei pacchetti e seguirne le indicazioni specificate nella sua documentazione (vedi per esempio il pacchetto \pack{pdftricks} già presente in ogni installazione aggiornata e completa di \TeXLive; documentazione: \texttt{texdoc pdftricks}). +\goodpagebreak \section{Altri comandi} -La classe \class{toptesi} richiede l'uso di altri comandi il più notevole dei quali è senza dubbio \cs{frontespizio} e la sua variante \cs{frontespizio*} von i rispettivi ambienti; si veda la tabella riassuntiva~\ref{tab:modalitaperfrontespizi} nella pagina~\pageref{tab:modalitaperfrontespizi}). È un comando che non vuole argomenti e che va dato all'inizio, subito dopo l'apertura del documento o all'inizio del primo file incluso dal master file. Si veda comunque la tabella~\ref{tab:comandi}. Ricordo che i comandi \cs{frontespizio} e \cs{frontespizio*} sono definiti dal pacchetto \pack{topfront}; se si vuole comporre il frontespizio con un pacchetto esterno, si è specificata l'opzione \opt{noTOPfront}, che inibisce il caricamento del pacchetto, perciò questi comandi non sono più disponibili. +La classe \class{toptesi} richiede l'uso di altri comandi; con i suoi moduli specializzati compone i frontespizi con ambienti adatti allo scopo; con il suo modulo di default \pack{topfront} ci sono diversi ambienti e programmi per comporre i vari frontespizi dei diversi tipi di tesi. Diciamo che questo modulo di default andrebbe usato il meno possibile perché è conservato per retrocompatibilità e come fallback quando non si usano correttamente le opzioni relative alla chiave \chiave{tipotesi} -La differenza fra i due comandi consiste nel fatto che \cs{frontespizio} compone il frontespizio della tesi come richiesto dal Politecnico di Torino, con il logo dell'ateneo in testa alla pagina. Invece la variante asteriscata compone il frontespizio scrivendo in testa il nome dell'ateneo e mettendo il logo nella metà inferiore della gabbia di stampa. Il risultato si vede chiaramente nella figura~\ref{fig:frontespizi}. - -Merita sottolineare che il formato richiesto dal Politecnico di Torino va bene nel senso che il logo di quell'ateneo contiene già il suo logotipo\footnote{Il logo del Politecnico di Torino è formato da due parti accostate con un piccolo spazio e un filetto verticale fra le due; nella parte di sinistra compare il marchio dell'ateneo, il solito simbolo tondo, mentre la parte di destra contiene il logotipo, cioè il nome \textsf{POLITECNICO DI TORINO} su due righe scritto con certi font e con un colore particolare; font e colore non possono venire modificati, pena la violazione d'uso del logo.}. Sarebbe quanto mai inestetico se in testa al frontespizio comparisse due volte il nome del Politecnico; quindi non è strano che l'intestazione della tesi contenga formalmente solo il logo. Lo stesso potrebbe essere fatto, per esempio, con i loghi di diverse università, per esempio quello dell'Università di Torino, di Ca' Foscari a Venezia, di Bologna, dell'Università Cattolica, di Padova, oltre al logo del Politecnico di Milano, giusto per citarne alcuni, perché contengono il marchio e il logotipo. +Tuttavia se si è costretti ad usare quei comandi o quegli ambienti si usi solo l'ambiente \amb{frontespizio} con o senza asterisco integrato nel nome, inserendo i dati relativi al frontespizio all'interno dell'ambiente. + +Merita sottolineare che il formato richiesto dal Politecnico di Torino va bene nel senso che il logo di quell'ateneo contiene già il suo logotipo\footnote{Il logo del Politecnico di Torino è formato da due parti accostate con un piccolo spazio; nella parte di sinistra compare il marchio dell'ateneo, il solito simbolo tondo, mentre la parte di destra contiene il logotipo, cioè il nome \textsf{POLITECNICO DI TORINO} su due righe scritto con certi font e con un colore particolare; font e colore non possono venire modificati, pena la violazione d'uso del logo.}. Sarebbe quanto mai inestetico se in testa al frontespizio comparisse due volte il nome del Politecnico; quindi non è strano che l'intestazione della tesi contenga formalmente solo il logo. Lo stesso potrebbe essere fatto, per esempio, con i loghi di diverse università, per esempio quello dell'Università di Torino, di Ca' Foscari a Venezia, di Bologna, dell'Università Cattolica, di Padova, oltre al logo del Politecnico di Milano, giusto per citarne alcuni, perché già contengono sia il marchio sia il logotipo. Per alcune università, come quella di Urbino, sono disponibili sia il logo col solo marchio, sia il logo completo di logotipo. Nonostante questo alcune facoltà"/scuole"/dipartimenti richiedono l'uso del logo completo in testa alla pagina e la ripetizione del nome dell'ateneo subito sotto. È un vero peccato che quell'ateneo non abbia concordato un tipo standard di frontespizio a cui tutte le facoltà dovrebbero adeguarsi. -Per le università che hanno un nome proprio, come per esempio \emph{Tor Vergata} per la seconda università di Roma ma, che io sappia, non hanno il logotipo nel loro logo, sarebbe quanto mai inestetico usare il logo sopra, in testa, poi il nome proprio, poi tutto il resto; io non consiglierei mai di usare \cs{frontespizio} in questi casi, ma userei solo \cs{frontespizio*} o l'ambiente corrispondente. +Per le università che hanno un nome proprio, come per esempio \emph{Tor Vergata} per la seconda università di Roma ma, che io sappia, non hanno il logotipo nel loro logo, sarebbe quanto mai inestetico usare il logo sopra, in testa, poi il nome proprio, poi tutto il resto; io non consiglierei mai di usare l'ambiente normale in questi casi, ma userei solo quello asteriscato. Nella figura~\ref{fig:frontespizi} nella pagina~\pageref{fig:frontespizi} sono riportati quattro esempi di frontespizi relativi ai tipi di tesi seguenti: \begin{itemize}[noitemsep] \item tesi di laurea specialistica o magistrale, \item dissertazione di dottorato -\item tesi di laurea del Vecchio Ordinamento, +\item tesi di laurea del vecchio ordinamento, \item monografia di laurea, \end{itemize} Con questi modelli lo studente che compila la sua tesi usando \textsf{TOPtesi} può scegliere la versione che fa al caso suo e sa anche che cosa deve configurare per eseguire alcuni cambiamenti. -%\clearpage +\clearpage +{% \begin{table}[hb]\caption{Comandi ulteriori di \class{toptesi}}\label{tab:comandi} -\def\V{\rule{0pt}{2.5ex}} +\def\V{\rule{0pt}{2.5ex}}\tabcolsep=4pt \def\d{\discretionary{\%}{\rule{1em}{0pt}}{}}\let\t\ttfamily \makebox[\textwidth]{\footnotesize% -\begin {tabular}{p{.25\textwidth}p{.25\textwidth}p{.4\textwidth}} +\begin {tabularx}{\linewidth}{p{.25\textwidth}@{\tabcolsep 5pt}cp{.25\textwidth}X} \hline -Comando o ambiente\V & Default & Scopo \\[.5ex] +Comando o ambiente\V & sigla & Default & Scopo \\[.5ex] \hline -\cs{figurespagetrue}&\cs{figurespagefalse}&\V Fa o non fa stampare l'indice delle +\cs{figurespagetrue}&&\cs{figurespagefalse}&\V Fa o non fa stampare l'indice delle figure\\ -\cs{tablespagetrue}&\cs{tablespagefalse}&Fa o non fa stampare l'indice delle tabelle\\ -\amb{frontespizio} & & Contiene i dati per il frontespizio e l'eventuale +\cs{tablespagetrue}&&\cs{tablespagefalse}&Fa o non fa stampare l'indice delle tabelle\\ +\amb{frontespizio} &n& & Contiene i dati per il + frontespizio e l'eventuale retrofrontespizio e lo compone - con i loghi nella testatina\\ -\amb{frontespizio*} & & Contiene i dati per il frontespizio e l'eventuale + con i loghi nella testatina\\ +\amb{frontespizio*} &n& & Contiene i dati per il + frontespizio e l'eventuale retrofrontespizio e lo compone - con il loghi nella parte bassa della pagina\\ -\cs{frontespizio} & nessuno & Fa stampare il frontespizio ed eventualmente il - retrofrontespizio; il logo dell'ateneo appare in - testa alla pagina \\ -\cs{frontespizio*} & nessuno & Fa stampare il frontespizio ed eventualmente il - retrofrontespizio; il logo dell'ateneo appare in - basso nella pagina; vedi ta tabella - riassuntiva~\ref{tab:modalitaperfrontespizi}\\ -\cs{sommario} &nessuno & Inizia un capitolo non numerato che ha per - intestazione la parola SOMMARIO (anche in lingua)\\ -\cs{ringraziamenti}&nessuno & Inizia un capitolo non numerato - che ha per intestazione la parola - RINGRAZIAMENTI (anche in lingua)\\ -\cs{indici} &nessuno & Fa stampare l'indice generale, e, - se sono stati dati i comandi - \texttt{\char92figures\-page\-true} e - \texttt{\char92tables\-page\-true}, - anche gli indici delle figure e delle - tabelle.\\ -\cs{paginavuota} &nessuno & Emette nel file di uscita una pagina - totalmente bianca, senza nemmeno il numero - della pagina. \\ -\cs{NoteWhiteLine} &nessuno & Anche questo comando richiestomi a gran - voce e serve per mettere in nota una riga - bianca.\\[.5ex] + con il loghi nella parte bassa + della pagina\\ +\cs{frontespizio} &n& nessuno & Fa stampare il frontespizio ed + eventualmente il + retrofrontespizio; il logo + dell'ateneo appare in + testa alla pagina \\ +\cs{frontespizio*}&n& nessuno & Fa stampare il frontespizio ed + eventualmente il + retrofrontespizio; il logo + dell'ateneo appare in + basso nella pagina; vedi la + tabella riassuntiva + \ref{tab:modalitaperfrontespizi} + \\ +\amb{ThesisTitlePage}&tmdS&& Compone il frontespizio nei vari modi + diversi che si applicano ai diversi tipi + di tesi; loghi in testa\\ +\amb{ThesisTitlePage}*&tmdS&&Compone il frontespizio nei vari modi + diversi che si applicano ai diversi tipi + di tesi; loghi in basso\\ +\amb{FrontespizioTesina}&s& &Compone il frontespizio per le scuole + secondarie\\ +\cs{sommario} &&nessuno & Inizia un capitolo non numerato + che ha per + intestazione la parola SOMMARIO + (anche in lingua)\\ +\cs{ringraziamenti}&&nessuno & Inizia un capitolo non numerato + che ha per intestazione la + parola + RINGRAZIAMENTI (anche in lingua) + \\ +\cs{indici} &&nessuno & Fa stampare l'indice generale, + e, se sono stati dati i comandi + \texttt{\char92figures\-page\-true} + e \texttt{\char92tables\-page\-true}, + anche gli indici delle figure e + delle tabelle.\\ +\cs{paginavuota} &&nessuno & Emette nel file di uscita una + pagina totalmente bianca, senza + nemmeno il numero della pagina.\\ +\cs{NoteWhiteLine}&&nessuno & Anche questo comando richiestomi + a gran voce e serve per mettere + in nota una riga bianca.\\[.5ex] \hline -\end{tabular}} -\end{table} +\end{tabularx}} +\end{table}} +\clearpage +{% \begin{table}[p] \def\V{\rule{0pt}{2.5ex}} \def\d{\discretionary{\%}{\rule{1em}{0pt}}{}}\let\t\ttfamily\let\s\string -\caption{Comandi ulteriori per il frontespizio e per il corpo -della tesi definiti con l'opzione \opt{classica}}\label{tab:front5} +\caption[Comandi ulteriori con lo stile classico]{Comandi ulteriori per il frontespizio e per il corpo +della tesi definiti con l'opzione \chiave{stile}{classica}. La sigla `c' indica che il comando è specifico dello stile classico.}\label{tab:front5} \makebox[\textwidth]{% -\begin {tabular}{p{.22\textwidth}p{.68\textwidth}} +\begin {tabularx}{\linewidth}{p{.22\textwidth}cX} \toprule -Comando\V & Scopo \\[.5ex] +Comando\V & sigla & Scopo \\[.5ex] \midrule -\cs{candidato}\V &Si usa come di solito ma con l'opzione \texttt{classica} - produce la scrittura ``Laureando'' invece che ``Candidato''.\\ -\cs{candidata} & Come sopra al femminile. Sia questo comando, sia il - precedente accettano che l'argomento sia scritto nella - forma \meta{Nome Cognome{\normalfont\cs{IDN}} matricola} - in alternativa a \meta{Nome Cognome}.\\ -\cs{tomo} & Esegue i frontespizi successivi di una tesi divisa in tomi - scrivendovi Tomo primo, Tomo secondo, eccetera, a seconda - del numero progressivo dei volumi in cui è suddivisa la tesi - (massimo quattro). Questo comando viene usato \emph{al posto} - di \cs{frontespizio}\\ -\cs{annoaccademico} & Il suo argomento può essere un anno solare o - due anni separati da una lineetta. - Viene scritto nel frontespizio della tesi o del singolo tomo - con la specificazione che si tratta dell'anno accademico e non - della data della presentazione della tesi.\\ -\cs{EnDash} & Produce una lineetta lunga come ---, ma ribassata in modo - che stia bene fra numeri in cifre minuscole.\\ -\cs{nota}\t\d[...] & Serve per comporre una nota senza ricorrere al contatore - numerico di default. Il simbolo con cui viene richiamata di - default è l'asterisco, ma si può mettere qualunque segno - matematico senza esplicitare i segni di dollaro, per esempio - si può scrivere {\cs{nota}\t[\s\dagger]\{Questa nota ...\}}\\ -\amb{dedica} & È un ambiente con cui si può stampare una - pagina di dedica; generalmente questa pagina viene dopo il - frontespizio.\\ -\amb{citazioni} & È un ambiente che consente di scrivere una pagina con frasi - argute. L'arguzia dipende dall'autore; spesso nei libri, - raramente nelle tesi, l'autore cita frasi celebri o che in - qualche modo hanno a che fare con il contenuto del testo.\\ +\cs{candidato}\V && Si usa come di solito ma con l'opzione + \texttt{classica} produce la scrittura + ``Laureando'' invece che ``Candidato''.\\ +\cs{candidata} & & Come sopra al femminile. Sia questo comando, + sia il precedente accettano che l'argomento sia + scritto nella forma + \marg{Nome Cognome}\oarg{matricola} in alternativa + a \marg{Nome Cognome}.\\ +\cs{tomo} &c & Esegue i frontespizi successivi di una tesi + divisa in tomi scrivendovi Tomo primo, Tomo + secondo, eccetera, a seconda del numero + progressivo dei volumi in cui è suddivisa la + tesi (massimo quattro). Questo comando viene + usato \emph{al posto} di \cs{frontespizio}\\ +\cs{annoaccademico}&c& Il suo argomento può essere un anno solare o + due anni separati da una lineetta. Viene scritto + nel frontespizio della tesi o del singolo tomo + con la specificazione che si tratta dell'anno + accademico e non della data della presentazione + della tesi.\\ +\cs{EnDash} &c& Produce una lineetta lunga come --, ma + ribassata in modo che stia bene fra numeri di + stile antico.\\ +\cs{nota}\t\d[...] &c& Serve per comporre una nota senza ricorrere al + contatore numerico di default. Il simbolo con + cui viene richiamata di default è l'asterisco, + ma si può mettere qualunque segno matematico + senza esplicitare i segni di dollaro, per + esempio si può scrivere + {\cs{nota}\t[\s\dagger]\{Questa nota ...\}}\\ +\amb{dedica} && È un ambiente con cui si può stampare sul recto + di una pagina una dedica; generalmente questa + pagina viene dopo il frontespizio e l'eventuale + retrofrontespizio.\\ +\amb{citazioni} && È un ambiente che consente di scrivere una + pagina + con frasi argute. L'arguzia dipende dall'autore; + spesso nei libri, raramente nelle tesi, l'autore + cita frasi celebri o che in qualche modo hanno + a che fare con il contenuto del testo.\\ \bottomrule -\end{tabular}} -\end{table} +\end{tabularx}} +\end{table}} \clearpage -{\def\V{\rule{0pt}{2.5ex}} + +{% +\begin {table}[p] \let\s\string\let\t\ttfamily \def\d{\discretionary{\%}{\rule{1em}{0pt}}{}} -\tolerance=9999\finalhyphendemerits=0\relax -\setlength{\LTcapwidth}{\dimexpr\textwidth-4em}\tabcolsep=3pt\footnotesize -\begin{longtable}{p{.3\textwidth}>{\RaggedRight}p{.18\textwidth}>{\RaggedRight}p{.2\textwidth}p{.225\textwidth}} - \caption[Comandi per il frontespizio della monografia di laurea, della - tesi di laurea e della dissertazione di dottorato]{Comandi per il - frontespizio della monografia di laurea, della tesi di laurea e della - dissertazione di dottorato}\label{tab:front1}\\ - \toprule - Comando & Default & Scopo & Esempio d'uso \\ - \midrule -\endfirsthead - (\emph{continua})\\ - \toprule - Comando & Default & Scopo & Esempio d'uso \\ - \midrule -\endhead - \bottomrule - &&&(\emph{continua}) -\endfoot - \bottomrule -\endlastfoot -\cs{ateneo}\t\s{...\s}\V&POLITECNICO DI TORINO& Definisce il nome generico dell'Ateneo & - \cs{ateneo}\Arg{II Università di Roma} \\ -\cs{nomeateneo}\t\s{...\s}& nessuno& Definisce il nome proprio dell'Ateneo & - \cs{nomeateneo}\Arg{Tor Vergata} \\ -\cs{facolta}\t[...]\s{...\s}& nessuno & Definisce il nome della - Facoltà opzionalmente con l'indicazione dell'ordinale& - \cs{facolta}\t[III]\d\Arg{Scienze} \\ -\cs{struttura} && sinonimo del comando \cs{facolta}&\\ -\cs{corsodilaurea}\t\s{...\s}& nessuno& Definire il nome del corso di laurea & - \cs{corsodilaurea}\d\Arg{Fisica} \\ -\cs{corsodidottorato}\t\d\{...\}& nessuno&Definisce il nome del corso di dottorato& - \cs{corsodidottorato}\d\Arg{Fisica} \\ -\cs{monografia}\t\{...\}&nessuno&Definisce il titolo della monografia e imposta lo stile del frontespizio& - \cs{monografia}\d\Arg{Il~teorema di Eulero}\\ -\cs{titolo}\t[...]\{...\}&nessuno&Definisce il titolo della tesi o della dissertazione& - \cs{titolo}\t\d[La~pressione]\d\Arg{La~pressione di Giove}\\ -\cs{sottotitolo}\t\{...\} &nessuno - &Definisce il sottotitolo della tesi o della - dissertazione - & \cs{sottotitolo}\Arg{Metodo Barometrico} \\ -\cs{Materia}\t\{...\}&nessuno&Definisce la materia su cui verte la tesi & - \cs{Materia}\Arg{Remote Sensing} \\ -\cs{materia}\t\{...\}&nessuno&sinonimo del comando \cs{Materia} & - \cs{materia}\d\Arg{Letteratura ostrogota} \\ -\cs{relatore}\t\{...\}\V&nessuno& Definisce il nome del relatore& - \cs{relatore}\d\Arg{prof.\s~Albert Einstein} \\ -\cs{secondorelatore}\t\{...\}&nessuno&Se c'è, definisce il nome del secondo relatore& - \cs{secondorelatore}\d\Arg{dott.\s~Grazia Deledda}\\ -\cs{terzorelatore}\t\{...\}&nessuno&Se c' è, definisce il nome del -terzo relatore& - \cs{terzorelatore}\d\Arg{ing.\s~Thomas A.\s~Edison}\\ -\cs{direttore}\t\{...\}&nessuno&Definisce il nome del direttore del ciclo di dottorato& - \cs{direttore}\d\Arg{prof.\s~Albert Enstein}\\ -\cs{coordinatore}\t\{...\}&nessuno&Definisce il nome del coordinatore del ciclo di dottorato& - \cs{coordinatore}\d\Arg{prof.\s~Albert Einstein}\\ -\small\cs{QualificaDirettore}\t\d\{...\}& Direttore o Coordinatore& Definisce il titolo da inserire - prima del nome del direttore della scuola di dottorato& - \cs{QualificaDirettore}\d\Arg{PhD~Director}\\ -\cs{tutore}\t\{...\}&nessuno&Definisce il nome del tutore& - \cs{tutore}\d\Arg{prof.\s~Karl Von Braun} \\ -\cs{tutoreaziendale}\t\{...\} & nessuno& Definisce la qualifica del tutore aziendale & - \cs{tutoreaziendale}\d\Arg{Supervisore}\\ -\cs{candidato}\t\{...\}&nessuno&Definisce il nome del candidato& - \cs{candidato}\Arg{Galileo Galilei} \\ -\cs{candidata}\t\{...\}&nessuno&Definisce il nome della candidata& - \cs{candidata}\Arg{Maria Curie} \\ -\cs{secondocandidato}\t\d\{...\}&nessuno&Se c'è , definisce il nome -del secondo candidato& - \cs{secondocandidato}\d\Arg{Evangelista Torricelli}\\ -\cs{secondacandidata}\t\d\{...\}&nessuno&Se c'è , definisce il nome -della seconda candidata& - \cs{secondacandidata}\d\Arg{Rita Levi Montalcini}\\ -\cs{terzocandidato}\t\{...\} &nessuno & Se c'è, definisce il nome del - terzo candidato - & \cs{terzocandidato}\t\d\Arg{Alessandro~Volta} \\ -\cs{terzacandidata}\t\{...\}&nessuno&Se c'è, definisce il nome della terza candidata& - \cs{terzacandidata}\t\d\Arg{Eleonora~Duse}\\\cs{sedutadilaurea}\t\{...\}\V&data corrente &Definisce il mese e l'anno (volendo il giorno) della seduta di laurea& - \cs{sedutadilaurea}\t\d\Arg{Dicembre~2025}\\ -\cs{esamedidottorato}\t\d\{...\}&data corrente&Definisce il mese e l'anno (volendo il giorno) della seduta di discussione& - \cs{esamedidottorato}\t\d\Arg{Febbraio~2013}\\ -\small\cs{scuoladidottorato}\t\d\{...\}& SCUOLA DI DOTTORATO&Definisce il nome ufficiale - della scuola di dottorato & - \cs{scuoladidottorato}\t\d\Arg{SCUDO}\\ -\cs{ciclodidottorato}\t\d\{...\}&nessuno&Definisce il numero ordinale del ciclo di dottorato& - \cs{ciclodidottorato}\t\d\Arg{XV~ciclo} \\ -\cs{logosede}\t[...]\{...\}&nessuno&\raggedright Inserisce nel frontespizio il logo - dell'ateneo, specificandone opzionalmente l'altezza - (default: 3\,cm)& - \cs{logosede}\t\d[2cm]\Arg{logouno,\d logodue}\\ -\cs{setlogodistance}\t\d\{...\}& 3\,em & imposta la distanza fra i loghi& - \cs{setlogodistance}\t\d\Arg{25mm}\\ -\midrule\midrule -\cs{retrofrontespizio}\t\d\{...\}& nessuno& \multicolumn2{p{.475\textwidth}}{Se specificato, serve - solitamente per scrivere nel verso - della pagina del frontespizio alcune dichiarazioni - di carattere legale; accetta un argomento composto - anche da diversi capoversi}\\ -\end{longtable}} +\caption{Comandi per il frontespizio delle tesi e della dissertazione di dottorato}\label{tab:front1} +\makebox[\textwidth]{\tolerance=9999\finalhyphendemerits=0\footnotesize +\begin {tabularx}{\linewidth}{Xcp{.13\textwidth}>{\raggedright}p{.18\textwidth}p{.25\textwidth}} +\toprule +Comando & sigla & Default & Scopo & Esempio d'uso \\ +\midrule +\cs{ateneo}\Marg{...}&ntmd&stringa vuota + & Definisce il nome + generico dell'Ateneo + & \cs{ateneo}\Arg{II Università di + Roma}\\ +\cs{nomeateneo}\Marg{...}&ntmd& nessuno + & Definisce il nome proprio dell'Ateneo + & \cs{nomeateneo}\Arg{Tor Vergata}\\ +\cs{facolta}\d\Oarg{...}\Marg{...}&ntmd& nessuno + & Definisce il nome della Facoltà + opzionalmente con l'indicazione + dell'ordinale + & \cs{facolta}\Oarg{III}\d% + \Arg{Scienze}\\ +\cs{struttura}\d\Oarg{...}\Marg{...}&ntmd&nessuno& sinonimo del + comando \cs{facolta}&\\ +\cs{corsodilaurea}\d\Marg{...}&ntm& nessuno + & Definisce il nome del corso di laurea + & \cs{corsodilaurea}\d\Arg{Fisica}\\ +\cs{corsodidottorato}\d\Marg{...}&nd& nessuno + &Definisce il nome del corso di dottorato + &\cs{corsodidottorato}\d\Arg{Fisica}\\ +\cs{monografia}\Marg{...}&n&nessuno + & Definisce il titolo della monografia e + imposta lo stile del frontespizio + & \cs{monografia}\d\Arg{Il~teorema di + Eulero}\\ +\cs{titolo}\Oarg{...}\Marg{...}&tmd&nessuno + & Definisce il titolo della tesi o della + dissertazione + & \cs{titolo}\t\d[La~pressione]% + \d\Arg{La~pressione di Giove}\\ +\cs{sottotitolo}\Marg{...}&ntmd&nessuno + & Definisce il sottotitolo della tesi o + della dissertazione + & \cs{sottotitolo}\Arg{Metodo + Barometrico} \\ +\cs{Materia}\Marg{...}&nmd&nessuno + & Definisce la materia su cui verte + la tesi + & \cs{Materia}\Arg{Remote Sensing}\\ +\cs{materia}\Marg{...}&nmd&nessuno + & Sinonimo del comando \cs{Materia} + & \cs{materia}\d\Arg{Letteratura + ostrogota} \\ +\midrule +\cambiacorpo{9} +\cs{retrofrontespizio}\d\Marg{...} + &tmd& nessuno & \multicolumn2{p{.5\textwidth}}{Se + specificato, serve solitamente per + scrivere nel verso della pagina del + titolo alcune dichiarazioni + di carattere legale; accetta un + argomento composto anche da diversi + capoversi}\\ +\bottomrule +\end{tabularx}} +\end{table} + +\clearpage + +\begin{table}[p] +\def\V{\rule{0pt}{2.5ex}} +\let\s\string \let\t\ttfamily +\def\d{\discretionary{\%}{\rule{1em}{0pt}}{}} +\caption[Comandi per i frontespizi delle tesi universitarie]{Comandi per i frontespizi delle tesi universitarie. L'indicazione della sigla indica che il comando, oltre che certamente presente anche nei moduli specializzati nei diversi tipi di tesi, sono tutti definiti anche i nel modulo generico \file{topfront}.}\label{tab:front2} +\makebox[\textwidth]{\small +\begin {tabularx}{\linewidth}{p{.3\textwidth}c>{\raggedright}p{0.1\textwidth}>{\raggedright}Xp{.25\textwidth}} +\toprule +Comando &sigla& Default & Scopo & Esempio d'uso \\ +\midrule +\cs{relatore}\Marg{...}\V + &tmd& nessuno & Definisce il nome del relatore + & \cs{relatore}\d + \Arg{prof.\s~Albert Einstein} \\ +\cs{secondorelatore}\Marg{...} + &tmd& nessuno & Se c'è, definisce il nome del + secondo relatore + & \cs{secondorelatore}\d\Arg{dott. % + \s~Grazia Deledda}\\ +\cs{terzorelatore}\Marg{...} + &tmd& nessuno & Se c' è, definisce il nome del + terzo relatore + & \cs{terzorelatore}\d + \Arg{ing.\s~Thomas A.\s~Edison}\\ +\cs{direttore}\Marg{...} + &d& nessuno & Definisce il nome del direttore del + ciclo di dottorato + & \cs{direttore}\d + \Arg{prof.\s~Albert Enstein}\\ +\cs{coordinatore}\Marg{...} + &d& nessuno & Definisce il nome del coordinatore del + ciclo di dottorato + & \cs{coordinatore}\d + \Arg{prof.\s~Albert Einstein}\\ +\footnotesize\cs{QualificaDirettore}\Marg{...} + &d& Direttore o Coordinatore + & Definisce il titolo da inserire prima + del nome del direttore della scuola di + dottorato + & \cs{QualificaDirettore} + \Arg{PhD~Director}\\ +\cs{tutore}\Marg{...} + &d& nessuno & Definisce il nome del tutore + & \cs{tutore}\d + \Arg{prof.\s~Karl Von Braun} \\ +\cs{tutoreaziendale}\Marg{...} + &tmd& nessuno & Definisce la qualifica del tutore + aziendale + & \cs{tutoreaziendale}\d + \Arg{Supervisore}\\ +\bottomrule +\end{tabularx}% +} +\end{table} +\clearpage +%\addtocounter{table}{-1} +\begin{table}[p] +\def\V{\rule{0pt}{2.5ex}} +\def\d{\discretionary{\%}{\rule{1em}{0pt}}{}}\let\t\ttfamily +\caption[Comandi per i frontespizi delle tesi universitarie]{Comandi per i frontespizi delle tesi universitarie. L'indicazione della sigla indica che il comando, oltre che certamente presente anche nei moduli specializzati nei diversi tipi di tesi, sono tutti definiti anche i nel modulo generico \file{topfront}.}\label{tab:front3} +\makebox[\textwidth]{\tabcolsep=3pt\small% +\begin {tabular}{p{.3\textwidth}c>{\raggedright}p{.175\textwidth}p{.26\textwidth}p{.275\textwidth}@{}} +\toprule +Comando &sigla& Default & Scopo & Esempio d'uso \\ +\midrule +\cs{candidato}\Marg{...} + &tmd& nessuno & Definisce il nome del candidato + & \cs{candidato}\Arg{Galileo + Galilei}\\ +\cs{candidata}\Marg{...} + &tmd& nessuno & Definisce il nome della candidata + & \cs{candidata}\Arg{Maria Curie}\\ +\cs{secondocandidato}\Marg{...} + &tmd& nessuno & Se c'è, definisce il nome + del secondo candidato + & \cs{secondocandidato}\d + \Arg{Evangelista Torricelli}\\ +\cs{secondacandidata}\Marg{...} + &tmd& nessuno & Se c'è, definisce il nome + della seconda candidata + & \cs{secondacandidata}\d + \Arg{Rita Levi Montalcini}\\ +\cs{terzocandidato}\Marg{...} + &tmd& nessuno & Se c'è, definisce il nome del terzo + candidato + & \cs{terzocandidato}\t\d + \Arg{Alessandro~Volta}\\ +\cs{terzacandidata}\Marg{...} + &tmd& nessuno & Se c'è, definisce il nome della + terza candidata + & \cs{terzacandidata}\t\d + \Arg{Eleonora~Duse}\\\cs{sedutadilaurea}\Marg{...} + &tm& data corrente + & Definisce il mese e l'anno (volendo + il giorno) della seduta di laurea + & \cs{sedutadilaurea}\t\d + \Arg{Dicembre~2025}\\ +\cs{esamedidottorato}\Marg{...} + &d& data corrente + & Definisce il mese e l'anno (volendo + il giorno) della seduta di + discussione + & \cs{esamedidottorato}\t\d + \Arg{Febbraio~2013}\\ +\small\cs{scuoladidottorato}\d\Marg{...} + &d& SCUOLA DI DOTTORATO + & Definisce il nome ufficiale della + scuola di dottorato + & \cs{scuoladidottorato}\t\d + \Arg{ScuDo}\\ +\cs{ciclodidottorato}\Marg{...} + &d& nessuno & Definisce il numero ordinale del + ciclo di dottorato + & \cs{ciclodidottorato}\t\d + \Arg{XV~ciclo} \\ +\cs{logosede}\Oarg{...}\Marg{...} + &tmd& nessuno & \raggedright Inserisce nel + frontespizio il logo dell'ateneo, + specificandone opzionalmente + l'altezza (default: 3\,cm) + & \cs{logosede}\t\d[2cm]% + \Arg{logouno,\d logodue}\\ +\cs{setlogodistance}\d\Marg{...} + &tmd& 3\,em & Imposta la distanza fra i loghi + & \cs{setlogodistance}\t\d + \Arg{25mm}\\ +\bottomrule +\end{tabular}} +\end{table}} + +\clearpage + +{% \begin{table}[p]\tabcolsep=3pt \def\V{\rule{0pt}{2.5ex}} \def\d{\discretionary{\%}{\rule{1em}{0pt}}{}} \def\serve{definisce una stringa equivalente a } - \caption{Comandi per modificare le parole e/o le brevi frasi scritte -nel frontespizio o per cambiare le parole italiane di default in altre -parole diverse, o per esprimere gli stessi concetti in un'altra -lingua}\label{tab:front4} -\makebox[\textwidth]{\small% + \caption[Comandi per modificare le parole fisse]{Comandi per modificare le parole scritte o per cambiare le parole italiane di default con altre parole diverse o in un'altra lingua}\label{tab:front4} +\makebox[\textwidth]{\cambiacorpo{10.6}% \begin{tabular}{@{}p{.35\textwidth}p{.63\textwidth}@{}} \toprule -\cs{FacoltaDi}\t\{...\}\V & definisce una stringa con il nome generico della - struttura didattica, per esempio ``Scuola di~'', - prima del nome della struttura; di default è - impostata una stringa nulla, cosicché non viene - scritto nulla nel frontespizio in merito alla struttura - didattica competente\\ -\cs{StrutturaDidattica}\t\{...\} & sinonimo del comando \cs{FacoltaDi}\\ -\cs{DottoratoIn}\t\{...\} & \serve ``Dottorato in'' prima del nome del dottorato\\ -\cs{CorsoDiLaureaIn}\t\{...\} & \serve ``Corso di Laurea in'' prima del nome del corso di laurea\\ -\cs{TesiDiLaurea}\t\{...\} & \serve ``Tesi di Laurea''\\ -\cs{NomeMonografia}\t\{...\} & \serve ``Monografia di Laurea''\\ -\cs{NomeDissertazione}\t\{...\} & \serve ``Dissertazione di Dottorato''\\ -\cs{InName}\t\{...\} & \serve ``in''; in tedesco potrebbe essere ``auf'', - in francese ``en'', ecc.\\ -\cs{CandidateName}\t\{...\} & \serve ``Candidato''; per questo e i due comandi - successivi il programma riesce - a scegliere la stringa giusta adattata in numero genere; - nel cambiare queste stringhe - il compositore ha una sola possibilità e deve scegliere - direttamente il genere e il numero.\\ -\cs{AdvisorName}\t\{...\} & \serve ``Relatore''\\ -\cs{CoAdvisorName}\t\{...\} & \serve ``Correlatore''; questo comando si può usare - sempre, ma il suo contenuto viene effettivamente usato - solo se si specifica l'opzione \texttt{classica}; se in - italiano non piace ``Correlatore'' ma si preferisce - ``Corelatore'' o ``Co-relatore'', sempre con l'opzione - \texttt{classica}, si può correggere la versione di - default.\\ -\cs{TutorName}\t\{...\} & \serve ``Tutore''\\ -\cs{NomeTutoreAziendale}\t\{...\}& \serve ``Supervisore aziendale''; usando un argomento - che contenga anche - indicazioni di ``a capo'', nella seconda riga si può - scrivere il nome dell'azienda.\\ -\cs{CycleName}\t\{...\} & \serve ``ciclo''; serve essenzialmente per indicare il - ciclo di dottorato\\ -\cs{NomePrimoTomo}\t\{...\} & \serve ``Tomo primo''\\ -\cs{NomeSecondoTomo}\t\{...\} & \serve ``Tomo secondo''\\ -\cs{NomeTerzoTomo}\t\{...\} & \serve ``Tomo terzo''\\ -\cs{NomeQuartoTomo}\t\{...\} & \serve ``Tomo quarto''; tutte e quattro queste - stringhe - dipendono dalla lingua usata e dall'ordine che si vuole o - si deve dare alle due parole.\\ +\cs{FacoltaDi}\t\{...\} & definisce una stringa con il nome generico + della struttura didattica, per esempio + ``Scuola di~'', prima del nome della + struttura; di default è impostata una + stringa nulla, cosicché non viene scritto + nulla nel frontespizio in merito alla + struttura didattica competente\\ +\cs{StrutturaDidattica}\t\{...\} + & sinonimo del comando \cs{FacoltaDi}\\ +\cs{DottoratoIn}\t\{...\} + & \serve ``Dottorato in'' prima del nome + del dottorato\\ +\cs{CorsoDiLaureaIn}\t\{...\} + & \serve ``Corso di Laurea in'' prima del + nome del corso di laurea\\ +\cs{TesiDiLaurea}\t\{...\} + & \serve ``Tesi di Laurea''\\ +\cs{NomeMonografia}\t\{...\} + & \serve ``Monografia di Laurea''\\ +\cs{NomeDissertazione}\t\{...\} + & \footnotesize\serve ``Dissertazione di + Dottorato''\\ +\cs{InName}\t\{...\} + & \serve ``in''; in tedesco potrebbe essere + ``auf'', in francese ``en'', ecc.\\ +\cs{CandidateName}\t\{...\} + & \serve ``Candidato''; per questo e i due + comandi successivi il programma riesce a + scegliere la stringa giusta adattata in + numero genere; nel cambiare queste stringhe + il compositore ha una sola possibilità e deve + scegliere direttamente il genere e il numero. + \\ +\cs{AdvisorName}\t\{...\} + & \serve ``Relatore''\\ +\cs{CoAdvisorName}\t\{...\} + & \serve ``Correlatore''; questo comando si + può usare sempre, ma il suo contenuto viene + effettivamente usato solo se si specifica + l'opzione \texttt{classica}; se in italiano + non piace ``Correlatore'' ma si preferisce + ``Corelatore'' o ``Co-relatore'', sempre con + l'opzione \texttt{classica}, si può + correggere la versione di default.\\ +\cs{TutorName}\t\{...\} & \serve ``Tutore''\\ +\cs{NomeTutoreAziendale}\t\{...\} + & \serve ``Supervisore aziendale''; usando un + argomento che contenga anche indicazioni di + ``a capo'', nella seconda riga si può + scrivere il nome dell'azienda.\\ +\cs{CycleName}\t\{...\} & \serve ``ciclo''; serve essenzialmente + per indicare il ciclo di dottorato\\ +\cs{NomePrimoTomo}\t\{...\} + & \serve ``Tomo primo''\\ +\cs{NomeSecondoTomo}\t\{...\} + & \serve ``Tomo secondo''\\ +\cs{NomeTerzoTomo}\t\{...\} + & \serve ``Tomo terzo''\\ +\cs{NomeQuartoTomo}\t\{...\} + & \serve ``Tomo quarto''; tutte e quattro + queste stringhe dipendono dalla lingua + usata e dall'ordine che si vuole o si deve + dare alle due parole.\\ \bottomrule \end{tabular}} \end{table} +} + +%>! +\clearpage + +\begin{otherlanguage}{english} + +\section{ ScuDo title page commands}\label{sec:frontescudo} +The \file{toptesi-scudo.sty} module contains all the definitions necessary to typeset the thesis title page. Some of the commands just set the ``fixed'' parts of the title page; other are used to enter the variable parts, that is pieces of information such as the thesis author, title, defence date, and the like. All parts, fixed or variable have specific default values. Here we describe just the user commands divided in two sets, the most important and compulsory variant data, and the customisation of ``fixed'' data. + +\subsection{Variant data} +All commands to insert variant data accept one mandatory argument. +\begin{description}[noitemsep] +\def\Item[#1]{\item[\normalfont\cs{#1}]} +% +\Item[Cyclenumber] Defines a string that represents the ordinal number of the cycle program. This ordinal may be written in a variety of ways, from ``29\ap{th}'', to ``29.th''; from ``Twenty\-ninth'', to ``XXIX''. If the ordinal number string is not specified, its label ``cycle'' is omitted. +% +\Item[ProgramName] The argument is the name of the discipline the thesis is about, it may be composed with several words. Default empty. +% +\Item[author] The argument is the thesis author's name(s) and surname(s) without any separator except the necessary inter word spaces. Default empty. +% +\Item[title] The argument is the thesis title; keep it short. Default empty. +% +\Item[subtitle] The subtitle is a second string that describes and complements the thesis title in order to maintain short the thesis title. Default empty. +% +\Item[SupervisorList] Defines a list of supervisors and co-supervisors with their roles; the names are separated with a +\verb|\\| command; an example would be: +\begin{verbatim} + \SupervisorList{% + prof. John Smith, Supervisor\\ + prof. Jack Brown, Co-supervisor + } +\end{verbatim} +Default empty. +% +\Item[ExaminerList] By default the defined string is empty. When the title page is being printed, if this list is still empty, no examiner list is printed and, of course, also its label is omitted. Otherwise the list is printed together with its label. Example: +\begin{verbatim} + \ExaminerList{% + prof. John Smith, Referee, University of Berlin\\ + prof. Jack Brown, Referee, University of Vienna\\ + prof. Jane White, University of Eton\\ + prof. Jay Black, University of Washington\\ + ... + } +\end{verbatim} +% +\Item[ExaminationDate] Defines the full date of the examination: ``location, day of month year'' in European style; ``location, month, day year'' in USA style . Default empty. Example in European style: +\begin{verbatim} +\ExaminationDate{Turin, 29 of February 2345} +\end{verbatim} +% +\end{description} + + +\subsection{Fixed data} + +All the fixed data have a default value consisting in a real character-string. +\begin{description}[noitemsep] +\def\Item[#1]{\item[\normalfont\cs{#1}]} +% +\Item[PhDschoolLogo] Specifies the name of the file that contains the School Logo. Default none; the file extension may be omitted, but the real extension should be one of \file{.pdf}, \file{.eps}, \file{.png}, \file{.jpg}. Actually this command accepts a list of comma separated names of Doctoral School logos, even if they are under control of the ScuDo school. We refer to the partnerships that ScuDo has with Università di Torino and with Istituto Nazionale di Ricerca Metrologica (INRiM). When a doctoral thesis is supported by INRiM or is a joint Doctoral Thesis with the University of Turin, their logos are supposed to be set in the title page; such logos, as well as the ScuDo one are available form the Students Office or downloaded from a specific restricted Web site. + +Please, take notice that ScuDo has available four different logos (to be asked for at the Student Office) there exist four variants of the school logo: $(a)$ \texttt{Logo-ScuDo.pdf} (a black and white logo without any decoration at its sides; may be it is an old school logo); $(b)$ \texttt{Logo-ScuDo-RGB.pdf} (an inverted color logo with decoration at its right, with white and yellow inscriptions over a blue background); $(c)$ \texttt{Logo-ScuDo-BN-RGB\discretionary{}{.}{.}pdf} (a black and white logo with decorations at its right; a new logo, the one you probably should use); $(d)$ \texttt{Logo-ScuDo-blu-RGB\discretionary{}{.}{.}pdf} (a blue on white logo with decorations at its right; the blue tint is the official blue required by most internal documents of Politecnico di Torino). This bundle does not contain any official logo, because these trademarked images are property of the respective entities, and cannot be freely distributed under the permissive LPPL licence common to most \TeX system software. + +%\iffalse +% See figure~\ref{fig:scudologos}. +% +% \begin{figure}[!htb]\centering +% +% \makebox[0pt][l]{\raisebox{14mm}[0pt][0pt]{$(a)$}}% +% \makebox[\textwidth]{\includegraphics[height=30mm]{Logo-ScuDo.pdf}} +% +% \bigskip +% +% +% \makebox[0pt][l]{\raisebox{14mm}[0pt][0pt]{$(b)$}}% +% \makebox[\textwidth]{\includegraphics[height=30mm]{Logo-ScuDo-RGB.pdf}} +% +% \bigskip +% +% \makebox[0pt][l]{\raisebox{14mm}[0pt][0pt]{$(c)$}}% +% \makebox[\textwidth]{\includegraphics[height=30mm]% +% {Logo-ScuDo-BN-RGB.pdf}}\bigskip +% +% \makebox[0pt][l]{\raisebox{14mm}[0pt][0pt]{$(d)$}}% +% \makebox[\textwidth]{\includegraphics[height=30mm]% +% {Logo-ScuDo-blu-RGB.pdf}} +% +% \bigskip +% +% \caption{The four logos available for the ScuDo doctoral school} +% \label{fig:scudologos} +% \end{figure} +%\fi + +The last three logos were provided by the specific office of Politecnico di Torino in EPS format and CMYK color profile; very large files due to the verbosity of the PostScript commands and to the fact that such files contained both the EPS code and the compressed bitmapped image. By using the \prog{Inkscape} program as described in the English documentation \file{toptesi.pdf}, these PDF/A incompatible images were converted to pure EPS code and RGB profile; they were further processed to transform them in PDF/A compliant format. Hopefully these transformations should be much handier than the original images. In any case, remember that these four logos are not part of this bundle, but you have to ask the school Student Office in order to receive the logo file directly o the authorisation to download it from a restricted Web site. +% +\Item[Ndissertation] Specifies the name of the dissertation. Default ``Doctoral Disseration''. +% +\Item[Ndoctoralprogram] Specifies the name of the doctoral program. Default ``Doctoral program in\cs{xspace}'' where the \cs{xspace} macro inserts a smart space if it is needed. +% +\Item[Nsupervisor] Specifies through two separate arguments the singular and the plural name to label the supervisor list. Default ``Supervisor'' and ``Supervisors''. +% +\Item[SupervisorNumber] Specifies the number of supervisors. Default ``0'' (zero); actually by specifying an empty argument, is the same as specifying ``0''; with this number set to zero or to empty, no label is set above the list of supervisors; the real turning point is the specification ``1'' when the singular label is used; any other value greater then ``1'', is treated as ``many'' and implies the plural label. +% +\Item[Nexaminationcommittee] Specifies the label to print above the list of examiners. Default ``Doctoral Examination Committee''. +% +\Item[Nlocation] Specifies the full official name of the institution where the doctoral examination is held. Default ``Politecnico di Torino''. This suffices for the ScuDo dissertation, but for other doctoral schools it might be necessary to specify also the city and sometimes the nation. +% +\Item[Property] Specifies the claim for the intellectual property of the Ph.D.\ dissertation contents. Default ``This thesis is licensed under a Creative Commons License, Attribution - Noncommercial- NoDerivative Works - 4.0 International: see \begin{center}\url{www.creativecommons.org}.\end{center} +The text may be reproduced for non-commercial purposes, provided that credit is given to the original author.'' +% +\Item[Disclaimer] Specifies the text of the disclaimer statement. Default ``\cs{noindent} I hereby declare that he contents and organisation of this dissertation constitute my own original work and does not compromise in any way the rights of third parties, including those relating to the security of personal data.'' +% +\Item[Signature] Specifies the signature field with a dotted line to hand-sign the statement, the signer's name, the place of signature and the signature date. The signer's name defaults to the author's name, and the date defaults to the examination date. This latter default perhaps should be modified. In any case the command definition provides a default layout as such: +\begin{verbatim} +\begin{flushright} +\parbox{0.5\textwidth}{% +\centering +\dotfill\\ +\@author\\ +Turin, \@examinationdate +}% +\end{flushright} +\end{verbatim} +An actual user might redefine the \cs{Signature} macro so as to provide anther layout, for example: +\begin{flushleft}\obeylines +\cs{renewcommand}\Marg{\char92Signature}\Marg{\% +\quad\Bambiente{flushright} +\qquad\cs{parbox}\Marg{0.5\cs{textwidth}}\Marg{\% +\qquad\quad\cs{dotfill}\string\\ +\qquad\quad\meta{name surname}\string\\ +\qquad\quad\meta{city}, \meta{date}} +\quad\Eambiente{flushright} +} +\end{flushleft} +% +\end{description} + +\subsection{The title page} +Most if not all fixed data commands may be written down once and for all in the configuration file \file{.cfg}. + +Variant data, probably, find their best place within the title page environment. In any case such environment is the first one that produces text in the output file. It has the following structure. +\begin{flushleft}\obeylines +\Bambiente{\normalfont\amb{ThesisTitlePage}} +\quad\meta{fixed data} +\quad\meta{variant data} +\Eambiente{\normalfont\amb{ThesisTitlePage}} +\end{flushleft} + +An example title page is shown in figure~\ref{fig:frontescudo} on page~\pageref{fig:frontescudo}. + +\end{otherlanguage} + +\backmatter \chapter*{Conclusioni} \addcontentsline{toc}{chapter}{Conclusioni} -Il pacchetto \textsf{TOPtesi} fa quasi tutto quello che è necessario per comporre uno qualunque di quegli scritti che vengono chiamati \emph{monografia di laurea}, \emph{elaborato finale di laurea}, \emph{tesi di laurea}, \emph{tesi di laurea specialistica}, \emph{tesi di laurea magistrale}, \emph{dissertazione di dottorato}. - -Non fa tutto, ci mancherebbe altro, visto che nessuna persona è in -grado di prevedere tutte le necessità delle altre persone. - -Da un lato alcuni devono adattarsi a quello che è disponibile, -magari dandosi da fare per creare qualche cosa di nuovo e utile per se -stessi e forse anche per gli altri. Qualcun altro deve sapersi -immedesimare nelle necessità altrui e magari deve darsi da fare -per creare qualcosa di nuovo e utile agli altri e forse anche a se stesso. - -Una cosa certamente che rimane da fare è un procedimento più -semplice per la composizione del frontespizio in una lingua -diversa dall'italiano. Attualmente il procedimento si rifà all'uso -delle macro che servono per definire le stringhe in lingua; il -sistema dovrebbe essere completo ma richiede un po' di attenzione -da parte dell'utente. - -\iffalse % INIZIO METACOMMENTO -\begin {sloppypar} -Un'altra possibilità sarebbe quella di predisporre altri file con -i nomi, per esempio, \texttt{topfrnten.sty}, -\texttt{topfrntfr.sty}, \texttt{topfrntsp.sty}, eccetera, che -siano cloni del file \texttt{topfront.sty} e che si possono -richiamare come pacchetti aggiuntivi. Ognuno definisce il comando -\texttt{\string\frontespizioinglese}, -\texttt{\string\frontespiziofrancese}, -\texttt{\string\frontespiziospagnolo}, eccetera, e questo comando -può quindi essere usato in sostituzione del comando per il -frontespizio italiano. Questi file differirebbero da quello per il -frontespizio in italiano perché vi sarebbero ridefinite tutte le -definizioni di default delle stringhe in lingua. Ovviamente -bisogna che chi clona e modifica il file \texttt{topfront.sty} e -lo modifica per adattarlo ad una determinata lingua, deve -conoscere quella lingua da maestro. Suggerirei però di non -modificare le strutture con cui è composto il frontespizio, -perché effettivamente contiene tutti gli -elementi richiesti ``per legge'' ed è tipograficamente abbastanza -equilibrato; il fatto che blocco dei relatori e di quello dei -candidati siano sfalsati lascia abbastanza spazio per le firme di legge, anche se -introduce un elemento di asimmetria; tuttavia~\dots -\end{sloppypar} +Il pacchetto \textsf{TOPtesi} fa quasi tutto quello che è necessario per comporre uno qualunque di quegli scritti che vengono chiamati \emph{monografia di laurea}, \emph{elaborato finale di laurea}, \emph{tesi di laurea}, \emph{tesi di laurea triennale}, \emph{tesi di laurea specialistica}, \emph{tesi di laurea magistrale}, \emph{dissertazione di dottorato}. + +Non fa tutto, ci mancherebbe altro, visto che nessuno è in +grado di prevedere tutte le necessità altrui. + +Da un lato alcuni utenti devono adattarsi a quello che è disponibile, magari dandosi da fare per creare qualche cosa di nuovo e utile per se stessi e forse anche per gli altri. Qualcun altro deve sapersi immedesimare nelle necessità altrui e magari deve darsi da fare per creare qualcosa di nuovo e utile agli altri e forse anche a se stesso. + +Il modo di localizzare le stringhe fisse dovrebbe risultare semplificato rispetto alle versioni fino alla 5.x.xx di \TOPtesi, grazie ai moduli separati per i vari tipi di tesi; ogni frontespizio richiede un numero ristretto di stringhe fisse rispetto al caso generale; quindi il lavoro di localizzazione riguarda, a seconda delle tesi, fino a una dozzina di casi. + +\textcolor{red}{% +\english For the ScuDo doctoral school some packages are preloaded in addition to those already loaded by the \TOPtesi bundle. The title page for this doctoral school is obtained with its own commands and environment. The appearance of this title page was shown in figure~\ref{fig:frontescudo} on page~\pageref{fig:frontescudo}, and the general instructions for this title page are given in section~\ref{sec:frontescudo}. Doctoral students benefit from examining the source file \file{toptesi-scudo-example.tex} (already part of this bundle) where many details are added for using this particular variant.} + +Il pacchetto \textsf{TOPtesi} carica di default sia \texttt{babel} o \texttt{polyglossia} sia \texttt{graphicx}; certo potrebbe caricare di default anche \texttt{amsmath} e i suoi compagni, ma non tutti hanno bisogno di scrivere e comporre matematica avanzata e se non vengono usati essi comportano uno spreco di memoria e un sia pur piccolo rallentamento nell'esecuzione. Ritengo quindi che sia meglio che ognuno si carichi i pacchetti che intende davvero usare. + +\goodpagebreak + +Consiglierei l'uso di \XeLaTeX solo per quelle tesi, specialmente di carattere umanistico, che hanno bisogno di maneggiare agevolmente font di diversi tipi per scrivere con alfabeti o sillabari o sistemi di ideogrammi per i quali \pdfLaTeX\ è, sì, attrezzato, ma rende molto più faticosa l'intera operazione. -\fi % FINE METAMMENTO - -Il pacchetto \textsf{TOPtesi} carica di default sia \texttt{babel} o -\texttt{polyglossia} sia \texttt{graphicx}; certo potrebbe caricare di -default anche \texttt{amsmath} e i suoi compagni, ma non tutti hanno -bisogno di scrivere e comporre matematica avanzata e se non vengono -usati essi comportano uno spreco di memoria e un sia pur piccolo -rallentamento nell'esecuzione. Ritengo quindi che sia meglio che ognuno -si carichi i pacchetti che intende davvero usare. - -È possibile usare il semplice \texttt{latex}; ma questo -serve solo per produrre un file in formato DVI, che può servire solo per -una stampa della tesi su carta; può venire trasformato nel formato PS -tramite l'applicativo \texttt{dvips}, ma questo formato non stamperebbe -meglio di quel che si potrebbe ottenere dai ``previewer'' recenti per -il formato DVI che siano anche in grado di inviare i file DVI in stampa. -Viceversa è più interessante disporre della versione finale in formato PDF, -cosa che si può ottenere mediante il programma \texttt{ps2pdf} il quale, -con opportuni artifici, permette anche di produrre un file in formato PDF/A. -Ma allora perché non ottenere questo risultato in un passaggio solo? Certo, -potrebbe esserci l'esigenza di usare estensioni che fanno uso del linguaggio -PostScript, ma, solitamente, agendo direttamente con \texttt{pdflatex} si -possono usare altri pacchetti di estensione che consentono di evitare del -tutto il linguaggio PostScript. - -Non consiglierei, invece, l'uso generalizzato -di \XeLaTeX, ma lo consiglierei solo per quelle tesi, specialmente di -carattere umanistico, che hanno bisogno di maneggiare agevolmente font di -diversi tipi per scrivere con alfabeti o sillabari o sistemi di ideogrammi -per i quali \pdfLaTeX\ è, sì, attrezzato, ma rende molto più faticosa -l'intera operazione. Molto interessante è anche il programma di -composizione \LuaLaTeX, che incorpora una buona parte del linguaggio di -scripting Lua; questo a sua volta permette di compiere diverse azioni -esternamente al programma di tipocomposizione, e in certi casi esso si -può considerare una estensione molto utile del programma \pdfLaTeX. -Questo programma può usare la microtipografia come \pdfLaTeX\ e i font -OpenType come \XeLaTeX, quindi unisce i vantaggio dell'uno e dell'altro; consente anche di usare il linguaggio Lua, che consente di eseguire operazioni difficili o impossibili da fare con gli altri due; certo non è obbligatorio usare Lua, se si usa \LuaLaTeX, ma volendo lo si può fare. - -So per certo che le tesi di filologia classica possono essere -composte molto bene con \pdfLaTeX\ e \textsf{TOPtesi}; se bisogna -usare una buona dose di lingua greca classica è conveniente -caricare il pacchetto \pack{teubner}\footnote{A tutt'oggi (2016) il -pacchetto \pack{teubner} funziona correttamente solo con \pdfLaTeX.}; -gli intenditori sanno -perfettamente che i font della casa editrice Teubner di Lipsia -sono fra i più gradevoli che esistano; il pacchetto -\texttt{teubner} fa uso di un'ottima imitazione di quei font e -mette a disposizione una miriade di comandi per comporre quei -segni ``strani'' che i filologi usano per scrivere le loro opere. - -Per le edizioni critiche esistono i pacchetti \texttt{eledmac} e \texttt{reledmac}; io non li ho mai usati, ma sembra che siano di -grande aiuto per gli umanisti. - -Per gli scienziati e i tecnologi esistono troppi pacchetti -specializzati e sarebbe impossibile, e forse inutile, elencarli -tutti o anche elencare solo i più importanti. +Più interessante è il programma di composizione \LuaLaTeX, che incorpora una buona parte del linguaggio di scripting Lua; questo a sua volta permette di compiere diverse azioni esternamente al programma di tipocomposizione (mi risulta che sia usato per impostazione predefinita per comporre la musica gregoriana con il pacchetto \pack{GregorioTeX}); in certi casi esso si può considerare una estensione molto utile del programma \pdfLaTeX. Benché questo programma possa usare la microtipografia come \pdfLaTeX\ e i font OpenType come \XeLaTeX, vale la pena di usarlo al posto di quest'ultimo, se non altro perché ne è un superset che riesce a fare altre cose oltre quelle che \XeLaTeX\ è in grado di fare; in particolare può produrre file archiviabili secondo le norme ISO senza bisogno di nessun post"processing. + +So per certo che le tesi di filologia classica possono essere composte molto bene con \pdfLaTeX\ e \textsf{TOPtesi}; se bisogna usare una buona dose di lingua greca classica è conveniente caricare il pacchetto \pack{teubner}\footnote{A tutt'oggi (\the\year) il pacchetto \pack{teubner} funziona correttamente solo con \pdfLaTeX.}; gli intenditori sanno perfettamente che i font greci della casa editrice Teubner di Lipsia sono fra i più gradevoli che esistano; il pacchetto \texttt{teubner} fa uso di un'ottima imitazione di quei font e mette a disposizione una miriade di comandi per comporre quei segni ``strani'' che i filologi usano per scrivere le loro opere. + +Per le edizioni critiche esistono i pacchetti \texttt{eledmac} e \pack{reledmac}; io non li ho mai usati, ma sembra che siano di grande aiuto per gli umanisti. + +Per gli scienziati e i tecnologi esistono troppi pacchetti specializzati e sarebbe impossibile, e forse inutile, elencarli tutti o anche elencare solo i più importanti. Non resta che augurare: -\begin {center}\Large\bfseries -Buona composizione con \pdfLaTeX\ o \XeLaTeX\ o \LuaLaTeX! +\begin {center}\cambiacorpo{16}\bfseries +Buona composizione con \pdfLaTeX\ o \LuaLaTeX\ o~\XeLaTeX! \end{center} + +\begin{center} +\color{red}\cambiacorpo{16}\bfseries +Happy \TeX{ing} with \pdfLaTeX, or \LuaLaTeX, or~\XeLaTeX! +\end{center} + +\english \appendix \input{LPPL} +\italiano \printindex \end{document} diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi-scudo-example.zip b/Master/texmf-dist/doc/latex/toptesi/toptesi-scudo-example.zip Binary files differnew file mode 100644 index 00000000000..097f7b8ec53 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi-scudo-example.zip diff --git a/Master/texmf-dist/doc/latex/toptesi/toptesi.pdf b/Master/texmf-dist/doc/latex/toptesi/toptesi.pdf Binary files differindex cdb980fcb46..aa0022301b4 100644 --- a/Master/texmf-dist/doc/latex/toptesi/toptesi.pdf +++ b/Master/texmf-dist/doc/latex/toptesi/toptesi.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/veraPDFconformance.pdf b/Master/texmf-dist/doc/latex/toptesi/veraPDFconformance.pdf Binary files differnew file mode 100644 index 00000000000..e134032d419 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/veraPDFconformance.pdf diff --git a/Master/texmf-dist/doc/latex/toptesi/veraPDFnoconformance.pdf b/Master/texmf-dist/doc/latex/toptesi/veraPDFnoconformance.pdf Binary files differnew file mode 100644 index 00000000000..af9106929e1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/toptesi/veraPDFnoconformance.pdf diff --git a/Master/texmf-dist/source/latex/toptesi/toptesi.dtx b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx index c27fbef0194..7fde862f100 100644 --- a/Master/texmf-dist/source/latex/toptesi/toptesi.dtx +++ b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx @@ -7,8 +7,8 @@ \preamble ______________________________________________________ - The TOPtesi package - Copyright (C) 2005-2016 Claudio Beccari + The TOPtesi bundle + Copyright (C) 2015-2017 Claudio Beccari All rights reserved License information appended @@ -16,7 +16,7 @@ \endpreamble \postamble -Copyright 2005-2016 Claudio Beccari +Copyright 2005-2017 Claudio Beccari Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of @@ -25,14 +25,14 @@ this license is at: http://www.latex-project.org/lppl.txt This work is "author-maintained" This work consists of this file toptesi.dtx, a README file -and the derived files: - -toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -toptesi.cfg, and the English documentation toptesi.pdf. +the manifest.txt file, and the derived files: + toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, + toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the + English documentation toptesi.pdf. Furthermore the bundle contains the documentation source -file toptesi-it-pdftex.tex and the derived file -toptesi-it-pdftex.pdf. +file toptesi-it.tex and the derived file +toptesi-it.pdf. The toptesi-example.tex source file is just an example that shows how to use the various commands; by commenting @@ -43,19 +43,27 @@ The topfront-example.tex source file is an example of how to produce just the title page with TOPtesi and the external package frontespizio. +The toptesi-scudo-example.tex source file is an example +that shows the particular features available with TOPtesi, +when a doctoral thesis is produced for the SCUola di +DOttorato (ScuDo) of Politecnico di Torino. + The toptesi.cfg file is a sample of a local configuration file that can be copied to another file and its copy freely -edited and customized. +edited and customised. By running pdflatex on toptesi.dtx the user gets the class, -sty and cfg files and the English documentation file in -pdf format. +sty, def and cfg files and the English documentation file in +PDF format. The source file of the Italian documentation file -toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -In spite of its name, toptesi-it-pdftex.tex may be typeset -with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -lines of the file for how-to information. +toptesi-it.pdf is another example of how to use TOPtesi. +This file toptesi-it.tex may be typeset with pdfLaTeX, +XeLaTeX, and LuaLateX; see the first comment lines of +the file for how-to information. In spite of being mainly +written in Italian, it contains several sections in English +for the benefit of foreign students attending the Doctoral +School of Turin. \endpostamble \askforoverwritefalse @@ -65,6 +73,11 @@ lines of the file for how-to information. \file{topcoman.sty}{\from{toptesi.dtx}{topcmn}} \file{topfront.sty}{\from{toptesi.dtx}{topfrn}} \file{toptesi.cfg}{\from{toptesi.dtx}{topcfg}} + \file{toptesi-scudo.sty}{\from{toptesi.dtx}{topscu}} + \file{toptesi-monografia.sty}{\from{toptesi.dtx}{topmon}} + \file{toptesi-sss.sty}{\from{toptesi.dtx}{topsss}} + \file{toptesi-magistrale.sty}{\from{toptesi.dtx}{topmag}} + \file{toptesi-dottorale.sty}{\from{toptesi.dtx}{topdoc}} } \def\tmpa{plain} @@ -72,7 +85,7 @@ lines of the file for how-to information. \endgroup %</internal> % -% Copyright 1989--2015 Claudio Beccari +% Copyright 1989--2017 Claudio Beccari % % This file is part of the TOPtesi bundle % ------------------------------------------- @@ -90,15 +103,15 @@ lines of the file for how-to information. % 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 self unpacking file toptesi.dtx -% which is part of the distribution. +% The set of derived (unpacked) files belonging to the distribution +% and covered by LPPL is created by the self unpacking file toptesi.dtx +% which is the principal part of the distribution. % % \fi % % \iffalse %^^A The following trick uses the same date for every file header. -%<class,topsty,topcmn,topfrn>\NeedsTeXFormat{LaTeX2e}[2015/01/01] +%<class,topsty,topcmn,topfrn,topscu,topmon,topsss,topmag>\NeedsTeXFormat{LaTeX2e}[2016/01/01] %<*driver> \ProvidesFile{toptesi.dtx}[% %</driver> @@ -106,13 +119,23 @@ lines of the file for how-to information. %<topsty>\ProvidesPackage{toptesi}[% %<topcmn>\ProvidesPackage{topcoman}[% %<topfrn>\ProvidesPackage{topfront}[% -%<*driver,class,topsty,topcmn,topfrn> -2016/11/25 v.5.9.06 +%<topscu>\ProvidesPackage{toptesi-scudo}[% +%<topmon>\ProvidesPackage{toptesi-monografia}[% +%<topsss>\ProvidesPackage{toptesi-sss}[% +%<topmag>\ProvidesPackage{toptesi-magistrale}[% +%<topdoc>\ProvidesPackage{toptesi-dottorale}[% +%<*driver,class,topsty,topcmn,topfrn,topscu,topmon,topsss,topmag,topdoc> +2017/10/22 v.~6.1.09 %<class>Class for typesetting university theses] %<topsty>Extension for toptesi.cls] %<topcmn>Additional commands for the TOPtesi bundle] %<topfrn>Title page for TOPtesi and other classes] -%</driver,class,topsty,topcmn,topfrn> +%<topscu>Extension for ScuDo theses] +%<topmon>Bachelor degree title page] +%<topsss>High school title page] +%<topmag>Master degree title page] +%<topdoc>Ph.D. degree title page] +%</driver,class,topsty,topcmn,topfrn,topscu,topmon,topsss,topmag,topdoc> %<*driver> ] %</driver> @@ -123,10 +146,87 @@ lines of the file for how-to information. \date{\fileversion\space--- \filedate} \author{Claudio Beccari\thanks{E-mail: \texttt{claudio dot beccari at gmail dot com}}} -\usepackage{metalogo,multicol} +\usepackage{metalogo,multicol,enumitem,xspace, + xparse,curve2e,etoolbox,textcomp} +\let\originalmeta\meta +\renewcommand\meta[1]{{\normalfont\originalmeta{#1}}} \def\prog#1{\textsf{#1}} \def\pack#1{\textsf{\slshape#1}} \def\env#1{\textit{#1}}\let\amb\env +\def\file#1{\texttt{#1}} +\def\marg#1{{\normalfont\texttt{\{}\meta{#1}\texttt{\}}}} +\def\Marg#1{{\texttt{\{#1\}}}} +\def\opz#1{{\normalfont\textsl{#1}}} +\def\oarg#1{{\normalfont\texttt{[\meta{#1}]}}} +\def\Oarg#1{{\normalfont\texttt{[#1]}}} +\def\parg#1{{\normalfont\texttt{(\meta)}}} +\def\Parg#1{{\normalfont\texttt{(#1)}}} +\def\TeXLive{TeXLive\xspace} +\def\pdfLaTeX{pdf\/\LaTeX\unskip\xspace} +\newcommand*\Bambiente[1]{\texttt{\char92begin}\Marg{#1}} +\newcommand*\Eambiente[1]{\texttt{\char92end}\Marg{#1}} +\DeclareRobustCommand\sigla[1]{\lowercase{\textsc{#1}}} +\newenvironment{ttsintassi}{\flushleft\ttfamily\obeylines}{\endflushleft} +% +%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +% Some macros to typeset a framed box of natural or specified +% width and height within the picture environment. +% Needs packages curve2e, etoolbox, and xparse. +% Syntax: +% \Zbox(<position>)(<dimensions>)[<alignment>]{<box contents>} +% The first and fourth arguments are mandatory; the second +% and third arguments are optional; their default values are +% (0,0) and [bl]. Furthermore the <position> and <dimension> +% values are a comma separated pair of numbers representing +% measures in \unitlength units, as well as it is done within the +% picture environment. No provision is coded to take the measure +% of the <box contents>. This contents should be some text, and when +% <dimensions> are specified larger than zero, a \parbox is used +% to typeset it. The <alignment> value(s) define the reference point +% that is \put at the <position> coordinates. +% +\def\TOPsplitArgs(#1,#2)#3#4{\edef#3{#1}\edef#4{#2}} + +\NewDocumentCommand\Zbox{R(){0,0} D(){0,0} O{bl} m}{% +\TOPsplitArgs(#2)\ZboxX\ZboxY % separa la x e la y della scatola +\fboxsep=2\unitlength +\ifnum\ZboxX=\csuse{z@} + \def\ZTesto{\fbox{#4}}% +\else + \ifnum\ZboxY=\csuse{z@} + \def\ZTesto{\fbox{\parbox{\ZboxX\unitlength}{#4}}}% + \else + \def\ZTesto{% + \setbox2560=\hbox{\fbox{% + \parbox[c][\ZboxY\unitlength][c]{\ZboxX\unitlength}{#4}}}% + \dimen2560=\dimexpr(\ht2560 +\dp2560)/2\relax + \ht2560=\dimen2560\relax + \dp2560=\dimen2560\relax + \box2560% + }% + \fi +\fi +\put(#1){\makebox(0,0)[#3]{\ZTesto}}} + +\NewDocumentCommand\fileicon{R(){0,0} m}{% +\put(#1){\moveto(0,-10) +\curveto(7.5,-10)(7.5,-7.5)(15,-7.5) +\lineto(15,10) +\curveto(7.5,10)(7.5,7.5)(0,7.5) +\lineto(0,-10) +\strokepath}\put(#1){\put(7.5,0){\makebox(0,0){\ttfamily#2}}} +} + +\def\ifTOPnextchar{\csuse{@ifnextchar}} + +\def\polyvector(#1){\def\TOPlastpoint{#1}\TOPpolyvector} + +\def\TOPpolyvector(#1){\ifTOPnextchar({\segment(\TOPlastpoint)(#1)% +\def\TOPlastpoint{#1}\TOPpolyvector}{\VECTOR(\TOPlastpoint)(#1)}} % ) + + +%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \begin{document}\errorcontextlines=9 \maketitle \begin{multicols}{2} @@ -138,402 +238,994 @@ lines of the file for how-to information. %</driver> % \fi % -% \CheckSum{2847} +% \CheckSum{7520} % % \begin{abstract} -% This file describes the TOPtesi bundle; it is a set of files designed to -% typeset 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\ This ambition can't be fulfilled, though, -% because of the complexity of the title page (and possibly of the legal page) -% requirements. This version is experimentally compliant with the \XeLaTeX\ -% and the \LuaLaTeX\ programs. Up to now the few conflicts that have been -% spotted have been solved with suitable corrections or additions. -% The most important feature with \XeLaTeX\ is that the option pdfa cannot be -% used any more; this is due to the fact that the typesetting engine \XeTeX\ -% does not produce directly any PDF output but a modified, extended DVI -% output, that is immediately converted into a PDF file through xdvipdfmx, -% a special version of the conversion program. Another minor \XeLaTeX\ -% feature is that it cannot fully exploit the typesetting facilities -% of the microtype package, but the wide choice of OpenType fonts replaces -% almost completely such missing features. +% This file describes the TOPtesi bundle; it is a set of files +% designed to typeset 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\ This ambition can't be +% fulfilled, though, because of the complexity of the title +% page (and possibly of the legal page) requirements. This +% version is compliant with the \XeLaTeX\ and the \LuaLaTeX\ +% programs. Up to now the few conflicts that have +% been spotted have been solved with suitable corrections or +% additions. The most important feature with \XeLaTeX\ is that +% the option \opz{pdfa} cannot be used any more; this is due to the +% fact that the typesetting engine \XeTeX\ does not directly +% produce any \sigla{PDF} output but a modified, extended DVI one, +% that is immediately converted into a \sigla{PDF} file through +% |xdvipdfmx|, a special version of the conversion program. Another +% minor \XeLaTeX\ feature is that it cannot fully exploit the +% typesetting facilities of the |microtype| package, but the wide +% choice of OpenType font properties replaces almost completely +% such missing |microtype| features. +% +% With version~6.xx, the bundle has been modularised in a (hopefully) +% more efficient way, although it is backwards compatible, so that +% version~5.xx functionalities are still available. +% +% A totally new module is the one that allows to typeset the Italian +% high school ``tesina'', a document that is examined by the +% graduation exam committee at the end of secondary studies. +% +% The user should not be scared by the number of pages of this +% documentation; s/he should read part of the first 31 pages, +% those that concern his/her thesis. The rest is just the code +% and its documentation; it is useful mostly for me, as the +% author, and to other programmers and/or curious users. +% The ``normal'' user should not spend his/her time to read +% unnecessary information. % \end{abstract} % +% \section{History} +% The TOPtesi bundle at its very beginning in the early nineties +% was just one |.sty| file to ben used with the|report| class. +% At that time there was only \LaTeX{\,209} and extension +% packages were called ``style files''; The |.sty| extension +% is still used to day for backwards compatibility, but |.sty| +% files are not any more used to change the style of the document. +% +% With version 2.x, suitable for \LaTeXe, the bundle was +% modified in order to have a class of its own, +% |toptesi.cls|, which provided to collecting the necessary +% options and to pass them to the |report| class and +% loaded the |toptesi.sty| just afterwords. +% The latter file was not monolithic any more; it was split +% in three parts: |toptesi.sty| contained most settings and +% the macros to be used in the body of the document; +% |topfront.sty| provided the commands for entering all the +% necessary and optional data for the frontispiece (or title +% page) and actually typeset the title page in different +% styles; |topcoman.sty| contained the definitions of several +% useful commands; actually this module could be used without +% reference to the TOPtesi bundle, being suitable as an +% extension to any class. +% The general scheme may be represented by the flow diagram in figure~\ref{fig:simple-flow-diagram}. +%\begin{figure}\centering +%\unitlength=0.00925\textwidth +%\begin{picture}(106,20) +%\fileicon(0,10){.tex}\VECTOR(15,10)(20,10) +%\Zbox(20,10)(18,0)[l]{\ttfamily toptesi.cls\\toptesi.sty}\VECTOR(41.5,10)(47,10) +%\Zbox(47,10)[l]{\ttfamily topfront}\VECTOR(63.5,10)(70,10) +%\Zbox(70,10)[l]{\ttfamily topcoman}\VECTOR(86.5,10)(91,10) +%\fileicon(91,10){.pdf} +%\end{picture} +%\caption{Quasi original TOPtesi bundle flow diagram} +%\label{fig:simple-flow-diagram} +%\end{figure} +% +% Version 3.x was modified, on request of several users, in +% order to avoid the |toptesi.cls| class file, but to allow +% the other files, from |toptesi.sty| on, to be used with +% any standard or custom class. +% +% On request of other users, after other upgrades, the bundle was +% upgraded to version 5.85; the purpose was to introduce the +% possibility of typesetting the thesis title page with a package +% totally independent from the TOPtesi bundle. In particular the +% |frontespizio| package by Enrico Gregorio was considered +% a fancy choice for most Italian user, but the approach +% was open to any other package. The choice was made by +% setting suitable switches (boolean variables). The solution +% opened the bundle to other external contributions, although +% the mechanism was sort of tricky. The bundle was made +% compatible with other packages, for example |caption| +% and/or |geometry|, while before such packages produced +% options clashes and or other errors, so that their use +% was explicitly forbidden. Meanwhile the |topfront| module +% was configured to be loaded just after the preamble end, +% so as to be able to check if the user loaded packages +% required special special attention in order to avoid conflicts; +% see figure~\ref{fig:toptesi+frontspizio}. +% +%\begin{figure}\centering\unitlength=0.009\textwidth +%\begin{picture}(115,45)(0,-3) +%\fileicon(0,10){.tex}\VECTOR(15,10)(20,10) +%\Zbox(20,10)(18,0)[l]{\ttfamily toptesi.cls\\toptesi.sty} +%\Zbox(20,30)(18,0)[l]{\centering\ttfamily user loaded\\packages} +%\VECTOR(42,10)(50,10) +%\VECTOR(31,23)(31,15) +%\polygon(50,10)(55,5)(60,10)(55,15) +%\polyvector(55,5)(55,0)(60,0) +%\Zbox(60,0)[l]{\ttfamily topfront} +%\polyvector(55,15)(55,20)(60,20) +%\Zbox(60,20)[l]{\ttfamily frontespizio} +%\VECTOR(42,30)(47,30)\put(49,30){\circle{4}}\VECTOR(51,30)(60,30) +%\polyvector(42,12)(49,12)(49,28) +%\Zbox(60,30)[l]{\ttfamily topcoman} +%\put(87,10){\circle{4}}\VECTOR(89,10)(95,10) +%\polyvector(84,20)(87,20)(87,12) +%\polyvector(77,0)(87,0)(87,8) +%\polyvector(77,30)(90,30)(90,15)(95,15) +%\fileicon(95,10){.pdf} +%\end{picture} +%\caption{Advanced TOPtesi bundle flow diagram} +%\label{fig:toptesi+frontspizio} +%\end{figure} +% +% Version 5.x introduced a new feature; the specific settings +% for the doctoral theses written at Politecnico di Torino +% (Technical Institute od Turin); after all the bundle was +% born in that university. The switching mechanism to select +% the various thesis title page settings still worked with +% suitable boolean variables, but it was becoming a little +% too clumsy. +% +% In order to put some order in this situation I decided to +% upgrade to version 6.x; the class options now use the +% \emph{key\,$=$\,value} syntax (of course the value +% |true| is the default setting for boolean variables). +% This allows to select the thesis type with a +% \emph{key\,$=$\,value} option, therefore the selection and +% configuration of the title page should be simpler than before. +% +% The new situation flow diagram is represented in +% figure~\ref{fig:key-value-option}; the diagram is +% complicated but, once selected a specific option +% for the thesis type, the diagram reduce to a linear one. +% +%\begin{figure}[p]\centering +%\unitlength=0.008\textwidth +%\begin{picture}(112.5,140) +%\fileicon(0,33){.tex} +%\polyvector(15,33)(20,33)(20,48)(0,48)(0,58)(5,58) +%\Zbox(5,58)(18,0)[l]{\small\ttfamily toptesi.cls\\toptesi.sty} +%\VECTOR(27,58)(32,58) +%\put(36.5,57){\rotatebox[origin=Bl]{90}{% +% \makebox(0,0){\fboxsep=2\unitlength +% \framebox(116,9){\parbox[c][5\unitlength][c]{112\unitlength}% +% {\centering Options\\\texttt{tipotesi\,=\,}\emph{value}}}}}} +%\VECTOR(41,6)(45,6)\Zbox(45,6)(25,0)[l]{% +%\centering\texttt{topfront} (\emph{default})} +%\VECTOR(41,22)(45,22)\Zbox(45,22)(31,0)[l]{\centering\texttt{toptesi-triennale}} +%\VECTOR(41,37)(45,37)\Zbox(45,37)(33,0)[l]{\centering\texttt{toptesi-magistrale}} +%\VECTOR(41,52)(45,52)\Zbox(45,52)(31,0)[l]{\centering\texttt{toptesi-dottorale}} +%\VECTOR(41,67)(45,67)\Zbox(45,67)(31,0)[l]{\centering\texttt{toptesi-scudo}} +%\VECTOR(41,81)(45,81)\Zbox(45,81)(32,0)[l]{\centering\texttt{toptesi-sss}} +%\VECTOR(41,96)(45,96)\Zbox(45,96)(32,0)[l]{\centering\texttt{frontespizio}} +%\VECTOR(41,111)(45,111)\Zbox(45,111)(32,0)[l]{\centering\texttt{custom}} +%\Zbox(5,129.5)(18,0)[l]{\centering\ttfamily user loaded\\packages} +%\VECTOR(16,122)(16,63.5) +%\VECTOR(27,129,5)(35,129.5)\put(37,129.5){\circle{4}} +%\VECTOR(39,129.5)(45,129.5) +%\Zbox(45,129.5)(16,0)[l]{\centering\ttfamily topcoman} +%\polyvector(27,61)(29,61)(29,120)(37,120)(37,127.5) +%\put(90,67){\circle{4}}\VECTOR(92,67)(97.5,67) +%\polyvector(65,129.5)(93,129.5)(93,70)(97.5,70)^^A topcomand +%\polyvector(81,111)(90,111)(90,69)^^A custom +%\polyvector(81,96)(88,96)(88,72)(89,68.4)^^A frontespizio +%\polyvector(81,81)(86,81)(86,70)(88.4,68.2)^^A secondaria +%\VECTOR(80,67)(88,67)^^A scudo +%\polyvector(80,52)(86,52)(86,63)(88.4,65.6)^^A dottorale +%\polyvector(82,37)(88,37)(88,60)(89,65.2)^^A magistrale +%\polyvector(80,22)(90,22)(90,65)^^A triennale +%\polyvector(74,6)(92,6)(92,62)(91,65.1)^^A topfront +%\fileicon(97.5,68.5){.pdf} +%\end{picture} +%\caption{Version 6.x TOPtesi bundle flow diagram} +%\label{fig:key-value-option} +%\end{figure} +% +% Special care was paid to maintain backwards compatibility; +% the various (|.sty| module files with descriptive names) +% should be usable also with other classes, if desired. +% It is possible to specify a |custom| value for a thesis type; +% in this case the user is required to explicitly load his/her +% personal package, or to avoid loading anything and use +% either a different typesetting program to produce a title +% page (in \sigla{pdf} format to be included by means of +% the |pdfpages| package), or even create his/her personal +% title page by means of the standard |titlepage| environment. +% +% All this implied the rewriting of both the English and +% Italian documentation files; the user can find useful +% information in the English file |toptesi.pdf| included +% in the bundle; this file is pretty lengthy because it +% contains also the documented code. The Italian documentation +% in |toptesi-it.pdf|, is also part of this bundle; it is +% partly written in English for the benefit of the many foreign +% students that study in the doctoral school of Politecnico di +% Torino); it contains many examples enriched with graphic +% ``demonstrations''. These two documentation files complement +% one another. +% % \section{Introduction} % The TOPtesi bundle contains a certain number of files. -% \begin{enumerate} -% \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 other classes, -% although this use is seldom necessary. -% \item A second extension package \texttt{topfront.sty} that contains 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. This package is part of the bundle, but it is -% automatically loaded only if the user did not specify the class option -% |noTOPfront| or its alias |usefrontespizio|; if this option is specified -% the user is free to use whatever other external package s/he prefers in -% order to typeset the tile page; in this case we suggest to use the package -% |frontespizio| and we address the user to its documentation. It is important -% to recall that if the |topfront| package has to be loaded, is is only at -% the execution of the |\begin{document}| command. There fore no title page -% commands of any kind (those defined by |topfront|) can be used in the preamble. -% \item A third extension package \texttt{topcoman.sty} that defines a certain -% number of user commands suitable for typesetting technical matters. -% \item Previous versions of this bundle contained also the logos of a set of -% universities; these logos are not distributed anymore because of legal -% constraints. Every one who is working on his/her degree course final report -% must retrieve the logo of his/her university, but s/he should pay attention -% to use it according to the rules and limitations of the university. -% \item A documentation file \texttt{toptesi-it-xetex.pdf} written in Italian -% where every feature is explained in detail; essential information is given -% in this English documentation. The source file of the documentation -% \texttt{toptesi-it-xetex.tex} may be used as a sample or template for -% typesetting one's thesis with XeLaTeX. +% \begin{enumerate}[noitemsep] +% \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 triennale'', ``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 other classes, although this use is seldom necessary. +% \item +% A second extension package \texttt{topfront.sty} that contains +% 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 or the book class files 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. This package is part of the bundle, but it is +% automatically loaded only if the user did not specify the +% |tipotesi=|\meta{thesis type} option to the class; if the +% |toptesi=frontespizio| option is specified, the external package +% |frontespizio| gets loaded; if the |toptesi=custom| option is +% specified the user should everything by him/herself. +% The |tipotesi=custom| is very tolerant; in the sense that the user +% is allowed to avoid loading any custom package, and simply create +% the title page by means of the standard |titlepage| environment. +% \begin{itemize}[noitemsep] +% \item \opz{tipotesi=triennale} (or \opz{monografia} for +% backwards compatibility) for the bachelor degree final work; +% \item \opz{tipotesi=magistrale} for the master thesis; +% \item \opz{tipotesi=dottorale} for the Ph.D.\ thesis; +% \item \opz{tipotesi=scudo} for the special version of the Ph.D.\ +% thesis at Politecnico di Torino; +% \item \opz{tipotesi=secondaria} for the high school ``tesina''; +% \item \opz{tipotesi=custom} for using another title page package, +% possibly a customised one the user may create in +% accordance with a certain template that implements his/her +% university requirements. +% \item \opz{tipotesi=frontespizio} for typesetting a +% frontispiece according to the style of the |frontespizio| +% package. +% \end{itemize} +% Without using a custom module, we suggest to use the package +% |frontespizio| and we address the user to its documentation. +% +% It is important to recall that if the |topfront| package has +% to be loaded, it is only at the execution of the |\begin{document}| +% command. Therefore no title page commands of any kind (those +% defined by |topfront| or the other modules) can be used in the +% preamble. +% \item +% A third extension package \texttt{topcoman.sty} that defines +% a certain number of user commands suitable for typesetting +% technical matters. +% \item +% Several extension files are available: +% \texttt{toptesi-\meta{module}.sty} where \meta{module} is one +% of |monografia|, |magistrale|, |dottorale|, |scudo|, |sss|; +% these are specifically designed to typeset particular +% thesis kinds; |scudo| refers to the particular doctoral school +% of Politecnico di Torino, whose official name is \emph{Scuola di +% Dottorato}, whence the acronym ``ScuDo''. Such ScuDo theses must +% be typeset in English only, and must have a special title page, +% very different from the other title pages that can be typeset with +% the various options of the TOPtesi bundle and by the +% commands contained in the various modules. In all cases where +% specific modules exists, a specific module option is available for +% the class such that \texttt{topfront.sty} does not get loaded, and +% another set of commands is made available to set up +% the necessary information. +% \item +% Previous versions of this bundle contained also the logos of +% a set of universities; these logos are not distributed anymore +% because of legal constraints. Every user who is working on +% his/her degree course final report may retrieve the logo of +% his/her university, but s/he should pay attention to use it +% according to the rules and limitations of the university. +% \item +% A documentation file \texttt{toptesi-it.pdf} written mostly +% in Italian, explains in detail every feature; essential information +% is given in this English documentation. The source file of the +% documentation \texttt{toptesi-it.tex} may be used as a sample +% or template for typesetting one's thesis with any of \pdfLaTeX, +% \XeLaTeX, or \LuaLaTeX. % \end{enumerate} % -% The above files are complemented with a configuration file that any user may -% customise at will; this customisation file makes it easy to configure the -% bundle so as to make it suitable for another language; in facts the -% \textsf{babel} and \textsf{polyglossia} packages contain localisations -% for many languages, but such localisations deal with the standard infix -% \LaTeX\ names and phrases and do not cope with the thesis title page requirements. -% This customisation is usable only if no |noTOPfront| or |usefrontespizio| -% option had been declared to the class. -% -% TOPtesi was specifically conceived for typesetting theses with the \LaTeX\ mark-up, -% and initially it was using the \textsf{tex} typesetting engine; later on this engine -% was substantially substituted by the \textsf{pdftex} one, which was capable -% of direct output of PDF files. Since about 2006 the typesetting engine \XeTeX\ -% is available; the most important feature of this engine is its capability -% of using OpentType fonts, among which those that are available to the -% operating system of the specific platform where the document is being typeset. -% For what concerns theses this might be of essential importance when the thesis -% deals with specific languages that use different scripts (Greek, Russian, -% Bulgarian, Chinese, Japanese, Korean, Hebrew, Arabic, Farsi, Thai, and so on). -% -% This version of TOPtesi has been tested with \XeLaTeX. Some conflicts have -% been spotted and solved; may be there are still hidden ones, so that feedback -% from users is particularly welcome. The only main drawback still present +% The above files are complemented with a configuration file +% that any user may customise at will; this customisation file +% makes it easy to configure the bundle so as to make it suitable +% for another language; in facts the \textsf{babel} and +% \textsf{polyglossia} packages contain localisations for many +% languages, but such localisations deal with the standard infix +% \LaTeX\ names and phrases and do not cope with the thesis +% title page requirements. This configuration file is usable only +% when no custom or external files are used for typesetting +% the title page; but they may be used for all standard modules +% of this bundle. +% +% TOPtesi was specifically conceived for typesetting theses +% with the \LaTeX\ mark-up, and initially it was using the +% \textsf{tex} typesetting engine; later on this engine was +% substantially substituted by the \textsf{pdftex} one, which +% was capable of direct output of \sigla{PDF} files. Since about 2006 +% the typesetting engine \XeTeX\ has been available; the most important +% feature of this engine is its capability of using OpenType +% fonts, among which those that are available to the +% operating system of the specific platform where the document +% is being typeset. Since 2017 a stable version of \LuaTeX\ is +% available that does much more than \XeTeX. +% +% For what concerns theses these programs might be of essential +% importance when they deal with specific languages that use +% different scripts (Greek, Russian, Bulgarian, Chinese, Japanese, +% Korean, Hebrew, Arabic, Farsi, Thai, and so on). Of course +% \LuaLaTeX\ has many more functionalities and can perform very +% well where the other engines are sort of limited; in particular +% \LuaLaTeX\ can produce \sigla{ISO}-compliant archivable-documents more +% easily than the other typesetting engines; but the user does not +% have to learn too many more concepts in order to typeset a +%``normal'' thesis. +% +% This version of TOPtesi has been tested also with \XeLaTeX\ and +% \LuaLaTeX. Some conflicts have been spotted and solved; may +% be there are still hidden ones, so that feedback from users +% is particularly welcome. The only main drawback still present % when running \XeLaTeX\ is the fact that this program cannot still -% \emph{directly} produce the output file in PDF format, although it -% automatically transforms its specific output file into PDF format. This -% implies that the specific \textsf{pdftex} features required to produce -% a PDF/A compliant output PDF file suitable for long term archiving cannot -% be used. But with some attention the PDF file output by \XeLaTeX\ may be -% converted to PDF/A by using the program \prog{ghostscript}. +% \emph{directly} produce the output file in \sigla{PDF} format, +% although it automatically transforms its specific output file +% into that format. +% This implies that the specific \textsf{pdftex} features required +% to produce a \sigla{PDF/A} compliant output \sigla{PDF} file suitable for +% long term archiving cannot be used. But with some attention the +% \sigla{PDF} file output by \XeLaTeX\ may be converted to \sigla{PDF/A} +% by using the \pack{pdfpages} package. % % \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. -% -% Theses very often are full of specialised 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 ``gone by times'' of mechanical typewriters +% 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. +% +% Theses very often are full of specialised 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 gone-by times'' of mechanical typewriters % should be banned. % -% At the same time the class allows to typeset theses on any paper format; -% nowadays, in facts, Universities are requesting theses in smaller formats -% than A4 or letter paper. With smaller paper sizes the layout changes -% automatically, but the title page might require some more attention. The -% default paper size is A4, but the user can set any paper size among those -% accepted by the |report| standard class. If the |noTOPfront| option -% was specified and the package |frontepsizio| was loaded by the user, it -% is necessary to remind that it can easily create pretty nice title pages, but -% by default it is preset to use A4 paper where it can typeset the tytle page in -% two styles, one so called ``standard'' and the other called ``elements'', that -% mimics that of the famous book \emph{Elements of typographic style} by -% Robert Bringhurst; this is so at least with |frontespizio|'s version -% 1.4a of 2011/09/21 or earlier. It is possible to use |frontespizio| to use -% a different paper size, but it's necessary to make use of certain -% customisation commands described in its documentation. -% -% Therefore if you want to typeset your thesis while typesetting the title -% page by means of the functionalities of package |frontespizio| you have -% to follow carefully how to use that package's options in the proper way -% as to bypass the two fixed styles it can produce. -% See also the Italian documentation contained in the document |toptesi-it-xetex.pdf|. -% -% 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 class. If \XeLaTeX\ has to be -% used, some essential preamble specific commands are to be used, but essentially +% At the same time the class allows to typeset theses on any paper +% format; nowadays, in facts, Universities are requesting theses +% in smaller formats than A4 or letter paper. With smaller paper +% sizes the layout changes automatically, but the title page might +% require some more attention. The default paper size is A4, but +% the user can set any paper size among those accepted by the +% |report| standard class. If the \opz{tipotesi=frontespizio} +% option was specified so that package |frontespizio| gets +% loaded, it is necessary to remind that it can easily create +% pretty nice title pages, but by default it is preset to use A4 +% paper where it can typeset the title page in two styles, one so +% called ``standard'' and the other called ``elements'', that +% mimics that of the famous book \emph{Elements of typographic +% style} by Robert Bringhurst; this is so at least with +% |frontespizio|'s version 1.4a of 2011/09/21 or earlier. It is +% possible to use |frontespizio| to use a different paper size, +% but it's necessary to use certain customisation commands +% described in its documentation. +% +% Therefore if you want to typeset your thesis while typesetting +% the title page by means of the functionalities of package +% |frontespizio|, you have to follow carefully how to use that +% package's options in the proper way as to bypass the two fixed +% styles it can produce. See also the Italian documentation +% contained in the document |toptesi-it.pdf|. +% +% 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 class. If \XeLaTeX\ or \LuaLaTeX\ has to be used, +% some essential preamble specific commands are to be used, but % the body of the thesis has the same mark-up. % +% For theses to be typeset for the ScuDo doctoral school, +% all necessary commands become available when the class +% option \opz{tipotesi=scudo} is specified; such commands are +% available \emph{only} with that option. See the documentation +% in the suitable section~\ref{sec:scudo}. Similarly see the suitable +% sections for the special thesis modules available with their +% specific options. +% % \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. This implies a manual build up of each end-of-chapter bibliography -% by means off a specific |thebibliography| environment. This works may be -% avoided if the user relies on the various packages already available in any -% complete \TeX\ system distribution and the facilities offered by packages -% such as \pack{biblatex} and sorting end formatting engines such as \prog{biber}. -% -% \Item[classica] Specifies a general modification of certain details that are -% supposed to be more adequate for theses in 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 up by sewing together a number of signatures; -% the default outer displacement is fixed to~7mm, but it can be customised by means -% of a proper entry in the configuration file or by an explicit command in the preamble. -% -% \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. -% -% \Item[autoretitolo] This option modifies the left hand (even numbered) pages -% in two side typesetting; normally the even numbered page 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 ordinary 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. -% -% \Item[noTOPfront] allows the user to load a different package for -% creating and typesetting the title page; of course if this option is -% specified, the native package |topfront| is not loaded, and the commands -% described in the next section are not available. On the opposite, commands available -% with the chosen package become available, while possible package conflicts are -% eliminated at the root. -% -% \Item[usefrontespizio] is basically equivalent to the previous option; both -% options set up the |\ifTOPfront| switch that is more mnemonic than the long -% (actually not defined) |\iffrontespizio| one; if it was defined, |\iffrontespizio| -% would be true when |\ifTOPfront| is false. +% The class accepts all the options accepted by the |report| +% document class plus the ones defined here: +% \begin{description}[noitemsep]\def\Item[#1]{\item[\opz{#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. This implies a manual build +% up of each end-of-chapter bibliography by means off a specific +% |thebibliography| environment. This work may be avoided if the +% user relies on the various packages already available in any +% complete \TeX\ system distribution and the facilities offered +% by packages such as \pack{biblatex} and sorting and formatting +% engines such as \prog{biber}. The use of this option, kept for +% backwards compatibility, is strongly deprecated. +% +% \Item[classica] Specifies a general modification of certain +% details that are supposed to be more adequate for theses in +% humanities; specifically this option lets old style numbers to +% be used for some numerical pieces of information; some variations +% are also introduced in the title page. This option is active also +% when using some of the modules for specific theses, in particular +% with the \textsf{dottorale} thesis option. +% +% \Item[cucitura=\meta{displacement}] In two sided printing +% it is better to move the typesetting grid towards the outer +% edge so as to cope with the thesis binding that is generally +% not made up by sewing together a number of signatures; the +% default outer displacement is fixed to~7mm, but it can be +% customised by means of a proper value to the class option +% |cucitura=|\meta{displacement} or by using an explicit command +% in the preamble: \cs{setbindingcorrection}\marg{displacement}. +% The \meta{displacement} specification is necessary but it +% remains inactive if the key \texttt{cucitura} is absent while +% using the \cs{setbindingcorrection} command. +% +% \Item[corpo=\meta{font size}] Extends the normal size +% choice to the chosen \meta{font size}; it is +% appreciated in certain 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. In any case the \meta{font size} may be +% specified in any units the \TeX\ system accepts, and any +% value, even fractional, may be used. Please, do not +% exaggerate with small sized normal fonts, where I would +% say that 9.5pt is the absolute minimum acceptable size for +% normal text. Do not exaggerate with large sizes; 14pt is +% acceptable for certain theses where unusual signs are +% used above or below some letter strings, otherwise 14pt +% is already too much; let us say that 12.5pt or 13pt are +% the maximum normally accepted; larger sizes are used only +% for books to be used in the first years of the elementary +% school or for people with various kinds of visual impairment. +% +% \Item[autoretitolo] This option modifies the left hand (even +% numbered) pages in two side typesetting; normally the even +% numbered page headings contain the chapter title, while the +% odd numbered ones contain the current section title. +% If the \opz{classica} option has been specified, then +% with this option (that is effectively working only with the +% \opz{classica} option in force) it is possible to have even +% numbered page 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 +% redefined so as to accept an optional short title, similarly +% to the ordinary sectioning commands. +% +% \Item[oldstyle] Also this option works only if \opz{classica} +% had already been specified; it typesets several numerical data +% with the old style numbers. +% +% \Item[numerazioneromana] Sets the front matter folios in roman +% numerals; if this option is not used, the folios are in roman +% numerals and do not restart from~1 when the first main matter +% chapter is typeset. The traditional roman numbering of front +% matter folios had its explanation when typesetters used metal +% type; therefore they could produce all the front matter material, +% including reference, tables of contents, and the like, only +% when the main matter was complete, corrected and stable. +% Nowadays with electronic typesetting there is no need to need +% to use this artifice, but in some disciplines it is still +% highly appreciated. +%\end{description} +% +% Since version 6.xx.yy options to the TOPtesi class have the +% syntax \emph{key${}={}$value}; depending on the kind of thesis, +% there there are some vlues that are particularly significant; +% the key for all of them is |tipotesi| (\emph{thesis kind}); +% the values are indicated hereafter. +% +%\begin{description}[noitemsep]\def\Item[#1]{\item[\opz{#1}]} +% +% \Item[tipotesi-topfront] is the default and it is not necessary +% to specify it. This means that if you specify |tipotesi| without +% a value, or if you completely omit this option, the generic +% |topfront| module is used to typeset the title page. +% +% \Item[tipotesi=frontespizio] omits loading the generic module +% |topfront| and loads the external package |frontespizio|' +% without any option; this implies that the user should read its +% documentation and use it accordingly. +% +% \Item[tipotesi=scudo] sets up the suitable switches and allows +% loading the specific extensions to typeset doctoral theses for +% the ScuDo doctoral school. This implies that not only the title +% page is typeset according to this School regulations, but that +% some other packages get preloaded; the user can read further +% on what actually becomes available with this option; the most +% relevant difference is that the default language becomes English +% also for the naming of the user commands.. +% +% \Item[tipotesi=triennale] and \opz{tipotesi=monografia} +% (aliases of one another) load the specific module to +% typeset the bachelor degree final-work title-page. Some +% user commands are redefined so as to be more user friendly +% than those of the generic package |topfront|. +% +% \Item[tipotesi=magistrale] loads the specific module +% to typeset the master degree thesis title-page. This module +% is substantially equivalent to the generic module |topfront| +% except that typesets only the master degree thesis title page. +% +% \Item[tipotesi=dottorale] loads the specific +% module to typeset doctoral thesis title-pages. This module is +% very basilar and has nothing to do with the module for the +% ScuDo doctoral theses that require a particular title-page +% layout; we suggest to customise this module through a suitable +% configuration file, rather then tweaking the ScuDo module. +% +% \Item[tipotesi=secondaria] loads the module to typeset the +% secondary school (high school) final work title page. The +% default language, also for the user commands, is Italian. +% Of course the secondary school final work title page is very +% different from the one suited for university theses. In any +% case, except for few additional packages, the body of the +% TOPtesi functionality is maintained intact. +% +% \Item[tipotesi=custom] +% is a very simple option: sets the various internal switches +% so as not to load any internal module or external file. +% If the user explicitly loads one before the |\begin{document}| +% statement, this file becomes the one that the user must follow +% to create his/her own title page; otherwise if the user wants +% a custom title page s/he uses the |titlepage| environment; +% in this case the user is completely free to write what s/he +% wants, where s/he prefers, using the fonts s/he likes, and +% so on. In alternative the user prepares the title page in +% \sigla{pdf} format with some other program and includes it +% in his/her thesis by means of the functionalities of the +% |pdfpages| package. In any case the user is not forced by +% this TOPtesi bundle to use any of its title page facilities. +% +% \item[Attention!] It goes by itself that each one of the last +% options does not load the generic module |topfront|, therefore +% the commands provided by this standard module are not available +% any more. Every effort has been made in the various modules to +% maintain the same commands, but in certain thesi kinds they +% might behave differently than expected. +% +% The user therefore is strongly urged to consult the documentation +% files, both |toptesi.pdf| and |toptesi-it.pdf|, in order to +% avoid problems with commands that are not suited for a particular +% thesis type. Please examine also the examples that accompany +% this bundle % \end{description} % % \subsection{Title page commands} -% Note: Skip this section if you decide to load an external package for -% the title~page. Notice also that if you want to load an external package for -% typesetting the title page, you should load it \emph{after} specifying -% the input encoding you use for your text files.\bigskip -% -% \noindent 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 ``final 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 one -% argument; only the command |\title| accepts an optional argument according to the usual -% \LaTeX\ syntax: +% Note: Skip this section if you decide to load an external +% package, such as, for example, |frontespizio|, for typesetting the +% title~page. Notice also that if you want to load an external +% package for this task, you should load it \emph{after} +% specifying the input encoding you use for your text files.\bigskip +% +% \noindent 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 ``final reports'': 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 +% +% Except for the self made customised module for the title-page, +% all the modules accept the same commands as those available in +% the |TOPfront| module. Pay attention that some commands are +% meaningless in certain theses, therefore do not reverse the +% statement: for example the doctoral cycle command (|\cycle|) +% is meaningless in a bachelor degree final-work title-page. +% +% 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 one 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 +% \texttt{\char92}\meta{command}\oarg{opt-arg}\marg{req-arg}\relax % } % \] -% \begin{description} +% Since the only language allowed in the ScuDo doctoral thesis is +% English, all its commands are in English; this was done to help +% the high number of foreign Ph.D. students in that school. +% Therefore, for example, the general environment |frontespizio| +% becomes |ThesisTitlePage|\footnote{Actually +% \texttt{ThesisTitlePage} is a wrapper to a particular instance +% of environment \texttt{frontespizio}. Similar wrappers are +% defined in the other specific thesis modules.}. Except this +% module, and, possibly, the personal customised module, the +% other ones use mostly the same commands for the same purposes. +% +% \begin{description}[noitemsep] % \def\cs#1{\texttt{\char92#1}} % \def\Item[#1]{\item[\normalfont\cs{#1}]} -% \item[\textnormal{\ttfamily fontespizio}] and \texttt{frontespizio*} are two -% environments that typeset the title page with two opposite styles: with the -% university logo in the header vs the university logo in the lower part of -% the front page. The commands described in the following items shall be used -% either in the configuration file or within the body of these environments. -%^^A -% \Item[frontespizio] {\tolerance=6000 Even if the above environments are -% recommended, the -% command |\frontespizio|, defined in the previous versions of the TOPtesi -% bundle, is still usable. It typesets the title page according to the actual -% status of the boolean |\topTPTlogos|; the user, before issuing the -% |\frontespizio| command, may set this boolean by means of the |\topTPTlogostrue| +% \item[\textnormal{\ttfamily frontespizio}] and +% \texttt{frontespizio*} are two environments that typeset the +% title page with two opposite styles: with the university logo +% in the header vs the university logo in the lower part of the +% front page. The commands described in the following items shall +% be used either in the configuration file or within the body of +% these environments. +% +% \Item[frontespizio] {\tolerance=6000 Even if the above +% environments are strongly recommended, the command +% |\frontespizio|, defined in the previous versions of the +% TOPtesi bundle, is still usable. It typesets the title page +% according to the actual status of the boolean |\topTPTlogos|; +% the user, before issuing the |\frontespizio| command, may set +% this boolean by means of the |\topTPTlogostrue| % or |\topTPTlogosfalse|, or with either one of the commands % |\booltrue{topTPTlogos}| and |\boolfalse{topTPTlogos}|.\par} -%^^A -% \Item[monografia] sets the bachelor's report style and retrieves its title -% \Item[titolo] gets the master or PhD 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 above the -% ``director's'' name; -% if \cs{coordinatore} is used the default phrase ``Coordinatore della +% +% \Item[monografia] sets the bachelor's report style and retrieves +% its title; the command\cs{titolo} that is not available for this +% purpose with the standard module |TOPfront|, is available when +% the specific module has been loaded by means of the +% \opz{monografia} or \opz{triennale} options. +% +% \Item[titolo] gets the master or PhD 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 +% above 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 the 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 above 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 +% in another language is required, this macro is +% available for specifying such position. +% +% \Item[relatore] gets the name of the thesis principal supervisor. +% +% \Item[secondorelatore] gets the name of the second supervisor, +% if any. +% \Item[terzorelatore] gets the name of the third supervisor, +% if any; it is assumed that the number of +% supervisors never exceeds three; in case follow +% one of the tricks exemplified +% in the example file \file{toptesi-example.tex} in +% order to manage such situation. +% \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 above 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. +% 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. This command may be used also +% for setting an Italian singular name when the +% tricks exemplified in file +% \file{toptesi-example.tex} are used. % \Item[candidato] gets the name of the male author % \Item[candidata] gets the name of the female author % \Item[secondocandidato] gets the name of the second male author % \Item[secondacandidata] gets the name of the second female author % \Item[terzocandidato] gets the name of the third male author -% \Item[terzacandidata] gets the name of the third female author; 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 labelling 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 ``Laureando:''; 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 defence -% 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 -% next 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\textvisiblespace'' -% \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 or the files that contain -% the university logos; 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. -% A list of logos can be specified, useful when a thesis is -% carried on in a multiple University environment -% such as, for example, in a double degree Erasmus -% program; or under the Erasmus Mundus program. The ``string'' of -% logos is scaled properly so that they may fit in |\textwidth|. -% \Item[setbindingcorrection] sets up the length to displace the text block to the -% external margin so as to have a wider internal margin to accommodate -% the binding correction. Its argument is not optional and is used to -% modify the default correction of 7\,mm. Notice that 7\,mm is already -% a large displacement; most often than not the binding correction is -% unnecessary. -% \Item[retrofrontespizio] with its argument, made up of one or several paragraphs, -% defines what should be printed on the verso of the title page, -% generally named ``copyright page''; if this command is specified -% with an empty text or if it is not used at all, no copyright -% page is assumed. +% \Item[terzacandidata] gets the name of the third female author; +% 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 labelling 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 +% option \opz{classica} the string becomes +% ``Laureando:''; 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 defence of the thesis; if this +% date is omitted the default date is the current +% month and year in the current language (generally +% Itallian). +% \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 next 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 +% iˀt 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 \opz{classica} is in force; +% after all the command |\annoaccademico| is +% defined only with that option. In any case, even +% without the \opz{classica} option you can use +% any string in the field of \cs{sedutadilaurea}. +% \Item[logosede] specifies the name of the file or the files that +% contain the university logos; 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. A list of logos can be specified, useful +% when a thesis is carried on in a multiple +% University environment such as, for example, in +% a double degree Erasmus program; or under the +% Erasmus Mundus program. The ``string'' of +% logos is scaled properly so that they may fit +% in |\textwidth|. +% \Item[setbindingcorrection] sets up the length to displace the text +% block to the external margin so as to have a +% wider internal margin to accommodate the binding +% correction. Its argument is not optional and is +% used to modify the default correction of 7\,mm. +% Notice that 7\,mm is already a large +% displacement; most often than not the binding +% correction is unnecessary. +% \Item[retrofrontespizio] with its argument, made up of one or more +% paragraphs, defines what should be printed on the +% verso of the title page, generally named +% ``copyright page''; if this command is specified +% with an empty text or if it is not used at all, +% no copyright page is assumed. % \end{description} % -% Since the infix strings are all memorised 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 localise the package in another language; -% this comes particularly handy for the Erasmus students on double degree programs. +% Since the infix strings are all memorised 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 localise 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 and the copyright 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 either just the title page with a separate \TeX\ source +% so as to test the completeness of the commands and coherence of the +% configuration file, or for just printing the isolated title and +% copyright pages (if any). The same applies if you use the special +% modules for each thesis type. +% +% \section{ScuDo doctoral theses}\label{sec:scudo} +% Theses at the ScuDo doctoral school require special facilities +% that are described in the code description section; here we +% focus on the title page. +% +% The title page for such special theses is typeset by making +% use of a specific environment within which the following +% commands are available to set up the necessary information. +% \begin{description}[noitemsep] +% \def\cs#1{\texttt{\char92#1}} +% \def\Item[#1]{\item[\normalfont\cs{#1}]} % -% As a final remark notice that the commands for typesetting the title page and the -% copyright 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 either 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 and copyright pages (if any). +% \item[\normalfont\ttfamily ThesisTitlePage] is the environment +% within which the title page data are specified; some data are +% preset to default values; some data receive global definitions +% so that they remain available for setting up some metadata. +% In the following every command with its argument is described +% and it is specified which is the preset value, if any. If a +% preset value is specified, the user does not need to use the +% command, unless s/he wants to change the preset value. If an +% empty preset value is specified, the command and its value +% may be optional; but personal data are never preset because +% they are, obviously, mandatory. +% +% \Item[PhDschoolLogo]\marg{logo file name} (preset: Logo-Scudo) +% selects an image +% specified by \meta{logo file name} to insert the school logo; +% a file logo \file{Logo-Scudo.jpg} is available from the ScuDo +% doctoral school; the students must ask such logo file from +% the Secretary Office, because such file is legal property of +% the School and can be used only with permission. In any case +% the logo file must be of one of the allowed formats: \sigla{PDF}, \sigla{EPS}, +% \sigla{JPG}, \sigla{PNG}; vector files are generally preferred, but they +% might not be available; raster files should be of a minimum +% definition of 150 pixel per inch. +% +% \Item[Ndissertation]\marg{dissertation name} (preset: Doctoral +% Dissertation) Specifies the specific name of the document. +% +% \Item[Ndoctoralprogram]\marg{doctoral program} (preset: Doctoral +% Program in) specifies the degree course name prefix. +% +% \Item[ProgramName]\marg{program name} (mandatory: preset empty) +% specifies the degree course name. +% +% \Item[CycleNumber]\meta{ordinal number} (optional; preset +% empty) specifies the ordinal number of the program cycle; at +% ScuDo it is a mandatory information. In other doctoral schools +% it might be useless. +% +% \Item[title]\marg{dissertation title} (preset empty) sets the +% specific title of the dissertation; it is better to keep it +% short, and use the sub title to add further titling information. +% +% \Item[subtitle]\marg{dissertation subtitle} (optional: preset +% empty) adds a possible subtitle. +% +% \Item[author]\marg{author's name} (mandatory: preset +% empty); it is recommended to pay attention to insert proper +% name(s) first and surname(s) second. +% +% \Item[Nsupervisor]\meta{Supervisor(s) heading} (preset: +% Supervisor:) specifies the short heading labelling the list +% of supervisors; the preset value is singular and followed by +% a colon. In case of more than one supervisor, it is necessary +% to specify a plural name; the colon mark is optional. +% +% \Item[SupervisorList]\marg{list of supervisors} (mandatory: +% preset empty) specifies the list of supervisors, one per line, +% with a |\\| at the end of each line; the name(s) and surname(s) +% are preceded by their academic title, and followed by their +% role as supervisor, or co-supervisor. +% +% \Item[NExaminationCommittee]\marg{examination committee +% heading} (preset: Doctoral Examination Committee:) specifies +% the heading of the list of examiners. +% +% \Item[ExaminerList]\marg{list of examiners} (preset empty) +% specifies the list of examiners, one per line, each line +% terminated by |\\|; each line contains the academic title, +% the name(s) and surname(s), the role (referee for the +% supervisors; nothing for the other examiners), the academic +% institution they belong to -- full official institution name, +% city and country. +% +% \Item[Nlocation]\marg{examination location} (preset: +% Politecnico di Torino) specifies the institution where the +% examination takes place. +% +% \Item[ExaminationDate]\marg{examination date} (preset empty) +% specifies the date when the examination is to take place. +% +% \Item[Disclaimer]\marg{disclaimer statement} (preset: some long +% sentences agreed upon by the ScuDo doctoral school) mandatory +% in most universities; the specific statement(s) may be different +% in different universities. +% +% \Item[Signature]\marg{the author's signature} (preset: a few +% lines where the city is preset to ``Turin'', and the date is +% assumed to be equal to the examination date; also the signer +% name is assumed equal to that of the dissertation author) +% specifies a different layout of the signature field. +% +% \end{description} +% Several examples of thesis title-page are shown in the +% \texttt{toptesi-it.pdf} Italian"-English documentation. % % \subsection{Typesetting commands} -% The TOPtesi bundle and the |toptesi| document class accept all \LaTeX\ commands -% provided by the \LaTeX\ \texttt{kernel}, the \texttt{report} document class, and the -% \texttt{graphicx} extension package, besides those provided by the \texttt{babel} -% package. -% If the source thesis file is being typeset by means of \XeLaTeX\ the \texttt{babel} -% package is not loaded; in its place the \texttt{polyglossia} package is loaded that -% should implement in \XeLaTeX\ most of the functionality provided by \texttt{babel} in -% \LaTeX. ``Most'' means that not all the functionality is available, therefore it's -% better to consult the documentation of \texttt{polyglossia} before using its built -% in commands. -% -% With this respect it must be underlined that the Italian and English languages are -% specified by default, the Italian one being the main language. An initial -% specification of |\selectlanguage{english}| sets the English language as the default. -% Should a student typeset the thesis in French by means of \textsf{pdflatex}, it -% would be necessary to specify the option \texttt{french} among the \emph{class} -% options, and then start the document by specifying |\selectlanguage{french}|. -% But the user should pay attention to use \texttt{babel} in the proper way. -% \begin{enumerate} -% \item Due to the way \LaTeX\ classes load the requested files, and to the fact that the -% \texttt{babel} package has already been loaded by the \texttt{toptesi} class, the user -% cannot reload it with a different list of language options; therefore the latter -% language options \emph{must be specified} as a global class options; so if the -% thesis has to be typeset, for example, in French, is is necessary to do the following: +% The TOPtesi bundle and the |toptesi| document class accept +% all \LaTeX\ commands provided by the \LaTeX\ \texttt{kernel}, +% the \texttt{report} document class, and the \texttt{graphicx} +% extension package, besides those provided by the \texttt{babel} +% package. If the source thesis file is being typeset by means +% of \XeLaTeX\ and \LuaLaTeX\ the \texttt{babel} package is not +% loaded; in its place the \texttt{polyglossia} package gets +% loaded that should implement in \XeLaTeX\ and \LuaLaTeX\ most of +% the functionality provided by \texttt{babel} in \LaTeX. +% ``Most'' means that not all the functionality is available, +% therefore it is better to consult the documentation of +% \texttt{polyglossia} before using its built in commands. +% +% With this respect it must be underlined that the Italian and +% English languages are specified by default, the Italian one +% being the main language. Only with the \opz{scudo} option +% in force, the main language is English. An initial specification +% of |\selectlanguage{english}| sets the English language as the +% default (unnecessary when \opz{scudo} is in force). +% +% Should a student typeset the thesis in French by means of +% \prog{pdflatex}, it would be necessary to specify the option +% \opz{french} among the \emph{class} options, and then start +% the document by specifying |\selectlanguage{french}|. +% But the user should pay attention to use \texttt{babel} in the +% proper way. +% \begin{enumerate}[noitemsep] +% \item Due to the way \LaTeX\ classes load the requested files, +% and to the fact that the \texttt{babel} package has already +% been loaded by the \texttt{toptesi} class, the user cannot +% reload it with a different list of language options; therefore +% the latter language options \emph{must be specified} as a global +% class options; so if the thesis has to be typeset, for example, +% in French, is is necessary to do the following: %\begin{verbatim} %\documentclass[...,french,...]{toptesi} %... %\begin{document} %\selectlanguage{french} %\end{verbatim} -% But if the thesis should be typeset in French by means of \XeLaTeX, then it is -% perfectly legal to specify the auxiliary language in this way: +% But if the thesis should be typeset in French by means of +% \XeLaTeX\ or \LuaLaTeX, then it is perfectly legal to specify the +% auxiliary language in this way: %\begin{verbatim} %\documentclass[...]{toptesi} %\setotherlanguage{french} @@ -541,361 +1233,1276 @@ lines of the file for how-to information. %\begin{document} %\selectlanguage{french} %\end{verbatim} -% \item With the 2010 \TeX\ system complete distributions, both \TeX Live and MiKTeX, -% all known (to \LaTeX) language hyphenation rules are preloaded; with other less up -% to date \TeX\ system distributions this might not be true. With both distributions -% also the language hyphenation rules known to \XeLaTeX\ are all preloaded. -% Remember that \texttt{babel} and \texttt{polyglossia} macros select the language -% typesetting rules, but hyphenation is activated only if the program format file has -% been generated with the pertinent language hyphenation rules. You can check this -% detail by reading the first dozen lines of your thesis \texttt{.log} file; there -% the list of all language hyphenation rules that are available in the format file is -% being shown. -% While (American) English is the default language and almost any \emph{basic} -% distribution of the \TeX\ system has several preloaded languages, it is more -% likely that French is preloaded while Italian is not. Complete distributions don't -% exhibit this flaw. -% -% Should the required language(s) be missing, the user is forced to read his/her -% distribution instructions, so as to find out how to configure his/her system in -% order to preload the languages s/he wants to work with, and finally s/he must -% recreate the format files. -% The user is invited to carefully investigate on these fine points and to properly -% configure the system; it would be very upsetting to use fine software for producing a -% perfectly typeset thesis that, unfortunately, has wrong hyphenation points! Luckily -% enough, recent distributions of the \TeX\ system have all the known hyphenation rules -% preloaded; in any case even older distributions have available command-line commands -% or graphical user interfaces that make it easy to perform the tasks of changing the -% list of preloaded hyphenation rules and rebuilding all the format files, moving them -% to the proper places. +% +% \item With the 2010 \TeX\ system complete distributions, +% both \TeXLive and MiKTeX, all language hyphenation rules +% known (to \LaTeX) are preloaded; with other less up to date +% \TeX\ system distributions this might not be true. With both +% distributions also the language hyphenation rules known to +% \XeLaTeX\ are all preloaded. On the opposite \LuaLaTeX\ +% loads the hyphenation rules at run time and only for the +% declared languages for the current document. +% +% Remember that \texttt{babel} and \texttt{polyglossia} macros +% select the language typesetting rules, but hyphenation is +% activated only if the program format file has been generated +% with the pertinent language hyphenation rules. You can check +% this detail by reading the first dozen lines of your thesis +% \texttt{.log} file; there the list of all language hyphenation +% rules that are available in the format file is being shown. +% +% While (American) English is the default language and almost +% any \emph{basic} distribution of the \TeX\ system has several +% preloaded languages, it is more likely that French is preloaded +% while Italian is not. Complete distributions don't exhibit +% this~flaw. +% +% Should the required language(s) be missing, the user is forced +% to read his/her distribution instructions, so as to find out +% how to configure his/her system in order to preload the +% languages s/he wants to work with, and finally s/he must recreate +% the format files. +% +% The user is invited to carefully investigate on these fine +% points and to properly configure the system; it would be very +% upsetting to use fine software to produce a perfectly typeset +% thesis that, unfortunately, has wrong hyphenation points! +% Luckily enough, most recent distributions of the \TeX\ +% system have all the known hyphenation rules preloaded; in any +% case, even older distributions have available command-line +% commands or graphical user interfaces that make it easy to +% perform the tasks of changing the list of preloaded hyphenation +% rules and rebuilding all the format files, moving them to the +% proper places. % \end{enumerate} % -% The TOPtesi bundle adds very little to the user commands; nevertheless the -% package \texttt{topcoman.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 fulfil the ISO regulations. -% Some of these commands are already defined with 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 you select another +% The TOPtesi bundle adds very little to the user commands; +% nevertheless the package \texttt{topcoman.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 +% fulfil some (not all) \sigla{ISO} regulations. +% Some of these commands are already +% defined with 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 you select another % language; with the presence of the definitions contained in -% \texttt{topcoman.sty} such useful commands remain available with every -% language. The \texttt{polyglossia} package does not produce any useful -% additional command for writing in a ISO compliant way, therefore the macros -% contained in the \texttt{topcoman.sty} package come very handy. +% \texttt{topcoman.sty} such useful commands should remain available +% with every language. The \texttt{polyglossia} package does not +% produce any useful additional command for writing in an almost \sigla{ISO} +% compliant way\footnote{Nevertheless, when typesetting with +% \XeLaTeX\ or \LuaLaTeX\ and using OpenType fonts, even for +% typesetting math, the calling of the |unicode-math| package +% with option \opz{mathstyle=\sigla{ISO}} lets you typeset in an \sigla{ISO} +% compliant way almost everything you need.}, therefore the macros +% contained in the \texttt{topcoman.sty} package may come very handy. % % The following description specifies these particular commands. -% \begin{description} +% \begin{description}[noitemsep] % \def\Item[#1]{\item[\normalfont\texttt{\char92#1}]} -% \Item[DeclareSlantedCapitalGreekLetters] does exactly what its name -% means: it changes the definitions of the mathematical capital Greek letters -% so that they are typeset in ``italics''; they are in effects taken from -% the math italic alphabet, instead of the default roman one. This option -% is useful with \LaTeX, while with \XeLaTeX\ it is unnecessary due to the -% larger set of math alphabets and math font commands that are available -% with proper UNICODE math fonts. -% % +% +% \Item[DeclareSlantedCapitalGreekLetters] does exactly what +% its name means: it changes the definitions of the mathematical +% capital Greek letters so that they are typeset in ``italics''; +% they are actually taken from the math italic alphabet, +% instead of the default roman one. This command is useful with +% \LaTeX, while with \XeLaTeX\ and \LuaLaTeX\ it is unnecessary +% due to the larger set of math alphabets and math font commands +% that are available with proper \sigla{UNICODE} math fonts and +% options. +% % \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; another good point is that |\ohm| can be used also -% in text mode. +% \Item[ohm] typesets an upright capital omega even if the +% capital Greek letters are in italics; another 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 mathematical quantities, and -% upright type for anything that 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 |\ped| may be used in both math and text mode. +% \Item[ped] inserts an index/subscript in upright type; the \sigla{ISO} +% regulations require the use of italics for physical or +% mathematical variables, and upright type for anything that +% 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 |\ped| may be used in both math and text mode. % % -% \Item[ap] similarly |\ap| inserts an apex in upright type, in both math -% and text mode. +% \Item[ap] similarly |\ap| inserts an apex/superscript in +% upright type, in both math and text mode. % % -% \Item[unit] sets the unit of measure close to the numerical measure value by -% inserting 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}| while avoiding \verb*+35 \unit{km}+. This command, -% as it is defined, conflicts with the definition of the homonymous -% command |\unit| as defined by the \texttt{unitsx} package, but since -% this latter package is necessarily input in the preamble, while -% \texttt{topcoman.sty} is read at the execution of |\begin{document}|, -% the latter file has provisions to test if |unitsx| has already been loaded, -% so as not to overwrite the latter package definition and to avoid every -% possible conflict. On the opposite, if the user loads package |siunitx| -% (the most performant one in the field of units and number handling), -% the command |\unit| remains available, because it is redefined in terms -% of this package commands. +% \Item[unit] sets the unit of measure close to the numerical +% measure value by inserting 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}| +% while avoiding a form such as \verb*+35 \unit{km}+. +% This command, as it is defined, conflicts with the definition +% of the homonymous command |\unit| as defined by the +% \texttt{unitx} package, but since this latter package is +% necessarily input in the preamble, while \texttt{topcomand.sty} +% is read at the execution of |\begin{document}|, the latter +% file has provisions to test if |unitx| has already been loaded, +% so as not to overwrite the latter package definition and to avoid +% every possible conflict. % % -% \Item[micro] sets the decimal prefix $\mu$ when typesetting units of -% measure. +% \Item[micro] sets the decimal prefix $\mu$ (providing, if +% possible, the sign with serifs, \textmu, taken from the Text +% Companion font or any other font that contains this variety +% of the Greek letter $\mu$) when typesetting units of measure. % % -% \Item[gradi] sets the small circle that defines the sexagesimal degrees, for -% example $35^\circ$; 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}$; notice the difference with |35\gradi|, that yields -% $35^\circ$ without any space between the measure and the ``degree'' little -% circle; this is what the ISO regulations require; the small space inserted -% by |\unit| is required when the unit of measure symbol contains at least -% one letter. +% \Item[gradi] sets the small circle that defines the sexagesimal +% degrees, for example $35^\circ$; 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}$; +% notice the difference with |35\gradi|, that yields $35^\circ$ +% without any space between the measure and the ``degree'' little +% circle; this is what the \sigla{ISO} regulations require; the small +% space inserted by |\unit| is required when the unit of measure +% symbol contains at least one letter. % % % \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, and the ISO regulations -% require it is typed with an upright serifed font, just as operators are. +% nowadays the letter ``j'' in Italian is called with the +% one-syllable English name (much shorter than the traditional +% Italian three syllable name ``i~lunga'') and the indicated spelling +%``gei'' is the phonetic Italian rendering of the English word. +% The imaginary unit is not a variable, and the \sigla{ISO} regulations +% require it is typed with an upright serifed font, just as +% operators are. % % -% \Item[eu] inserts the Napier number symbol ``e'' in upright type; since -% this entity is not a variable, but is a mathematical constant, the ISO -% regulations require it to be written in upright type. The ISO regulations -% require the upright type for ``e'' and any other mathematical constant, but -% the electron charge $e$ is typeset in math italics because this is a physical -% ``constant'', not a mathematical one. \XeTeX\ allows to typeset upright -% math Greek letters, so there is the facility to typeset an upright ``pi'' -% (the number) to be distinguished from a slanted ''pi'' (the angle). +% \Item[eu] inserts the Napier number symbol ``e'' in upright +% type; since this entity is not a variable, but it is +% a mathematical constant, the \sigla{ISO} regulations require it to +% be written in upright type. The \sigla{ISO} regulations require the +% upright type for ``e'' and any other mathematical constant, +% but the electron charge $e$ is typeset in math italics because +% this is a physical ``constant'', not a mathematical one. +% \XeTeX\ and \LuaLaTeX\ allow to typeset upright math Greek +% letters, so there is the facility to typeset an upright +% ``pi'' (the number) to be distinguished from an slanted +% ``pi'' (the angle). % % -% \Item[goodpagebreak] inserts a conditional page break after the line -% where this command appears; it is not equivalent to the |\raggedbottom| -% declaration that does not vertically justify any page, but tests the -% amount of space remaining on the page, and if less than a given number of -% lines are available, it inserts a page break; the result is a ragged bottom -% single page, that sometimes is better than loose spacing between paragraphs, -% or within items of a list, or before or after displayed material. It is -% handy also to use before starting a new section, because at least four +% \Item[goodpagebreak] inserts a conditional page break after +% the point where this command appears; it is not equivalent to +% the |\raggedbottom| declaration that does not vertically +% justify any page, but tests the amount of space remaining +% on the page, and if it is less than a given number of lines, +% it inserts a page break; the result is a ragged +% bottom single page, that sometimes is better than excessive +% spacing between paragraphs, or within items of a list, or +% before or after displayed material. It is handy also to use +% before starting a new section, because at least four % lines are required by \LaTeX\ in order to avoid orphan lines. % -% \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. There exists an external package \texttt{listings}, that -% the user might want to load, that does a similar work in a more professional -% and configurable way; this package simpler command might be preferable for -% its simplicity, but of course it is not compulsory. +% \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. The +% original definition of command |\listing| dates back to the +% old times of \LaTeX\,209; it has become obsolete; for +% backwards compatibility it is maintained as an alias to the +% command |\VerbatimInput| of package |fancyvrb|; its +% functionality may be configured with the same commands +% specified in the |fancyvrb| documentation for the original +% command. The |fancyvrb| package was preferred to the |listings| +% package, because it typesets verbatim material even while +% using font with multibyte encoding (therefore it works fine +% with \XeLaTeX\ and \LuaLaTeX), while the fancier package +% |listings| performs correctly only with \sigla{ascii} +% characters and requires special settings to use characters +% encoded with more than 7~bits. % \end{description} % -% All these commands are defined into the separate package \texttt{topcoman.sty} -% that might be used as an independent extension package with any document class. -% -% \section{PDF/A archivable format} -% This section in general applies also if the thesis is typeset by means of -% \XeLaTeX\ or \LuaLaTeX, but in this case special attention should be given -% to the details of the procedure as described in the documentation of the -% \pack{pdfx} package. Even better, \LuaLaTeX, whose source file is -% practically the same as that of \XeLaTeX, may produce in a simpler way -% a PDF/A compliant output file if the users follow attentively the -% instructions contained in the documentation of the \pack{pdfx} package. -% -% More details are given in the Italian documentation contained in file -% \texttt{toptesi\discretionary{-}{}{-}it-pdftex}. -% -% Politecnico di Torino as well as many other Italian and foreign universities -% are moving towards archiving theses in electronic format, specifically in the -% PDF one. The problem of course is: ``Will it be possible to read the archived -% documents, say, fifty years from now?'' -% -% This essential question has been answered by the International Standards -% Organisation (ISO) that in 2005 published the regulation ISO~19005-1. This -% regulation defines a PDF variant suitable for archiving, named PDF/A, that -% has two sub-formats distinguished as PDF/A-1a, and PDF/A-1b. The `a' -% sub-format is more exacting, while the `b' one is less stringent. Recently -% ISO has published upgrades to these regulations, but here we stick to the -% older ones, that are a sub set of the newer ones, and for which suitable -% software is available. -% -% The requirements for the `a' sub-format imply not only those imposed on -% the `b' one, but also that the logical structure of the document be -% accessible from outside (Tagged PDF). -% The requirements for the `b' sub-format are that the -% document must be reproducible without modifications exactly as it was at -% the moment of archiving. Both sub-formats must contain \emph{metadata} -% that are searchable even without decompressing the normally compressed -% PDF file, and that contain information useful for archive maintenance; -% among these informations, of course, the PDF/A category the document belongs -% to, the document title, the authors, and few other optional pieces of -% information, such as the keywords that ease up library searches. -% -% Since version 1.40, the program \texttt{pdflatex} is capable of producing -% PDF/A-1b compliant files, provided that some attention is put into -% editing of the source file of the thesis. With the distribution of -% the 2008 version of the \TeX\ system, the executable \texttt{pdflatex} has -% version number 1.40.9 (or higher) and is capable of producing PDF/A-1b files. -% -% The particular attention needed to avoid problems with the PDF/A compliance -% is summarised as follows: -% \begin{enumerate} -% \item The preliminary essential requirement is that the \texttt{pdflatex} -% engine used to typeset the thesis be sufficiently recent to support the -% PDF/A requirements. It's better to have the most recent distribution of -% the \TeX\ system installed on your PC. Do not try to typeset the thesis -% with the `old' \LaTeX; you \emph{must} process the input thesis file(s) -% with \texttt{pdflatex} or with \prog{xelatex} or with \prog{lualatex}; -% in the following, no specific check will be made in order to verify if -% you are actually using \texttt{pdflatex}. If you really need to use the -% `old' \LaTeX, you get a DVI file and you need to transform it with |dvips| -% into a PS file; at this point you have lost the possibility of exploiting -% the internal commands of |pdflatex| version 1.40.9 or later. You can still -% produce a PDF/A final document, but you have to transform it by means of -% the procedures described in the Italian documentation; such documenttion -% describes several more or less effective methods to transform -% a non compliant PDF/A file into a compliant one, and how to correct the -% ``imperfections'' that forbid any valid transformation. -% -% \item Since 2016 the TeXLive distribution contains a new version of -% \pack{pdfx} and now PDF documents produced with \prog{lualatex} may be -% fully compatible with the standard PDF/A. With some special care, even -% \prog{xelatex} can now produce PDF/A compliant output files. -% -% \item Your up-to-date complete \TeX\ distribution should contain the package -% \textsf{pdfx}; if it does not, upgrade your \TeX\ system complete -% distribution. Be sure that the version number of the \pack{pdfx} package -% has version number 1.5.8 or higher. +% All these commands are defined into the separate package +% \texttt{topcoman.sty} that might be used as an independent +% extension package with any document class. +% +% \section{The monografia module} +% +% The |toptesi-monografia| module gets loaded if one of the +% \opz{tipotesi=triennale} or \opz{tipotesi=monografia} options +% was specified to the |TOPtesi| class. It can be used as a +% standalone module, as well as the |topfront| general one, although +% supposedly, it is used most often with its mother class. +% +% In order to use it as a standalone module, some definitions +% must be established in order to have available at least some +% if not all of the settings and the switches that are available +% when the module is used with |TOPtesi|. Of course suitable +% tests are made in order to check if certain packages are +% already loaded and if certain switches are already defined; +% and some options are defined. +% +% The rest of the module is a subset of the |topfront| package; +% all commands that refer to information used for other kinds +% of theses are eliminated and the title page is typeset by means +% of another environment that does not rely on the environment +% |frontespizio| (with or without asterisk). The new environment +% |ThesisTitlePage| is more or less the only difference compared +% to the way a bachelor thesis title page is typeset with the +% |topfront| package. It will be described later on; but, with +% the due differences, this environment mimics the one defined +% in the |toptesi-scudo| module. +% +% The commands contained in this module are divided in there sorts. +% \begin{enumerate}[noitemsep] +% \item +% The commands to define the infix words, so as to use them +% explicitly within the |ThesisTitlePage| environment or +% within a configuration file either to change the default +% strings or to define them for languages different from +% Italian; no attempt was made to establish such strings +% for English, because is is supposed the most often than +% not this module is used by Italian students to write their +% bachelor degree final works in Italian universities; +% nevertheless the possibility to change these strings is +% always available. +% \item +% The commands that defines the default values for every +% command that may be used or may be skipped while setting +% up the title page. +% \item +% The commands that define the values for the variable +% information necessary for every individual thesis. +% \end{enumerate} +% As explained above the first group is used essentially to +% define or redefine the infix strings. The second group is to +% define mosts default values for information that might or +% might not be entered by the user; these values are tested +% against the |\empty| value in order to decide if using or +% neglecting them. The third group is the one that the user +% directly or through a configuration file uses for his/her +% personal data and his/her specific thesis. +% +% \subsection{The configuration file} +% This module for the bachelor thesis final work searches +% for a configuration file with the same name as the thesis +% main file and with extension |.cfg|. Internally this main +% file name is stored in the internal variable |\jobname|; +% therefore this module searches the file |\jobname.cfg|. If +% this file does not exist, the typesetting engine does +% not use any specific setup, except what has been defined +% in this module for the default settings. +% +% Such configuration file might contains the redefining commands +% for the infix strings, and/or the other commands that can be +% used within the |ThesisTitlePage| environment. +% +% If a configuration file was loaded, the commands its contains +% are overwritten by those that are specified within the +% |ThesisTitlePage| environment. So the user should pay attention +% to what the configuration file contains and to what s/he writes +% within the |ThesisTilePage| environment, but if s/he uses again +% a command already used in the configuration file, it should be +% for a good reason; simply s/he should remember that the last +% setting is the one that is actually used. +% +% \subsection{Module options} +% If the module is loaded by |toptesi|, it receives the necessary +% options by |toptesi| itself. If the module is used as a self +% standing one and called by another class, it may be called with +% specific options that are listed here. In general they behave +% as the |toptesi| options; should they perform differently the +% details are explained hereafter. +% \begin{description}[noitemsep] +%\def\Item[#1]{\item[\opz{#1}]} +% +% \Item[evenboxes] The boxes containing the supervisor name(s) +% and containing the candidate name(s) are typeset with +% their first lines aligned; if this option is not specified +% the boxes are skewed, so that there is enough place to set +% the supervisor signature(s) on the right and the candidate +% signature on the left; if the bachelor degree final work does +% not imply a supervisor, the candidate name is centred and +% there is no question of aligning any box. +% +% \Item[cucitura] +% Specifies a displacement of the text body towards +% the outer margin. See the |toptesi| description. This option, +% differently from the one defined in |toptesi| and |topfront| +% is not of the type \emph{key\,$=$\,value}; therefore in +% order to change its preset value it is necessary to use +% the \cs{setbindingcorrection} command. This remark applies +% only to the case when this module is called by another class. +% +% \Item[classica] +% Uses some \opz{classica} features; see the |toptesi| +% description. +% +% \Item[autoretitolo] +% Similarly with the main stream |toptesi| bundle, this +% questionable option is for changing the internal page +% style; it is useless for this module, but there are some +% tests that derive from the general |topfront| package, +% so that the option is maintained for compatibility purposes. +% +% \Item[oldstyle] On the opposite this option is maintained, +% at least to typeset the academic year interval with old +% style numbers. +% \end{description} +% +% \subsection{User commands and environments} +% +% The only user environment defined by this module is +% |ThesisTitlePage|. It plays the same role as the |frontespizio| +% environment, but it is incompatible with the |\frontespizio| +% command. In other words, if this module is used the user must +% use the |ThesisTitlePage| environment only and does not have +% available the various title page environments and commands +% available with the |topfont| package. +% +% This environment accepts an optional asterisk as an argument; +% that is the syntax is the following: +%\begin{ttsintassi} +%\cs{begin}\Marg{ThesisTitlePage}\meta{*} +%\meta{thesis definition commands} +%\cs{end}\Marg{ThesisTitlePage} +%\end{ttsintassi} +% where, differently from other \LaTeX\ environments that accept +% an optional asterisk, this optional token is not within the +% opening (and closing) environment braces, but it is the very +% first entered element into the environment body. Its function +% is the following: if the asterisk is missing, the university +% logo(s) are typeset at the top of the page; if the asterisk +% is present, the logo(s) are set in the page lower half, below +% the possible subtitle. +% +% The commands available with this module, divided into the three +% groups described above, are the following. +% \begin{description}[noitemsep] +% \def\Item[#1]{\item[\normalfont\cs{#1}]} +% \item[String settings] +% \begin{description}[noitemsep] +% \Item[NomeAnnoAccademico] Sets the default string for the +% ``Academic Year''; by default it is ``Anno accademico''. +% \Item[NomeCorso] sets the default string ``Corso di laurea +% in'' followed by an intelligent space. +% \Item[AnnoAccademico] sets a different string in place +% of the default ``Anno Accademico'' one. +% \Item[Struttura di] sets the default structure prefix; +% for example this prefix might be ``Department of'', +% and the structure name entered with \cs{struttura} +% might be ``Electrical Engineering''; therefore the +% title page is typeset with the complete string +% ``Department of Electrical Engineering. The default +% string is in Italian, but by using this command, +% remember to enter the string you need terminated by +% the intelligent space macro \cs{xspace}. +% \Item[CorsoDiStudi] sets the default string for the +% degree corse type; it might be ``Laurea triennale'', +% or ``Bachelor degree'' or similar strings in other +% languages. +% \Item[NomeElaborato]Sets the name that qualifies the +% document; by default it is ``Monografia'', but this +% user command may be used to set it, for example, to +% ``Tesi di laurea triennale'', or anything else in +% Italian, in English, or the used main language. +% The |topfront| command |\NomeMonografia| il let to +% to |\NomeElaborato| for backwards compatibility; its +% use is evidently discouraged. +% \Item[CandidateName] sets the labelling command for the +% box that lists the candidate names; by default these are the +% masculine, feminine, singular and plural Italian names +% starting with ``Candidato''; if the \opz{classica} option +% is in force they start with ``Laureando''; the user can use +% this command to set the four strings to any desired value, +% if, as in English, there is no difference between masculine +% and feminine, repeat the same name for the feminine positions, +% the last ones; the syntax is in facts: +%\begin{ttsintassi} +%\cs{CandidateName}\% +%\qquad\marg{masculine singular}\% +%\qquad\marg{masculine plural}\% +%\qquad\marg{feminine singular}\% +%\qquad\marg{feminine plural} +%\end{ttsintassi} +% \Item[Relatore] Sets the supervisor string that labels +% the supervisor box; by default it is the Italian +% name ``Relatore''; the command my be used to set +% any different string. +% \Item[Correlatore] set the co-supervisor string that +% labels the list of co-superpervisors when there is +% only one ``second'' supervisor. +% \Item[Correlatori] sets the co-supervisor string that +% labels the list of co-supervisors when there are +% three supervisors, one principal and two co-supervisors. +% \end{description} +% \item[Variable data settings] +% \begin{description}[noitemsep] +% \Item[titolo] sets the bachelor degree final work title. +% The main module |topfront| uses in its place the command +% \cs{monografia}; the user can still use this command, +% but |\titolo| is more descriptive. +% \Item[sottotitolo] Sets the optional subtitle. +% \Item[materia] and \cs{Materia} set the optional subject +% the thesis deals with. +% \Item[relatore] sets the name of the only or the principal +% supervisor. +% \Item[secondorelatore] sets the name of a second supervisor, +% if any. +% \Item[terzorelatore] sets the name of a third supervisor, +% if any. +% \Item[candidato] sets the name of the first or only male +% candidate; in general bachelor degree final works are +% done by just one candidate, but in case there are +% available also the commands for a second and a third +% candidate. Masculine and feminine commands are available +% and the heading of the candidates box il labelled accordingly. +% \Item[candidata] sets the name of the first or only female +% candidate. +% \item[\normalfont\cs{secondocandidato} or \cs{secondacanddata}] +% set the names of a possible second male or female candidate. +% \item[\normalfont\cs{terzocandidato} or \cs{terzacandidata}] +% set the names of a possible male or female third candidate. +% \Item[ID] to be used just after the candidate's name, but as +% part of the setting command argument, establishes the +% candidate's ID number (or matricola). +% \Item[sedutadilaurea] sets the date of the final examination; +% by default the current month and year are typeset if this +% command is not specified; but the user can specify anything; +% s/he can even prefix the year range with the +% \cs{AnnoAccademico} command, that typesets (in the current +% language if localisation has been made by means of the +% suitable command of group~1) a string equivalent to +% ``Academic Year''; in any case the user can write down what +% s/he likes best in place of the predefined value. +% \Item[NomeAteneo] sets the proper name of a specific +% university; it will be typeset in suitable uppercase type +% under the generic name of the university; if this command +% is not used, no name gets typeset in the title page. +% \Item[struttura] sets the name of the university entity +% that supervises the development of the degree course; +% it may be a ``faculty'', a ``department'', a ``school'', +% it depends from the specific university. Some universities +% do not require this information on the title page. In any +% case if this command is used it accepts two arguments: +% the first one is optional, and, if used, is an uppercase +% roman numeral that indicates the ordinal of the structure; +% the second argument is the complete structure name. +% \Item[setlogodistance] sets the distance between adjacent +% university logos, if more then one is used. +% \Item[logosede] Sets the name of a graphics file that +% contains the logo of the university; the default value of +% this command il \cs{empty}; this macro may be used several +% times, in case the bachelor degree final work is developed +% within a multiple degree Erasmus program; this might be +% unusual but not impossible. In any case if no logo file +% name is specified, no logos are printed and no space +% is used in the title page; if one or more logos are used +% they are assembled with the same height into a horizontal +% box, that before being printed is measured; if the width +% exceeds the text width, the whole box is scaled down by +% preserving the aspect ratio so as to fit it inside the +% text width; after these tests and possible scaling down, +% the logo box is printed. The logo distance my be varied +% from the 3em default value by using \cs{setlogodistance}, but +% it is suggested not to vary it too much. The \cs{logosede} +% accepts an optional value that is the common height of the +% logos; this possibility does exist but it is strongly +% discouraged. +% \Item[tutoreaziendale] set the name of a possible company +% tutor, in case the final work is developed in a Company +% external to the university +% \end{description} +% \end{description} +% +% \section{The module for a master degree thesis} +%\label{sec:topmagistrale} +% +% The module for the master degree thesis, +% |toptesi-magistrale.sty| is almost identical to the generic +% module |topfront|; the obvious differences are that it +% lacks the latter module commands that refer to the bachelor +% degree or the Ph.D.~theses. Evidently such specific commands +% are useless in a master degree thesis. +% +% \begin{sloppypar} +% Such eliminated commands include |\manografia|, +% |\sedutadidottorato|, |\ciclo|, |\Direttore|, and so forth. +% \end{sloppypar} +% +% A tricky situation arises if the thesis is typeset in several +% tomes. There are substantially two different situations with +% different implementations with the generic module |topfront| +% and this specific module |toptesi-magistrale|. +%\begin{enumerate}[noitemsep] +%\item +% With enumerate each tome title page is realised by means +% of the |\tomo| command that requires a preliminary +% specification of all the necessary data before |\tomo| +% can play its role; it actually uses the |\frontespizio| +% command, but before the |tomo| counter is stepped up. +% +% This allows to typeset the various tomes in a single +% document, so that the user can cross-reference elements +% belonging to different tomes. When the single multi\-tome +% document is completed the user can split its \sigla{PDF} file +% in separate files (by means of the |pdfpages| package +% functionalities) and print them; in printed pages the +% cross-references do not require hyperlinking, while +% the single document file may be completely hyperlinked; +% reading the printed tomes is correct, and reading the +% whole thesis in a single document on the screen allows +% the easy navigation from one point to another. +% +% The draw back of this procedure is that splitting the +% single \sigla{PDf} file in several file require another processing +% job, and any editing of the source thesis files may require +% repeating this splitting job because the number of pages +% may be modified and/or cross references do not point +% to the correct page number. +% +%\item +% With the |ThesisTitlePage| environment of this +% |toptesi-magistrale| module the |\tomo| command is used +% before or within within the environment and it just +% steps up the |tomo| counter while allowing typesetting +% the necessary tome information on the title page. +% +% In this way it is necessary to typeset each tome with +% its own source file(s) to produce different output \sigla{PDF} +% files; when printed the are substantially identica to +% the split documents obtained with the previous approach +% and simply avoids splitting the single document file +% in several files. But if hyperlinked cross-referencing +% is used, each tome is correctly hyperlinked to its +% internal targets, but no cross-referencing can be +% automatically dono to items in other tomes. I do not +% think this is a real draw back in practical situations, +% but of course its produces a limitation to reading the +% tomes on the screen. +%\end{enumerate} +% +% I assume that multi\-tome theses are very rare; \LaTeX can +% handle the production of different documents (different +% tomes/volumes) maintaining correct cross references also to +% material external to any specific volume, but the handling +% of the whole job becomes very complicated not to mention +% the programming difficulties. For master theses I would avoid +% splitting one's thesis is several tomes; nevertheless this +% functionality has been asked for, so that this bundle +% realises a couple of solutions that require some compromise +% and some manual work by the author. A better solution +% is on the TODO list, but it is not to come in a short time. +% +% In summary this |toptesi-magistrale| module keeps all the +% commands defined on the |topfront| module; modifies the +% definition of the |\tomo| command; adds the |ThesiTitlePage| +% environment within which the configuration file is read and all +% commands for the title page data are to be inserted. The +% peculiarity of theis environment is that the possible asterisk +% necessary to switch from the the logos at the title page +% lower half (no asterisk) to the logos at the page top +% (asterisk) must be inserted the same way as in the other +% modules, that is as the first token at the beginning of +% the environment. +% +% \section{The Ph.D.\ module for general use} +% Except for the ScuDo theses, for which the University +% specified the necessary requirements for both contents +% and appearance of the title page, we provide a generic +% module for Ph.D.\ theses for other universities. It goes +% by itself the if the specifications cannot be customised +% by using the customising commands of the ScuDo module, +% nor by this module, it is necessari to use a custom +% module that the user must create as specified in the next +% section. +% +% This module is generic as much as the |topfront| one. +% It differs only for the elimination of the other thesis +% kinds and the only addition is the |ThesisTitlePage| +% environment, just as it has been done for the other +% bundle modules. +% +% The data insertion or modification commands are a subset +% of those described in subsection~\ref{sec:topfront}, +% of course without those tha are specific of other thesis +% kinds; therefore we do not repeat them here. +% +% Special care should be dedicated to the university +% specifications; in some universities the supervisor(s) +% should not be indicated and in such a case the (unique) +% candidate may be indicated without any legend on top of +% it. The University logo might already contain the explicit +% wording with the the university name and in this case +% repeating the name would be pleonastic. At my level I +% cannot foresee the user requirements therefore it must +% be the user that takes care of inputting the correct +% fixed word data and the specific thesis data. I hope +% this module is useful for most Ph.D.\ students, but if +% the user comparer the title page requirements with those +% prescribed for the ScuDo theses, s/he sees how much such +% requirement might be different from one university to the other. +% +% May be in such circumstances the user might prefer to create +% his/her custom title page and would not use this module at all. +% +% \section{The custom module for the title-page}\label{sec:custom} +% The construction of the customised title page module is the full +% responsibility of the user. +% In facts the user, beyond specifying the |tipotesi=custom| +% to the |toptesi| class class, at the beginning of the +% document explicitly inputs a personal package file, say +% |mycustomfile.sty| by means of the simple +% |\usepackage{mycustomfile}| command, and this is all the user +% needs. Of course this is an understatement; in facts s/he +% should select a package form the many existing ones, s/he +% can create him/herself a new package branched on other existing +% software; s/he mai refrains form using external packages, +% and simply insert his/her title page data within a |titlepage| +% environment where s/he wants, with the fonts families, series, +% shapes, and sizes s/he prefers and so on. +% +% Needless to say that in order to create a custom title page +% module the user must perfectly know the intricacies of the +% \LaTeX\ language. It may be helpful to read the Italian +% documentation |toptesi-it.pdf| where an example of landscape +% title page is already described in full detail. Of course a +% landscape title page requires a custom layout and is no +% surprise that the example deals with this particular one. +% Nevertheless that example gives a good idea on how to create +% a custom title page. +% +% We don't go further in describing the |tipotesi=custom| option, +% except remembering the this option just inhibits loading both +% the standard default module, and any other module, unless the +% user loads it directly with or without the specific module options. +% +% \section{The high school final work module} +% +% The suffix |sss| is the acronym for the Italian name of +% ``High School'', \emph{Scuola Secondaria Superiore}. +% Elegance of bureaucratic language; the elementary school +% now is `Scuola Primaria', and junior high school is `Scuola +% Secondaria Inferiore'. As well as it was in Germany and +% in some Swiss Cantons, the total number of school years +% is 13 instead of 12, as it is in most countries. The advantage +% is that no general education is taught in university, no +% \emph{classes préparatoires}, because it is assumed that +% the high school diploma assures a sufficient level of general +% education. +% +% Differently from most high school systems in the world, +% in Italy each school has a special ``mission'' and receives +% different names, all under the general definition of Scuola +% Secondaria Superiore. But it s possible to distinguish +% between Licei (University preparatory), Istituti tecnici +% with various specialisation (for technical education in +% different domains); Istituti professionali (for vocational +% training); all of them end with a state examination, and +% almost all of them allow entrance in University, although +% a certain level of auto\-selection is actually performed. +% Many university Schools, formerly Faculties, submit applicants +% to entrance tests intended mostly to let them perform a +% conscious choice of their future studies; sometimes the +% tests are intended also to form ranks in those schools where +% the \emph{numerus clausus} is applied. +% +% This off topic is necessary to let the general reader +% understand the importance of the \emph{esame di maturità} +% and the important role that the high school final work +% (nicknamed \emph{thesina}, `little thesis') plays in this +% generally difficult exam; statistics say that the number of +% flunking students is very low, but the final numerical grade +% (passing grade; from 60 to 100 with honours) plays also an +% important role in the following career, therefore students +% work very hard to pass with good grades. +% +% The above off topic explains why in Italy the final high +% school state exam includes the evaluation of a personal +% written report on some subject chosen by each student; +% this choice is often performed with +% an initial support by each student teachers, that give help in +% choosing the subject, and, maybe, offer some initial input. +% They do not supervise the student work; but this work is +% submitted to the examining committee (the members of which +% are external to the specific school) that after due reading, +% ask questions on the work and investigate the depth to which +% the student has gone into his/her chosen subject. +% +% Certainly this final work has not the importance of a +% university thesis, but it is the first time when the +% student is asked questions on a subject of his/her choice, +% where the examining committee assumes s/he has examined all +% the facets with the approach of a young adult, not that +% of an old teenager. +% +% Some high school students have discovered \LaTeX, and some +% of them do really appreciate the typesetting results all +% \LaTeX\ users love; therefore they like the idea of +% typesetting their final high school work with the powerful +% \LaTeX\ functionalities. +% +% Of course their title page must be very different from those +% suitable for university theses, therefore a special module is +% necessary, and I decided to to add such a module to this bundle. +% +% Actually high school students require less information on the +% title page; the school generic and proper names, obviously the +% title and a possible subtitle, their name, maybe the logo of +% their school, the examination date, and such similar data. +% +% They certainly do not need the advanced features needed for +% the functionalities of the |topfront| extension package; +% nevertheless the title page must have a professional look, +% not just what they may achieve by using a word processor. +% +% The contents of the \emph{tesina} may also have a professional +% look if the students do not tickle the typesetting program +% to behave as a word processor. Several guides are available +% for high school students, as well for university ones, to +% recall how a ``technical report'' should be properly written; +% unfortunately today students prefer to read their smartphones, +% rather than real printed or electronic books; but those +% students who use \LaTeX\ know very well that they need reading +% suitable guides for using the program \emph{and} for structuring +% their document. % -% \item If your thesis main file, the one you run your \texttt{pdflatex} on, -% is named, say, \texttt{JohnSmithMasterThesis.tex}, prepare in the same -% directory another file named \texttt{JohnSmithMasterThesis.xmpdata} that -% contains the \emph{metadata} relative to the thesis; pay attention to -% follow the stringent syntax described and exemplified in the \textsf{pdfx} -% documentation. A minimal set of \emph{metadata} example would be the -% following one: +% Mirko Mondini suggested to extend the TOPtesi bundle to +% include the title page for high school final works. He +% also suggested the layout of the page. This module may be +% considered ``work in progress'' because we both have little +% experience with the requirements of such final works. +% As the maintainer of this bundle I thank him very much; +% Marco may suggest specific changes in the near future; +% his contributions are very welcome. I would add that +% commentaries and suggestions by the students to whom this +% module is dedicated are very welcome just as well. +% +% We assume the student already knows the fundamentals of \LaTeX; +% we assume the Italian student has read the companion +% documentation |toptesi-it.pdf| distributed with this bundle; +% we assume also that the student has already a valid +% installation of the \TeX\ system, preferably \TeXLive, +% that is available for all most popular operating systems, +% Windows included of course, although for Windows there is +% also the alternative installation MiKTeX. As my personal opinion, +% I think that \TeXLive may be updated more easily than MiKTeX +% and, not negligibly, its default installation is complete, +% while MiKTeX by default has a basic installation, so that very +% often offline MiKTeX users suffer from ``missing package'' errors. +% +% Since this module is going to be used only by Italian high +% school students, all user commands are in Italian. +% +% Here we concentrate on the title page. But before entering +% this subject let us recall that this module already loads a +% certain number of packages. +% \begin{enumerate}[noitemsep] +%\item +% Packages |amsmath|, |amssymb| (only \pdfLaTeX) and |amsthm| +% are already loaded, but a test is made to verify if the user +% has loaded in his/her preamble the math packages |newtxmath| +% or |newpsmath| (possibly together with their companions +% |new..text|), because the latter packages already provide +% for their functionalities. +%\item +% If they typeset with \LuaLaTeX\ or \XeLaTeX, the suitable +% packages are already loaded, in particular the |unicode-math| +% one; the user, though, should load a matching OpenType Math +% font among those available with the \TeXLive distribution. +%\item +% Service packages such as |xparse|, |xspace|, and |xcolor| +% are already loaded for the benefit of this bundle and this +% module, but the user is free to use their functionalities, +% mostly those of |xcolor|. +%\item +% Packages |calc| and |ifthen| are functional for the module; +% supposedly the end user should not have any necessity to use +% them, but, of course, they can if they need to. +%\item +% Package |multirow| has been loaded, because many users like +% to imitate word processor functionalities; this package allows +% to create table cells that span several rows; as a general +% rule this practice should be avoided. +%\item +% Package |booktabs|, is very useful to set professional +% tables (reading its documentation is necessary). +%\item +% No particular package has been loaded to create a specialised +% bibliography; either the student directly uses its own +% |thebibliography| environment, or provides to chose whatever +% style s/he likes best and, s/he decides to load package +% |biblatex| and specifies the desired options. In the first +% case one of the most useful packages is |natbib|; in the +% second case |biblatex| supports other bibliographic style +% files. Both approaches require the preparation of a +% bibliography database by means of programs |jabref|, +% |bibdesk|, or similar applications: but with |natbib| +% the |bibtex| database handler is required, while with +% |biblatex| case the |biber| handler yields the best +% performances. In both cases it is required the careful +% reading of either package documentation. +%\end{enumerate} +% +% The commands the user can use for the title page follow. +% Remember that they may be used directly within the +% |FrontespizioTesina| environment; if the user prefers, s/he +% can write them in a configuration file; such file must be +% named with the same name as the document main file, and +% it must be saved in the same folder; the information +% read from the configuration file is possibly overridden +% by the same commands, with different data, specified within +% the |FrontespizioTesina| environment. +% Just to be sure to be clear, if your document main file is +% named |LaMiaBellaTesina.tex|, the configuration file should +% be named |LaMiaBellaTesina.cfg| and both files should be +% saved in the same folder. +% +% The title page commands are the following: +%\begin{description}\def\Item[#1]{\item[\normalfont\cs{#1}]} +%\Item[SSSLogo] +% is used to define the name of the graphic file containing +% the high school logo; not necessarily the school allows to +% use its logo; in any case if such command is not used, the +% logo information is ignored. The syntax is +% \begin{ttsintassi} +% \cs{SSSLogo}\marg{file name} +% \end{ttsintassi} +% Remember that the graphic file must have one of these +% extensions: |.pdf|, |.eps|, |.png|, or |.jpg|; the first +% two may contains vector images and give the best results; +% the second two are bitmapped, therefore their rendering +% depends very much on the pixel density of the file contents. +%\Item[NomeTesina] sets the name of the document; the default value +% is ``Tesina di maturità''. Syntax: +% \begin{ttsintassi} +% \cs{NomeTesina}\marg{nome dell'elaborato} +% \end{ttsintassi} +%\Item[NomeCandidato] +% is used to set the label to typeset over the author's name; +% default ``Studente'' or ``Studentessa'' depending on the +% state of the boolean switch |femminile|, but if this command +% is used for the user tesina, s/he needs not to specify any +% switch and uses the only name necessary for his/her document. +% Syntax: +% \begin{ttsintassi} +% \cs{NomeCandidato}{examinand label} +% \end{ttsintassi} +% This command might be used to set the label with a different +% name in the correct gender. +%\Item[IndirizzoMiur] +% sets the Ministry of Education special address. If this +% command is omitted, this address, considered optional, +% is neglected. Syntax: +% \begin{ttsintassi} +% \cs{IndirizzoMiur}\marg{Ministry of Education special address} +% \end{ttsintassi} +%\Item[OpzioneMiur] +% sets the specification that distinguishes the school +% mission, if any. Syntax: +% \begin{ttsintassi} +% \cs{OpzioneMiur}\marg{Ministry of Education option} +% \end{ttsintassi} +%\Item[TipoScuola] +% sets the specific generic name of the school; default +% none; therefore use of this commands is mandatory; +% the user might specify ``Liceo classico'', or ``Istituto +% tecnico industriale di stato'', or whatever applies for +% the students' specific school. Syntax: +% \begin{ttsintassi} +% \cs{TipoScuola}\marg{generic school name} +% \end{ttsintassi} +%\Item[NomeScuola] +% sets the specific name of the school; generally schools +% are dedicated to famous scientists or heroes, or presidents, +% or kings/queens, or writers, et cetera; default ``empty''. +% Syntax: +% \begin{ttsintassi} +% \cs{NomeScuola}\marg{specific school name} +% \end{ttsintassi} +%\Item[SedeScuola] +% set the actual location of the school it may be just the +% city or a full postal address; it may contain new line +% commands in order to format a full address of several lines; +% no default. Syntax: +% \begin{ttsintassi} +% \cs{SedeScuola}\marg{the school basic or full address} +% \end{ttsintassi} +%\Item[AnnoScolastico] +% sets the school year at the end of which the state +% examination is undertaken; no default. Syntax: +% \begin{ttsintassi} +% \cs{AnnoScolastico}\marg{school year} +% \end{ttsintassi} +%\Item[titolo] +% sets the title of the document; please don't use long titles; +% if a short sentence is not descriptive enough, use the +% |\sottotitolo| argument to add specifications to the title; +% no default. Syntax: +% \begin{ttsintassi} +% \cs{titolo}\marg{main title} +% \end{ttsintassi} +%\Item[sottotitolo] +% sets an optional subtitle; if this command is not used +% the subtitle field is ignored; no default. Syntax: +% \begin{ttsintassi} +% \cs{sottotitolo}\marg{optional subtitle} +% \end{ttsintassi} +% The subtitle, if any, is typeset in a normal sized font, +% therefore it can be several lines long; nevertheless pay +% attention to use the tie command |~| to connect with an +% unbreakable space to the following ones such words as +% prepositions, articles, short adverbs, and such similar +% items. +%\Item[studente] or \cs{studentessa}, depending on the gender +% of the student, sets the name of the author of the +% document, i.e.\ the name of the student undergoing the +% examination; no default. Syntax: +% \begin{ttsintassi} +% \cs{studente}\marg{proper name(s) followed by the surname(s)} +% \cs{studentessa}\marg{proper name(s) followed by the surname(s)} +% \end{ttsintassi} +% Remember: \textbf{never ever use the surname(s) before +% the name(s)}. +% If the \cs{NomeCandidato} macro has not been used, these commands +% set the proper status to the |femminile| switch, so that the +% proper default label is used. +%\Item[Presidente] +% sets the name of the chairperson of th examining committee; +% no default. Syntax: +% \begin{ttsintassi} +% \cs{Presidente}\marg{examining committee chairperson full name} +% \end{ttsintassi} +% Again remember to write the necessary academic titles +% in lowercase, end the name(s) before the surname(s). +%\Item[NumeroCommissione] +% sets the examining committee ID number; no default.Syntax: +% \begin{ttsintassi} +% \cs{NumeroCommissione}\marg{Examing committee ID number} +% \end{ttsintassi} +%\end{description} +% +% The actual title page is created within the environment +% |FrontespizioTesina|. This environment first reads a the +% configuration file if one exists, then it analyses the +% commands possibly set within the environment by the author, +% possibly superseding the information read from the +% configuration file; the closing commands actually typeset +% the title page; the schematic working is the following: +%\begin{flushleft}\ttfamily\obeylines +%\Bambiente{FrontespizioTesina} \% reads the config.\ file if any +%\meta{user commands with user data} +%\Eambiente{FrontespizioTesina} \% typesets the title page +%\end{flushleft} +% There are no options to specify; the title page is sort +% of rigid in the sense that every piece of information goes +% where it should and interlaced with proper spaces so as to fill +% up the text grid in a sensible way. No doubt some users may +% complain that the title page does not allow to do this or +% that; that the spacings should be different from what they +% actually are. +% +% There are work-arounds to these complains. +%\begin{enumerate}[noitemsep] +% \item +% Instead of using the above environment, s/he uses the |titlepage| +% environment within which s/he inserts what s/he wants and +% where s/he likes best, with the typefaces s/he prefers, +% with the vertical spacings that accomodate his/her aesthetical +% feelings. Of corse it is necessary to know what is being done; +% if not, the results may be worse than the predefined layout. +%\item +% Even better: the user may use a custom layout and set it +% following the instructions described in section~\ref{sec:custom}. +% \end{enumerate} +% +%^^A PDFA/A +% +% \section{\sigla{PDF/A} archivable format} +% This section in general applies also if the thesis is typeset +% by means of \LuaLaTeX\ or \XeLaTeX, but with\XeLaTeX\ special +% attention should be paid to the details of the procedure as +% described in the documentation of the \pack{pdfx} package. Even +% better, \LuaLaTeX, whose source file is practically the same as +% that of \XeLaTeX, may produce in a simpler way a \sigla{PDF/A} +% compliant output file if the users follow attentively the +% instructions contained in the documentation of the \pack{pdfx} +% package. +% +% More details are given in the Italian documentation contained +% in the \texttt{toptesi\discretionary{-}{}{-}it} which is part +% of the TOPtesi bundle. +% +% Politecnico di Torino and several other Italian and foreign +% universities are moving towards archiving theses in electronic +% format, specifically in the \sigla{PDF} one. The problem of +% course is: ``Will it be possible to read the archived documents, +% say, fifty years from now?'' +% +% This essential question has been answered by the International +% Standards Organisation (\sigla{ISO}) that in 2005 published the +% regulation \sigla{ISO}~19005-1; in 2011 and 2012 enhancements of +% this regulation have been published. This regulation defines +% a \sigla{PDF} variant suitable for archiving, named \sigla{PDF/A}, that +% has two sub-formats distinguished as \sigla{PDF/A}-1a, and \sigla{PDF/A}-1b. +% The `a' sub-format is more exacting, while the `b' one is less +% stringent. In spite of the recently published upgrades, +% here we stick to the older ones, that are a sub set of the +% newer ones, and for which suitable software is available. +% +% The requirements for the `a' sub-format imply not only those +% requested for the `b' one, but also that the logical structure +% of the document be accessible from outside (Tagged \sigla{PDF}). +% The requirements for the `b' sub-format are that the +% document must be reproducible without modifications exactly +% as it was at the moment of archiving. Both sub-formats must +% contain \emph{metadata} that are searchable even without +% decompressing the normally compressed \sigla{PDF} file, and that +% contain information useful for archive maintenance; among +% these informations, of course, the \sigla{PDF/A} category the document +% belongs to, the document title, the authors, and few other +% optional pieces of information, such as the keywords that +% ease up library searches. +% +% Since version 1.40, the program \texttt{pdflatex} is capable +% of producing \sigla{PDF/A}-1b compliant files, provided that some +% attention is put into editing of the thesis source file. +% +% With the distribution of the 2008 version of the \TeX\ system, +% the executable \texttt{pdflatex} has version number 1.40.9 +% (or higher) and is capable of producing \sigla{PDF/A}-1b files. +% +% The particular attention needed to avoid problems with the +% \sigla{PDF/A} compliance is summarised as follows: +% \begin{enumerate}[noitemsep] +% \item +% The preliminary essential requirement is that the +% \texttt{pdflatex} engine used to typeset the thesis be +% sufficiently recent to support the \sigla{PDF/A} requirements. +% It's better to have the most recent distribution of +% the \TeX\ system installed on your PC. Do not try to +% typeset the thesis with the `old' \prog{latex}; you +% \emph{must} process the input thesis file(s) with +% \texttt{pdflatex} or with \prog{xelatex} or with \prog{lualatex}; +% in the following, no specific check will be made in +% order to verify if you are actually using \texttt{pdflatex}. +% If you really need to use the `old' \LaTeX, you get a DVI +% file and you need to transform it with |dvips| into a +% PS file; at this point you have lost the possibility of +% exploiting the internal commands of |pdflatex| +% version~1.40.9 or later. You can still produce a \sigla{PDF/A} +% final document, but you have to transform it by means of the +% procedures described in the Italian documentation; such +% documentation describes several more or less effective +% methods to transform a non compliant \sigla{PDF/A} file into a +% compliant one, and how to correct the ``imperfections'' +% that forbid any valid transformation. +% +% \item +% Since 2016 the TeXLive distribution contains a new version +% of \pack{pdfx} and now \sigla{PDF} documents produced with +% \prog{lualatex} may be fully compatible with the standard +% \sigla{PDF/A}. With some special care and some post"processing, +% even \prog{xelatex} can now produce \sigla{PDF/A} compliant output +% files. +% +% \item +% Your up-to-date complete \TeX\ distribution should +% contain the package \textsf{pdfx}; if it does not, +% upgrade your \TeX\ system complete distribution. Be sure +% that the version number of the \pack{pdfx} package has +% version number~1.5.8 or higher. +% +% \item +% If your thesis main file, the one you run your typesetting +% program on, is named, say, \texttt{JohnSmithMasterThesis.tex}, +% prepare in the same directory another file named +% \texttt{JohnSmithMasterThesis.xmpdata} that contains the +% \emph{metadata} relative to the thesis; pay attention +% to follow the stringent syntax described and exemplified +% in the \textsf{pdfx} documentation. A minimal set of +% \emph{metadata} example would be the following one: % \begin{verbatim} % \Title{Experiments in Trichotetratomy} % \Author{John Smith} % \end{verbatim} -% The keyword list requires a specific format that can be examined -% in the package documentation. The best way to be sure that this file -% accompanies the thesis main file, is to put its contents in a -% \env{filecontents*} environment before the |\documentclass| declaration. -% The details are in the documentation of the \pack{pdfx} package. -% -% \item Some mathematical symbol commands obtained from the standard \LaTeX\ -% set-up and the standard mathematical fonts require some patching that is -% already included in this \texttt{TOPtesi} bundle; but it is not excluded -% that with other fonts similar patches might be requested. The UNICODE -% math fonts used by \XeLaTeX\ and \LuaLaTeX\ do not require any patch. -% -% \item Use only PNG and JPEG images with RGB color profiles. If a PNG image -% file contains some transparencies, the document PDF cannot be validated -% as PDF/A compliant. -% -% \item If you include PDF images that contain some text, be sure that the -% fonts for this text are completely embedded in the included file. Should -% the PDF file come from an external drawing program be sure to configure -% that program so that it embeds all the fonts used in the image. If you -% don't succeed, open the PDF file with the free program \texttt{inkscape} -% and save it back in PDF format; the missing fonts will be replaced with -% their traced outlines and this will not disturb the PDF/A conformity. Pay -% attention, because Inkscape might save your file with some specifications -% for transparency; transparency specification destroy the PDF/A compliance. -% -% \item Verify your final PDF file with a suitable program and do not give -% up doing the necessary corrections or modifications while the verification -% program keeps saying that this or that is not compliant with the PDF/A -% specification. A suitable program is the Preflight module of Adobe Acrobat -% Pro~XI, but this, although the most authoritative, is a commercial program; -% probably your university has special facilities for this task. -% -% \item There exist an experimental freeware program \prog{veraPDF} that -% can be downloaded from the Web, that performs quite well in checking -% the PDF/A conformity of a PDF file; read more in the \pack{TOPtesi} -% Italian documentation. +% The keyword list requires a specific format that can be +% examined in the package documentation. The best way to +% be sure that this file accompanies the thesis main file, +% is to put its contents in a \env{filecontents*} environment +% before the |\documentclass| declaration. The details are +% in the documentation of the \pack{pdfx} package. +% +% \item +% Some mathematical symbol commands obtained from the standard +% \LaTeX\ set-up and the standard mathematical fonts require +% some patching that is already included in this \texttt{TOPtesi} +% bundle; but it is not excluded that with other fonts similar +% patches might be requested. The \sigla{UNICODE} math fonts used +% by \XeLaTeX\ and \LuaLaTeX\ do not require any patch. +% +% \item +% Use only \sigla{PNG} and \sigla{JPG} images with \sigla{RGB} color profiles. +% If a \sigla{PNG} image file contains some transparencies, the +% document \sigla{PDF} cannot be validated as \sigla{PDF/A} compliant. +% +% \item +% If you include \sigla{PDF} images that contain some text, be sure +% that the fonts for this text are completely embedded in +% the included files. Should the \sigla{PDF} files come from an external +% drawing program be sure to configure that program so that +% it embeds all the fonts used in each image. If you don't +% succeed, open the \sigla{PDF} file with the free software +% \texttt{inkscape} and save it back in \sigla{PDF} format; the +% missing fonts will be replaced with their outlines and +% this will not disturb the \sigla{PDF/A} conformity. Pay attention, +% because Inkscape might save your file with some +% specifications for transparency; but transparency +% specifications destroy the \sigla{PDF/A} compliance. +% +% Should this inconvenience take place, instead of asking +% \texttt{inkscape} to save in \sigla{PDF} format, ask to save in \sigla{EPS} +% format; this one does not support transparencies, therefore +% they get abolished from the very beginning. This is useful +% also when \texttt{inkscape} is used to change the color +% profile of an image. Once used this program to convert an +% image to \sigla{EPS} format without transparencies and/or with the +% accepted \sigla{RGB} color profile, import the image as usual with +% |\includegraphics|; all the suggested typesetting programs, +% \prog{pdflatex} included, can import \sigla{EPS} files, therefore +% these problems, thanks \texttt{inkscape} may be easily +% overridden. +% +% \item +% Verify your final \sigla{PDF} file with a suitable program and +% do not give up doing the necessary corrections or +% modifications while the verification program keeps saying +% that this or that is not compliant with the \sigla{PDF/A} +% specification. A suitable program is the Preflight module +% of Adobe Acrobat Pro~XI (or later), but this, although the most +% authoritative, is a commercial program; probably your +% university has special facilities for this task. In any +% case you can install the \prog{veraPDF} free software +% from the Internet, and use this handy verification program +% (it is still in beta stage until the official stable release that +% is due during the year 2017). % %\end{enumerate} % -% Warning: if you are using Adobe Reader X (or later), this program will open -% a PDF file beginning with an information header stating that the file -% PDF/A claims to be compliant; maybe it's true, but do not trust this -% information too much, at least don't believe that this information is a -% ``certification'' of the PDF/A compliance. I have seen files with this -% comforting information that did not pass the Preflight test! -% -% Up to today the realisation of PDF/A conforming files sets forth several -% problems that are of great concern for the large Institutions that have -% thousands of documents a year to archive; it is not a question implied -% in the free nature of the \prog{pdflatex}, \prog{xelatex}, and \prog{lualatex} -% programs, that, on the opposite, according to my experience, have a very high -% rate of success in producing PDF/A compliant documents. If you stick to the -% default \TeX\ system Type~1, 256-glyph fonts, or to the UNICODE encoded otf -% or ttf fonts and use this version of \texttt{TOPtesi} you should be able -% to avoid most problems. -% -% \StopEventually{} ^^A Bibliography? +% Warning: if you are using Adobe Reader X (or later), this +% program will open a \sigla{PDF} file beginning with an information +% header stating that the file claims to be \sigla{PDF/A} compliant; +% maybe it's true, but do not trust this information too much, +% at least don't believe that this information is a +% ``certification'' of the \sigla{PDF/A} compliance. I have seen +% files with this comforting information that did not pass +% the Preflight test! Actually the Reader is correct in saying +% that ``\dots\ the program claims to be \sigla{PDF/A} compliant\dots''; +% the Reader just notices that the metadata contains such a claim, +% but this does not imply that the claim is true. +% +% Up to today the realisation of \sigla{PDF/A} conforming files sets +% forth several problems that are of great concern for +% large Institutions that have thousands of documents a year +% to archive; it is not a question implied in the free nature +% of the \prog{pdflatex}, \prog{xelatex}, and \prog{lualatex} +% programs, that, on the opposite, according to my experience, +% have a very high rate of success in producing \sigla{PDF/A} +% compliant documents. If you stick to the default \TeX\ system +% Type~1, 256-glyph fonts, or to the \sigla{UNICODE} encoded otf +% or ttf fonts and use this version of the TOPtesi bundle +% you should be able to avoid most problems. +% +% \StopEventually{} +% +% \newpage % % \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. +% 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 their specific +% description string. % \iffalse %<*class> % \fi % -% 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 |a4paper| option is made the default, but the user can call the -% class with any valid \LaTeX\ paper size. According to the \LaTeX\ machinery -% of option passing, the |\ExecuteOption| command assures that |a4paper| -% is the default size, but it is not being used if another paper size code is -% specified to the class. The same holds true for the other class options, -% except for the encoding code string because their passing machinery does -% not hold true for the \pack{inputenc} package; therefore this package is -% not loaded any more as it was in previous versions of the class\footnote{Thanks -% to Enrico Gregorio who pointed out this feature.}. On the opposite if another -% language is specified in the list of \pack{toptesi} class options, this -% language would be appended to the \pack{babel} package default options and, -% beware!, it would become the default language. -% \begin{macrocode} -\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption{titlepage}{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} -\ExecuteOptions{a4paper,titlepage} -\ProcessOptions\relax +% 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 to the \texttt{toptesi} +% class are passed on to the \texttt{report} class; the +% |a4paper| option is made the default, but the user can invoke +% the class with any valid \LaTeX\ paper size. According to the +% \LaTeX\ and |xkeyval| machinery of option passing, the |\ExecuteOptionX| +% command assures that |a4paper| is the default size, but it +% is not used if another paper size code is specified to the class. +% The same holds true for the other class options, except for +% the encoding string because their passing machinery does +% not hold true for the \pack{inputenc} package; therefore this +% package is not loaded any more as it was in previous versions +% of the class\footnote{Thanks to Enrico Gregorio who pointed +% out this feature.}. On the opposite, while typesetting with +% |pdfLaTeX|, if another language is specified in the list of +% \pack{toptesi} class options this language is appended to the +% \pack{babel} package default options and, beware!, it would +% become the default language; with XeLaTeX and LuaLaTeX a +% language option is useless (and harmless) due to their way of +% specifying languages; with these programs other languages must +% be specified with their |\setotherlanguage| or |\setotherlanguages| +% commands which do not change the preset main language. +% \begin{macrocode} +\usepackage{trace} +\RequirePackage{xkeyval} +\DeclareOptionX{formato}[a4paper]{\PassOptionsToClass{#1}{report}} +\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{report}} +\ExecuteOptionsX{formato} +\ProcessOptionsX*\relax \LoadClass{report} + \RequirePackage{iftex} \ifPDFTeX - \RequirePackage[english,italian]{babel} + \usepackage[english,italian]{babel} \else - \RequirePackage{polyglossia} + \usepackage{fontspec} + \defaultfontfeatures{Ligatures=TeX} + \usepackage{polyglossia} \setmainlanguage{italian} \setotherlanguage{english} - \renewcommand*{\iflanguage}[1]{\ifnum\the\language=\csname l@#1\endcsname + \renewcommand*{\iflanguage}[1]{% + \ifnum\the\language=\csname l@#1\endcsname \expandafter\@firstoftwo\else \expandafter\@secondoftwo\fi} \fi -\RequirePackage{toptesi} +\usepackage{toptesi} % % \end{macrocode} % \iffalse %</class> % \fi % \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 stand alone package, although, take -% notice, it might create some conflicts with with the \texttt{book} class code -% (although with the latest versions of |toptesi| we did not notice any conflict) -% while 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. +% 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 stand alone package, but, take +% notice, it might create some conflicts with with other +% classes internal code, although with the latest versions +% of |toptesi| we did not notice any conflict with the |book| +% class; it is certainly incompatible with the \texttt{article} +% class. +% +% This package |toptesi.sty| must contain its own \TeX\ format +% declaration in view that it might be used as an extension to +% other classes % % \iffalse %<*topsty> % \fi % -% We start with defining the debugging macros; these trace commands and macros -% are the usual ones I use for debugging. I know the \texttt{trace} package is supposed -% to be much better, but sometimes I use these ones. +% We start by defining the debugging macros; these trace +% commands and macros are the usual ones I used for debugging. +% I know the \texttt{trace} package is supposed to be much better, +% but sometimes I use these ones, especially when I want to +% trace math snippets, where the tracing functionalities of +% \pack{trace} are turned off. % \begin{macrocode} \def\TRON{\tracingcommands \tw@ \tracingmacros \tw@} \def\TROFF{\tracingcommands\z@ \tracingmacros \z@} @@ -903,101 +2510,226 @@ lines of the file for how-to information. % \end{macrocode} % % Now we define the specific package options: \texttt{classica} and -% \texttt{trieste} are identical; the use of \texttt{trieste} is discouraged, -% but this option is maintained for backward compatibility. -% The option \texttt{14pt} is for choosing a normal size of 14pt; the class option -% file \texttt{size14.clo} is distributed with the \pack{extsizes} package and -% is already included in any complete distribution of the major \TeX\ system ones; -% in previous versions of this bundle there was a specific option class file for -% this large size, but with the latest complete distributions available, there -% is no chance that the existing option file is missing. -% -% \texttt{chapterbib} allows to set a list of references at the end of each -% chapter. -% -% For the options some boolean variables are -% defined and the option definitions set some of them to the value ``true''. +% \texttt{trieste} are identical; the use of \texttt{trieste} is +% deprecated, but this option is maintained for backward +% compatibility. +% +% The option \opz{scudo} is used only to typeset doctoral +% dissertations with the special look required by the ``Scuola +% di Dottorato'' of Politecnico di Torino. The other options for +% specific types of thesis, \opz{triennale}, \opz{monografia}, +% \opz{magistrale}, \opz{dottorale}, \opz{secondaria}, are +% described further on; options \opz{frontespizio} and +% \opz{custom} are avoid loading the default module |topfront| or any of the previous listed modules; the are used to create title pages +% different from the ones that are available with TOPtesi. + +% The |corpo = value| option can receive ``any'' value; if this +% value is not lower than 14\,pt , the |\if@xixpt| switch is +% set to true; the value assigned to |corpo| specifies the normal +% size; the TOPtesi bundle uses the |\changefontsizes| macro +% provided by package |scrextend|, that is part of any \TeX\ +% system complete and up-to-date TeXLive or MiKTeX installation. +% +% Option \opz{chapterbib} allows to set a list of references at +% the end of each chapter. The option is maintained fore backward +% compatibility, but we discourage its use, because of the amount +% of manual work involved; it is much better to use the |biblatex| +% functionalities and other packages created for this purpose. +% +% For other options some boolean variables are +% defined and the option definitions set some of them to the value +% ``true''. % \begin{macrocode} +\newif\ifevenboxes \evenboxesfalse \newif\if@utoretitolo \@utoretitolofalse \newif\if@ldstyle \@ldstylefalse \newif\if@xivpt \@xivptfalse +\newif\iflibro \librofalse \newif\ifT@Pfrontespizio \T@Pfrontespiziofalse \newif\ifTOPfront \TOPfronttrue +% +\newif\ifScuDo \ScuDofalse +\newif\ifmonografia\monografiafalse +\newif\iftriennale\monografiafalse +\newif\ifmagistrale\magistralefalse +\newif\ifdottorato\dottoratofalse +\newif\ifsecondaria\secondariafalse +\newif\ifcustom\customfalse +\newif\ifTOPnumerazioneromana\TOPnumerazioneromanafalse % \end{macrocode} % -% A binding correction is established; its default value is parametrised to -% the paper dimensions, even if this correction should actually not depend -% on the paper size; the paper flexibility at the spine margin should be -% independent from its width; nevertheless large sizes allow for larger -% default corrections. In any case the user can override this setting by -% using the specific command |\setbindingcorrection|. The recommendation -% to the user is to not exaggerate with this correction. The options -% |usefrontespizio| and |noTOPfront| are synonymous; the latter should be -% preferred to the former one. +% A binding correction is established; its default value is +% parametrised to the paper dimensions, even if this correction +% should actually not depend on the paper size; the paper +% flexibility at the spine margin should be independent from +% its width; nevertheless large sizes allow for larger default +% corrections. In any case the user can override this setting by +% using the specific command |\setbindingcorrection|. +% The recommendation to the user is to not exaggerate with this +% correction. In particular the user is warned not to use this +% option in order to mode che taxt body grid towards the outer +% edge, simply because s/he does not understand why two side +% typesetting uses an inner margin smaller than the outer one. +% +% The options |usefrontespizio| and |noTOPfront| are set by the specific ``function'' executed by the |tipotesi=|~value options. % \begin{macrocode} -\newlength\T@Pbinding\setlength\T@Pbinding{7mm} +\newlength\T@Pbinding \def\setbindingcorrection#1{\T@Pbinding=#1} \newif\if@binding \@bindingfalse \newif\ifchapterbibliography \chapterbibliographyfalse \newif\ifclassica \classicafalse -\DeclareOption{cucitura}{\@bindingtrue} -\DeclareOption{14pt}{\@xivpttrue} -\DeclareOption{chapterbib}{\chapterbibliographytrue} -\DeclareOption{trieste}{\classicatrue}% Just for backwards compatibility -\DeclareOption{classica}{\classicatrue} -\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} -\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} -\DeclareOption{pdfa}{\PackageWarning{toptesi}{Option pdfa ignored.\MessageBreak -Read documentation toptesi-it-*.pdf, because package pdfx has changed}} -\DeclareOption{usefrontespizio}{\T@Pfrontespiziotrue\TOPfrontfalse} -\DeclareOption{noTOPfront}{\T@Pfrontespiziotrue\TOPfrontfalse} -% -\ProcessOptions\relax + +\@ifpackageloaded{xkeyval}{}{\RequirePackage{xkeyval}} +\@ifpackageloaded{scrextend}{}{\RequirePackage{scrextend}} +\@ifpackageloaded{iftex}{}{\RequirePackage{iftex}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} + +\DeclareOptionX{cucitura}[7mm]{\setlength\T@Pbinding{#1}\@bindingtrue} +\DeclareOptionX{corpo}[10pt]{\unless\ifdim#1<\@xivpt\p@\@xivpttrue\fi + \changefontsizes{#1}} +\DeclareOptionX{chapterbib}[true]{\chapterbibliographtrue} +\DeclareOptionX{evenboxes}[true]{\evenboxestrue} +\DeclareOptionX{libro}[true]{\librotrue} +\DeclareOptionX{stile}[standard]{\setkeys{toptesi}{stile=#1}} +\define@choicekey{toptesi}{stile}[\val\nr]{standard,classica,trieste}{% + \ifcase\nr + \typeout{valore=\number\nr}\classicafalse + \or + \typeout{valore=\number\nr}\classicatrue + \or + \typeout{valore=\number\nr}\classicatrue + \else + \typeout{valore=\number\nr}\classicafalse + \fi} +\DeclareOptionX{autoretitolo}[true]{\ifclassica\@utoretitolotrue\fi} +\DeclareOptionX{oldstyle}[true]{\ifclassica\@ldstyletrue\fi} +\DeclareOptionX{pdfa}{\PackageWarning{toptesi}{% + ***********************************************\MessageBreak% + Option pdfa ignored.\MessageBreak% + Read documentation toptesi-it-*.pdf,\MessageBreak% + because package pdfx has changed\MessageBreak% + ***********************************************\MessageBreak% + }} + +\DeclareOptionX{numerazioneromana}[true]{\TOPnumerazioneromanatrue} + +\newcommand\NoValidTipo[1]{% +\PackageError{toptesi}{Option value `#1' not defined\MessageBreak +}{Type `X' to exit and check your input}} + + +\DeclareOptionX{tipotesi}[topfront]{% + \ifstrequal{#1}{frontespizio}{\TOPfrontfalse\T@Pfrontespiziotrue + \AtEndOfPackage{\RequirePackage{frontespizio}}% + }{% + \ifstrequal{#1}{topfront}{\TOPfronttrue\T@Pfrontespiziofalse + \AtEndOfPackage{\RequirePackage{topfront}}% + }{% + \TOPfrontfalse\T@Pfrontespiziofalse + \ifstrequal{#1}{custom}{\relax}{% + \ifstrequal{#1}{triennale}{% + \def\TPT@tipo{toptesi-monografia}% opz:monografia + }{\ifstrequal{#1}{secondaria}{% opz: secondaria + \edef\TPT@tipo{toptesi-sss}% + }{% + \edef\TPT@tipo{toptesi-#1}% opz: triennale, + }% % magistrale, dottorale + }% + \AtEndOfPackage{% + \IfFileExists{\TPT@tipo.sty}% + {\RequirePackage{\TPT@tipo}}{\NoValidTipo{#1}}% + }% + }% opz: custom + }% opz: topfront + }% opz: frontespizio + } +\ProcessOptionsX* + % \end{macrocode} -% The \texttt{graphicx} package is loaded by default; it is required for -% inserting the university logo(s); 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. +% The \texttt{graphicx} package is loaded by default; it is +% required for inserting the university logo(s); 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. +% On the occasion of loading package|etoolbox|, we define +% |\ifempty| that controls if its argument is a void or empty +% string; it is not sufficient to use |\ifdefempty| or |\ifdefvoid|, +% because the argument generally is not a macro; neither it is +% possible to check the string by means of |\ifcsempty| or +% |\ifcsvoid|, because sometimes it is a macro and in any case +% there might be situations when the argument string happens +% to equal an existing control sequence name; therefore first +% we expand the possibly argument into an internal macro, then we test +% such macro for emptiness. % % \begin{macrocode} \RequirePackage{graphicx} \RequirePackage{etoolbox} -\if@xivpt\input{size14.clo}\fi +\RequirePackage{xspace} +\newcommand*\ifempty[1]{\edef\@tempA{#1}% +\ifx\@tempA\@empty\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} % \end{macrocode} % -% The |\textheight| is parametrised to the paper height and adjusted so as to -% contain an integer number of normal text lines. A new dimension is defined -% to hold the actual value of the inner/spine margin. +% The |\textheight| is parametrised to the paper height and +% adjusted so as to contain an integer number of normal text +% lines. A new dimension is defined to hold the actual value +% of the inner/spine margin. % % \begin{macrocode} \newlength\interno -\textheight 0.7\paperheight -\setlength{\textheight}{\dimexpr\textheight*\baselineskip/\baselineskip+\topskip} +\normalsize% necessary to have the correct value for \baselineskip +\textheight \paperwidth +\setlength{\textheight}{% +\dimexpr\textheight*\baselineskip/\baselineskip+\topskip} % \end{macrocode} -% The inner margin is parametrised to the paper width, but a small correction -% is made if the extra size of 14pt is chosen. Also |\footskip| is parametrised -% to the paper height in a slightly different way when the large |14pt| size is -% chosen. +% The inner margin is parametrised to the paper width, but +% a small correction is made if the extra size of 14pt is +% chosen. Also |\footskip| is parametrised to the paper height +% in a slightly different way when the large normal font size +% is not smaller than 14\,pt; the |\if@xivpt| switch is set to true when the value is assigned to the key |corpo|. % \begin{macrocode} -\ifx\f@size\@xivpt - \setlength\interno{\dimexpr\paperwidth/6} - \footskip=1,5\baselineskip +\iflibro + \unless\if@xivpt + \textwidth=\dimexpr0.70711\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/8} + \footskip=1.5\baselineskip + \else + \textwidth=\dimexpr0.79549875\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/9} + \footskip=2\baselineskip + \fi \else - \setlength\interno{\dimexpr\paperwidth/7} - \footskip=2\baselineskip + \unless\if@xivpt + \textwidth=\dimexpr0.70711\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/6} + \footskip=1.5\baselineskip + \else + \textwidth=\dimexpr0.79549875\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/7} + \footskip=2\baselineskip + \fi \fi % \end{macrocode} -% The convenience of holding the spine margin within a dimensional register -% becomes really useful now in order to define the other text-body -% grid-dimensions. -% Without binding correction the inner and outer margin are chosen equal, but -% the grid is moved outwards if the binding correction option is specified. +% The convenience of holding the spine margin within a +% dimensional register becomes really useful now in order +% to define the other text-body-grid dimensions. +% Without binding correction the inner and outer margin +% are chosen equal, but the grid is moved outwards if the +% binding correction option is specified. % \begin{macrocode} -\textwidth=\dimexpr\paperwidth-2\interno\relax -\oddsidemargin=\dimexpr\interno-1in\relax -\evensidemargin=\oddsidemargin -\marginparwidth=\dimexpr\interno-2.5\marginparsep +\iflibro + \interno=\dimexpr\paperwidth-\textwidth\relax + \oddsidemargin=0.414214\interno\relax + \evensidemargin=\dimexpr\paperwidth-\textwidth-\oddsidemargin\relax +\else + \oddsidemargin=\dimexpr(\paperwidth-\textwidth)/2\relax + \evensidemargin=\oddsidemargin +\fi +\marginparwidth=\dimexpr\evensidemargin-2.5\marginparsep +\oddsidemargin=\dimexpr\oddsidemargin-1in\relax +\evensidemargin=\dimexpr\evensidemargin-1in\relax \AtBeginDocument{% \if@binding \PackageInfo{TOPtesi}{Margin width recalculation} @@ -1014,16 +2746,20 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} % \end{macrocode} % -% We now establish the page style. We start by setting to ``empty'' 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 defining |\lapagina| to be equivalent to |\thepage| we can later on -% redefine |\lapagina| the way we like; we actually do so with the option -% \texttt{classica}. +% We now establish the page style. We start by setting to +% ``empty'' 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 defining |\lapagina| to be equivalent to |\thepage| +% we can later on redefine |\lapagina| the way we like; we +% actually do so with the option \texttt{classica}. % \begin{macrocode} \def\lapagina{\thepage} \mark{{}{}} @@ -1033,15 +2769,17 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \def\@oddfoot{\null\hfill {\scshape\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 the -% uppercasing that is done in all the default document classes, and it is -% underlined at a fixed distance from the base line. If the chapter or section -% heading exceed the |\textwidth| a warning is issued so as to invite the user -% to exploit the sectioning commands optional short argument. +% 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 the uppercasing that is done in +% all the default document classes, and it is underlined at +% a fixed distance from the base line. If the chapter or section +% heading exceed the |\textwidth| 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\ps@headings{\let\@mkboth\markboth% autoretitolo \def\@oddfoot{\null\hfill {\scshape\lapagina} \hfill\null} \let\@evenfoot\@oddfoot % @@ -1072,14 +2810,17 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \fi \def\headWarn#1{\PackageWarning{toptesi}{% +*******************************************\MessageBreak THE HEADING IS TOO LONG\MessageBreak Use the optional argument of command \string#1\MessageBreak - See the LaTeX Handbook (1994) on section C.4.1\MessageBreak}} + See the LaTeX Handbook (1994) on section C.4.1\MessageBreak +*******************************************\MessageBreak}} % \end{macrocode} -% It is also necessary to redefine the format of the unnumbered chapter entries -% in the table of contents so as to have page numbers in small caps. +% It is also necessary to redefine the format of the unnumbered +% chapter entries in the table of contents so as to have page +% numbers in small caps. % \begin{macrocode} -\renewcommand*\l@chapter[2]{% +\renewcommand\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ @@ -1096,80 +2837,112 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \endgroup \fi} % \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; but 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. +% The various tables of contents, or figures, or tables +% require some boolean variables to be defined; in facts, +% although the \sigla{ISO} regulations require that every technical +% report contains the list of figures and/or tables, +% in Italy theses rarely contain these lists; but 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. +% The |\frontmatter| and |\mainmatter| commands are defined +% and at the beginning of the document the default situation +% of front matter is established. For the |\backmatter| +% command it suffices to turn out sectional numbering, and +% to allow opening chapters also on even numbered pages. % \begin{macrocode} -\def\frontmatter{\clearpage\ps@plain\pagenumbering{roman}% - \numeriromanitrue\frontmattertrue\@openrightfalse\c@secnumdepth=-2} +\def\frontmatter{\clearpage\ps@plain% + \ifTOPnumerazioneromana\numeriromanitrue\fi + \frontmattertrue\@openrightfalse\c@secnumdepth=-2\relax +} + \def\mainmatter{\if@twoside\@openrighttrue\fi - \numeriromanifalse\frontmatterfalse\c@secnumdepth=2 - \clearpage\ps@headings\pagenumbering{arabic}% - } -\AtBeginDocument{\frontmatter} + \ifTOPnumerazioneromana\numeriromanifalse\fi + \frontmatterfalse\c@secnumdepth=2 + \clearpage\ps@headings + \ifTOPnumerazioneromana\pagenumbering{arabic}\fi +} +\newcommand\backmatter{\cleardoublepage[empty]% +\setcounter{secnumdepth}{-1}\if@twoside\@openrightfalse\fi} + +\AtBeginDocument{% + \ifTOPnumerazioneromana\pagenumbering{roman}\fi\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. +% 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|. This +% refers especially to the |\sommario|/|\summary| and +% |\ringraziamenti|/|\acknowledgements| sections. On the +% contrary even an unnumbered chapter (for example a preface) +% turns on the main matter typesetting style. +% +% 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} % -% Before going further on, we redefine the |\cleardoublepage| command so that -% it uses by default the plain page style for the blank page to be possibly -% inserted if chapters should start on an odd page: but with the -% |\blankpagestyle| command it can be set to any other style, for example -% the |empty| page style. +% Before going further on, we redefine the |\cleardoublepage| +% command so that it uses by default the plain page style +% for the blank page to be possibly inserted if chapters +% should start on an odd page: but with the |\blankpagestyle| +% command it can be set to any other style, for example the +% |empty| page style. % \begin{macrocode} \let\ps@blank\ps@plain \newcommand*\blankpagestyle[1]{% \expandafter\let\expandafter\ps@blank\csname ps@#1\endcsname} -\renewcommand\cleardoublepage[1][blank]{\clearpage\ifodd\value{page}\else - \if@twoside\if@openright -\clearpage\null\thispagestyle{#1}\clearpage\fi\fi\fi} +\renewcommand\cleardoublepage[1][blank]{\clearpage +\unless\ifodd\value{page} + \if@twoside + \if@openright + \null\thispagestyle{#1}\clearpage + \fi\fi\fi} % \end{macrocode} % -% We have to define the front matter sectioning names |\sommario| and -% |\ringraziamenti| so as to remain in the front matter. +% We have to define the front matter sectioning names |\sommario| +% (alias |\summary|) and |\ringraziamenti| (alias +% |\acknowledgements|) so as to remain in the front matter. % \begin{macrocode} \def\sommario{% \iffrontmatter\else\frontmattertrue\fi \chapter*{\summaryname}} +\let\summary\sommario % \def\ringraziamenti{% \iffrontmatter\else\frontmattertrue\fi \chapter*{\acknowledgename}} +\let\acknowledgements\ringraziamenti % \end{macrocode} -% The strings |\summaryname| and |\acknowledgename| are not defined for every -% language option to \texttt{babel}. Default definitions are given below, and -% the user must define new names for localising the package in a language -% different from Italian and English. -% -% We have to modify the |\chapter| and |\part| commands so that as the user -% first issues one of these commands the typesetting style is switched to that -% of the main matter. Actually it is not necessary to redefine the whole -% commands, but just those of the unstarred versions. In facts -% |\chapter| commands to typeset the Summary and the Acknowledgements chapters, -% as defined above, are regularly typeset in the style of the front matter, -% opening on any page (even or odd) and numbered with small caps roman numerals. +% The strings |\summaryname| and |\acknowledgename| are not +% defined for every language option to \texttt{babel}. Default +% definitions are given below, and the user must define new +% names for localising the package in a language different +% from Italian and English. +% +% We have to modify the |\chapter| and |\part| commands so +% that as the user first issues one of these commands the +% typesetting style is switched to that of the main matter. +% Actually it is not necessary to redefine all the commands, +% but just those of the unstarred versions. In facts +% |\chapter| commands to typeset the Summary and the +% Acknowledgements chapters, as defined above, are regularly +% typeset in the front matter style, opening on any page +% (even or odd) and numbered with small caps roman numerals. % \begin{macrocode} \def\@chapter[#1]#2{\iffrontmatter\mainmatter\fi \ifnum \c@secnumdepth >\m@ne @@ -1209,11 +2982,11 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \Huge \bfseries #2\par}% \@endpart} % \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. +% 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 |\chapter| commands. % \begin{macrocode} \renewcommand\tableofcontents{% \chapter*{\contentsname}% @@ -1239,9 +3012,11 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \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. +% +% We need to define |\indici| (alias |\allcontents|) 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 @@ -1260,21 +3035,27 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \listoffigures \let\addvspace=\saveaddvspace} \fi -\ifbool{@twoside}{\clearpage\thispagestyle{empty}\null\clearpage}{}} +\ifbool{@twoside}{\cleardoublepage[empty]}{}} +\let\allcontents\indici % \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 two columns. +% 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 two columns. % \begin{macrocode} \onecolumn % \end{macrocode} % -% Here come some declarations for vertical justification and for avoiding -% an hyphenated word at the bottom of a page +% Here come some declarations for vertical justification +% and for avoiding an hyphenated word at the bottom of a page % \begin{macrocode} \if@twoside - \flushbottom + \unless\ifScuDo + \flushbottom + \else + \raggedbottom + \fi \else \ifx\@xivpt\f@size \raggedbottom @@ -1285,24 +3066,27 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \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 larger or a smaller 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 setting the line spread factor. The experience has -% shown that some 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. +% 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 larger +% or a smaller 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 setting the line spread factor. The experience has +% shown that some 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. +% 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 @@ -1311,20 +3095,25 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \@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 the 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 figures 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. +% Since we are at it we define the floating bodies placing +% parameters; not only the values ``here'', ``page top'' +% and ``page bottom'', that we set as the 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 the parameters set by this +% extension file 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 often than large tables) and these tend to clog the +% figures 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} % @@ -1340,76 +3129,111 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \def\dblfloatpagefraction{0} % \end{macrocode} -% One command that the default definition does not satisfy me very much is -% the |\caption| command; Of course it is possible to configure the caption -% styles by means of the \pack{caption} package and its handy set of option -% styles specified by means of the \textit{key$=$value} syntax; but if this -% package is not used, then it is convenient to redefine the internal -% |\@makecaption| macro that performs the job as explained hereafter. -% The issue 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 last word. If one sets the |\finalhyphendemerits| -% parameter 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 centred text; -% if it exceeds the text width it is set as a justified paragraph whose -% line width equals the established caption width; 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 caption width shrinking 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 our case if the caption does 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 a little shorter than the regular one, but it should -% still 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 length of the stripped last line is longer that one third of the -% caption width, then the vertical box is recomposed by re\-stacking 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. 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 $Nx+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 width that 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 +% One command that the default definition does not satisfy +% me very much is the |\caption| command; of course it is +% possible to configure the caption styles by means of the +% \pack{caption} package and its handy set of option styles +% specified by means of the \textit{key$=$value} syntax; +% but if this package is not used, then it is convenient +% to redefine the internal |\@makecaption| macro that +% performs the job as explained hereafter. Since it does +% not cost much I add also the definition of |\captionof|. +% +% The issue is that I prefer a narrower justified caption +% rather than one where the last line is just a short word +% or the right segment of an hyphenated last word. If one +% sets the |\finalhyphendemerits| parameter to an extremely +% high value, one might succeed in avoiding a hyphenated +% penultimate caption line, 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 label and +% number, is shorter than the text width it is typeset as +% centred text; if it exceeds the text width, it is set as +% a justified paragraph whose line width equals the +% established caption width; 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 caption width +% shrinking must be computed according to the number of +% lines the paragraph occupies. +% +% In order to count the number of lines of the caption +% paragraph, 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 one line less than the true value. +% In our case if the caption does 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. +% Therefore the baseline skip is a little shorter than the +% regular one, but it should still 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 length of the stripped last line is larger that +% one third of the caption width, then the vertical box +% is recomposed by re\-stacking 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. 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 $Nx+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 width that 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} \] -% By the way, if the package \pack{caption} has been loaded in the preamble, -% the specific definition of this bundle is not defined at all; it is -% necessary to delay this definition at |\AtBeginDocument| so we are sure -% that that the package has been or has not been loaded. Of course -% if the \pack{caption} package has not been loaded the |\captionsetup| macro -% is not defined and its use (for example, as a left over of some experiments -% with the \pack{caption} package) would produce an error for this reason we -% define it as a gobbling macro so as to neutralise its presence. +% By the way, if the package \pack{caption} has been loaded +% in the preamble, this specific recalculation must not be +% executed at all; it is necessary to delay this definition +% at |\AtBeginDocument| so we know for sure if that the package +% has been actually loaded. Of course if the \pack{caption} package +% has not been loaded the |\captionsetup| macro is not +% defined and its use (for example, as a leftover of some +% experiments with the \pack{caption} package) would produce +% an error for this reason we define it as a gobbling macro +% so as to neutralise its presence. +% +% At this point it is very simple to add the |\captionof| +% command in order to use a caption also for figures that +% are set outside floating bodies; it might be useful when +% small figures or tables are inserted in unusual places, +% such as a table, a minipage, or similar non floating +% environments. The only thing that suffices to insert is +% the name of the corresponding not used float. % \begin{macrocode} \AtBeginDocument{\@ifpackageloaded{caption}{}{% \providecommand\captionsetup{}\renewcommand\captionsetup[2][]{}% +\providecommand\captionof[1]{\def\@captype{#1}\caption} +\let\originalcaption\caption \newdimen\captionwidth +\newdimen\fullwidth +\if@twocolumn\fullwidth=\columnwidth\else\fullwidth=\textwidth\fi \belowcaptionskip=\abovecaptionskip \long\def\@makecaption#1#2{% \begingroup @@ -1417,9 +3241,9 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \finalhyphendemerits 100000\relax \linespread{0.95}\selectfont \vskip \abovecaptionskip - \captionwidth=\hsize - \advance\captionwidth-3em - \setbox0 \hbox{#1.\quad#2}% + \ifdim\hsize<\fullwidth \captionwidth=\hsize\else + \captionwidth=\dimexpr\hsize-3em\fi + \setbox0 \hbox{\ifblank{#1}{}{#1.\quad}#2}% \ifdim\wd0>\hsize \setbox1 \vbox{\hsize=\captionwidth \unhbox0\par\global\setbox2\lastbox}% @@ -1447,31 +3271,419 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} }}} % \end{macrocode} -% We define the |\goodpagepbreak| command; we have to distinguish if the -% command is issued in vertical mode or in horizontal mode; In the former -% instance we assume it has been issued between two paragraphs and a -% potential page break is required before the second paragraph; while in -% the latter case we assume that a |\vadjust| element should be inserted -% so that a page break takes place after the current line has been typeset. -% the command accepts an optional argument that represents the maximum -% number of lines that should be present on the page in order to issue -% a |\newpage| command; in other words if the number of lines available -% on the page are less or equal to the optional number, then a |\newpage| -% command is issued, otherwise noting is done; The test |\ifhmode| is used -% in order to avoid any action if in math mode. +% +% ^^A SDFIGURE +% Always delayed to the |\begin{document}| statement execution +% we define a new (possibly floated) environment +% |SD| that creates a box where there is the main environment +% contents with its caption to a side, precisely to the side +% close to the outer margin of the page. This implies that +% in one side printing the caption is always on the right, +% while in two side printing the caption is on the right in +% right/odd pages and on the left in left/even pages. +% +% The environment opening statements requires the name of +% a floating object, even if this environment does not float +% anything, but the name is just used to describe its contents; +% it is possible therefore to specify \verb|\begin{SD}{figure}| +% or \verb|\begin{SD}{table}|, or whatever other environment +% name defined with the \pack{float} package functionality; +% this little repetition is for using the correct prefix to +% the caption text even when the environment is used outside +% a formal floating one. In the following paragraphs we speak +% about an ``image'' to mean the ``environment main contents''. +% +% This new special environment box gets actually floated if +% explicitly inserted within a formal floating environment; +% But this special environment box is usable even as +% a standalone environment, or as an object in a fixed position, +% such as when it is set within a mini-page or another similar +% environment; in such situations it is not required to use +% |\captionof|; actually this command is simulated within this +% very \amb{SD} environment +%. +% The actual commands for inserting +% the picture and its caption within the |figure| environment +% have names starting with |SD|, namely |\SDcaption| and +% |\SDimage|. Its syntax is as follows: +%\begin{flushleft}\obeylines +%\Bambiente{SD}\marg{contents kind}\meta{*}\oarg{fraction} +%\cs{SDimage}\marg{image commands} +%\cs{SDcaption}\oarg{lof entry}\marg{caption}\marg{label} +%\Eambiente{SDfigure} +%\end{flushleft} +% The \meta{contents kind} equals one of the formal floating +% environments; this information is used to prefix the +% caption text with the proper name and number. +% +% The meaning of the optional asterisk is that its presence +% allows protrusion of the box into the external margin, +% while its absence forces the box width to equal the text +% width. The optional \meta{fraction} is used to specify the +% fraction of the current object width that is dedicated to the +% caption, the remaining space being dedicated to the image; +% actually both widths are reduced a little bit to allow a space +% between the caption and image boxes. But remember: a small +% value of this \meta{fraction} implies a narrow caption. +% +% Since it is necessary to maintain in separate independent +% areas the picture and the caption, and we need to shuffle +% them when odd or even pages are involved, their handling +% is particular. The |\SDimage| (or |\SDtabular| as an alias +% of |\SDimage|) command syntax is very simple: +%\begin{flushleft} +%\cs{SDimage}\marg{image commands} +%\end{flushleft} +% where the \meta{image commands} may be anything suitable so be +% used within a a floating environment; a picture, a tabular, +% a drawing, a box, any command to place the object in the +% correct position within the dedicated space; any argument +% is substantially valid with the caution that this ``anything'' +% remains local to that particular ``image''. In any case when +% the ``mage'' is a real picture and has to be resized to a +% relative dimension, remember that both the picture and its +% caption are typeset within boxes narrower than the total text +% width or the total environment width; the best way to access +% the width is to use its |\hsize| value. +% +% The |\SDcaption| is very similar to that of |\caption| except +% for a small detail; its syntax is the following: +%\begin{flushleft} +%\cs{SDcaption}\oarg{lof entry}\marg{image}\marg{label} +%\end{flushleft} +% where the parameters have the following meanings. +%\begin{enumerate} +%\item The \oarg{lof entry} optional bracket delimited argument +% contains the usual short caption entry for the list of +% figures. +%\item The \marg{caption} mandatory brace delimited argument +% contains the image caption. +%\item The \marg{label} mandatory brace delimited argument +% contains the string that is usually passed to the |\label| +% command; this string is mandatory in the sense that it +% is the |\SDcaption| command that takes care of issuing +% the |\label|\marg{label} command but, since this \meta{label} +% is used to recover the page number (possibly after a second +% compilation run) in order to establish the page number parity, +% it is necessary that the |\label| command is issued at the +% proper moment and that at the same time the \meta{label} +% string is globally saved into a suitable macro so as to use +% it at the right moment. +%\end{enumerate} +% Remember: the TOPtesi caption setting differs forme the +% standard one and from its redefinitions with other packages +% such as the |caption| one. The TOPtesi particular redefinition +% tries to adjust the caption with in such a way as to avoid an +% unusually short last line in multi line captions. Therefore +% it may be noticed that sometimes some captions are slightly +% less wide than expected. It is not a bug, it may be considered +% a feature. +% +% Here comes its documented code. First some dimension registers, +% counters and boxes must be defined. +% \begin{macrocode} + +\newdimen\SDcaptionwidth +\newdimen\SDfigurewidth +\newdimen\SDlinewidth +\newbox\SDfigbox \setbox\SDfigbox\hbox{}% +\newbox\SDcapbox \setbox\SDcapbox\hbox{}% +\newcounter{SDpage}% +\newcounter{NumberSD} \setcounter{NumberSD}{0} +\providecommand*\theNumberSD{\value{NumberSD}} +\newif\ifNumberFloat \NumberFloattrue +% \end{macrocode} +% +% Then we redefine the |\caption| command in order to add +% the |\caption*| variety that prints just the caption +% without any numbering and any prefix; of course it does +% not increment the suitable float counter nor it adds any +% entry to the list of any float. +% We have to memorise the original definition and add +% the |xparse| extended new definition. Notice that this +% new |\caption| macro accepts the same syntax as the +% original one when no asterisk is specified, while when +% the |\caption*| command is used only the long caption +% argument is used, and the list of floats entry, if +% present, is neglected. This new command may be directly +% used by the final user in those rare circumstances where +% just an explanation is required and the object being +% explained does not require to be cross referenced. +%^^A CONFLITTO CON \CAPTION* DI LONGTABLE? -- CONTROLLARE<<<< ! +% \begin{macrocode} +\NewDocumentCommand\captionSD{s O{} m}{% o: optionale fra graffe + \IfBooleanTF{#1}% + {% + \@makecaption{}{#3}% + }{% + \ifempty{#2}% + {% + \originalcaption{#3}% + }{% + \originalcaption[#2]{#3}% + }% + }% +} +% \end{macrocode} + +% Then the environment |SDbox| is defined by means of the +% facilities of the |xparse| package; this allows the use of +% the ``non delimited'' asterisk argument. It also requires other +% arguments, the first of which is mandatory and specifies the +% contents kind, be it a figure, or a table, or an algorithm, +% or anything else that has been introduced with the facilities +% of the |float| package. +% Among the opening the commands we +% deal with the (optional) asterisk dependent box width. +% \begin{macrocode} +\DeclareDocumentEnvironment{SDbox}{ G{} s O{0.5} }{%------OPENING +\NumberFloattrue +\ifempty{#1}% + {\NumberFloatfalse}% + {\def\@captype{#1}}% +\IfBooleanTF{#2}% + {\SDlinewidth=\dimexpr\textwidth+0.8\marginparwidth}% + {\SDlinewidth=\textwidth}% +% \end{macrocode} +% Then we fix our attention to the correct use of the optional third +% argument, whose descriptor assigns it a default value of |0.5|: +% \begin{macrocode} +\SDcaptionwidth=#3\SDlinewidth +\ifdim\SDcaptionwidth<0.3\SDlinewidth + \SDcaptionwidth=0.3\SDlinewidth +\fi +\ifdim\SDcaptionwidth>0.7\SDlinewidth + \SDcaptionwidth=0.7\SDlinewidth +\fi +\SDfigurewidth=\dimexpr\SDlinewidth-\SDcaptionwidth\relax +\SDcaptionwidth=\dimexpr\SDcaptionwidth-\columnsep\relax +\SDfigurewidth=\dimexpr\SDfigurewidth-\columnsep\relax +% \end{macrocode} +% We add some test to verify if the environment is used within +% the |figure| floating environment, or it is used ad a fixed +% object; we first est if we are within a floating environment; +% if not we define |\@captype| to contain the string `figure'; +% if yes we have to test if we are really within the |figure| +% environment; if not, we locally define |\@captype|; if yes +% we relax. This means that we can insert the |SDfigure| even +% within a |table| environment as sometimes a tabular and a +% drawing should float together (may be because a drawing with +% its own caption represents the tabular entries). +% +% And this is all for the opening commands; all these settings +% shall be used by |\SDimage| and |\SDcaption| described in the +% sequel; here we describe the environment closing commands, +% taking into account that the above commands have saved the +% \meta{label} string into the |\@tempSD| macro and have set +% their image and caption-text respectively into boxes +% |\SDfigbox| and |\SDcapbox|. +% +% The code tests if the saved \meta{label} string is empty; +% this should never take place, but it is better to perform +% such task' If the string is empty, a fall back value equal +% to the page number of the page that is still open at +% processing time is used; may be a warning message would +% be helpful, but since this empty string should never be +% empty, it appears as a super luxury feature, that we can +% do without. +% But if the string ss not empty, we test if the saved +% |\label| data, possibly read from the |.aux| file on a second +% typesetting run, gas the normal \LaTeX\ structure or the +% |hyperref| modified one; the former contains two braced +% arguments, while the latter contains five such arguments; +% in both cases the interesting page number is the second +% argument. The existence of a |ver@hyperref.sty| macro +% allows to know if the |hyperref| package has been invoked +% in the preamble, therefore upon testing this macro we +% know if we should use |\@secondoffive| or |\@secondoftwo| +% to read the real page number of the current |SDfigure| +% environment. Before reading the actual value of the +% |.aux| file |\label| saved data, we must access the +% string that contains these data but we have to expand +% several times the saved macros until we have the real +% string in |\@temD|. +% \begin{macrocode} +}{%---------------------------------------------------CLOSING + {\ifcsdef{r@\@tempSD}% + {% + \edef\@tempD{r@\@tempSD}% + \edef\@tempD{\expandafter\csuse\expandafter{\@tempD}}% + \edef\@tempD{\@tempD}% + \ifcsdef{ver@hyperref.sty}% + {% + \edef\@tempD{\noexpand\@secondoffive\@tempD}% + }% + {% + \edef\@tempD{\noexpand\@secondoftwo\@tempD}% + }% + \edef\@tempD{\@tempD}% + \setcounter{SDpage}{\@tempD}% + }% + {% + \setcounter{SDpage}{\thepage}% + }% + }% +% \end{macrocode} +% At this point we have all the necessary pieces of information +% and we can shuffle the caption and image boxes depending +% on one or two side typesetting, and on the parity of the +% correct page number. +% \begin{macrocode} +\ifbool{@twoside}% + {% + \ifnumodd{\value{SDpage}}% + {% + \makebox[\textwidth][l]{\makebox[\SDlinewidth]{% + \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}% + }{% + \makebox[\textwidth][r]{\makebox[\SDlinewidth]{% + \usebox{\SDcapbox}\hfill\usebox{\SDfigbox}}}% + }% + }{% + \makebox[\textwidth][l]{\makebox[\SDlinewidth]{% + \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}% + } +} +% \end{macrocode} +% +% The |\SDcaption| code appears to be strangely complicated; +% but it actually performs several actions; the first +% (optional) argument is intended to collect the ``short +% caption'' to be used, if specified, for the list of floats +% entry; if not specified ,as usual, the ``long caption'' +% second argument is used for this entry. The (optional) +% brace delimited argument, on the contrary, is the label +% string that usually is passed as the argument of the +% |\label| command. If specified it is this |\SDcaption| +% macro duty to enter this command at the proper moment; +% the caption prefix is established by the value of the +% first (optional) argument of the |SDbox| environment, +% or by the floating environment where the |SDbox| one is +% nested. On the opposite if this macro |\SDcaption| argument +% is not specified, the caption is not numbered nor prefixed, +% and cannot be cross referenced; there are circumstances +% when this situation is very useful, but it is up to the +% user to decide when it is useful for his/her needs. +% interpretation. +% +% In this macro definition the boolean switch |NumberSD| +% has been already set by the opening statement commands +% of the |SDbox| environment; it is true only if the first +% environment (optional) argument has been specified or +% the environment is nested within a floating environment. +% Therefore if this boolean is false the unnumbered caption +% gets typeset, otherwise a second boolean is tested, the +% contents of the third (optional) argument of this macro +% |\SDcaption|. If it is specified, the numbered and prefixed +% caption gets typeset and this argument is used to label +% this caption; otherwise and unnumbered and not prefixed +% caption gets typeset with and internally generated label +% that allows to fetch the final page number so as to decide +% if the caption has to be typeset to the right or to the +% left side of the object depending on the page number parity. +% \begin{macrocode} +\NewDocumentCommand\SDcaption{ O{} m G{} }{% + \notbool{NumberFloat}% + {% + \stepcounter{NumberSD}% + \edef\@tempSD{SD\the\c@NumberSD}% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD*{#2}\relax + \expandafter\label\expandafter{\@tempSD}% + }% + \end{lrbox}% + }% + {% + \ifempty{#3}% + {% + \NumberFloatfalse + \stepcounter{NumberSD}% + \edef\@tempSD{SD\the\c@NumberSD}% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD*{#2}\relax + \expandafter\label\expandafter{\@tempSD}% + }% + \end{lrbox}% + }{% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD[#1]{#2}\label{#3}\gdef\@tempSD{#3}% + }% + \end{lrbox}% + }% + }% +} +% \end{macrocode} +% +% We call the object to be shown within the |SDbox| with the +% name ``image'' wich can be anything that can be enclosed +% in a parbox or a minipage; it can be an actual picture +% imported with an |includegraphics| command, it can be a +% drawing or a diagram created with the |picture|, or |tikz|, +% or |pgfplots|, or |pstricks| commands; it can be a table, +% an algorithm, an example, a theorem; anything that can be +% typeset within a box. With this name in mind we create +% the |SDimage| command to insert the object into our |SDbox|. +% A |\SDtabular| command is an alias to |\SDimage|; the user +% may define other such aliases for inserting other objects +% that suit his/her preferences and the logical contents. +% +% Also the |\SDimage| command is not so simple; in order to +% have both caption and image boxes aligned at the top, we +% must be sure that such boxes have their reference points +% at their top left corner; due to the heterogeneity of such +% ``images'', we need to lower the image box to have the +% upper left corner raised with respect to the base line the +% amount of a capital `M' in the current font. +% \begin{macrocode} +\newcommand\SDimage[1]{% + \setbox0\hbox{M}\dimen0\ht0\relax + \begin{lrbox}{\SDfigbox}\parbox[t]{\SDfigurewidth}{#1}\end{lrbox}% + \dimen2\dimexpr\ht\SDfigbox+\dimen0\relax + \setbox\SDfigbox\hbox{\raisebox{-\dimen2}{\box\SDfigbox}}% +} +\let\SDtabular\SDimage +% \end{macrocode} +% We would not suggest to use a floating or a fixed |SDbox| +% environment for all figures, tables or what else; its +% use simply depends on the box contents; this environment +% may be useful when a normal setting would cause a lot of white +% space around the displayed material. +% +% We define the |\goodpagepbreak| command; we have to +% distinguish if the command is issued in vertical or in +% horizontal mode; in the former instance we assume it +% has been issued between two paragraphs and a +% potential page break is required before the second +% paragraph; while in the latter case we assume that +% a |\vadjust| element should be inserted so that a page +% break takes place after the current line has been typeset. +% The command accepts an optional argument that represents +% the maximum number of lines that should be present on +% the page in order to issue a |\newpage| command; in other +% words if the number of lines available on the page are +% less or equal to the optional number, then a |\newpage| +% command is issued, otherwise noting is done; the test +% |\ifhmode| is used in order to avoid any action if in math mode. % \begin{macrocode} \newcommand\goodpagebreak[1][4]{\ifvmode \unless\ifdim\dimexpr\pagegoal-\pagetotal>#1\baselineskip\newpage\fi \else\ifhmode\vadjust{\newpage}\fi\fi} % \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 an unnumbered chapter or +% The (deprecated) option \opz{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 an unnumbered chapter or % section. % \begin{macrocode} \def\redef@bibitem{\def\@bibitem##1{\item\if@filesw @@ -1503,8 +3715,9 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \let\endthebibliography=\endlist % \end{macrocode} % -% For what regards footnotes nothing is changed except resetting the -% line spread to one, in case the current value is different. +% For what regards footnotes nothing is changed except +% resetting the line spread to one, in case the current +% value is different. % \begin {macrocode} \long\def\@footnotetext#1{\insert\footins{\linespread{1}\footnotesize \interlinepenalty\interfootnotelinepenalty @@ -1515,22 +3728,27 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \@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 such DOS version is not being used, but some -% old time files might still be 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. Actually the -% code that defines the mathematical active comma is a new addition that lets the comma -% perform correctly in its double function (decimal separator and punctuation mark). The -% only point where this code fails is when a list of numbers is typeset: when a numeric -% list must be typeset, such as, for example, $\forall i=0,\,1,\,2,\,3, n$, in the -% source code a space \emph{must} be inserted after every punctuating comma while no -% space follows a decimal comma: for example \verb*+$\forall i=0, 1, 2, 3,n$+. -% The space before the |n| is not necessary (but it wouldn't hurt) because |n| is not -% recognised as a digit, therefore the ``intelligent'' comma inserts the necessary -% space by itself. +% 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 such DOS version is not being used, +% but some old time files might still be 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. Actually the code +% that defines the mathematical active comma is a new +% addition that lets the comma perform correctly in its +% double function (decimal separator and punctuation mark). +% The only point where this code fails is when a list of +% numbers is typeset: when a numeric list must be typeset, +% such as, for example, $\forall i=0,\,1,\,2,\,3, n$, in the +% source code a space \emph{must} be inserted after every +% punctuating comma while no space follows a decimal comma: +% for example \verb*+$\forall i=0, 1, 2, 3,n$+. The space +% before the |n| is not necessary (but it wouldn't hurt) +% because |n| is not recognised as a digit, therefore the +% ``intelligent'' comma inserts the necessary space by itself. % % \begin{macrocode} \DeclareMathSymbol{\virgola}{\mathpunct}{letters}{"3B} @@ -1546,31 +3764,38 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \topmargin 0pt % \end{macrocode} % -% The TOPtesi bundle contains two new chapter like sections activated with -% the commands |\sommario| and |\ringraziamenti| respectively. The infix strings -% that start these sections depend on the used language. -% -% Because of this it is necessary to extend the list of infix string definitions -% provided the |\captions|$\langle$\texttt{language}$\rangle$ macros defined by -% the language description files of \texttt{babel} or of \texttt{polyglossia}; -% 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 value is -% restored upon exiting the group provides the necessary protection against an -% involuntary reassignment to this register. At the same time if a specific -% language option was not specified, a warning message is issued, but compilation -% 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|. +% The TOPtesi bundle contains two new chapter like sections +% activated with the commands |\sommario| (alias |\summary|) +% and |\ringraziamenti| (alias |\acknowledgements|) respectively. +% The infix strings that start these sections depend on the +% used language. +% +% Because of this it is necessary to extend the list of infix +% string definitions provided by the |\captions|\meta{language} +% macros defined by the \texttt{babel} or \texttt{polyglossia} +% language description files; 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 sectioning macro is globally +% redefined. The token register `0' is normally for scratch +% usage, but the fact that its value is restored upon exiting +% the group provides the necessary protection against an +% involuntary reassignment to this register. At the same +% time if a specific language option was not specified, a +% warning message is issued, but compilation 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} \providecommand*\summaryname{} \providecommand*\acknowledgename{} \newcommand*\ExtendCaptions[3]{{% \@ifundefined{captions#1}{% -\PackageWarning{toptesi}{Language option #1 not specified\MessageBreak +\PackageWarning{toptesi}{% +Language option #1 not specified\MessageBreak Skipping any redefinition\MessageBreak}% }{% \expandafter\let\expandafter\@tempA\csname captions#1\endcsname @@ -1580,18 +3805,22 @@ Skipping any redefinition\MessageBreak}% \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: +% 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: +% In facts the \texttt{babel} and \texttt{polyglossia} +% 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} @@ -1600,43 +3829,53 @@ Skipping any redefinition\MessageBreak}% % \selectlanguahe{spanish} % ... % \end{verbatim} -% and the rest of the thesis will be typeset correctly in Spanish. Remember -% that Italian is the main language and nothing is necessary to set 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. +% and the rest of the thesis will be typeset correctly in +% Spanish. Remember that Italian is the main language and +% nothing is necessary to set up the Italian defaults. +% If English is desired, then after |\begin{document}| it +% 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} or +% \texttt{polyglossia} command; after the beginning of the +% document it is then possible to specify |\inglese| or +% |\english|, and the default language is changed to 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} and \texttt{polyglossia} 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 main 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{enumerate} -% \item specify |\english| \emph{after} the |\begin{document}| statement, -% if English is supposed to be the main 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; -% \item if XeLaTeX is being used for typesetting it suffices to specify -% in the preamble the name of the other language to be used, by means -% of the |setotherlanguage| command, and to define the summary and -% acknowledgments names in the same way as with pdf\/\LaTeX; the same -% must be done at the beginning of the document to declare the new -% language a the default one. -% \end{enumerate} +% 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 main +% 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}[noitemsep] +% \item +% specify |\english| \emph{after} the |\begin{document}| +% statement, if English is supposed to be the main 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; +% \item +% if XeLaTeX\ or LuaLaTeX\ is being used for typesetting, it +% suffices to specify in the preamble the name of the other +% language to be used, by means of the |setotherlanguage| +% command, and to define the summary and acknowledgments names +% in the same way as with pdf\/\LaTeX; the same must be done +% at the beginning of the document to declare the new language +% as the default one. +% \end{itemize} % \begin{macrocode} \AtBeginDocument{% \italiano @@ -1644,35 +3883,43 @@ Skipping any redefinition\MessageBreak}% } % \end{macrocode} % -% At last the subsidiary and independent packages \texttt{topcoman} and -% \texttt{topfront} are requested for input; the former is loaded only when -% the |documentclass| option |noTOPfront| has NOT been declared. -% For using XeLaTeX as the typesetting engine it's necessary to load such -% packages at the ``begin document'' step, so that all the other settings, -% especially fonts, are already established. Even if the past experience -% has shown that loading these packages does not need to be deferred al the -% ``begin document'' level with pdf\/\LaTeX, it does not hurt to delay their -% loading operation with both engines. This delayed loading implies that the -% commands defined in |topfront| and in |topcoman| cannot be used in the -% preamble. +% At last the subsidiary and independent packages +% \texttt{topcoman} and \texttt{topfront} are requested +% for input; the latter is loaded only when the +% |documentclass| option |noTOPfront| has NOT been declared. +% This action, therefore has to be delayed till the ``begin +% document'' step, in order to be sure that other packages +% have possibly been loaded to typeset the title page, and/or +% other packages have been loaded to properly use the units +% of measure. This delayed loading implies that the +% commands defined in |topfront| and in |topcomand| cannot +% be used in the preamble. Notice that also the \textsl{scudo} +% option implies that the title page is typeset with its +% special commands and environments, therefore it sets the +% suitable switches so as to avoid loading the |topfront| +% extension file. This applies also to the other modules particular to special kinds of thesis. % \begin{macrocode} \AtBeginDocument{% - \unless\ifT@Pfrontespizio + \unless\ifT@Pfrontespizio\ifTOPfront \RequirePackage{topfront} - \fi + \fi\fi \RequirePackage{topcoman}% } % \end{macrocode} % -% Last but not least, here come the specifications for the PDF/A-1b format. -% First of all the patches to the macros |\not| and |\mapstochar| that produce -% problems with the format, because they have a declared width of 0\,pt; this -% is no problem for \texttt{latex} or \texttt{pdflatex}, but it is a problem -% for the PDF/A format. -% Therefore these commands must be replaced by equivalent ones that do not use -% zero-width glyphs. For |\not|, another slash can be used, but in order to -% have it the right size in all math typesetting modes it is necessary to have -% a different command for every mode; this is achieved with the |\mathchoice| +% Last but not least, here comes the specification set for the +% \sigla{PDF/A}-1b format. +% +% First of all the patches to the macros |\not| and +% |\mapstochar| that produce problems with that format, +% because they have a declared width of 0\,pt; this +% is no problem for \texttt{pdflatex}, but it is a problem +% for the \sigla{PDF/A} format. Therefore these commands must be +% replaced by equivalent ones that do not use zero-width +% glyphs. For |\not|, another slash can be used, but in +% order to have it the right size in all math typesetting +% modes it is necessary to have a different command for +% every mode; this is achieved with the |\mathchoice| % primitive as such: % \begin{macrocode} \ifPDFTeX @@ -1683,13 +3930,15 @@ Skipping any redefinition\MessageBreak}% {\rlap{$\scriptscriptstyle\mkern2.5mu\mathnormal{/}$}}% }} % \end{macrocode} -% Actually the zero-width property of the slash must be simulated with a -% zero-width box but within this box it is necessary to specify the typesetting -% style of the math mode material. -% -% A similar trick is used to patch the |\mapstochar| command but no other glyph -% was found suitable for substituting the original one; therefore we had to make -% it up with the |picture| environment: +% Actually the zero-width property of the slash must be +% simulated with a zero-width box but within this box it +% is necessary to specify the typesetting style of the math +% mode material. +% +% A similar trick is used to patch the |\mapstochar| command +% but no other glyph was found suitable for substituting +% the original one; therefore we had to make it up with the +% |picture| environment: % \begin{macrocode} \renewcommand\mapstochar{\mathrel{\mathchoice {\displaystyle\unitlength=0.0555\fontdimen6\font @@ -1706,65 +3955,75 @@ Skipping any redefinition\MessageBreak}% \line(0,1){4}}\endpicture} }}\fi % \end{macrocode} -% The above patches are introduced irrespective of using \texttt{pdflatex} for -% producing a PDF/A compliant file; one might need to produce a traditional PDF -% file, or even a DVI file, to be converted to the PS format, in order to -% possibly further transform it to PDF/A by means of \texttt{ghostscript} (see -% the details in the \texttt{ps2pdf.html} file belonging to the -% \texttt{ghostscript} documentationx). -% The patches are avoided if XeLaTeX is being used with the UNICODE math -% definitions. -% -% \subsection{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 signs philologists use, that sometimes -% I believe that the philological mark-up requires typesetting environments -% similar to the mathematical ones: in facts the material to be typeset -% does not form linear sequences, as in plain text, but bi-dimensional -% structures as in mathematics. -% -% 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 localising 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. -% -% The singular and plural masculine and feminine strings for ``candidate' -%' are redefined in the |topfront| module. For other languages the configuration file comes in handy. -% -% Since theses in humanities may end up to occupy several volumes (classically -% ``tomo'' in Italian means ``volume'', although the latter word 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 printed 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 localisation allows to change the infix string that is going to be -% printed in the title page. But when several tomes are involved, instead -% of using the |\frontespizio| macro or |frontespizio| environment, use -% the |\tomo| macro, that provides to stepping up the volume counter before +% The above patches are introduced irrespective of using +% \texttt{pdflatex} for producing a \sigla{PDF/A} compliant file; +% one might need to produce a traditional \sigla{PDF} file, or even +% a DVI file, to be converted to the \sigla{PDF} format, in order to +% possibly further transform it into a \sigla{PDF/A} one by means +% of other useful packages, such as \pack{pdfpages}. +% +% \subsection{The \opz{classica} option} +% As mentioned above, the \opz{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 signs +% philologists use, that sometimes I believe that the +% philological mark-up requires typesetting environments +% similar to the mathematical ones: in facts the material +% to be typeset does not form linear sequences, as in plain +% text, but bi-dimensional structures as in mathematics. +% +% 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 localising +% this bundle makes this point less stringent compared to +% previous versions, but there are other layout fine points +% that cannot be solved with a simple substitution of infix +% strings. +% +% The singular and plural masculine and feminine strings +% for ``candidate'' are redefined in the |topfront| module. +% For other languages the configuration file is very handy. +% +% Since theses in humanities may end up to occupy several +% volumes\footnote{Classically ``tomo'' in Italian means ``volume'', +% although the latter word 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 printed 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 localisation allows to change the infix string that +% is going to be printed in the title page. But when several +% tomes are involved, instead of using the |\frontespizio| +% macro or |frontespizio| environment, use the |\tomo| macro. +% There is no equivalent to the |frontespizio| environment. +% |\tomo| provides to stepping up the volume counter before % actually printing the new tome title page. % \begin{macrocode} \newcounter{tomo} \newcommand*{\tomo}{\clearpage\stepcounter{tomo}\boolfalse{topTPTlogos}% \fr@ntespizio} % \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. +% 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 ``thepage'') +% 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 @@ -1778,36 +4037,48 @@ Skipping any redefinition\MessageBreak}% \fi } % \end{macrocode} -% But we actually have to redefine the page style for the new headings because -% the \texttt{classica} option 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 and 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 if 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 -% use 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 with ragged margins, and -% eventually 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! +% But we actually have to redefine the page style for the new +% headings because the \texttt{classica} option changes +% completely the left and the right headers depending on the +% option \opz{autoretitolo}; in this case the left header +% contains the candidate's name and 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 if this option is in force. In case +% of two-side printing where the left head and the right +% heads 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 suggest the user to +% use 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 be 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 \opz{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 with +% ragged margins, and eventually 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! +% Remember also that |\@@author| contains the author's name +% without the ID number if any. % \begin{macrocode} \if@utoretitolo \if@twoside @@ -1818,7 +4089,7 @@ Skipping any redefinition\MessageBreak}% \def\@evenhead{% \setbox\@intesta\hbox{\ifPDFTeX\latintext\fi \footnotesize\strut\textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}% + \@@author\ifcsvoid{@secondauthor}{\ et al.}: \@stitle}% }% \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi \underline{\makebox[\textwidth]{\box\@intesta}}}% @@ -1833,20 +4104,24 @@ Skipping any redefinition\MessageBreak}% \renewcommand*{\ps@headings}{\let\@mkboth\markboth \def\@oddfoot{\null \hfill \textbf{\lapagina}\hfill \null}% \let\@evenfoot\empty\let\@evenhead\empty - \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi\footnotesize - \textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}}% - \setbox\tw@\hbox{\ifPDFTeX\latintext\fi\footnotesize\textsl{\rightmark}}% + \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle}}% + \setbox\tw@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsl{\rightmark}}% \dimen@=\dimexpr2em + \wd\z@ + \wd\tw@\relax \ifdim\dimen@<\textwidth \relax \else - \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@\raggedright + \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedright \ifPDFTeX\latintext\fi\footnotesize\textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle }}% - \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@\raggedleft - \ifPDFTeX\latintext\fi\footnotesize\textsl{\rightmark}}% - \fi + \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedleft + \ifPDFTeX\latintext\fi\footnotesize + \textsl{\rightmark}}% + \fi \setbox\@intesta\vbox to\z@{% \vss\hbox to\textwidth{\strut\box\z@\hfill\box\tw@}}% \underline{\box\@intesta}}}% @@ -1855,21 +4130,28 @@ Skipping any redefinition\MessageBreak}% \fi % \end{macrocode} % -% The footnote rule separator is also longer that the default one. Dealing -% with notes the footnote separator is also changed 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 specialised extension -% modules, such as, for example, the |eledmac| Package, 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 mathematical -% 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 it is used as an ordinary symbol through |\mathord|. -% 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. +% The footnote rule separator is also longer than the default +% one. Dealing with notes the footnote separator is also +% changed 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 +% specialised extension modules, such as, for example, +% the |eledmac| or |reledmac| packages, 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 mathematical one 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 it is used as an ordinary symbol +% through |\mathord|. +% 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@ @@ -1883,27 +4165,38 @@ Skipping any redefinition\MessageBreak}% \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. These three -% commands, though, are available irrespective of the \texttt{classica} option, -% so that they can be used also for theses outside the humanities fields. +% 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| (alias |\emptypage|) is much shorter to +% type in than its expansion. +% +% The environments \texttt{dedica} (alias \texttt{dedication}) +% for the dedication, and \texttt{citazioni} (alias +% \texttt{wittysentences}) 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}/\texttt{dedication} +% 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 text. +% The \texttt{citazioni}/\texttt{wittysentences} +% environment typesets its material with the default font +% shape series and size, so the author has to specify any +% change s/he desires. These three commands, though, are +% available irrespective of the \texttt{classica} option, +% so that they can be used also for theses outside the +% field of humanities. % % \begin{macrocode} \newcommand*\paginavuota{\clearpage\thispagestyle{empty}\null\clearpage} +\let\emptypage\paginavuota % \newenvironment{dedica}{\clearpage \if@twoside @@ -1917,6 +4210,7 @@ Skipping any redefinition\MessageBreak}% }{% \endlist\clearpage } +\let\dedication\dedica \let\enddedication\enddedica % \newenvironment{citazioni}{% \clearpage\thispagestyle{empty} @@ -1927,56 +4221,82 @@ Skipping any redefinition\MessageBreak}% }{% \endlist\clearpage } +\let\wittysentences\citazioni \let\endwittysentences\endcitazioni % \end{macrocode} % \iffalse %</topsty> % \fi % -% \subsection{The \texttt{topfront.sty} code} -% This file may input by \texttt{toptesi}, version 5.x provided that the -% |noTOPfront| is not specified among the |\documentclass| options, but -% it can be used as an independent extension module with (hopefully) any -% document class. -% -% It contains all the definition for the composition of just the title page -% along the style requirements of \texttt{toptesi}, version 5.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. Among other things it can typeset +% \subsection{The \texttt{topfront.sty} code}\label{sec:topfront} +% This file is input by \texttt{toptesi}, version 6 and higher +% provided that no title page or thesis type options have been +% specified by the user; it can also be used as an independent +% extension module with (hopefully) any document class. +% +% It contains all the definition for the composition of just +% the title page od ``standard'' theses along the style +% requirements of \texttt{toptesi}, version 5.x or higher. It is not +% loaded by |toptesi| even when typesetting the title page +% for theses made according the requirements of the ScuDo +% doctoral school; with the \textsf{scudo} option to +% |toptesi| loading of |topfront| is inhibited and in its +% place another extension module, |toptesi-scudo|, is loaded. +% The same holds true with the other special thesis modules. +% This latter files are described in a subsequent sections. +% +% It |topfront| 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 the title page. Among other things it can typeset % also the copyright page on the verso of the title page if the % |\retrofrontespizio| macro argument is not empty. % -% This file specifies that it requires the \LaTeXe\ format and identifies -% itself. Since this module package might be used to extend the performances -% of other classes, this package does not specify any input encoding, -% on the assumptions that the calling class already provided this information. +% This file specifies that it requires the \LaTeXe\ format +% and identifies itself. Since this module might be +% used to extend the performances of other classes, this +% file does not specify any input encoding, on the assumption +% that the calling class already provided this information. % \iffalse %<*topfrn> % \fi % -% In oder to use |topfront| as a stand-alone extension package with other -% classes it is necessary to verify if the |classica| option corresponds -% to a valid setting of |\ifclassica|; since this test is defined in the -% |toptesi| class, here we need to verify its existence and, in case, to -% set its value to |false|. This implies two points: we need a powerful -% macro package to test a ``switch'', and when this |topfront| module is -% used as a stand-alone one, the settings of the |classica| options are -% not available. This requires to define switches and counters, besides -% options for this package, even if they may be specified to the |toptesi| -% class; of course when |topfront| is used as a standalone package, the -% class might not be |toptesi| therefore a complete set up even with the -% |classica| option must be set again. +% In oder to use |topfront| as a stand-alone extension package +% with other classes it is necessary to verify if the \opz{classica} +% option corresponds to a valid setting of |\ifclassica|; +% since this test is defined in the |toptesi| class, +% here we need to verify its existence and, in case, to set +% its value to |false|. This implies two points: we need a +% powerful macro package to test a ``switch'', and, when this +% |topfront| module is used as a stand-alone one, the settings +% of the \opz{classica} options are not available. This requires +% to define switches and counters, besides options for this +% package, even if they may be specified to the |toptesi| +% class; of course when |topfront| is used as a standalone +% package, the class might not be |toptesi| therefore a complete +% set up even with the \opz{classica} option must be set again. % \begin{macrocode} \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} -\ifcsundef{ifclassica}{% -\newif\ifclassica \classicafalse -\newif\if@utoretitolo \@utoretitolofalse -\newif\if@ldstyle \@ldstylefalse -\newif\if@xivpt \@xivptfalse -\newif\if@binding \@bindingfalse -}{} -\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue}{} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifScuDo}{\newif\ifScuDo \ScuDofalse}{} +\ifcsundef{ifmonografia}{\newif\ifmonografia\monografiafalse}{} +\ifcsundef{iftriennale}{\newif\iftriennale\triennalefalse}{} +\ifcsundef{ifmagistrale}{\newif\ifmagistrale\magistralefalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifsecondaria}{\newif\ifsecondaria\secondariafalse}{} +\ifcsundef{ifplurale}{\newif\ifplurale\pluralefalse}{} +%\ifcsundef{iffrontspizio}{\newif\iffrontespizio\frontespiziofalse}{} +%\ifcsundef{}{\newif false}{} + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue +\newif\ifevenboxes \evenboxesfalse}{} \ifcsundef{c@tomo}{\newcounter{tomo}}{} +\DeclareOption{evenboxes}{\evenboxestrue} \DeclareOption{cucitura}{\@bindingtrue} \DeclareOption{14pt}{\@xivpttrue} \DeclareOption{classica}{\classicatrue} @@ -1984,23 +4304,27 @@ Skipping any redefinition\MessageBreak}% \DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} \ProcessOptions*\relax -\if@xivpt\@ifl@aded{clo}{size14}{}{\input{size14.clo}}\fi % \end{macrocode} % -% For the title page we need a special style, in order to put some information -% in the header and some other in the footer, without actually changing the -% page layout, except for centring the grid horizontally in the page. -% The headers, due to a specific request of Politecnico di Torino, is to have -% the university logo(s) in the header; other universities maintain their -% logo(s) in the lower part of the page as it was done all the time in the -% past. We need some device to switch positions to the logos, without -% actually changing the page layout. Since the logo(s) are sort of large, -% the header must smash the header contents, so as to avoid any modification -% of the position and size of the other parts of the page. The |TPT@logobox| -% box is being defined later on and the |\logosede| command takes care of -% filling it up. Besides these devices, the |\frontepsizio| command and the -% |frontespizio| environments (with or without asterisk) produce either -% layout depending on the state of the boolean |topTPTlogos|. +% For the title page we need a special style, in order to +% put some information in the header and some other in the +% footer, without actually changing the page layout, except +% for horizontally centring the grid in the page. +% The headers, due to a specific request of Politecnico di +% Torino, is to have the university logo(s) in the header; +% other universities maintain their logo(s) in the lower part +% of the page as it was done all the time in the past. +% We need some device to switch position to the logos, +% without actually changing the page layout. Since the +% logo(s) are sort of large, the header must smash the +% header contents, so as to avoid any modification of the +% position and size of the other parts of the page. +% The |\TPT@logobox| box shall be defined later on and +% the |\logosede| command takes care of filling it up. +% Besides these devices, the |\frontespizio| command and +% the |frontespizio| environments (with or without asterisk) +% produce either layout depending on the state of the boolean +% |topTPTlogos|. % \begin{macrocode} \def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} \def\ps@titlepage{\let\@mkboth\@gobbletwo @@ -2008,13 +4332,15 @@ Skipping any redefinition\MessageBreak}% \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% \let\@evenfoot\@oddfoot \def\@oddhead{% - \vbox to\headheight{\vss\iftopTPTlogos + \vbox to\headheight{\vss + \iftopTPTlogos \hbox to\textwidth{% \headstrut\hfil \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% - }\fi - \ifcsvoid{@ateneo}{}{\vskip\smallskipamount - \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + } + \fi\par + \ifcsvoid{@ateneo}{}{% + \hbox to\textwidth{\hss\LARGE\rule[-1ex]{0pt}{3.3ex}\MakeUppercase{\@ateneo}\hss}} \vss }% }% @@ -2023,9 +4349,10 @@ Skipping any redefinition\MessageBreak}% } % \end{macrocode} % -% Similarly a different title page style for typesetting the logos in the -% lower half of the page is defined; since it is the only style usable -% with the |classica| option, we call it the |classica| page style: +% Similarly a different title page style for typesetting +% the logos in the lower half of the page is defined; since +% it is the only style usable with the \opz{classica} option, we +% call it the |classica| page style: % \begin{macrocode} \def\ps@classica{\let\@mkboth\markboth \def\@oddhead{\vbox{% @@ -2042,7 +4369,8 @@ Skipping any redefinition\MessageBreak}% \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss \ifclassica \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% - \vrule\@height-2.6\p@\@depth3\p@\@width\dimexpr\textwidth/3}\hfil}% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% \fi \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% }% @@ -2051,30 +4379,36 @@ Skipping any redefinition\MessageBreak}% }% % \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. -% All 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 appropriate infix string is typeset in the title page: +% 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 as masculine plural names, while when there is just +% one autho0.79549875r or the authors are of the same gender the +% adjectives or qualifications are set according to number +% and gender. All this is done by setting or resetting the +% truth value associated to the boolean variable +% \texttt{femminile}. The boolean variable \texttt{dottorato} +% controls the Ph.D thesis format (except for the ScuDo +% school), while the other variable \texttt{triennale} +% controls the formatting of the bachelor's degree report. +% All other theses are treated as master theses, +% and in all cases the appropriate infix string is typeset +% in the title page: % \begin{macrocode} \newif\iffemminile \newif\ifdottorato \dottoratofalse -\newif\iflaureatriennale \laureatriennalefalse +\newif\iftriennale \triennalefalse % \end{macrocode} % -% The infix word for the |classica| option are redefined. +% The infix words for the |classica| option are redefined. % \begin{macrocode} \ifTOPfront \ifclassica @@ -2085,54 +4419,61 @@ Skipping any redefinition\MessageBreak}% \fi\fi % \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 might 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 page headings; if the thesis full title -% is too long it produces overfull headlines with ugly results; a short title -% may solve the inconvenience. The |\sottotitolo| command is another way -% to maintain a short title; all the supplementary title information may be +% 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 might +% 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 \opz{autoretitolo} +% the thesis title is written together with the author's +% name in the even page headings; if the thesis full title +% is too long it produces overfull headlines with ugly +% results; a short title may solve the inconvenience. +% The |\sottotitolo| command is another way to maintain +% a short title; all the supplementary title information may be % typeset in the subtitle. % \begin{macrocode} -\def\monografia#1{\global\laureatriennaletrue +\def\monografia#1{\global\triennaletrue \global\dottoratofalse \global\def\titolo##1{\PackageWarning{topfront}% {Il titolo e' gia' stato impostato con il comando \string\monografia}}% \gdef\@titolo{#1}} + \let\@stitle\empty + \newcommand*{\titolo}[2][]{% -\ifbool{laureatriennale}{% +\ifbool{triennale}{% \PackageWarning{topfront}{Il titolo deve essere impostato con il comando \string\monografia} -} -{\def\@tempA{#1}\ifdefempty{\@tempA}% - {\gdef\@stitle{#2}} - {\gdef\@stitle{#1}}% +}{% +\def\@tempA{#1}\ifdefempty{\@tempA}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% \gdef\@titolo{#2}% -}} + }% +} \def\sottotitolo#1{\gdef\@subtitle{#1}} % \end{macrocode} % -% The |\materia| or its alias |\Materia| are used to specify the -% subject of the thesis; as a silly example a set of commands that reflects -% this subtle difference might be the following: +% The |\materia| or its alias |\Materia| are used to +% specify the subject of the thesis; as a silly example +% a set of commands that reflects this subtle difference +% might be the following: % \begin{verbatim} % \materia{Applied Tetratricotomy} -% \titolo{The tetratricotomy of blond hair} +% \titolo{Tetratricotomy of blond hair} % \sottotitolo{Accurate measurements of the four fourths % of tetratricotomised 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 +% {\huge Tetratricotomy of blond hair\par}\bigskip % {\large Accurate measurements of the four fourths\\ % of tetratricotomised blond hair} % \end{minipage}\bigskip @@ -2141,17 +4482,19 @@ Skipping any redefinition\MessageBreak}% \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 PhD student'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 to name the School's director or -% coordinator instead of the tutor. 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|. +% 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 PhD student'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 to name the School's director +% or coordinator instead of the tutor. 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}} @@ -2160,62 +4503,71 @@ Skipping any redefinition\MessageBreak}% \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. +% 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 +% getting around this feature. % \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 -% defence or presentation or whatever is done for the final exam. The -% macro is 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 then the formatting of the ``date'' may -% be still different. This command is aliased with |\esamendidottorato| +% \end{macrocode} +% +% The next set of macros is used to typeset the ``date'' of +% the thesis defence or presentation or whatever is done +% for the final exam. The macro is 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 then the +% formatting of the ``date'' may be still different. +% This command is aliased with |\esamendidottorato| % which literally means ``defence of the doctoral dissertation''; -% nevertheless both commands refer to a simple date in one of those formats. -% -% |\getseduta| splits the date into 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@dutaclassica| is called with the whole string. On turn% |\s@dutaclassica| -% 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 either 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. +% nevertheless both commands refer to a simple date +% in one of those formats. +% +% |\getseduta| splits the date into 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@dutaclassica| is called with the whole string. +% On turn |\s@dutaclassica| verifies if the date should be +% typeset with old style numbers or with the usual lining +% figures; in the latter case the whole string is assigned +% to |\@submitdate|; in the former one the year part may +% be either 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 special en-dash surrounded +% with white space. % % \begin{macrocode} \def\sedutadilaurea#1{\getseduta#1 !} @@ -2250,20 +4602,25 @@ Skipping any redefinition\MessageBreak}% \def\s@paranumeri#1-#2!{\def\1{#1}\def\2{#2}}% \let\esamedidottorato\sedutadilaurea % \end{macrocode} -% Here |\annoaccademico| is defined to typesets the infix string corresponding -% to ``Anno accademico'' followed by the year range in old style numbers -% (irrespective of the \texttt{oldstyle} option); localisation commands 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 with the specific shape of the old style numbers. -% Notice that |\annoaccademico| and |\sedutadilaurea| do not do the same -% things, besides the fact that |\annoaccademico| works only with the -% |classica| option in force and a special format is chosen. Therefore -% the user has to use only one of these twocommands, and if s/he uses -% |\annoaccademico| while the |classica| option is not in force, s/he -% gets an warning and the ``date'' gets formatted in a special way so as -% to remember the user that |\annoaccademico| requires the |classica| option. +% Here |\annoaccademico| is defined to typesets the infix +% string corresponding to ``Anno accademico'' followed by +% the year range in old style numbers (irrespective of the +% \texttt{oldstyle} option); localisation commands 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 with the +% specific shape of the old style numbers. +% Notice that |\annoaccademico| and |\sedutadilaurea| do +% not do the same things, besides the fact that |\annoaccademico| +% works only with the |classica| option in force and a +% special format is chosen. Therefore the user has to use +% only one of these two commands, and if s/he uses +% |\annoaccademico| while the |classica| option is not +% in force, s/he gets an warning and the ``date'' gets +% formatted in a special way so as to remember the user +% that |\annoaccademico| requires the |classica| option. % \begin{macrocode} \newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} \@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} @@ -2286,103 +4643,131 @@ Skipping any redefinition\MessageBreak}% \vrule\@width\dimen@\@height\dimen4\@depth-\dimen\tw@}}} % \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 -% module 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 -% 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\`a di Roma'' and the proper name might be ``La -% Sapienza''. -% |\facolta| may receive 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\`a di Ingengeria''; if the optional argument is not -% specified, no roman numeral is typeset; the infix string \verb*+Facolt\`a di + -% may be changed with the configuration file depending on the default language. -% It might be necessary to define another name -% in place of ``Facolt\`a di\textvisiblespace'', since with recent bills, -% the administrative structure of all Italian universities has been changed -% and the activities formally assigned to the Faculties may be now the -% responsibility of other structures that may have different names in different -% universities. If the internal command defined by |\FacoltaDi| is empty, no -% name is printed at all and the title page will not have any indication of a -% particular faculty or other educational structure. Therefore the Degree Course -% name, specified with |\corsodilaurea| should be always specified. The alias -% commands |\StrutturaDidattica| and |\struttura| are defined as equivalent -% commands to |\FacoltaDi| and |\facolta| respectively. -% -% Finally |\logosede| gets the name of the graphic file that contains the -% information relative to the university logo; it may receive also a comma -% separated list of logo file names, as it might be necessary when a thesis -% is developed in a multiple university environment. If such logo file is not -% available, the user should not specify this command; if the thesis is -% typeset on smaller paper size than A4 or letter, it would be much better -% to avoid inserting one or more logos in the title page; this is particularly -% important when using A5 paper size. Nevertheless this decision is left to -% the user and this package neither controls this fact nor outputs any warning. -% If the user uses this command to insert one or more university logo files -% but some file is not available, the usual \texttt{graphicx} package warning -% is issued but compilation may go on without the missing logo. -% -% The treatment of one or more logo files requires some extra commands and -% control sequences suitable to store temporary data or to specify style -% parameters: one is the name of a save box; another is the default spacing -% between the logos in the typeset page; the third is the height of the logos. -% The default spacing may be set with the help of the macro |\setlogodistance| -% -- notice that the default value is |3em|, and if a different distance is -% desired, it should not be much larger or much smaller than the default one; -% the default logo height is specified as an optional command to the |\logosede| -% command, while the default size is given by the |\interno| length. This length -% is specified in the main |toptesi| package in order to compute the typesetting -% grid, so that if the |topfront| module is used by itself with other classes, -% the existence of the |\inteno| control sequence is tested and if it is -% undefined, then and only then it is defined in this module and assigned a -% default value. -% The save box name is just for internal workings and does not require any -% customisation. -% The analysis and processing to the possible list of logo file names is done -% through the usual means of the delimited argument extraction of the single -% names from the list; the ``string'' of logos is then composed in a save box; -% as the list has been completely processed, the box is measured; if its width -% is shorter than the |\textwidth| it is typeset without further processing; -% if it's larger, on the opposite, the box gets scaled down so that its width +% 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 module 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 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\`a di +% Roma'' and the proper name might be ``La Sapienza''. +% +% |\facolta| may receive 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\`a di +% Ingegneria''; if the optional argument is not specified, +% no roman numeral is typeset; the infix string +% \verb*+Facolt\`a di + may be changed with the configuration +% file depending on the default language. +% It might be necessary to define another name in place of +% ``Facolt\`a di\textvisiblespace'', since with recent bills, +% the administrative structure of all Italian universities +% has been changed and the activities formally assigned +% to the Faculties may be now the responsibility of other +% structures that may have different names in different +% universities. If the internal command defined by +% |\FacoltaDi| is empty, no name is printed at all and the +% title page will not have any indication of a particular +% faculty or other educational structure. +% Therefore the Degree Course name, specified with +% |\corsodilaurea| should always be specified. +% The alias commands |\StrutturaDidattica| and |\struttura| +% are defined as equivalent commands to |\FacoltaDi| and +% |\facolta| respectively. +% +% Finally |\logosede| gets the name of the graphic file that +% contains the information relative to the university logo; +% it may receive also a comma separated list of logo file +% names, as it might be necessary when a thesis +% is developed in a multiple university environment. +% If such logo file is not available, the user should not +% specify this command; if the thesis is +% typeset on smaller paper size than A4 or letter, +% it would be much better to avoid inserting one or more logos +% in the title page; this is particularly important when using +% A5 paper size. Nevertheless this decision is left to +% the user and this package neither controls this fact +% nor outputs any warning. +% If the user uses this command to insert one or more +% university logo files but some file is not available, +% the usual \texttt{graphicx} package warning is issued but +% compilation may go on without the missing logo. +% +% The treatment of one or more logo files requires some extra +% commands and control sequences suitable to store temporary +% data or to specify style parameters: one is the name of +% a save box; another is the default spacing between the +% logos in the typeset page; the third is the height of the logos. +% The default spacing may be set with the help of the +% macro |\setlogodistance| -- notice that the default value +% is |3em|, and if a different distance is desired, it should +% not be much larger or much smaller than the default one; +% the default logo height is specified as an option +% command to the |\logosede| command, while the default +% size is given by the |\T@Tlogoheight| length. This length +% is specified in the main |toptesi| package in order +% to compute the typesetting grid, so that if the |topfront| +% module is used by itself with other classes, the existence +% of the |\T@Tlogoheight| control sequence is tested and if it is +% undefined, then and only then it is defined in this +% module and assigned a default value. +% +% The save box name is just for internal workings and does +% not require any customisation. +% +% The analysis and processing to the possible list of logo +% file names is done through the usual means of the delimited +% argument extraction of the single names from the list; +% the ``string'' of logos is then composed in a save box; +% as the list has been completely processed, the box is +% measured; if its width is shorter than the |\textwidth| +% it is typeset without further processing; if it is larger, +% on the opposite, the box gets scaled down so that its width % equals the |\textwidth|. % -% The |\tutoreaziendale| macro is the last title page 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 to name this person also in the title page. -% -% Eventually the |\retrofrontespizio| command, that by default is empty, -% allows to typeset a copyright page; the argument of this command is in -% total responsibility to the user who must write it in the thesis main -% language; the user can specify from zero to several paragraphs, separated -% by the vertical spaces s/he thinks best; the argument by default is typeset -% at the bottom of the text block of the copyright page. The user can specify -% any pertinent space at the bottom of his/her argument, so as to set the -% text in the position s/he likes best. -% In order to handle the copyright page in the proper way we need to test -% if its definition is empty or blank so we need the powerful advanced macros -% of the package |etoolbox| that has already been loaded by this module or +% The |\tutoreaziendale| macro is the last title page +% 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 to name +% this person also in the title page. +% +% Eventually the |\retrofrontespizio| command, that by +% default is empty, allows to typeset a copyright page; +% the argument of this command is in total responsibility +% to the user who must write it in the thesis main language; +% the user can specify from zero to several paragraphs, +% separated by the vertical spaces s/he thinks best; the +% argument by default is typeset at the bottom of the text +% block of the copyright page. The user can specify any +% pertinent space at the bottom of his/her argument, so as +% to set the text in the position s/he likes best. +% In order to handle the copyright page in the proper way +% we need to test if its definition is empty or blank so +% we need the powerful advanced macros of the package +% |etoolbox| that has already been loaded by this module or % by the main |toptesi| one. % \begin{macrocode} \def\ciclodidottorato#1{\gdef\@ciclo{#1 \@cyclename}}% \def\corsodilaurea#1{\global\dottoratofalse\gdef\@corso{#1}} -\def\corsodidottorato#1{\global\dottoratotrue\global\laureatriennalefalse +\def\corsodidottorato#1{\global\dottoratotrue\global\triennalefalse \gdef\@corso{#1}} -\def\scuoladidottorato#1{\global\dottoratotrue\global\laureatriennalefalse +\def\scuoladidottorato#1{\global\dottoratotrue\global\triennalefalse \gdef\@phdschool{#1}} \def\ateneo#1{\gdef\@ateneo{#1}} \def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} @@ -2395,11 +4780,11 @@ Skipping any redefinition\MessageBreak}% \newcommand*\setlogodistance[1]{\TPT@logospace=#1} \providecommand*{\@logosede}{} -\ifcsundef{interno}{%\ - \newlength\interno - \setlength\interno{\dimexpr\paperwidth/7}}{} +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} -\newcommand\logosede[2][\interno]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax \ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% \expandafter\fillup@TCP@logobox\@logosede,!}} @@ -2416,28 +4801,35 @@ Skipping any redefinition\MessageBreak}% \newcommand\retrofrontespizio[1]{\long\gdef\@retrofrontespizio{#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. -% If these commands are specifically used to redefine something before issuing -% the |\frontespizio| command, the command that actually typesets the title +% 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. +% If 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} +% \begin{description}[noitemsep] % \def\Item[#1]{\item[\normalfont\texttt{\char92#1}] % sets or changes the string} % \Item[FacoltaDi] ``Facolt\`a 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[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[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'' @@ -2445,12 +4837,13 @@ Skipping any redefinition\MessageBreak}% % \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 localising language strings: it -% is necessary to localise the whole phrase, because of the position of -% the adjectives. +% 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 localising language strings: it +% is necessary to localise the whole phrase, because of +% the position of the adjectives. % \begin{macrocode} \newcommand\FacoltaDi[1]{\gdef\@faculty{#1}} \let\StrutturaDidattica\FacoltaDi @@ -2470,22 +4863,30 @@ Skipping any redefinition\MessageBreak}% \newcommand\NomeSecondoTomo[1]{\gdef\SecondoTomo{#1}} \newcommand\NomeTerzoTomo[1]{\gdef\TerzoTomo{#1}} \newcommand\NomeQuartoTomo[1]{\gdef\QuartoTomo{#1}} -\newcommand\IDN{\\\quad matricola:\space} -% \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 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 single |\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 maybe 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 +\providecommand\IDlabel{\\\quad matricola\ } +% \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 +% 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 single |\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 maybe 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{\jobname.cfg}{\input{\jobname.cfg}}% @@ -2493,7 +4894,36 @@ Skipping any redefinition\MessageBreak}% % \@ifundefined{@cyclename}{\def\@cyclename{ciclo}}{} \@ifundefined{@titolo}{\def\@titolo{}}{} -\@ifundefined{@author}{\def\@author{}}{} + +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\IDlabel{matricola\ } + \@ifundefined{@principaladviser}{\def\@principaladviser{}}{} \@ifundefined{@secondadviser}{\def\@secondadviser{}}{} \@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} @@ -2501,8 +4931,6 @@ Skipping any redefinition\MessageBreak}% \ifDirettore\def\@PhDdirector{Direttore del corso di dottorato}\else \def\@PhDdirector{Coordinatore del corso di dottorato}\fi}{} \@ifundefined{@tutore}{\def\@tutore{}}{} -\@ifundefined{@secondauthor}{\def\@secondauthor{}}{} -\@ifundefined{@thirdauthor}{\def\@thirdauthor{}}{} % \@ifundefined{@nomerelatore}{\def\@nomerelatore{}}{} \@ifundefined{@nomecandidato}{\def\@nomecandidato{}}{} @@ -2545,10 +4973,11 @@ Skipping any redefinition\MessageBreak}% \def\Candidate{Laureande} \fi\fi % \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 has already been defined empty as its default value. +% 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 default value of the university logo command has already been defined ``empty''. % \begin{macrocode} \@ifundefined{@submitdate}{\def\@submitdate{\ifcase\the\month\or% Gennaio\or Febbraio\or Marzo\or Aprile\or Maggio\or Giugno\or @@ -2564,38 +4993,50 @@ Skipping any redefinition\MessageBreak}% \@ifundefined{@InName}{\def\@InName{in}}{} % \end{macrocode} % -% Finally we have the real macro |\frontespizio| and the corresponding environments, -% the real macro or environments that actually typesets the title page. -% -% I recommend to use the environments, a new feature of version 5.85. But the legacy -% command |\frontespizio| is still usable. -% The principle on which these environments work is that the |frontespizio| -% environment typesets the title page with logo(s) set in the page header, -% while the |frontspizio*| environment typesets the logos after the information -% on the title, the possible sub title and tome information, that is -% in the lower half of the title page. In order to achieve this result each -% environment sets the boolean variable |topTPTlogos| to either value |true| -% (for header logos) or |false| otherwise. The key of the different typesetting -% style is this boolean-variable state. -% -% Now, since the internal |frontespizio| environment opening command is -% |\frontespizio| how is it possible to distinguish this opening statement -% from the homonymous user command? The solution is a little tricky, but after -% all very simple. the |\begin| command, with which an environment is started, -% before calling the opening statement defines the internal service macro -% |\@currenvir| to contain the environment name; this is used by the -% |\end| statement to control that it is closing the last opened environment. -% If the |\frontespizio| command is directly used, the |\@currenvir| macro -% does not contain the name frontespizio; therefore if in the opening environment -% definition we check the contents of |\@currenvir| against the string -% |frontespizio| we can decide if the user resorted to the legacy command, or -% the environment was correctly opened by means of |\begin|. -% If the user resorted to the legacy command, the service macro |\fr@ontespizio| -% is called that typesets the title page according to the current status of the -% boolean |topTPTlogos|, a boolean that has a default value but the user can set -% at its will. Otherwise the |frontespizio| environment is regularly executed. -% Notice that the service macro |\fr@ntespizio| tests the state of the boolean -% |classica| and accordingly uses a different page style. +% Finally we have the real macro |\frontespizio| and the +% corresponding environments, the real macros or environments +% that actually typeset the title page. +% +% I recommend to use the environments, a new feature of +% version 5.85. But the legacy command |\frontespizio| is +% still usable. The principle on which these environments +% work is that the |frontespizio| environment typesets the +% title page with logo(s) set in the page header, while the +% |frontspizio*| environment typesets the logos after the +% information on the title, the possible sub title and tome +% information, that is in the lower half of the title page. +% In order to achieve this result each environment sets the +% boolean variable |topTPTlogos| to either value |true| +% (for header logos) or |false| (otherwise). +% The key of the different typesetting style is this +% boolean-variable state. +% +% Now, since the internal |frontespizio| environment opening +% command is |\frontespizio| how is it possible to distinguish +% this opening statement from the homonymous user command? +% The solution is a little tricky, but, after all, very simple. +% The |\begin| command, with which an environment is started, +% before calling the opening statement defines the internal +% service macro |\@currenvir| to contain the environment name; +% this is used by the |\end| statement to control that it is +% closing the last opened environment. +% +% If the |\frontespizio| command is directly used, the +% |\@currenvir| macro does not contain the name ``frontespizio''; +% therefore if in the opening environment definition we check +% the contents of |\@currenvir| against the string +% |frontespizio| we can decide if the user resorted to +% the legacy command, or the environment was correctly +% opened by means of |\begin|. +% If the user resorted to the legacy command, the +% service macro |\fr@ontespizio| is called that typesets +% the title page according to the current status of the +% boolean |topTPTlogos|, a boolean that has a default +% value but the user can set at its will. Otherwise the +% |frontespizio| environment is regularly executed. +% Notice that the service macro |\fr@ntespizio| tests +% the state of the boolean |classica| and accordingly +% uses a different page style. % \begin{macrocode} \newbool{topTPTlogos} \booltrue{topTPTlogos} @@ -2610,32 +5051,39 @@ Skipping any redefinition\MessageBreak}% % \end{macrocode} % -% With the new boolean |AteneoInHead| we can mark these situations where the -% university common name goes into header; with the |classica| option the -% title page \emph{must} have this name in the header and if the user forgets -% to specify one, this module fakes it with a clear message that the university -% name has been forgotten, but at the same time this fake message fills up the -% header position. On the other hand, when the |classica| option has not been -% specified, the user can use either an empty university name or a specific -% name. So only when the |\@ateneo| macro remains empty the university name -% in the header remains really blank; this is good when the university name -% is part of the university logo (this is the case for Politecnico di Torino, -% and for many other universities). When no university name is set in the header +% With the new boolean |AteneoInHead| we can mark these +% situations where the university common name goes into the +% header; with the |classica| option the title page +% \emph{must} have this name in the header and if the user +% forgets to specify one, this module fakes it with a clear +% message that the university name has been forgotten, but +% at the same time this fake message fills up the header +% position. On the other hand, when the |classica| option +% has not been specified, the user can use either an empty +% university name or a specific name. So only when the +% |\@ateneo| macro remains empty the university name +% in the header remains really blank; this is good when the +% university name is part of the university logo (this is +% the case for Politecnico di Torino, and for many other +% universities). When no university name is set in the header % some little attention in formatting the title page is necessary. % % \begin{macrocode} \newbool{AteneoInHead}\boolfalse{AteneoInHead} % \end{macrocode} % -% In order to use the command |\frontespizio*| as en isolated command instead -% of the starting command of the |frontespizio*| environment, we have to behave -% as with the |\frontespizio| command, but we must test for a possible asterisk -% following the command; for this reason we defined the |\TPTmaybestar| that -% absorbs une following token: if the token is an asterisk, we set the appropriate -% settings for the previous behaviour of the isolated command, but if it is -% not an asterisk we must set it back into the list after finishing the execution -% of the |\fr@ntespizio| service macro, whose function is to set the title page -% information at the proper position, but must not contain any spurious material. +% In order to use the command |\frontespizio*| as an isolated +% command instead of the starting command of the |frontespizio*| +% environment, we have to behave as with the |\frontespizio| +% command, but we must test for a possible asterisk following +% the command; for this reason we defined the |\TPTmaybestar| +% that% absorbs une following token: if the token is an +% asterisk, we set the appropriate settings for the previous +% behaviour of the isolated command, but if it is +% not an asterisk we must set it back into the list after +% finishing the execution of the |\fr@ntespizio| service macro, +% whose function is to set the title page information at the +% proper position, but must not contain any spurious material. % \begin{macrocode} \newcommand\TPTmaybestar[1]{\def\@tempA{#1}% \ifdefstring{\@tempA}{*}% @@ -2644,35 +5092,40 @@ Skipping any redefinition\MessageBreak}% } % \end{macrocode} % -% We start defining the complex macro |\fr@ntespizio|. We start with a group -% so that any settings performed by this command remain local; if the title page -% environments had been used this group would be useless, but if the isolated -% commands are used, then this group protects the rest of the document from -% unusual local settings valid only for the title page. +% We start defining the complex macro |\fr@ntespizio|. We start +% with a group so that any settings performed by this command +% remain local; if the title page environments had been +% used, this group would be useless, but if the isolated +% commands are used, then this group protects the rest of the +% document from unusual local settings valid only for the +% title page. % \begin{macrocode} \def\fr@ntespizio{% \begingroup\par % \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 both +% 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 both % of them. % \begin{macrocode} \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax \evensidemargin \oddsidemargin % \end{macrocode} -% 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 +% 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} \null \setcounter{page}{1}% \normalfont % \end{macrocode} -% Depending on the style of the title page a different |\pagestyle| is set with -% appropriate switches and settings. If with the classica style a university -% name is blank, it is set to an explicit string that the setting of the +% Depending on the style of the title page a different +% |\pagestyle| is set with appropriate switches and settings. +% If with the classica style a university name is blank, +% it is set to an explicit string that the setting of the % university name has been forgotten. % \begin{macrocode} \ifclassica @@ -2686,16 +5139,19 @@ Skipping any redefinition\MessageBreak}% \ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}} % \end{macrocode} % -% The generic university name should already be in the header either in the logo -% or in the header text; but in spite of this we test if the university generic -% name macro is void, if it contains something, then we typeset also the generic -% name; some candidates might obey to university regulations that require the name -% of the university be at the top, just under the logo. The switch |\ifcsvoid| -% is true if |@ateneo| is empty or blank, false otherwise; but even with page top -% logos, no test is made in order to give the possibility to repeat the university -% name. It is the user responsibility to set an empty value to the |\ateneo| macro -% so as to avoid repeating the university name possibly already present in the logo -% itself. +% The generic university name should already be in the header +% either in the logo or in the header text; but in spite of +% this we test if the university generic name macro is void, +% if it contains something, then we typeset also the generic +% name; some candidates might obey to university regulations +% that require the name of the university be at the top, just +% under the logo. The switch |\ifcsvoid| is true if |@ateneo| +% is empty or blank, false otherwise; but even with page top +% logos, no test is made in order to give the possibility to +% repeat the university name. It is the user responsibility to +% set an empty value to the |\ateneo| macro so as to avoid +% repeating the university name possibly already present in +% the logo itself. % \begin{macrocode} \ifcsvoid{@ateneo}{% \ifbool{topTPTlogos} @@ -2709,18 +5165,19 @@ Skipping any redefinition\MessageBreak}% } % \end{macrocode} % -% If it is non blank the first thing we set on the page is the university -% proper name and some vertical glue. +% If it is non blank the first thing we set on the page is +% the university proper name and some vertical glue. % \begin{macrocode} \ifcsvoid{@nomeat}{} - {\ifbool{topTPTlogos}{\vspace*{3.5ex}}{\vspace*{-3ex}}% + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}{\vspace*{-3ex}}% {\centering\@nomeat\par}\vfill} % \end{macrocode} -% Then the faculty name comes next; but for 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|. +% Then the faculty name comes next; but for 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 @@ -2729,27 +5186,31 @@ Skipping any redefinition\MessageBreak}% \else \ifcsvoid{@faculty}{}{% \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi - \@faculty\@facname\par\medskip + \@faculty\unskip\xspace\@facname\par\medskip } \fi }% % \end{macrocode} -% Further specification: it inserts the field of the PhD research or the degree course -% name; it inserts a line such as, for example, ``Philosophy Degree in Applied -% Tetratricotomy~--~XVI~cycle'' or ``Master of Science in Applied Tetratricotomy''. +% Further specification: it inserts the field of the PhD +% research or the degree course name; it inserts a line +% such as, for example, ``Philosophy Degree in Applied +% Tetratricotomy~--~XVI~cycle'' or ``Master of Science +% in Applied Tetratricotomy''. % \begin{macrocode} \ifcsvoid{@corso}{}{{\large \ifdottorato - \@PhDname\@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi \else - \@laureaname\@corso + \@laureaname\unskip\xspace\@corso \fi \par}} \end{center} % \end{macrocode} -% It now centres the name of the report, be it ``Doctoral Dissertation'' or ``Master -% Thesis'' or whatever; in case the command |\materia| was used, it then centres -% the discipline which the thesis deals with. +% It now centres the name of the report, be it ``Doctoral +% Dissertation'' or ``Master Thesis'' or whatever; in case +% the command |\materia| was used, it then centres the +% discipline which the thesis deals with. % \begin{macrocode} \vspace{\stretch{0.2}} \begin{center} @@ -2757,7 +5218,7 @@ Skipping any redefinition\MessageBreak}% \ifdottorato \@dissertazione% \else - \iflaureatriennale + \iftriennale \@monografia% \else \@TesiDiLaurea% @@ -2769,8 +5230,8 @@ Skipping any redefinition\MessageBreak}% \end{center} % \end{macrocode} % -% Next comes the real title entered with |\titolo| or |\monografia| and the possible -% subtitle. +% Next comes the real title entered with |\titolo| or +% |\monografia| and the possible subtitle. % \begin{macrocode} \vspace{\stretch{0.2}} \begin{center} @@ -2778,7 +5239,7 @@ Skipping any redefinition\MessageBreak}% \@titolo \par} \end{center} % \end{macrocode} -% con l'eventuale sottotitolo: +% with the possible subtitle: % \begin{macrocode} \unless\ifx\@subtitle\empty \begin{center}% @@ -2786,11 +5247,13 @@ Skipping any redefinition\MessageBreak}% \end{center}% \fi % \end{macrocode} -% If the option \texttt{classica} is in force the thesis might be divided in several -% volumes; theses in humanities apparently are often oversized. In this case the -% |\tomo| 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. +% If the option \texttt{classica} is in force the thesis +% might be divided in several volumes; theses in humanities +% apparently are often oversized. In this case the |\tomo| +% 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} \ifclassica \ifnum\value{tomo}>\z@ @@ -2804,7 +5267,8 @@ Skipping any redefinition\MessageBreak}% \or \QuartoTomo% \else \PackageWarning{toptesi}{% - Counter tomo equals \the\c@tomo\MessageBreak + Counter tomo equals + \the\c@tomo\MessageBreak We never considered a thesis might get divided in more than four volumes}% \fi}}% @@ -2813,31 +5277,37 @@ Skipping any redefinition\MessageBreak}% \fi \par % \end{macrocode} -% Going down in the title page, now comes the optional insertion of the university -% logo(s); ``optional'' in both meanings: one or more university logos are not generally -% required in a thesis, and in case it depends if the logo(s) have to be put in the -% header or here. -% This is a simple task since the |\logosede| already defined the contents to the -% box |\TPT@logobox|, and this was done either with an explicit command |\logosede| -% with its argument in the preamble, or with a specific line in the configuration -% file or within the |frontespizio| environment. -% If such box |\TPT@logobox| is void, the already defined |\printloghi| macro does -% not do anything. +% Going down in the title page, now comes the optional +% insertion of the university logo(s); ``optional'' in both +% meanings: one or more university logos are not generally +% required in a thesis, and in case it depends if the +% logo(s) have to be put in the header or here. +% This is a simple task since the |\logosede| already +% defined the contents to the box |\TPT@logobox|, and this +% was done either with an explicit command |\logosede| +% with its argument in the preamble, or with a specific +% line in the configuration file or within the |frontespizio| +% environment. +% If such box |\TPT@logobox| is void, the already defined +% |\printloghi| macro does not do anything. % \begin{macrocode} \unless\iftopTPTlogos {\vfill\centering \printloghi\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 of supervisors. +% 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 of supervisors. % \begin{macrocode} \vfill - \iflaureatriennale + \iftriennale \let\@nomerelatore\empty \else \ifdottorato @@ -2852,10 +5322,12 @@ Skipping any redefinition\MessageBreak}% \fi \fi % \end{macrocode} -% Similarly the label names for the exam candidates are chosen; in Italian such -% 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. +% Similarly the label names for the exam candidates are +% chosen; in Italian such 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 PhD candidate is left empty. % \begin{macrocode} \ifdottorato @@ -2877,48 +5349,63 @@ Skipping any redefinition\MessageBreak}% \fi % \end{macrocode} % -% For the supervisor(s) and of the candidate(s) name(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{single} candidate is centred and -% written in caps-and-small-caps. +% For the supervisor(s) and of the candidate(s) name(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{single} +% candidate is centred and written in caps-and-small-caps. % \begin{macrocode} - \iflaureatriennale + \iftriennale \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 a 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 a little different for the \texttt{classica} option. The -% |\protect| command is used to protect the names in case they contain accent macros +% For doctoral and master theses two virtual boxes +% (actually macros) are filled up so as to align the +% supervisor name(s) and, in a 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 a 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. -% The candidate name(s) are typeset in another nested tabular environment of two -% lines when the user typesets the entry in such a way: -%\begin{verbatim} -%\candidato{Mario Rossi \IDN 123456} -%\end{verbatim} -% where if just the name is used or the command |\IDN| is omitted but the -% the ID number is entered, the whole string is written in one line without -% any label before e the ID number; if, on the other side, the |\IDN| command -% is redefined as not to produce a new line and the ID number is entered, the -% latter is typeset in a new line after the candidate's name. By default the -% |\IDN| macro is defined as: -%\begin{verbatim} -%\newcommand{\IDN}{\\\quad matricola:\space} -%\end{verbatim} -% but with |\renewcommand| the user can redefine it as s/he prefers, in -% particular by changing the Italian name into a proper English one, may be -% simply `ID'. It is necessary to recall that the ID number must be entered -% only if required by the University regulations; it must not be typeset in -% the title page just because it is possible to do it. If no number is entered, -% the |\IDN| must not be used. - +% +% The candidate name(s) are typeset in another nested +% tabular environment of two lines when the user typesets +% the entry in such a way: +%\begin{flushleft} +%\cs{candidato}\Marg{Mario Rossi}\Oarg{123456}\\[1ex] +%\end{flushleft} +% The optional argument contains the ID number of the candidate; +% if it is specified, it is typeset below the candidate name, +% with an indentation, and prefixed with the \verb*|matricola | +% label; of corse if the optional ID number is not specified, +% nor are the enclosing braces, nothing is printed after or +% below the candidate's name. +% If the user wants it typeset on the same line and or +% with a different label s/he has to redefine the macro |\IDlabel|; +% its default definition is +%\begin{verbatim*} +%\newcommand*\IDlabel{\\\quad matricola\ } +%\end{verbatim*} +% Example redefinitions are shown in the sample files. +% Notice that with the new definition of the candidates' setting +% macros it is guaranteed that the ID number, if specified, is +% typeset in the title page, but not in the headers if the +% |autoretitolo| option is in force. +% +% It is useful to recall that the ID number must be entered +% only if required by the University regulations; it must +% not be typeset in the title page just because it is possible +% to do it. +% % \begin{macrocode} \else % For theses of any kind that expect the supervisor and co-supervisor names... @@ -2945,9 +5432,10 @@ Skipping any redefinition\MessageBreak}% \end{tabular}% }% % \end{macrocode} -% A similar approach is taken for the candidate name(s), although for code -% clarity I prefer to define two secondary macros in order to format the -% other candidates names and ID in a clearer way. +% A similar approach is taken for the candidate name(s), +% although for code clarity I prefer to define two secondary +% macros in order to format the other candidates names +% and ID in a clearer way. % \begin{macrocode} \def\print@secondocandidato{\\\relax \hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}} @@ -2963,14 +5451,17 @@ Skipping any redefinition\MessageBreak}% \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 doctoral candidate name -% is typeset centred 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 applicable labels and the second line containing the true names. The central -% column is used just for spacing, but it does not contain anything. +% 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 +% doctoral candidate name is typeset centred 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 applicable 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 @@ -2989,21 +5480,27 @@ Skipping any redefinition\MessageBreak}% \end{center} \else % \end{macrocode} -% For the master thesis the two virtual boxes are set one besides the other but -% skewed to the right or, respectively, to the left of every name so that there -% is enough space for the signature. With the \texttt{classica} option in force +% For the master thesis the two virtual boxes are set one +% besides the other but skewed to the right or, respectively, +% to the left of every name so that there is enough space +% for the signature. With the \texttt{classica} option in force % the two boxes are simply aligned. % \begin{macrocode} - \unless\ifclassica - \begin{flushleft}% - \BoxRelatori - \end{flushleft}\par\vspace*{-1.5\baselineskip} - \begin{flushright}% - \BoxCandidati - \end{flushright}% + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi \else \noindent - \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}\par + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par \fi \fi \fi @@ -3015,14 +5512,19 @@ Skipping any redefinition\MessageBreak}% {\centering \textbf{\@tutoreaziendalename}\\[.6ex] \@tutoreaziendale\par}} % \end{macrocode} -% All the material now is on the page; we put some more vertical glue and handle the -% copyright page; then 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. -% In order to handle the copyright page, we test if the internal definition of the -% copyright page text is empty; in this case no copyright page should be output, and -% a |\creadoublepage| works fine in both one and two side printing; if the copyright page -% text is not empty, after shipping out the title page, we set the copyright page -% text flush bottom with the text block, and then we ship out also this copyright page. +% All the material now is on the page; we put some more +% vertical glue and handle the copyright page; then 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. +% In order to handle the copyright page, we test if the +% internal definition of the copyright page text is empty; +% in this case no copyright page should be output, and +% a |\cleardoublepage| works fine in both one and two side +% printing; if the copyright page text is not empty, after +% shipping out the title page, we set the copyright page +% text flush bottom with the text block, and then we ship +% out also this copyright page. % \begin{macrocode} \par\clearpage \ifcsvoid{@retrofrontespizio}{}% @@ -3033,12 +5535,560 @@ Skipping any redefinition\MessageBreak}% %</topfrn> % \fi % -% \subsection{A sample configuration file} -% The following code generates a sample configuration file that the user -% can change at will; it can be used as a template for generating a really -% personal configuration file. Remember: this template file is named -% |toptesi.cfg|, but in order to use it for a specific thesis, whose main -% file is named |JohnSmithMSthesis.tex|, the configuration file must be +% \subsection{Further settings for the ScuDo doctoral school} +% +% Doctoral theses to be developed at the \emph{SCUola di +% DOttorato} (ScuDo) doctoral school of Politecnico di +% Torino require a particular set of other packages and +% commands to be available by default to the student +% writing his/her doctoral thesis. It requires also +% a title page with a layout completely different from +% those that can be typeset with the |topfront| extension +% file and, as far as I can tell, different from what +% is possible to create with the excellent |frontespizio| +% package. +% +% This task is reached by selecting the thesis type +% by means of the |tipotesi=scudo| option to the |toptesi| +% class; this option sets on or off the necessary switches +% and load the |toptesi-scudo.sty| module in place of the +% |topfront| one. This specific module loads the extra +% packages, defines some special commands, provides the +% customising commands to modify the title page infix +% words and labels, and the commands for introducing the +% specific thesis data; eventually it specify the title +% page layout and provides for its generation and to a +% copyright and disclaimer sentence on the verso page of +% the title one. +% +% It produces also a colophon where some data concerning +% the thesis typesetting details are given. +% +% Some if not all the data required for the title page may +% be entered by means of a configuration file |\jobname.cfg| +% that can be modelled on the |toptesi.cfg| file that is part of +% this bundle. The user should remember to copy the sample file in +% his/her thesis directory, change its name (not the extension) +% to match that of the thesis, modify the data according +% to his/her needs, and this extension file will read the +% configuration file at the proper moment and acquire its data. +% +% This |toptesi-scudo.sty| module is meant to load a certain +% number of packages in order to ease the user work when +% typesetting a dissertation on an engineering doctorate +% school as ScuDo. +% +% The chosen packages are supposed to be sufficient to +% typeset any technical thesis or dissertation; but this +% does not limit its use to the fields of engineering; +% anybody can use it as a template to load the packages +% s/he needs for the particular discipline s/he is +% working on. At the same time nobody forbids to load +% other packages, in addition, not in substitution, of +% the packages loaded by this extension file of the +% |toptesi| class. +% +%\iffalse +%<*topscu> +%\fi +% We start by loading the math packages produced by the +% American Mathematical Society, differentiating what is +% necessary to load when using \pdfLaTeX\ or the OpenType +% aware programs \XeLaTeX\ or \LuaLaTeX. The extension file +% |iftex| that defines the switches \cs{ifPDFTeX}, +% \cs{ifXeTeX}, and \cs{ifLuaTeX}, +% has already been loaded. In particular AMS fonts should +% not be used when typesetting with \XeLaTeX\ or \LuaLaTeX, +% because these programs get them directly from the +% \sigla{UNICODE} math fonts, so that package |amssymb| has +% to be loaded only when \pdfLaTeX\ is used. +% \begin{macrocode} +\ScuDotrue +\ifPDFTeX + \usepackage{amsmath,amssymb,amsthm} +\else + \usepackage{amsmath,amsthm} + \usepackage{unicode-math} +\fi +% \end{macrocode} +% The suitable macro for using the differential sign in the +% proper \sigla{ISO} compliant way (upright font) with the suitable +% spacing before and no space after, is the following: +% \begin{macrocode} +\AtBeginDocument{% +\providecommand\diff{}% +\renewcommand{\diff}{\mathop{}\!\mathrm{d}} +\providecommand{\gei}{\ensuremath{{\mathop{\mathrm{j}}\nolimits}}} +\providecommand{\eu}{\ensuremath{{\mathop{\mathrm{e}}\nolimits}}} +\let\iu\gei} +% \end{macrocode} +% Such a definition allows to typeset math expression containing +% integrals with a small space between the integrand and the +% integrating differential; on the contrary no space +% disturbs typesetting differential equations. The above +% definitions include also the \sigla{ISO} compliant ways of writing +% the Napier number `e', and the imaginary unit |\iu| that +% sets an operator-like roman `j' as it is customary in +% most engineering disciplines. +% +% Other packages are loaded next. Please take notice that +% |xparse| is very useful to define advanced commands and +% environments containing different kind of delimited +% arguments; parameters entered as arguments to the +% opening statement of an environment are available also +% for the closing commands; read the documentation if you +% want to use this package facilities. +% +% Using the facilities of |setspace| may be tolerated only +% while typesetting a thesis draft. It is bad typography +% to use it in the final printing. +% +% Packages |ifthen| and |calc|, in spite of being the +% standard traditional ones for accomplishing their tasks, +% are preferred by many users who are not aware that +% computations are now native of modern typesetting +% programs\footnote{All the three programs we are dealing +% with here; \LuaLaTeX\ can do also floating point computations +% thanks to the language Lua; all programs may benefit from the +% advances of the \LaTeX3 language, that has a special facility +% to perform floating point calculations.}; also advanced +% tests are natively available with such programs, but +% since this class loads the |etooolbox|, its powerful +% and robust commands are already available; therefore +% these packages are loaded only for the user comfort, +% although they are not really required. +% +% Packages |caption| and |subcaption| have been optional +% for several TOPtesi versions before version 6.x; here they +% are pre-loaded only for the \textsf{tipotesi=scudo} option. +% +% Package |tabularx| provides an alternative way to produce +% tables of specified width by means of a new column type +% |X|; this column type behaves as |p|\marg{width}, where +% \meta{width} is computed by the package in order to expand +% the column(s) so as to fill the specified table +% width. It is very handy in a number of situations. +% +% For professional typesetting tables, package |booktabs| +% is highly recommended; we load also package |multirow|, +% although its use is deprecated by many professionals. +% +% The sample template file |toptesi-scudo.tex| shows a +% couple of tables typeset with and without using +% |multirow|; the results without using this package are +% marginally more elegant, but the user is free to specify +% every detail, without the support of automatic (and +% limited) typesetting macros. +% +% Package |siunitx| is highly recommended; its management +% of fractional measures, of units of measure, and of table +% columns that contain numerical values aligned on the decimal +% separator is very useful. +% +% Package |float| is very handy to define new floating +% environments; unfortunately many users load it in +% order to have available the float positioning +% option \textsf{H}, which should never be used, +% especially while using this TOPtesi class, where +% provisions for large floats are already taken care of. +% \begin{macrocode} +\usepackage{xparse} % Command and environment advanced definitions +\usepackage{lscape} % Supports landscape Layout +\usepackage{setspace} % Define line spacing in paragraph. Don't use! +\usepackage{calc} % Calculation macros +\usepackage{ifthen} % Conditional statements +\usepackage{caption} % Configure captions +\usepackage{subcaption}% Defines env. subfigure and its caption +\usepackage{tabularx} % Tables with expandable columns +\usepackage{booktabs} % professional rules in tables +\usepackage{multirow} % It's more professional avoiding tables with + % cells spanning several rows +\usepackage{siunitx} % advanced management of units of measure +\usepackage{float} % Never ever use its code position H ! + % Use only to define new floating objects +% \end{macrocode} +% +% Package |nomencl| is loaded and a sample of nomenclature +% groups is defined; they are mostly examples of ``how to''; +% and in particular they are models to define other +% nomenclature groups. Notice that the string comparison +% tests are made through the testing robust commands +% provided by the |etoolbox| package. +% \begin{macrocode} +\usepackage[intoc]{nomencl}% Generate nomenclatures or glossaries +\makenomenclature +\renewcommand{\nomgroup}[1]{% +\ifstrequal{#1}{A}{\item[\textbf{Roman Symbols}]}{% +\ifstrequal{#1}{G}{\item[\textbf{Greek Symbols}]}{% +\ifstrequal{#1}{Z}{\item[\textbf{Acronyms / Abbreviations}]}{% +\ifstrequal{#1}{R}{\item[\textbf{Superscripts}]}{% +\ifstrequal{#1}{S}{\item[\textbf{Subscripts}]}{% +\ifstrequal{#1}{X}{\item[\textbf{Other Symbols}]}{}}}}}}} + +\renewcommand{\nompreamble}{\markboth{\nomname}{\nomname}} +% \end{macrocode} +% +% It is important to note that the nomenclature +% raw file must be processed by means of program +% \prog{makeindex} with special options. Assuming +% that your thesis main file is named |MyPhDthesis.tex|, +% after compiling with pdfLaTeX, you have to open a +% terminal, change the working directory into that +% where your main file is stored, and +% issue and execute the line command +%{\small +%\begin{verbatim} +%makeindex -s nomencl.ist -t MyPhDthesis.nlg -o MyPhDthesis.nls MyPhDthesis.nlo +%\end{verbatim} +%\par} +% Afterwards you should have your processed nomenclature +% ready and up to date, so that by running again the +% typesetting program your nomenclature appears in the +% back matter; a second typesetting run, as usual, updates +% the table of contents with the entry and page number of +% the Nomenclature section. It is important to do this +% action before printing the final version of the thesis; +% you do not need to update the nomenclature every time +% you edit one of your thesis source files. +% +% All this fuzz is bypassed in the sense that all typesetting +% programs can run safe OS commands, among which \prog{makeindex}, +% in order to do all these actions by themselves if we +% procede by closing the auxiliary file that collect +% nomenclature entries, and run \prog{makeindex} with +% the proper options and file names directly through the +% ``magic command'' |\write18|. We then define a new command +% to process the nomenclature files and print them out. +% +% Again the test for an empty optional argument is made by +% means of a macro defined in |etoolbox|. When using LuaLaTeX +% it is necessary a special treatment, because the typesetting +% engine does not use the |\write18| functionality, but +% accesses the operating system commands by means +% of its own Lua facilities. The user is not obliged to +% know these details, but this extension file must be +% programmed accordingly. +% \begin{macrocode} +\newcommand{\printnomencl}[1][]{% +\immediate\closeout\@nomenclaturefile +\ifLuaTeX + \chardef\T@T@shellescape\directlua{tex.write(os.execute())} + \def\exec@makeindex{% + \directlua{os.execute("\luaescapestring + {makeindex -s nomencl.ist -t \jobname.nlg -o \jobname.nls \jobname.nlo}")}} +\else + \def\exec@makeindex{\immediate\write18{% + makeindex -s nomencl.ist -t \jobname.nlg -o \jobname.nls \jobname.nlo}} +\fi +\exec@makeindex +\ifblank{#1}{\printnomenclature}{\printnomenclature[#1]}% +} +% \end{macrocode} +% The result is a synchronous typesetting of the nomenclature +% in the same way as for the index. +% +% The bibliography is typeset through the facilities of +% package |biblatex| with suitable options; in particular, +% according to the tradition in scientific works, the +% references are labelled with bracketed numbers as well +% as citations. +% \begin{macrocode} +\usepackage[autostyle]{csquotes} % necessary for biblatex +\usepackage[backend=biber, + style=numeric-comp, + citestyle=numeric, + sorting=nty, + natbib]{biblatex} % LaTeX specific bibliography handler +\addbibresource{references.bib}% bibliographic data base(s} +% \end{macrocode} +% +% Package |imakeidx| is loaded, but it is up to the user +% to specify command \texttt{\string\makeindex} with its +% options; in the sample template file |toptesi-scudo.tex| +% the index is made by configuring \cs{makeindex} +% by specifying only the \textsf{intoc} option, so as to +% have an entry for the index in the table of contents. +% The user who wants to prepare an index for his/her thesis +% is urged to read the |imakeidx| package documentation. +% \begin{macrocode} +\usepackage{imakeidx}% to generate automatic indices +% \end{macrocode} +% +% Eventually while using \pdfLaTeX we require the |indentfirst| +% package so as to indent the first paragraph after a +% sectioning command, according to a common usage in Europe +% and in Italy in particular. +% +% \begin{macrocode} +\ifPDFTeX \usepackage{indentfirst}\fi +\raggedbottom + +\AfterEndPreamble{\english}% Set English as default language + +% \end{macrocode} +% +% The |toptesi-scudo.sty| module contains also everything is +% needed to typeset the Ph.D. title page and the disclaimer +% page; remember that the \textsf{tipotesi=scudo} option to the +% class sets the default language to English, and inhibits +% loading the |topfront| extension file; therefore a +% complete new set of commands and a complete new title +% page environment are required to fill up the necessary +% information. +% +% We start with the default values for all +% pieces of information. Those macros that contain an empty +% expansion are obviously for mandatory data. Those that +% contain a text string insert default data, that can be +% possibly modified by suitable commands. Those that +% contain just macros insert into the title page the +% expansions of these macros. +% \begin{macrocode} +\TOPfrontfalse + +\providecommand*\@Ndissertation{Doctoral Dissertation} +\providecommand*\@Ndoctoralprogram{Doctoral Program in\xspace} +\providecommand*\@programname{} +\providecommand\@Cyclenumber{} +\providecommand*\@title{} +\providecommand*\@subtitle{\vspace{\stretch{1}}} +\providecommand*\@author{} +\providecommand*\@Nsupervisor{Supervisor}\providecommand*\@Nsupervisors{Supervisors} +\newcount\@supervisornumber +\providecommand*\@supervisorlist{} +\providecommand\@Nexaminationcommittee{Doctoral Examination Committee:} +\providecommand*\@Examinerlist{} +\providecommand*\@examlocation{Politecnico di Torino} +\providecommand*\@examinationdate{} +\providecommand*\@creativecommons{This thesis is licensed under a Creative Commons License, Attribution - Noncommercial- NoDerivative Works 4.0 International: see \url{www.creativecommons.org}. +The text may be reproduced for non-commercial purposes, provided that credit is given to the original author.} +\providecommand\@disclaimer{\noindent I hereby declare that +the contents and organisation of this dissertation constitute +my own original work and does not compromise in any way the +rights of third parties, including those relating to the +security of personal data.} + +% \end{macrocode} +% There are the user macros to change or define the +% required data; of course the mandatory data must be +% present in the student's thesis source file; the other +% data may be changed, but don't need to be changed: it +% depends on the university specifications, if any are given. +% +% In any case if the ``examiner list'' is not specified, so +% that the default list remains empty, no label and no list +% is typeset; therefore leaving this list empty is an easy +% and logical method for completely omitting such a list. +% +% \begin{macrocode} +\newcommand*\Ndissertation[1]{\gdef\@Ndissertation{#1}} +\newcommand*\Ndoctoralprogram[1]{\gdef\@Ndoctoralprogram{#1\xspace}} +\newcommand*\ProgramName[1]{\gdef\@programname{#1\xspace}} +\newcommand*\CycleNumber[1]{\gdef\@Cyclenumber{\ifblank{#1}{}{(#1 cycle)}}} +\renewcommand*\title[1]{\gdef\@title{#1}} +\newcommand*\subtitle[1]{\gdef\@subtitle{\ifblank{#1}{}{\medskip\par + {\Large #1\par}}\vspace{\stretch{1}}}} +\renewcommand*\author[1]{\gdef\@author{#1}} +\newcommand*\NSupervisor[2] + {\gdef\@Nsupervisor{#1}\gdef\@Nsupervisors{#2}} +\newcommand*\SupervisorList[1]{\gdef\@supervisorlist{#1}} +\newcommand\SupervisorNumber[1]{% + \ifblank{#1}{\@supervisornumber=0}{\@supervisornumber=#1}} +\newcommand\Nexaminationcommittee[1]{\gdef\@Nexaminationcommittee{#1}} +\newcommand*\ExaminerList[1]{\gdef\@Examinerlist{#1}} +\newcommand*\Nlocation[1]{\gdef\@examlocation{#1}} +\newcommand*\ExaminationDate[1]{\gdef\@examinationdate{#1}} + +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} \setbox\TPT@logobox\hbox{} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\PhDschoolLogo[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% + \ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth + \sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% + {\def\@logosede{#2}% + \includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +% \end{macrocode} +% Next the disclaimer and the signature macros are defined; +% the disclaimer text and the signature layout may be changed +% by these commands; but if the user does not use these +% macros, the name of the person who undersigns the disclaimer +% text is assumed to be the thesis author and the signature +% date is assumed to equal the examination date. +% +% Remember: the disclaimer text is very important, in the +% sense that the student writing his/her Ph.D.\ thesis must +% be completely aware that by undesigning that statement +% he/she assumes any legal liability for any event that +% might betray other people rights. A kind of +% infringement, of course, is plagiarism. Therefore the +% under signer must be completely aware that his/her signature +% is not just a simple bureaucratical action. +% \begin{macrocode} +\newcommand\Disclaimer[1]{\gdef\@disclaimer{#1}} +\newcommand\CClicence[1]{\gdef\@creativecommons{#1}} +\providecommand\@signature{% +\begin{flushright} +\parbox{0.5\textwidth}{\centering +\dotfill\\ +\@author\\ +Turin, \@examinationdate +}% +\end{flushright}} +\newcommand\Signature[1]{\gdef\@signature{#1}} +% \end{macrocode} +% The |ThesisTitlePage| environment is defined; in the +% opening commands the configuration file is read; +% this file may contain any kind of definition or +% redefinition by using the above commands with suitable +% arguments. +% The data possibly read from the configuration file now +% are available, or they may be entered in the body of the +% title page environment |ThesisTitlePage|. If some commands +% are repeated, the last ones, i.e.~those entered in the +% body of the environment, prevail. +% \begin{macrocode} +\newenvironment{ThesisTitlePage}{% Apertura +\InputIfFileExists{\jobname.cfg}{\relax}{\relax}% +}{%Chiusura +\begin{titlepage}\parindent=0pt +{\centering +\raisebox{-1ex}[0pt][0pt]{\makebox[\textwidth]{\printloghi}}\par +\vspace{\baselineskip} +\@Ndissertation\\ +\@Ndoctoralprogram \@programname\@Cyclenumber +\bigskip + +{\Huge\bfseries \@title\par} +\@subtitle +{\Large\bfseries \@author\par} +\smallskip +\mbox{* * * * * *} +\vspace{\stretch{1}} + +{\large\bfseries \ifcase\@supervisornumber +\relax\or \@Nsupervisor\else\@Nsupervisors\fi\par} +\@supervisorlist +\par} + +\vspace{\stretch{1}} + +\ifcsvoid{@Examinerlist}{\relax}{% +\noindent\begin{tabular}{@{}l} +\bfseries \@Nexaminationcommittee\\ +\@Examinerlist +\end{tabular}} + +\begin{center} +\raisebox{-3\baselineskip}[0pt][0pt]{% +\parbox{0.5\textwidth}{\centering +\@examlocation\\ +\@examinationdate}} +\end{center} +\end{titlepage} +% +\newpage\thispagestyle{empty} +\vspace*{\stretch{1}} +\@creativecommons +\vspace{3\baselineskip} + +\ifempty{\@keywords}{\relax}{Keywords: \@keywords\par +\vspace{2\baselineskip}} + +\@disclaimer +\vspace{3\baselineskip} + +\@signature} + +% \end{macrocode} +% The above code is almost everything is needed to enter +% the relevant data and to typeset the doctoral thesis +% and the signed disclaimer. But it is wise to enter +% some basic metadata for a reasonably well typeset \sigla{PDF} +% file. Notice that these metadata have nothing to do +% with the metadata required for \sigla{PDF/A} compliance; for +% the latter metadata it is necessary to load the |pdfx| +% package and enter the required metadata in a special +% way that is taken care by |pdfx|. Read the details in +% the Italian\discretionary{-}{}{-}English documentation +% |toptesi-it.pdf| that is part of the TOPtesi bundle. +% \begin{macrocode} +\providecommand*\subject{}\providecommand*\@subject{} +\renewcommand\subject[1]{\gdef\@subject{#1}} +\providecommand*\keywords{}\providecommand*\@keywords{} +\renewcommand\keywords[1]{\gdef\@keywords{#1}} +\AtBeginDocument{% Set some metadata + \hypersetup{% + pdftitle = {\@title}, + pdfauthor = {\@author}, + pdfsubject = {\@subject}, + pdfkeywords= {\@keywords} + } +} +% \end{macrocode} +% +% The School required also a colophon where it is explained +% how the thesis has been typeset and who are the authors +% of the \LaTeX\ code. +% +% Of course this colophon must be typeset in the last page, +% possibly an even one if the thesis is typeset with the +% |twoside| option in force. +% \begin{macrocode} +\AtEndDocument{% +\clearpage +\ifbool{@twoside}% +{\ifodd\value{page}\thispagestyle{empty}\newpage\fi}{\relax}% +\vspace*{\stretch{1}}% +\noindent +\begin{tabularx}{\textwidth}{Xp{0.45\textwidth}X} +& +This Ph.D.\ thesis has been typeset by means of the \TeX-system +facilities. The typesetting engine was +\ifPDFTeX + \ifcsdef{pdfLaTeX}{\pdfLaTeX}{pdf\/\LaTeX}% +\else + \ifLuaTeX + \ifcsdef{LuaLaTeX}{\LuaLaTeX}{Lua\/\LaTeX}% + \else + \ifcsdef{Xe}{\Xe\LaTeX}{Xe\/\LaTeX} + \fi +\fi. +The document class was \texttt{toptesi}, by Claudio Beccari, +with option \texttt{tipotesi\discretionary{}{=}{=}scudo}. +This class is available in every up-to-date and complete +\TeX-system installation. +& +\end{tabularx} +\vspace*{\stretch{2}}% +} +% \end{macrocode} + +%\iffalse +%</topscu> +%\fi +% +% \subsection{A configuration file} +% The following code generates a sample configuration file +% that the user can change at will after changing also its +% name; it can be used as a template for generating a really +% personal configuration file. Remember: this template file +% is named |toptesi.cfg|, but in order to use it for a +% specific thesis, whose main file is named +% |JohnSmithMSthesis.tex|, the configuration file must be % named |JohnSmithMSthesis.cfg|. % \iffalse %<*topcfg> @@ -3050,46 +6100,100 @@ Skipping any redefinition\MessageBreak}% %% can modify without restrictions in order to customise 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. -%% Use this file by copying it to another file to be named as the -%% thesis main file and with extension .cfg; This bundle will try -%% to read "\jobname.cfg"; if this file it does nothing. This means -%% that the provided file toptesi.cfg is to be used as a model, not -%% to% be used directly. +%% arguments to macros, add definitions and so on. +%% Use this file by copying the relevant section to another file +%% to be named as the thesis main file and with extension .cfg. +%% This bundle will try to read "\jobname.cfg"; if this file does +%% not exist, the bundle files don't do anything. This implies that +%% the provided file toptesi.cfg is to be used as a model, not to +%% be used directly. %%================================================================ %% -\ateneo{Politecnico di Torino} -\facolta{}% nessun nome di default/ no default name -\FacoltaDi{}% nessun prefisso per la facoltà/no default faculty label -%%\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} -%%\retrofrontespizio{Questo testo è soggetto alla Creative Commons Licence} +\ifmagistrale + \ateneo{Politecnico di Torino} + \facolta{}% nessun nome di default/ no default name for PoliTO + \FacoltaDi{}% nessun prefisso per la facoltà/no default faculty label for PoliTO + \CorsoDiLaureaIn{Corso di Laurea in} + \TesiDiLaurea{Tesi di Laurea Magistrale} + \InName{in} + %%\retrofrontespizio{Questo testo è soggetto alla + %% Creative Commons Licence} +\fi +\ifsecondaria + +\fi +\ifScuDo + \PhDschoolLogo{Logo-Scudo} + \Ndissertation{Docoral Dissertation} + \Ndoctoralprogram{Doctoral Program in\xspace} + \NSupervisor{Supervisor}{Supervisors} + \SupervisorNumber{1} + \Nexaminationcommittee{Doctoral Examination Committee:} + \Nlocation{Politecnico di Torino, Turin, Italy} + \Disclaimer{\noindent I hereby declare that the + contents and organisation of this dissertation + constitute my own original work and does not + compromise in any way the rights of third parties, + including those relating to the security of personal + data.} + \CClicence{This thesis is licensed under a Creative Commons + License, Attribution - Noncommercial- NoDerivative Works 4.0 + International: see \url{www.creativecommons.org}. + The text may be reproduced for non-commercial purposes, + provided that credit is given to the original author.} +\fi % \end{macrocode} % \iffalse %</topcfg> % \fi % % \subsection{The \texttt{topcoman.sty} code} -% This file may be used as an independent extension package for the \texttt{report} -% document class, and possibly for other classes +% This file may be used as an independent extension package +% for the \texttt{report} document class, and possibly for +% other classes. % \iffalse %<*topcmn> % \fi % -% 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, as it is by default; some -% authors prefer to use both symbols with different meanings, so this -% command lets them do so. This may be useful unless the XeTeX or LuaTeX -% typesetting% engine is used; in facts the Unicode math defines specific -% commands for setting any Latin or Greek mathematical letter in any possible -% font shape and series. +% 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, as it is by default; some +% authors prefer to use both symbols with different +% meanings, so this command lets them do so. This may be +% useful unless the \XeTeX\ or \LuaTeX\ typesetting engine +% is used; in facts the Unicode math defines specific +% commands for setting any Latin or Greek mathematical +% letter in any possible font shape and series. +% Actually with \XeLaTeX\ and \LuaLaTeX\ it is possible to +% invoke the |unicode-math| package wit the |style=\sigla{ISO}| +% option; in this way the \sigla{ISO} math typesetting become +% available; this includes the slanted Greek letters and +% many other facilities necessary to fulfil the \sigla{ISO} +% regulations for ``physical sciences and technology''. +% +% With \pdfLaTeX\ there are available several packages +% and font suitable for typesetting math according to +% the \sigla{ISO} regulations. The fonts Libertinus together +% with the math font LibertinusT1math are the best +% choice for this task; the |isomath| package can do +% an excellent work with other fonts; a ``poor man'' +% solution with the \pdfLaTeX\ typesetting program is +% given by the |pm-isomath| package; this latter package +% is, in facts, a poor man approach to the problem, so +% it has several limitations, but it avoids completely +% the problem of loading several other math alphabets, +% therefore avoiding to exhaust the limited number of +% math alphabets \pdfLaTeX\ can handle. +% +% This |topcoman| module offers another ``poor man'' +% solution only for using by default slanted capital +% Greek letters taken from the math italic font; the +% upright ones are still available within the |\mathrm| +% command argument. +% Attention: \cs{DeclareSlantedCapitalGreekLetters} is defined +% only when using \prog{pdflatex}; with the other two engines +% it is disabled and produces a warning. % \begin{macrocode} \RequirePackage{iftex} \ifPDFTeX @@ -3105,17 +6209,24 @@ Skipping any redefinition\MessageBreak}% \mathchardef\Phi="7108 \mathchardef\Psi="7109 \mathchardef\Omega="710A -}\fi +}\else +\newcommand*\DeclareSlantedCapitalGreekLetters{% +\PackageWarning{toptesi}{% + When using LuaLaTeX or XeLaTeX specify\MessageBreak + option math-style=ISO to package unicode-math\MessageBreak} +} +\fi % \end{macrocode} -% -% The |\ensuremath| command is defined in the \LaTeXe\ kernel from a certain -% version on; should the user employ a really old \LaTeXe\ implementation, -% this definition supplies the missing one. Should the |babel| package not -% be loaded, then we provide the useful command |\textormath| provided by -% |babel|. We define the text version of the subscript and ensure also -% that the |textcomp| package is loaded; of course if it is already loaded -% the |\RequirePackage| command performs the necessary tests and possibly -% does not load anything. +% The |\ensuremath| command is defined in the \LaTeXe\ +% kernel from a certain version on; should the user employ +% a really old \LaTeXe\ implementation, this definition +% supplies the missing one. Should the |babel| package +% not be loaded, then we provide the useful command +% |\textormath| provided by |babel|. We define the text +% version of the subscript and ensure also that the +% |textcomp| package is loaded; of course if it is already +% loaded the |\RequirePackage| command performs the +% necessary tests and possibly does not load anything. % \begin{macrocode} \providecommand*\ensuremath[1]{\ifmmode#1\else$#1$\fi}% \providecommand*\textormath{} @@ -3127,25 +6238,36 @@ Skipping any redefinition\MessageBreak}% \RequirePackage{textcomp} \fi % \end{macrocode} -% The following commands may be already defined; should they be missing they -% are supplied here. Most of them are already defined in the Italian option -% to the \texttt{babel} language if the thesis is typeset with \textsf{pdflatex} -% that loads that package; these commands are not predefined if the thesis is -% typeset with \XeLaTeX\ or \LuaLaTeX\ that do not load the \texttt{babel} -% package; 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. +% The following commands may be already defined; should +% they be missing they are supplied here. Most of them +% are already defined in the Italian option to the +% \texttt{babel} language if the thesis is typeset with +% \textsf{pdflatex} that loads that package; these commands +% are not predefined if the thesis is typeset with \XeLaTeX\ +% or \LuaLaTeX\ that do not load the \texttt{babel} package; +% 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. These commands are also defined by the various +% \sigla{ISO} math compliant packages, in particular by |pm-isomath|; +% no problem: if they already defined they don't get redefined. % \begin{macrocode} \providecommand{\ohm}{\textormath{\textohm}{\mathrm{\Omega}}} -\providecommand{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}} -\providecommand{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}} +\@ifpackageloaded{toptesi}{ +\providecommand\ped{}\providecommand\ap{} +\renewcommand*{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}} +\renewcommand*{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}}{% +\providecommand*{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}}% +\providecommand*{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}} \@ifpackageloaded{siunitx}{\def\unit#1{\si{\,#1}}}{% -\providecommand\unit[1]{\ensuremath{{\mathrm{\,#1}}}}} +\providecommand\unit{}% +\renewcommand\unit[1]{\ensuremath{{\mathrm{\,#1}}}} +} \providecommand{\gei}{\ensuremath{{\mathop{\mathrm{j}}\nolimits}}} \providecommand{\eu}{\ensuremath{{\mathop{\mathrm{e}}\nolimits}}} \providecommand{\micro}{\textormath{\textmu}{% \ifPDFTeX - \ifx\muup\undefined\mu\else\muup\fi + \ifdefined\muup\muup\else\mbox{\textmu}\fi \else \mathup{\mu}% \fi @@ -3153,88 +6275,120 @@ Skipping any redefinition\MessageBreak}% \providecommand{\gradi}{\textormath{\textdegree}{^\circ}} % \end{macrocode} % -% The next set of definitions are used to list a program file. There are finer -% 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 left margin which is an `integer multiple of 8' spaces. 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. -% For what concerns the macro |\obeyspaces| (already defined in the \LaTeXe\ -% kernel) we had to change it in order to abolish a conflict with package |ABC| -% used to typeset music. The latter package is about 15 years younger than -% |topcoman|, so it should be this latter package duty to avoid conflicts with -% pre existing packages; on the opposite we accepted the suggestion of Enrico -% Gregorio, the author of |ABC|, whom we thank very much, because his package -% is much more complicated than this one, so that the conflict is avoided -% more easily by correcting |topcoman|. -% \begin{macrocode} -\providecommand*{\programmafont}{\ttfamily\footnotesize} -\def\listing#1{\par\begingroup -\programma \input #1 \endgroup} -\def\uncatcodespecials{\def\do##1{\catcode`##1=12}\dospecials} -\def\programma{\programmafont \parindent 0pt -\def\par{\leavevmode\egroup\box0\endgraf} -\catcode`\`=\active \catcode`\^^I=\active \catcode`\^^L=\active -\obeylines \uncatcodespecials \obeyspaces -\begingroup\lccode`~=`\ \lowercase{\endgroup\global\let~}\ % -\everypar{\startbox}} -% \end{macrocode} -% The above code does the whole work, except the alignment to the tab stops and the -% new page command associated to the form feed ASCII character that are done with the -% following definitions. -% \begin{macrocode} -\newdimen\tabwidth -\setbox0=\hbox{\programmafont\space} -\tabwidth=8\wd0 -\def\startbox{\setbox0=\hbox\bgroup} -%{\obeyspaces\global\let =\space} -{\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 \global\let^^L\newpage} -% \end{macrocode} -% -% Remember that the comma as a decimal separator is required for all languages -% except English. If you use this module outside TOPtesi, but as an extension -% of other classes or modules, it's up to you to define an ``intelligent comma'' -% macro or to load either the |icomma.sty| or the |nccomma.sty| modules that -% define such a macro: the |icomma| package defines the comma as a mathematical -% active character that recognises the subsequent token as a space token so as -% to insert a punctuation comma; |nccomma| behaves more or less as the macro -% defined in TOPtesi and recognises if the following token is a digit so as to -% use a decimal comma. -% -% The following commands are used to write the ``lower case'' roman numerals -% with the small-caps font; in order to avoid complications with missing fonts -% or math environments we make sure to typeset these numerals with script size -% capitals; this solution is not probably the best one but it works; it typesets -% these roman numerals with the current font; in TOPtesi roman numerals are used -% only for folios, but in order to comply with the |hyperref| module, I avoided -% using this new macro for folios; in other situations there are no problems -% with the choice of font shapes and series. We need a robust command in order -% to set the script math size +% Before this version 6.xx.yy this package used to define +% the command |\listing| for listing program sources; those +% definitions got very obsolete in front of several packages +% already available for this task. For example the package +% |listings|, very elegant also for the various configurations +% it can use; un fortunately it works fine only for verbatim +% sources that contain only \textsc{ascii} characters; yes, +% it is possible the definition of special commands to typeset +% isolated characters not belonging to the \textsc{ascii} +% table, but it is an error prone process. Giving up the +% niceties of |listings|, the |fancyvrb| works very fine +% with \sigla{UNICODE} and UTF-8 encoded characters. +% +% For backwards compatibility we maintain the command +% |\listing| as a user interface to the |VerbatimInput| +% of package |fancyvrb| with an initial setting of a +%|\small| font size. +% \begin{macrocode} +\RequirePackage{fancyvrb} +\fvset{fontsize=\small} +\let\listing\VerbatimInput +% \end{macrocode} +% Of course before using |\listing| the user can set any other +% special configuration s/he desiders among those usable with +% package |fancyvrb|; the default set up shown above is good +% for \LaTeX\ code input, as wel as for any language, whose +% source lines are shorter than 75--80 characters, depending +% on the normal font size and the document text width; the user +% can edit the source file as well as setting a smaller font +% size that |\small|. In certain circumstances the user +% should accept protruding lines as well as a compromise +% between editing the source file and selecting a smaller +% font size. This is not a bug of the package, nor a fault +% of the algorithm; verbatim typesetting is always problematic. +% +% Let us come to another specific typesetting problem: the +% double role the comma character plays in math mode: a +% decimal separator and a punctuation mark. +% +% Remember that the comma as a decimal separator is +% required for all languages except English. If you +% use this module outside TOPtesi, but as an extension +% of other classes or modules, it's up to you to define +% an ``intelligent comma'' macro or to load either the +% |icomma.sty| or the |ncccomma.sty| modules that define +% such a macro: the |icomma| package defines the comma +% as a mathematical active character that recognises if the +% subsequent token is a space token so as to insert a +% punctuation comma; |ncccomma| behaves more or less as +% the macro defined in TOPtesi and recognises if the +% following token is a digit so as to use a decimal comma. +% +% This particular package |topcoman| does not define any +% intelligent comma command; therefore it does not do +% anything for other packages; the main |toptesi.sty| +% packages already defines a form of intelligent comma, +% therefore |topcomand| does not have to add anything to +% |toptesi|. But if this package is used independently +% from |toptesi|, the user has two coices: either loads +% one of the two packages mentioned above, or, if s/he +% is typesetting in Italian, the |italian| module for +% |babel| already defines the intelligent comma, but its +% definition is disabled by default; the use can turn it +% on and off by using the commands |\IntelligentComma| +% and |\NoIntelligentComma|. +% +% The solution of the solutions would be using the |siunitx| +% package, whose command |\num| handles any fractional +% decimal number in the proper way adding also the digit +% triplets separation of digits when they exceed the number +% of four before and/or after the decimal separator. In +% many cases this might be a heavy burden to load a whole +% complex package just for this task, but |siunitx| +% offers many other functionalities, so that it would be +% a good idea if the user loads that excellent package. +% +% The following commands are used to write the +% ``lower case'' roman numerals with the small-caps font; +% in order to avoid complications with missing fonts +% or with math environments, we make sure to typeset these +% numerals with script size capitals; this solution is +% not probably the best one but it works; it typesets +% these roman numerals with the current font; in TOPtesi +% roman numerals are used only for folios, but in order +% to comply with the |hyperref| module, I avoided using +% this new macro for folios; in other situations there +% are no problems with the choice of font shapes and +% series. We need a robust command in order to set the +% script math size % \begin{macrocode} \DeclareRobustCommand*{\simulatedSC}[1]{% {\mbox{$\relax$}\fontsize{\sf@size}{\f@baselineskip}\selectfont#1}}% % \end{macrocode} % -% A user, Antonio Mele, 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. +% A user, Antonio Mele, suggested and requested the +% possibility of having the figure and table names +% inserted automatically when the |\ref| command is +% issued. Actually this functionality is provided by +% package |hyperref|, but, in my opinion, it works fine +% in English, not in other languages. I do not think +% the solution reported here solves the problems that +% arise when a document is typeset in Italian. In any +% case the definitions are here; they can be enabled and +% disabled; by default they are disabled. +% +% 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. As already said, by default the +% feature is disabled. % \begin{macrocode} \def\ft@figure{\iflanguage{italian}{\MakeLowercase{\figurename}}% {\figurename}~} @@ -3252,7 +6406,1987 @@ Skipping any redefinition\MessageBreak}% %</topcmn> % \fi % +%\iffalse +%<*topmon>^^A MONOGRAFIA -- TRIENNALE +%\fi +%\subsection{The \texttt{monografia} module code} +% We start by checking if certain file have ben loaded and in +% case they get loaded. We check if certain switches are defined, +% and in case such switches are defined. +% \begin{macrocode} +\monografiatrue +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} + +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@autoretitolo}{\newif\if@utoretitolo \@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle \@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding \@bindingfalse}{} + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue}{} +\ifcsundef{ifevenboxes}{\newif\ifevenboxes \evenboxesfalse}{} +% \end{macrocode} +% We define the applicable options. +% \begin{macrocode} +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +%\ProcessOptions*\relax +\ProcessOptions\relax + +% \end{macrocode} +% We define the titling commands... +% \begin{macrocode} +\def\monografia#1{\gdef\@titolo{#1}} +\let\titolo\monografia +\let\@stitle\empty + +\def\sottotitolo#1{\gdef\@subtitle{#1}} +% \end{macrocode} +% \dots and the other setting or resetting commands to be used +% within the |ThesiTitlePage| environment. Remember that all +% these commands may be used within the configuration file, +% if the user wants to use such file. +% \begin{macrocode} +\providecommand\@materia{} +\def\Materia#1{\gdef\@materia{#1}} +\let\materia\Materia +\providecommand\@nomerelatoresingolare{} +\providecommand\@nomerelatoreplurale{} +\newcommand\NomeRelatore[2]{% + \gdef\@nomerelatoresingolare{#1}\gdef\@nomerelatoreplurale{#2}} +\NomeRelatore{Relatore}{Relatori} +\providecommand\@principaladviser{} +\def\relatore#1{\gdef\@principaladviser{#1}} +\providecommand\@secondadviser{}\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\providecommand\@thirdadviser{} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} + +\unless\ifcsname iffemminile\endcsname + \newif\iffemminile\femminilefalse +\fi +\unless\ifcsname ifplurale\endcsname + \newif\ifplurale\pluralefalse +\fi +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} + +\providecommand\IDlabel{\\\quad matricola\ } + +\edef\@submitdate{{\let\today\relax\unskip\today}} + + +\def\sedutadilaurea#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \def\@tempA{#2}% + \ifx\@tempA\empty + \def\@submitdate{#1}% + \else + \unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi + \fi +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} + +\newcommand\NomeCorsoDiStudi{Corso di laurea in\xspace} +\providecommand\@ateneo{} +\newcommand\ateneo[1]{\gdef\@ateneo{#1}} +\providecommand\@NomeAteneo{} +\newcommand\NomeAteneo[1]{\gdef\@NomeAteneo{#1}} +\let\nomeateneo\NomeAteneo +% \end{macrocode} +% The following command accepts a first optional argument that +% should contain an ordinal number, in general an uppercase +% roman numeral, that optionally qualifies the ``academic +% structure'' in charge of the degree course. The user might, +% for example specify something as +% |\struttura[III]{Faculty of Engineering}|, if such kind of +% information is required. +% \begin{macrocode} +\providecommand\@strutturadi{} +\newcommand\StrutturaDi[1]{\gdef\@strutturadi{#1\unskip\xspace}} +\newcommand\struttura[2][]{\gdef\@struttura{\ifempty{#1}{}{#1 }\@strutturadi #2}} +% \end{macrocode} +% Generally bachelor degree courses are not developed within +% international agreements such as Erasmus, but it may not be +% excluded; therefore several University names and several +% university logos might be necessary. The following is the +% general machinery for queuing several logos within a horizontal +% box to be output at the proper moment. Remember, though, that +% if the logos are output in the lower half of the page, the +% top of the title page should contain the university name +% list (if this list does not fit in one line, it is necessary +% to use some tricks described in the Italian documentation +% |toptesi-it.pdf|); but if the logos contain also the name +% of the university, and are printed at the top of the page, +% the university name list becomes unnecessary. +% \begin{macrocode} +\ifcsundef{TPT@logospace}{\newlength{\TPT@logospace}\TPT@logospace=3em}{} +\ifcsundef{TPT@logobox}{\newsavebox{\TPT@logobox}}{} +\ifcsundef{TPT@logoheight}{\newdimen\TPT@logoheight}{} +\providecommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% + \ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth + \sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% + {\def\@logosede{#2}% + \includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\providecommand\printloghi{} +\renewcommand\printloghi{% +\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +% \end{macrocode} +% The name of a company tutor may be required if the bachelor +% degree final work is developed within an institution or +% a company external to the university. +% \begin{macrocode} +\providecommand\@tutoreaziendale{} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\providecommand\@tutoreaziendalename{Supervisore Aziendale} +\def\NomeTutoreAziendale#1{\gdef\@tutoreaziendalename{#1}} +% \end{macrocode} +% The following command set up the information for a legal or +% copyright page; this information might contain just a simple +% statement that indicates a copyright notice or a licence that +% specifies the clauses for the intellectual property of the +% work. But it might also contain a disclaimer where the only +% author takes his/her responsibility and liability for not +% infringing any applicable law on intellectual property; +% such disclaimer should be dated and undersigned by the (only) +% author. Therefore within this |\retrofrontespizio| command +% two more commands are optionally used: |\luogo| to establish +% the location of the signature, and |\giorno| to establish a +% signature date different from the current date. If the |\giorno| +% is not specified, its value maintains a meaningless default +% string, and upon testing for such a string, no location, +% date and signature is typeset in the legal page; if the +% current date should be used, the user should specify +% |\giorno{}|, with a really empty argument. +% \begin{macrocode} +\let\@luogo\empty\def\@giorno{*} +\def\luogo#1{\def\@luogo{#1}}% +\def\giorno#1{\def\@giorno{#1}} +\newcommand\retrofrontespizio[1]{% +\long\gdef\@retrofrontespizio{#1}} +% \end{macrocode} +% We restart with the definition of other data setting commands. +% \begin{macrocode} +\providecommand\@corsodistudi{} +\newcommand\corsodistudi[1]{\gdef\@corsodistudi{#1}} +\let\corsodilaureain\corsodistudi +\providecommand\@monografia{Monografia} +\newcommand\NomeElaborato[1]{\gdef\@monografia{#1}} +\let\NomeMonografia\NomeElaborato +\def\@nomecandidato{\ifclassica Laureando\else Candidato\fi} +\def\@nomecandidata{\ifclassica Laureanda\else Candidata\fi} +\def\@nomecandidati{\ifclassica Laureandi\else Candidati\fi} +\def\@nomecandidate{\ifclassica Laureande\else Candidate\fi} +% \end{macrocode} +% The label for the candidate list requires a list of comma +% separated names, to a maximum of four names; In order they +% should be the masculine singular, the plural masculine, the +% singular feminine, and the plural feminine names. No one is +% mandatory, and the list may be completely empty if the label +% should remain blank. The list is scanned and the names are +% assigned to some internal variables that will be used according +% the the gender and the number of candidates. If the list is void, +% no name is ging to be used at all, and the candidates list is +% typeset as a centred one without any label. +% +% In this way, these settings are all valid: +%\begin{ttsintassi} +%\cs{TitoloListaCandidati}\Marg{} +%\cs{TitoloListaCandidati}\Marg{Estudiante}\Marg{Estudiantes} +%\cs{TitoloListaCandidati}\Marg{ExamenKandidat}\Marg{ExamenKandidaten}\% +%\qquad\Marg{ExamenKandidatin}\Marg{ExamenKandidatinen} +%\end{ttsintassi} +% This command, as it may be seen, may be used also to set the +% name list in languages different from Italian. +% It goes by itself that if the user typesets the thesis in a +% language where names are gender indifferent (as English, +% Spanish, and other ones) s/he has two choices: ether s/he +% uses the command with just two arguments, as shown above, +% and uses only the masculine commands |\candidato|, +% |\secondocandidato|, and |\terzocoandidato| even with names +% of female students, or s/he specifies the same names in the +% arguments~3 and~4, as in arguments ~1 and~2. Lacking this +% action, the corresponding titling names are blank. +% \begin{macrocode} +\newcommand\TitoloListaCandidati[1]{\CandidateNames#1,,,,!} +\def\CandidateNames#1,#2,#3,#4,!{% + \gdef\@nomecandidato{#1}% Masc/neutr-sing + \gdef\@nomecandidati{#2}% Masc/neutr-plur + \gdef\@nomecandidata{#3}% Fem-sing + \gdef\@nomecandidate{#4}% Fem-plur +} +\providecommand\Relatore{Relatore} +\newcommand\AdvisorName[1]{\gdef\Relatore{#1}} +\providecommand\Correlatore{Correlatore} +\providecommand\Correlatori{Correlatori} +\newcommand\CoAdvisorName[2]{\gdef\Correlatore{#1}% + \gdef\Correlatori{#2}} +% \end{macrocode} +% A new boolean is defined in order to have a suitable switch to set the logo(s) ``string'' at the top or in the second half of the page. +% \begin{macrocode} +\ifcsundef{iftopTPTlogos}{\newbool{topTPTlogos} \booltrue{topTPTlogos}}{} +% \end{macrodoe} +% We eventually define the whole construction of the title +% page with this new command defined by means of the |xparse| +% package facilities. This environment accepts an optional +% asterisk; its presence means th the logo(s) string should +% be typeset in the lower half of the title page; differently +% from the \LaTeX\ kernel environments that accept an optional +% asterisk that becomes part of the environment name, and must +% be repeated in the closing environment statement, with the +% |xparse| facilities the asterisk is just an argument to the +% argument list of the opening command: therefore the source +% file contains an opening statement of the form +% |\begin{environment}*|, not |\begin{environment*}|. The user +% should remember tis peculiar way of specifying certain optional +% arguments, in particular the optional ``star'' one. +% +% Another important difference is that environments defined +% with the |xparse| facilities may receive optional and +% mandatory arguments of many kinds in the opening command, +% but differently form the standard \LaTeX\ kernel environments +% such arguments are available not only in the opening commands, +% but also in the closing ones. We actually don't use this +% property during the definition of the |ThesisTitlePage| +% environment, but we preferred to use the previously defined +% switch. +% \begin{macrocode} +\NewDocumentEnvironment{ThesisTitlePage}{s} +{% OPENING +\IfBooleanTF{#1}{\boolfalse{topTPTlogos}}{\booltrue{topTPTlogos}}% + \begin{titlepage} + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin + \IfFileExists{\jobname.cfg}{\input{\jobname.cfg}% + }{%C + \PackageWarning{monografia}{No configuration file found}% + }%C +}{% CLOSING + \ifbool{topTPTlogos}{\noindent\raisebox{-0.5em}[\z@][\z@]{\makebox[\textwidth]{\printloghi}}\par\bigskip}{} + \ifdefempty{\ateneo}{}{{\centering\huge \@ateneo\par}} + \ifdefempty{\@NomeAteneo}{}{\medskip{\centering\large + \expandafter\MakeUppercase\expandafter{\@NomeAteneo}\par}} + \ifdefempty{\@strutturadi}{}{\vspace{\stretch{0.1}}\par{\centering \Large\@struttura\par}} + \ifdefempty{\@corsodistudi}{}{\bigskip{\centering\large \NomeCorsoDiStudi\ \@corsodistudi\par}} + \ifdefempty{\@materia}{}{\medskip{\centering\large\@materia\par}} + \vspace{\stretch{0.25}} + {\centering\large \@monografia\par} + \vspace{\stretch{0.1}} + {\centering\LARGE\bfseries \@titolo\par} + \ifdefempty{\@subtitle}{\vspace{\stretch{0.3}}}{\bigskip + {\centering\large\@subtitle\par}} + \ifbool{topTPTlogos}{}{\vspace{3em}\par\centering\printloghi\par} + \vspace{\stretch{0.25}} + +\ifdefempty{\@principaladviser}{\def\BoxRelatori{}}{% + \def\BoxRelatori{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \ifdefempty{\@secondadviser}% + {\let\@nomerelatore\@nomerelatoresingolare}% + {\let\@nomerelatore\@nomerelatoreplurale}% + \textbf{\@nomerelatore}}\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifdefempty{\@secondadviser}{}{% + \ifclassica + \ifdefempty{\@thirdadviser}{% + \ifdefempty{\@secondadviser}{}{% + \\[1.5ex]\textbf{\Correlatore:}% + } + }{% + \\[1.5ex]\textbf{\Correlatori:}% + } + \fi + \\[.6ex] + \hbox{{\large\textrm{\protect\@secondadviser}}}% + } + \ifdefempty{\@thirdadviser}{}{% + \\[.6ex] + \hbox{{\large\textrm{\protect\@thirdadviser}}}% + } + \end{tabular}% + }% +} +% +\def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}}% +\def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@thirdauthor\endtabular}}% + +\def\BoxCandidati{% + \begin{tabular}[t]{l} + \hbox{\unless\ifclassica\large\fi + \textbf{\ifplurale + \iffemminile\@nomecandidate\else\@nomecandidati\fi + \else + \iffemminile\@nomecandidata\else\@nomecandidato\fi + \fi}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% +}% +\unless\ifclassica + \ifdefempty{\BoxRelatori}{%Bachelor degree without supervisors + \noindent\makebox[\textwidth]{\tabular[t]{@{}c@{}} + \unless\ifclassica\large\fi + \textbf{\ifplurale + \iffemminile\@nomecandidate\else\@nomecandidati\fi + \else + \iffemminile\@nomecandidata\else\@nomecandidato\fi + \fi}\\[.6ex] + \@author + \ifcsvoid{@secondauthor}{}{\\ \@secondauthor} + \ifcsvoid{@thirdauthor}{}{\\ \@thirdauthor} + \endtabular}% + }{% + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par + \vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \noindent + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}% + \fi} +\else + \noindent + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}% +\fi +\par\vspace*{\stretch{0.5}} +\ifdefempty{\@tutoreaziendale}{\relax}{\begin{center} +\textbf{\@tutoreaziendalename}\\[0.6ex] +\@tutoreaziendale +\end{center}} +\noindent\raisebox{-\baselineskip}[0pt][0pt]{% + \makebox[\textwidth]{\@submitdate}}% +\end{titlepage}\newpage +% Legal/Copyright page + \ifdefempty{\@retrofrontespizio}{}{\thispagestyle{empty}% + \vspace*{\stretch{1}}\par + \@retrofrontespizio\par + \ifdefstring{\@giorno}{*}{}{\medskip + \noindent + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lc@{}} + \ifdefempty{\@luogo}{}{\@luogo, }% + \ifdefempty{\@giorno}{\today}{\@giorno} + & \@@author\\[3ex] + & \makebox[0.5\textwidth]{\dotfill} + \end{tabular*}\par} + \newpage} +} +% \end{macrocode} +% This is the end of this module code. +%\iffalse +%</topmon> +%\fi +% +%\iffalse +%<*topmag>^^A MAGISTRALE +%\fi +% \subsection{Code for \opz{magistrale}} +% Here we document the code for the \opz{magistrale} option. +% It is a little more complicated than the code for other +% thesis types, because the title page may be typeset in different +% modes, especially for theses in the humanities domain where +% they might be typeset in more than one volume (tome). +% +% We start by providing the necessary commands, without +% duplicating those provided by the calling package |toptesi|. +% Nevertheless this module may be used as a standalone one, +% i.e.\ a package loaded by a different class; may be not +% always and not with any class, but the idea is this one. +% In facts it this module does not receive the suitable +% settings from package |toptesi|,it is possible to call it +% with the suitable options as explained below. +% \begin{macrocode} +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifScuDo}{\newif\ifScuDo \ScuDofalse}{} +\ifcsundef{ifmonografia}{\newif\ifmonografia\monografiafalse}{} +\ifcsundef{iftriennale}{\newif\iftriennale\triennalefalse}{} +\ifcsundef{ifmagistrale}{\newif\ifmagistrale\magistralefalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifsecondaria}{\newif\ifsecondaria\secondariafalse}{} +\ifcsundef{ifplurale}{\newif\ifplurale\pluralefalse}{} +\ifcsundef{iffemminile}{\newif\iffemminile\femminilefalse}{} + +\magistraletrue + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfrontfalse +\newif\ifevenboxes \evenboxesfalse}{} + +% \end{macrocode} +% We provide for the counter |tomo| and for a new definition +% the command |\tomo|; this new definition does not trigger +% the production of a title page as it does with the definition +% of package |toptesi.sty|; it accepts an optional argument, +% the tome (arabic) number (that shall be transformed into a +% capital roman one while typesetting the title page); if this +% number is not specified the counter value is stepped up +% with the |\refstepconter| macro that renders it accessible +% to the |\label| command; otherwise a value equal to the +% given number minus one is loaded and afterwars ``refstepped'' +% up in the same way. +% +% Since \LaTeX\ counter settings are global, the value kept +% in the counter remains available anyhow; therefore it is +% not excluded that multiple tomes might be typeset in one +% output \sigla{PDF} file to be split in separate files as described +% in section~\ref{sec:topmagistrale}; I did not test this +% functionality but I do not exclude it.^^A CONTROLLARE +% \begin{macrocode} +\ifcsundef{c@tomo}{\newcounter{tomo}{\setcounter{tomo}{0}}}{} +\providecommand\tomo{} +\ifcsundef{tomo}{\renewcommand\tomo[1][]{% + \ifstrequal{#1}{}{}{\setcounter{tomo}{\numexpr#1-1}}% + \refstepcounter{tomo}}}{} +% \end{macrocode} +% +% We define the options that set the same switches as those set +% by the class. If another class different from |toptesi| is used, +% it is possible that \opz{14pt} produces errors or does not +% produce the desired setting of the normal size to 14pt. +% \begin{macrocode} +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{14pt}{\@xivpttrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +\ProcessOptions*\relax +% \end{macrocode} +% +% We define two different page styles to be used normally +% or when the |classica| option is in force. Both redefine +% the text grid to be more or less centred on the physical +% page; since it is the first page, no binding correction +% is possibly taken care of, because the first page does +% not suffer from the curvature and thickness of the bound +% thesis. The headings and footers in both cases are already +% filled up with suitable title page data, therefore their +% space is used instead of wasted. +% \begin{macrocode} +\def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddfoot{\vbox to 0.05\paperheight{\vss + \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% + \let\@evenfoot\@oddfoot + \def\@oddhead{% + \vbox to\headheight{\vss\iftopTPTlogos + \hbox to\textwidth{% + \headstrut\hfil + \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% + }\fi + \ifcsvoid{@ateneo}{}{\vskip\smallskipamount + \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + \vss + }% + }% + \let\@evenhead\@oddhead + \def\chaptermark##1{}\def\sectionmark##1{}% +} + +\def\ps@classica{\let\@mkboth\markboth + \def\@oddhead{\vbox{% + \setbox256=\hbox{\LARGE\MakeUppercase{\@ateneo}} + \unless\ifdim\wd256<\textwidth + \setbox256=\hbox{\resizebox{\textwidth}{!}{\box256}}% + \fi + \hbox to \hsize{\hss\box256\hss}% + \ifclassica + \hbox to \hsize{\hfil\vrule\@width\z@ + \@height2ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}% + \fi + }}% + \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss + \ifclassica + \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% + \fi + \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% + }% + \let\@evenhead\@oddhead + \let\@evenfoot\@oddfoot +}% +% \end{macrocode} +% +% Some redefinitions to handle both the heading label of +% the authors block and the proper gender of such names. +% \begin{macrocode} +\newif\iffemminile +%\newif\ifdottorato \dottoratofalse +%\newif\iftriennale \triennalefalse + +\ifTOPfront\ifclassica +\def\Candidato{Laureando} +\def\Candidata{Laureanda} +\def\Candidati{Laureandi} +\def\Candidate{Laureande} +\fi\fi +% \end{macrocode} +% +% We prepare the |titolo| command. Such command accepts +% a short title string no more, no less than the \LaTeX\ +% sectioning commands. It is always advisable to use short +% titles; nevertheless when the |classica| |autoretitolo| +% option is in force, long titles don't fit into the page +% headings, therefore an alternative short title is desirable. +% Long titles may be also shortened by transferring part of +% their information to a subtitle; but this must be an +% author's decision, it cannot be automated. Therefore +% a |\sottotitolo| command is also provided. +% \begin{macrocode} +\let\@stitle\empty % default short title string + +\newcommand*{\titolo}[2][]{% +\ifstrequal{#1}{}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% + \gdef\@titolo{#2}% +}% +\def\sottotitolo#1{\gdef\@subtitle{#1}} + +% \end{macrocode} +% +% The defining commands for both the preset fixed strings +% and the variable data strings are defined; somewhere +% these strings receive also the preset values; some of the +% following strings are used to modify such preset values, +% very useful to localise such strings for a particular language. +% \begin{macrocode} +\let\@materia\empty +\def\Materia#1{\def\@materia{#1}}\let\materia\Materia +\def\relatore#1{\gdef\@principaladviser{#1}} +\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} +\def\sedutadilaurea#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \ifstrequal{#2}{}% + {\def\@submitdate{#1}}% + {\unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi} +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} +\def\annoaccademico#1{% +\ifclassica + \def\@submitdate{{\large\textsc{\AnnoAccademico}}% + {\Large\s@tanno#1!}} +\else + \PackageWarning{toptesi}{\string\annoaccademico\space + is usable only when the\MessageBreak + `classica' option is in force}% + \def\@submitdate{\AnnoAccademico\ #1 --- + Needs the `classica' option} +\fi} +\def\s@tanno#1-#2!{\oldstylenums{#1}\EnDash\oldstylenums{#2}} + +\def\EnDash{{\settowidth{\dimen@}{\large\scshape 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@}}} +\def\corsodilaurea#1{\gdef\@corso{#1}} +\def\ateneo#1{\gdef\@ateneo{#1}} +\def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} +\newcommand\facolta[2][]{\gdef\@facname{#2}\gdef\@facnumber{#1}} +\let\struttura\facolta + +% \end{macrocode} +% +% Here we define the necessary commands to fill up a comma +% separated list of logo graphic file names; we define +% everything up to the |\printlogos| command that provides +% to printing a list of images, duly separated by adequate +% space, all scaled to the same height, and, possibly, even +% the whole logo string duly scaled to fit in the title page +% width. The |\logosede| command, that can be used several +% times with different logo file names, accepts an optional +% argument consisting in a dimension; it is used to scale the +% height of the logo image to the desired value, so that the +% whole string of images does not have unusual differences +% logo heights. This dimension id preset to one seventh of +% the |\textwidth| and on the average it is well suited. With +% the standard |toptesi| class printed on A4 paper, such height +% equals 25\,mm; of course on smaller paper it is proportionally +% small; on American sized sheets it may be a little larger, +% but in general it is adequate to the page size. +% \begin{macrocode} +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +% \end{macrocode} +% +% Still more commands to define the necessary string data. +% For the ID number label the same remarks made in +% section~\ref{sec:topfront} hold true. +% \begin{macrocode} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\newcommand\retrofrontespizio[1]{\long\gdef\@retrofrontespizio{#1}} +\newcommand\FacoltaDi[1]{\gdef\@faculty{#1}} +\let\StrutturaDidattica\FacoltaDi +\newcommand\CorsoDiLaureaIn[1]{\gdef\@laureaname{#1}} +\newcommand\TesiDiLaurea[1]{\gdef\@TesiDiLaurea{#1}} +\newcommand\InName[1]{\gdef\@InName{#1}} +\newcommand\CandidateName[1]{\gdef\@nomecandidato{#1}} +\newcommand\AdvisorName[1]{\gdef\Relatore{#1}\gdef\Relatori{#1}} +\newcommand\CoAdvisorName[1]{\gdef\Correlatore{#1}\gdef\Correlatori{#1}} +\newcommand\TutorName[1]{\gdef\Tutore{#1}} +\newcommand\NomeTutoreAziendale[1]{\gdef\@tutoreaziendalename{#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}} +\newcommand\IDlabel{\\\quad matricola:\xspace} +\IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}% + {\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}} +% \end{macrocode} +% +% Here we define the preset strings; most of the are empty +% strings, but some are real words; the setting commands +% listed before can easily be used to localise such string +% in different languages. +% \begin{macrocode} +\@ifundefined{@titolo}{\def\@titolo{}}{} + +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\IDlabel{\\\quad matricola\ } +\@ifundefined{@principaladviser}{\def\@principaladviser{}}{} +\@ifundefined{@secondadviser}{\def\@secondadviser{}}{} +\@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} +\@ifundefined{@tutore}{\def\@tutore{}}{} +\@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{@retrofrontespizio}{\def\@retrofrontespizio{}}{} +\@ifundefined{@subtitle}{\def\@subtitle{}}{} +\@ifundefined{@corso}{\def\@corso{}}{} +\@ifundefined{@ateneo}{\def\@ateneo{POLITECNICO DI TORINO}}{} +\@ifundefined{@nomeat}{\def\@nomeat{}}{}% Nome proprio dell'ateneo +\@ifundefined{@facolta}{\def\@facname{}}{} +\@ifundefined{@facnumber}{\def\@facnumber{}}{} +\@ifundefined{@faculty}{\def\@faculty{}}{} +\@ifundefined{PrimoTomo}{\def\PrimoTomo{Tomo primo}}{} +\@ifundefined{SecondoTomo}{\def\SecondoTomo{Tomo secondo}}{} +\@ifundefined{TerzoTomo}{\def\TerzoTomo{Tomo terzo}}{} +\@ifundefined{QuartoTomo}{\def\QuartoTomo{Tomo quarto}}{} +\ifclassica +\def\Candidato{Laureando} +\def\Candidata{Laureanda} +\def\Candidati{Laureandi} +\def\Candidate{Laureande} +\fi +\@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{@TesiDiLaurea}{\def\@TesiDiLaurea{Tesi di Laurea}}{} +\@ifundefined{@laureaname}{\def\@laureaname{Corso di Laurea in }}{} +\@ifundefined{@InName}{\def\@InName{in}}{} +\newbool{topTPTlogos} \booltrue{topTPTlogos} +% \end{macrocode} +% +% Here the real differences take place; the environments +% |frontespizio| and |frontespizio*| are still usable, but +% we discourage them. Even the commands |\frontespizio| and +% |\frontespizio*| are still usable but for even more reasons +% we discourage their use; they reman available for a sort +% of backwards compatibility. +% +% A new environment |ThesisTitlePage| is defined that actually +% resorts to the core command that stands behind the above +% discouraged environments and commands. This new environment +% uses the |xparse| commands to define it; therefore the +% asterisk that differentiates the four old environments and +% commands is not any more part of the environment name, but, +% if used, must be the first token after the environment +% opening statement, and should not be repeated with the +% closing statement; therefore +%\begin{verbatim} +%% Correct usage +%\begin{ThesisTitlePage}* +%... +%\end{ThesisTitlePage} +%\end{verbatim} +% is correct, while +%\begin{verbatim} +%% Wrong usage +%\begin{ThesisTitlePage*} +%... +%\end{ThesisTitlePage*} +%\end{verbatim} +% is wrong. +% This choice was made because its programming is simpler, +% but in view of the end user it is simpler to use: for +% example, if the user does not use the asterisk for typesetting +% the logos at the top of the page, and in a second time +% s/he decides that the title page should be typeset with +% the logos in the title page lower part, s/he has to add +% just one asterisk to the opening statement avoiding the +% possibility to forget its addition to the closing statement. +% \begin{macrocode} +\newenvironment{frontespizio*}{\boolfalse{topTPTlogos}}{\fr@ntespizio} + +\newenvironment{frontespizio}{% + \ifdefstring{\@currenvir}{frontespizio} + {\booltrue{topTPTlogos}}{\TPTmaybestar} + }{% + \fr@ntespizio + } + +\DeclareDocumentEnvironment{ThesisTitlePage}{s}{% +\IfBooleanTF{#1}{\boolfalse{topTPTlogos}}{\booltrue{topTPTlogos}}% +\InputIfFileExists{\jobname.cfg}{}{% + \PackageInfo{toptesi-magistrale}{No configuration file found}} +}{\fr@ntespizio} +% \end{macrocode} +% The following code is substantially identical to that of the +% |topfront| package; just the statements concerning the +% bachelor degree and the Ph.D.~degree theses have been deleted. +% \begin{macrocode} +\newbool{AteneoInHead}\boolfalse{AteneoInHead} +\newcommand\TPTmaybestar[1]{\def\@tempA{#1}% +\ifdefstring{\@tempA}{*}% + {\boolfalse{topTPTlogos}\booltrue{AteneoInHead}\fr@ntespizio} + {\booltrue{topTPTlogos}\fr@ntespizio\@tempA} +} +\def\fr@ntespizio{% +\begingroup\par + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin +\null +\setcounter{page}{1}% +\normalfont +\ifclassica + \boolfalse{topTPTlogos} + \thispagestyle{classica} + \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo} + }{} +\else + \thispagestyle{titlepage} +\fi +\ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}} +\ifcsvoid{@ateneo}{% + \ifbool{topTPTlogos} + {}{\booltrue{AteneoInHead}\def\@ateneo{Manca il nome dell'ateneo}}% +}{% + \booltrue{AteneoInHead}% +} + + \ifbool{AteneoInHead}{}{% + {{\centering\LARGE \@ateneo\par}} + } + \ifcsvoid{@nomeat}{} + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}% + {\vspace*{-3ex}}% + {\centering\@nomeat\par}\vfill} + + \begin{center} + {\rmfamily\mdseries + \ifdottorato + \large \@phdschool\par\medskip + \else + \ifcsvoid{@faculty}{}{% + \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi + \@faculty\unskip\xspace\@facname\par\medskip + } + \fi + }% + \ifcsvoid{@corso}{}{{\large + \ifdottorato + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \else + \@laureaname\unskip\xspace\@corso + \fi + \par}} + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + \LARGE\@TesiDiLaurea% + \unless\ifx\empty\@materia + \\\@InName\\\@materia + \fi + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + {\huge\bfseries \baselineskip=0.95em plus 1pt + \@titolo \par} + \end{center} + \unless\ifx\@subtitle\empty + \begin{center}% + \large\textrm{\@subtitle}\par + \end{center}% + \fi + \ifclassica + \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 + We never considered a thesis might get + divided in more than four volumes}% + \fi}}% + \fi + \vspace{1em} + \fi + \par + \unless\iftopTPTlogos + {\vfill\centering \printloghi\par}\fi + \vfill + \iflanguage{italian}{% + \iffemminile + \def\@nomecandidato{\Candidata}% + \else + \def\@nomecandidato{\Candidato}% + \fi + \ifcsvoid{@secondauthor}{}{% + \iffemminile + \def\@nomecandidato{\Candidate}% + \else + \def\@nomecandidato{\Candidati}% + \fi} + }{}% + \unless\iftriennale + \def\BoxRelatori{% + + \begin{tabular}[t]{l}% + \ifclassica + \hbox{\textbf{\Relatore}}% + \else + \hbox{\large\bfseries + \ifcsvoid{@secondadviser}{\Relatore}{\Relatori}} + \fi\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifx\@secondadviser\empty \else + \ifclassica + \ifx\@thirdadviser\empty + \ifx\@secondadviser\empty\else + \\[1.5ex]\textbf{\Correlatore:}% + \fi + \else + \\[1.5ex]\textbf{\Correlatori:}% + \fi + \fi + \\[.6ex]\hbox{{\large\textrm{\protect\@secondadviser}}}% + \fi + \ifx\@thirdadviser\empty \else + \\[.6ex] + \hbox{{\large\textrm{\protect\@thirdadviser}}}% + \fi + \end{tabular}% + }% + \def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}% + \@secondauthor\endtabular}} + \def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}% + \@thirdauthor\endtabular}} + \def\BoxCandidati{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \textbf{\protect\@nomecandidato}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% + }% + \unless\ifdottorato + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi + \else + \noindent + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par + \fi + \fi + \fi + \ifcsvoid{@tutoreaziendale}{}{% + \vfill\vfill + {\centering \textbf{\@tutoreaziendalename}\\[.6ex] + \@tutoreaziendale\par}% + } + \par\clearpage +% \end{macrocode} +% +% It is useful to remind that the legal page in general is not +% compulsory, but it is becoming frequently requested by more +% and more universities. The user can fill up the +% |\retrofrontespizio| argument with as many paragraphs s/he +% is subject in accordance with his/her university requirements. +% In general there is a statement claiming the intellectual +% property if the thesis contents; very often it makes reference +% to the Creative Commons licence that is internationally well +% known; other international licences may me used. At the same +% time very often a statement is needed where the thesis author +% assume the necessary liability for any violation of other +% people intellectual property and/or copyright. Plagiarism and +% lack od attribution of other people rights are the most common +% illegal actions done by students writing their theses, and it +% is very important that the student responsibility is underlined +% by asking him/her to fulfil the legal obligations. +% \begin{macrocode} +\ifcsvoid{@retrofrontespizio}{}% + {\null\vfill\thispagestyle{empty}\@retrofrontespizio\par\clearpage}% +\endgroup} +% \end{macrocode} +%\iffalse +%</topmag> +%\fi +% +% +%\iffalse +%<*topdoc>^^A DOTTORALE +%\fi +% \subsection{The \texttt{toptesi-dottorale} module} +% What follows is mainly a replica of the |topfront| module +% where useless commands have been eliminated; ``useless'' +% in view of creating a title page for a Ph.D.~thesis. +% +% First we load the necessary packages. +% \begin{macrocode} +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +% \end{macrocode} +% The we define, if they are not already defined some boolean +% switches related to the possible options. The above packages, +% and the following switches are necessary in case thei module +% is used by itself with a different class. The module accepts +% some options, that are declared just after these preliminary +% definitions. +% \begin{macrocode} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifevenboxes}{\newif\ifevenboxes \evenboxesfalse}{} +% \end{macrocode} +% Using this module implies that some switches used in the +% following commands should be set to false. +% \begin{macrocode} +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfrontfalse}{} +\ifcsundef{ifT@Pfrontespizio}{\newif\ifT@Pfrontespiziofalse}{} +\ifcsundef{c@tomo}{\newcounter{tomo}\setcounter{tomo}{0}}{} +\newif\iffemminile\newif\ifplurale +\newif\iftriennale\triennalefalse +\newif\ifdottorato \dottoratotrue + +% \end{macrocode} +% Here are the option declarations and their processing. Notice +% that the |14pt| option implies the the calling class loads +% some package that can set a normal size to 14pt or 14.4pt, +% otherwise this option may produce an error or a warning; +% in the best case it does not do anything. The |toptesi| +% class loads such a suitable package and allows to set any +% integer or fractional size; this package is |scrextend| and +% the user who wants to use a normal size larger than 12pt +% or smaller than 10pt, can resort to that package; possibly +% that is not the only package suited for such acrobatic +% settings, but the important point is to avoid ``acrobatics''; +% scientific books, reports, theses, and other such documents +% are supposed to be read by adults, not by children while +% normal sizes from 14pt on are more suited for elementary +% school pupils. On the opposite, normal sizes smaller than +% 10pt are difficult to read and should be avoided for +% documents to be read continuously; It is possible to use +% such small font sizes in foot notes, or in dictionaries, +% but both footnotes and dictionary entries do not generally +% occupy dozens of pages. +% \begin{macrocode} +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{14pt}{\@xivpttrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +\ProcessOptions*\relax +% \end{macrocode} +% +% We now define two specific page styles, one for ``normal'' +% title pages, and one for theses typeset wit the |classica| +% option in force: they are |\ps@titlepge| and |\ps@classica|. +% \begin{macrocode} +\def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddfoot{\vbox to 0.05\paperheight{\vss + \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% + \let\@evenfoot\@oddfoot + \def\@oddhead{% + \vbox to\headheight{\vss\iftopTPTlogos + \hbox to\textwidth{% + \headstrut\hfil + \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% + }\fi + \ifcsvoid{@ateneo}{}{\vskip\smallskipamount + \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + \vss + }% + }% + \let\@evenhead\@oddhead + \def\chaptermark##1{}\def\sectionmark##1{}% +} + + \def\ps@classica{\let\@mkboth\markboth + \def\@oddhead{\vbox{% + \setbox256=\hbox{\LARGE\MakeUppercase{\@ateneo}} + \unless\ifdim\wd256<\textwidth + \setbox256=\hbox{\resizebox{\textwidth}{!}{\box256}}% + \fi + \hbox to \hsize{\hss\box256\hss}% + \ifclassica + \hbox to \hsize{\hfil\vrule\@width\z@ + \@height2ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}% + \fi + }}% + \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss + \ifclassica + \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% + \fi + \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% + }% + \let\@evenhead\@oddhead + \let\@evenfoot\@oddfoot + }% +% \end{macrocode} +% +% We provide also the variant settings for when the |classica| +% option is in force toghether with the |autoretitolo| one. +% \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{\ifPDFTeX\latintext\fi + \footnotesize\strut\textsc{% + \@@author\ifcsvoid{@secondauthor}{\ et al.}: \@stitle}% + }% + \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi + \underline{\makebox[\textwidth]{\box\@intesta}}}% + \def\@oddhead{\ifPDFTeX\latintext\fi + \setbox\@intesta\hbox{% + \footnotesize\strut\textsl{\rightmark}}% + \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi% + \underline{\makebox[\textwidth]{\box\@intesta}}}% + \def\chaptermark##1{\markright{\thechapter\ -- ##1}}% + \def\sectionmark##1{}}% + \else + \renewcommand*{\ps@headings}{\let\@mkboth\markboth + \def\@oddfoot{\null \hfill \textbf{\lapagina}\hfill \null}% + \let\@evenfoot\empty\let\@evenhead\empty + \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle}}% + \setbox\tw@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsl{\rightmark}}% + \dimen@=\dimexpr2em + \wd\z@ + \wd\tw@\relax + \ifdim\dimen@<\textwidth \relax + \else + \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedright + \ifPDFTeX\latintext\fi\footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle + }}% + \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedleft + \ifPDFTeX\latintext\fi\footnotesize + \textsl{\rightmark}}% + \fi + \setbox\@intesta\vbox to\z@{% + \vss\hbox to\textwidth{\strut\box\z@\hfill\box\tw@}}% + \underline{\box\@intesta}}}% + \def\chaptermark##1{\markright{\thechapter\ -- ##1}}} + \fi +\fi +% \end{macrocode} +% Now we define the title setting commands for both +% title (|\titolo|) and subtitle (|\sottotitolo|) and +% all the other command for setting the fixed strings. +% \begin{macrocode} +\let\@stitle\empty + +\newcommand*{\titolo}[2][]{% +\def\@tempA{#1}\ifdefempty{\@tempA}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% + \gdef\@titolo{#2}% +}% + +\def\sottotitolo#1{\gdef\@subtitle{#1}} +\let\@materia\empty +\def\Materia#1{\def\@materia{#1}}\let\materia\Materia +\newif\ifDirettore \Direttorefalse +\def\tutore#1{\gdef\@tutore{#1}} +\def\direttore{\Direttoretrue\relatore}% +\def\coordinatore{\Direttorefalse\relatore}% +\def\QualificaDirettore#1{\gdef\@PhDdirector{#1}}% +\def\relatore#1{\gdef\@principaladviser{#1}} +\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} +\def\esamedidottorato#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \def\@tempA{#2}% + \ifx\@tempA\empty + \def\@submitdate{#1}% + \else + \unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi + \fi +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} +\def\annoaccademico#1{\ifclassica + \def\@submitdate{{\large\textsc{\AnnoAccademico}} {\Large\s@tanno#1!}} + \else + \PackageWarning{toptesi}{\string\annoaccademico\space + is usable only when the\MessageBreak + `classica' option is in force}% + \def\@submitdate{\AnnoAccademico\ #1 --- Needs the `classica' option} + \fi} +\def\s@tanno#1-#2!{\oldstylenums{#1}\EnDash\oldstylenums{#2}} + +\def\EnDash{{\settowidth{\dimen@}{\large\scshape 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@}}} +\def\ciclodidottorato#1{\gdef\@ciclo{#1 \@cyclename}}% +\def\corsodidottorato#1{\global\dottoratotrue + \global\gdef\@corso{#1}} +\def\scuoladidottorato#1{\global\dottoratotrue + \gdef\@phdschool{#1}} +\def\ateneo#1{\gdef\@ateneo{#1}} +\def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} +\newcommand\facolta[2][]{\gdef\@facname{#2}\gdef\@facnumber{#1}} +\let\struttura\facolta +% \end{macrocode} +% Here we define how to handle one or more logos; even in +% PH.D.%schools there might be situations where the Ph.D.~program +% has been carried on in several universities; it might be +% required to set the logos where the research program +% leading to the Ph.D. has been developed. The user commands +% are |\logosede| and |\printloghi|; the latter does what +% its name suggests, i.e. it prints the string of logos; +% the former command accepts one logo file name, and queues +% it into a logo list; this command may be used multiple times; +% of course if there are several logos, their ``string'' +% may become larger than the text width, and in this case +% |\printloghi| shrinks the whole string (maintaining the +% aspect ratio) so as to fit it within the measure. If the +% logos are too many and/or they are too wide, this +% shrinking may reduce them too much; there is no work +% around this problem except avoiding using too many and/or +% too wide logos. +% \begin{macrocode} +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +% \end{macrocode} +% +% We keep defining macros to set fixed string or variable data. +% \begin{macrocode} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\newcommand\retrofrontespizio[1]{\long\gdef\@retrofrontespizio{#1}} +\newcommand\FacoltaDi[1]{\gdef\@faculty{#1}} +\let\StrutturaDidattica\FacoltaDi +\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\Relatore{#1}\gdef\Relatori{#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}} +\newcommand\IDlabel{\\matricola:\xspace} +\IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}% + {\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}} +\@ifundefined{@cyclename}{\def\@cyclename{ciclo}}{} +\@ifundefined{@titolo}{\def\@titolo{}}{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} + +\@ifundefined{@principaladviser}{\def\@principaladviser{}}{} +\@ifundefined{@secondadviser}{\def\@secondadviser{}}{} +\@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} +\ifcsundef{@PhDdirector}{% + \ifDirettore\def\@PhDdirector{Direttore del corso di dottorato}\else + \def\@PhDdirector{Coordinatore del corso di dottorato}\fi}{} +\@ifundefined{@tutore}{\def\@tutore{}}{} +\@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{@retrofrontespizio}{\def\@retrofrontespizio{}}{} +\@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{}}{} +\@ifundefined{@facnumber}{\def\@facnumber{}}{} +\@ifundefined{@faculty}{\def\@faculty{}}{} +\@ifundefined{PrimoTomo}{\def\PrimoTomo{Tomo primo}}{} +\@ifundefined{SecondoTomo}{\def\SecondoTomo{Tomo secondo}}{} +\@ifundefined{TerzoTomo}{\def\TerzoTomo{Tomo terzo}}{} +\@ifundefined{QuartoTomo}{\def\QuartoTomo{Tomo quarto}}{} +\@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{@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} +% +% We now start setting the |ThesisTitlePage| environment; +% we use the |xparse| functionality to define it; the +% environment accepts an optional asterisk as its first +% and only argument, that as a single token may be entered +% without brackets as the very first token after the +% environment opening statement. If the user wants to use +% this optional argument, s/he must enter +% |\begin{ThesisTitlePage}*| with the asterisk after the +% closing brace. The presence of the asterisk sets the +% logo position to the title page lower half, while its +% absence sets such position to the title page top. +% +% The opening commands provide also to reading a configuration +% file, if it exists in the same folder as the thesis main +% file; such configuration file must be named \meta{thesis +% main file name}|.cfg|. The environment body, besides the +% possible data already got from the configuration file +% accepts other setting commands for the title page necessary +% and optional data; if some commands are repeated with +% different data, the last ones prevail on the previous ones. +% The actual title page typesetting is done by the closing +% commands through the |\fr@ntespizio| command. +% +% Among the setting commands there might be also the legal +% page |\retrofrontespizio| command; it closes the recto +% title page, and on the verso, if the command argument +% is void, nothing is printed except the blank verso page, +% but if it contains something the legal notice is printed +% at the verso page bottom. +% \begin{macrocode} +\newbool{topTPTlogos}\newbool{AteneoInHead} + +\DeclareDocumentEnvironment{ThesisTitlePage}{s}{% + \IfBooleanTF{#1}{\boolfalse{topTPTlogos}\booltrue{AteneoInHead}}% + {\booltrue{topTPTlogos}\boolfalse{AteneoInHead}}% + \IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}{% + \PackageWarning{toptesi-dottorale}{% + No configuration file found\MessageBreak}} +}{% + \fr@ntespizio +} +% \end{macrocode} +% Here we define the actual typesetting of the title page. +% The code is substantially that of the generic module +% |topfront|where we deleted the commands and the settings +% related to thesis kinds that have nothing to do with +% a generic doctoral thesis. +% \begin{macrocode} +\def\fr@ntespizio{% +\begingroup\par + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin +\null +\setcounter{page}{1}% +\normalfont +\ifclassica + \boolfalse{topTPTlogos} + \thispagestyle{classica} + \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo} + }{} +\else + \thispagestyle{titlepage} +\fi +\ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}} +\ifcsvoid{@ateneo}{% + \ifbool{topTPTlogos} + {}{\booltrue{AteneoInHead}\def\@ateneo{Manca il nome dell'ateneo}}% +}{% + \booltrue{AteneoInHead}% +} + \ifbool{AteneoInHead}{}{% + {{\centering\LARGE \@ateneo\par}} + } + \ifcsvoid{@nomeat}{} + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}{\vspace*{-3ex}}% + {\centering\@nomeat\par}\vfill} + + \begin{center} + {\rmfamily\mdseries + \ifdottorato + \large \@phdschool\par\medskip + \else + \ifcsvoid{@faculty}{}{% + \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi + \@faculty\unskip\xspace\@facname\par\medskip + } + \fi + }% + \ifcsvoid{@corso}{}{{\large + \ifdottorato + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \else + \@laureaname\unskip\xspace\@corso + \fi + \par}} + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + \LARGE\@dissertazione% + \unless\ifx\empty\@materia + \\\@InName\\\@materia + \fi + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + {\huge\bfseries \baselineskip=0.95em plus 1pt + \@titolo \par} + \end{center} + \unless\ifx\@subtitle\empty + \begin{center}% + \large\textrm{\@subtitle}\par + \end{center}% + \fi + \ifclassica + \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 + We never considered a thesis might get + divided in more than four volumes}% + \fi}}% + \fi + \vspace{1em} + \fi + \par + \unless\iftopTPTlogos + {\vfill\centering \printloghi\par}\fi + \vfill + \iftriennale + \let\@nomerelatore\empty + \else + \ifdottorato + \edef\@nomerelatore{\@PhDdirector}% + \else + \ifcsvoid{@principaladviser}{}{% + \def\@nomerelatore{\Relatore}} + \unless\ifclassica + \ifcsvoid{@secondadviser}{}{% + \def\@nomerelatore{\Relatori}}% + \fi + \fi + \fi + \ifdottorato + \let\@nomecandidato\empty + \else + \iflanguage{italian}{% + \iffemminile + \def\@nomecandidato{\Candidata}% + \else + \def\@nomecandidato{\Candidato}% + \fi + \ifcsvoid{@secondauthor}{}{% + \iffemminile + \def\@nomecandidato{\Candidate}% + \else + \def\@nomecandidato{\Candidati}% + \fi} + }{}% + \fi + \iftriennale + \begin{center}% + \large\mdseries\textsc{\@author} + \end{center}% + \else + \def\BoxRelatori{% + \begin{tabular}[t]{l}% + \hbox{\ifclassica\else\large\fi + \textbf{\protect\@nomerelatore}}\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifx\@secondadviser\empty \else + \ifclassica + \ifx\@thirdadviser\empty + \ifx\@secondadviser\empty\else + \\[1.5ex]\textbf{\Correlatore:}% + \fi + \else + \\[1.5ex]\textbf{\Correlatori:}% + \fi + \fi + \\[.6ex]\hbox{{\large\textrm{\protect\@secondadviser}}}% + \fi + \ifx\@thirdadviser\empty \else + \\[.6ex] \hbox{{\large\textrm{\protect\@thirdadviser}}}% + \fi + \end{tabular}% + }% + \def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}} + \def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@thirdauthor\endtabular}} + \def\BoxCandidati{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \textbf{\protect\@nomecandidato}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% + }% + \ifdottorato + \begin{center}\large + \textbf{\@author}\\[3em] + {\normalsize + \begin {tabular*}{\hsize}{@{\extracolsep{\fill}}ccc} + \ifcsvoid{@tutore}{}{\textbf{\Tutore}} + &\relax& + \ifcsvoid{@principaladviser}{}{\textbf{\@nomerelatore}} + \\ + \ifcsvoid{@tutore}{}{\@tutore} + &\relax& + \ifcsvoid{@principaladviser}{}{\@principaladviser} + \end{tabular*} + }% + \end{center} + \else + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi + \else + \noindent + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par + \fi + \fi + \fi +\ifcsvoid{@tutoreaziendale}{}{% + \vfill\vfill + {\centering \textbf{\@tutoreaziendalename}\\[.6ex] + \@tutoreaziendale\par}} + \par\clearpage +% Legal page + \ifcsvoid{@retrofrontespizio}{}% + {\null\vfill\thispagestyle{empty}\@retrofrontespizio\par\clearpage}% +\endgroup} +% \end{macrocode} +%\iffalse +%</topdoc> +%\fi +% +% \subsection{The \texttt{toptesi-sss} module code} +% The module for typesetting high school final work +% title pages starts here. We avoid using a |.def| file and put +% all necessary commands in one file. +% +% First we load the described packages using different loading +% schemes for \pdfLaTeX\ vs. \LuaLaTeX\ or \XeLaTeX. +% +%\iffalse +%<*topsss>^^A SECONDARIA +%\fi +% \begin{macrocode} +%% +%%%% Math fonts and AMS extensions (fontspec is already loaded) +\secondariatrue +\ifPDFTeX + \@ifpackageloaded{newtxmath}{}% + {\@ifpackageloaded{newpxmath}{}% + {% + \RequirePackage{amsmath,amssymb,amsthm}% + }% + }% +\else + \RequirePackage{amsmath,amsthm} + \RequirePackage{unicode-math} +\fi +\RequirePackage{xcolor} % Intelligent colors +\RequirePackage{xspace} % Intelligent space +\RequirePackage{xparse} % Command and environment advanced definitions +\RequirePackage{calc} % Calculation macros +\RequirePackage{ifthen} % Conditional statements +\RequirePackage{booktabs} % professional rules in tables +\RequirePackage{multirow} % It's more professional avoiding tables + % with cells spanning several rows +\RequirePackage[autostyle]{csquotes} % necessary for biblatex +\ifPDFTeX \RequirePackage{indentfirst}\fi +\raggedbottom +% \end{macrocode} +% +% We initialise the internal macros to the default values; most +% of them are just empty strings. +% \begin{macrocode} +\providecommand*\@SSSLogo{} +\providecommand*\@tiposcuola{} +\providecommand*\@indirizzomiur{} +\providecommand*\@opzionemiur{} +\providecommand*\@nomescuola{} +\providecommand*\@sedescuola{} +\providecommand*\@annoscolastico{} + +\providecommand*\@Ntesina{Tesina di maturit\`a} +\providecommand*\@title{} +\providecommand*\@subtitle{} + +\ifcsundef{ifemminile}{\newif\iffemminile\femminilefalse}{} +\providecommand*\@Ncandidato{\iffemminile Studentessa\else + Studente\fi} +\providecommand*\@author{} +\providecommand*\@Npresidente{Presidente di commissione} +\providecommand*\@presidente{} +\providecommand*\@numerocommissione{} + +\newcommand*\SSSLogo[1]{\gdef\@SSSLogo{#1}} +\newcommand*\NomeTesina[1]{\gdef\@Ntesina{#1}} +\newcommand*\IndirizzoMiur[1]{\gdef\@indirizzomiur{#1}} +\newcommand*\OpzioneMiur[1]{\gdef\@opzionemiur{#1}} +\newcommand*\TipoScuola[1]{\gdef\@tiposcuola{#1}} +\newcommand*\SedeScuola[1]{\gdef\@sedescuola{#1}} +\newcommand*\NomeScuola[1]{\gdef\@nomescuola{#1}} +\newcommand*\AnnoScolastico[1]{\gdef\@annoscolastico{#1}} +\newcommand*\NomeCandidato[1]{\gdef\@Ncandidato{#1}} + +\newcommand*\titolo[1]{\gdef\@title{#1}} +\newcommand*\sottotitolo[1]{\gdef\@subtitle{\ifblank{#1}{}% + {\medskip\par{\Large #1\par}}% + \vspace{\stretch{1}}}} + +\NewDocumentCommand\studente{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}}\femminilefalse} +\NewDocumentCommand\studentessa{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}}\femminiletrue} +\newcommand*\IDlabel{\\\normalfont Classe\ } +\newcommand*\Presidente[1]{\gdef\@presidente{#1}} +\newcommand*\NumeroCommissione[1]{\gdef\@numerocommissione{#1}} +% \end{macrocode} +% The following code certainly does not hurt, but it was +% necessary during the preliminary testing. +% \begin{macrocode} +\newcommand*\ifBlank{\expandafter\ifblank\expandafter} +% \end{macrocode} +% The environmnet |FrontespizioTesina| is being defined here. +% No optional arguments are requested, therefore it is not +% necessary to use the defining commands of package |xparse|. +% The environment starts by reading the configuration file +% |jobname.cfg| if it exists. Nothing is done if such file +% does not exist, not even an info message; after all the +% configuration file is optional. +% \begin{macrocode} +\newenvironment{FrontespizioTesina}{% +\InputIfFileExists{\jobname.cfg}{\relax}{\relax} +}{% +% \end{macrocode} +% After this preliminary test the |titlepage| environment is +% opened and the layout assembly starts. First the information +% on the school; if the school generic name has been omitted +% among the mandatory user commands, the string `Manca il tipo +% di scuola' is printed in its place, so that the user is +% directly reminded of the mandatory nature of this piece of +% data. On the opposite if the Ministry of education data are +% missing, nothing is done. After these mandatory and optional +% data are printed a couple of horizontal lines are typed so +% as to mark the end of the title page heading. +% \begin{macrocode} +\begin{titlepage}\parindent=0pt +\centering +\raisebox{0.025\textheight}[0pt][0pt]{\parbox[b]{\textwidth}{% +\centering +\ifBlank{\@tiposcuola}{Manca il tipo di scuola}{\@tiposcuola}% +\ifBlank{\@indirizzomiur}{\relax}{\space--\space\@indirizzomiur}% +\ifBlank{\@opzionemiur}{\relax}{\space--\space\@opzionemiur}\par +\vspace{-1ex} +\makebox[0.5\textwidth]{\rule{0.50\textwidth}{0.4\p@}}\par +\vspace{-1.5ex} +\makebox[0.25\textwidth]{\rule{0.25\textwidth}{0.8\p@}}\par +% \end{macrocode} +% After this heading the proper name of the school is printed, +% possibly with its real address. +% \begin{macrocode} +\medskip + +\textsc{\@nomescuola}}}\par +\null\hfill\ifBlank{\@sedescuola}{\relax}{% +\raisebox{0.5\baselineskip}[0pt][0pt]{% +\parbox{0.4\textwidth}{\raggedleft\@sedescuola}}}\par +\vspace{\stretch{1}} +% \end{macrocode} +% +% next the name of the document and its title and subtitle +% are set: the title in |\Large| boldface font, while the subtitle +% in normal size. +% \begin{macrocode} +{\large \@Ntesina\par} +\vspace{\stretch{0.5}} + +{\Large\textbf{\@title}\par} +{\vspace{0.5\baselineskip} + +\normalsize\@subtitle\par}% uno \stretch{1} è già stato fatto +% \end{macrocode} +% If a file name is specified for the graphic file that +% contains the school logo, such image is inserted in the +% title page. +% \begin{macrocode} +\ifBlank{\@SSSLogo}% + {\vspace{\stretch{1}}}% + {\includegraphics[height=30mm]{\@SSSLogo}}\par\vspace{\stretch{1}} +% \end{macrocode} +% The examining committee chairperson name and the Ministry +% of education committee ID number are typeset within a +% |minipage|. Another |minipage| contain the student's name. +% Pay attention: the names of the student and of the president +% are typeset in bold face small caps if the default fonts have +% this typeface; if the chosen fonts do not have this typeface +% the actual used typeface is bold roman. +% \begin{macrocode} +\begin{minipage}[t]{0.45\textwidth}\flushleft +\ifBlank{\@presidente}{}{\@Npresidente\\ +{\bfseries\scshape\@presidente}\par +\vspace{\baselineskip}} + +\ifBlank{\@numerocommissione}{}{Commissione numero\\ +\textbf{\@numerocommissione}} +\end{minipage} +\hfill +\begin{minipage}[t]{0.45\textwidth}\flushright +\@Ncandidato\\ +{\bfseries\scshape\@author} +\end{minipage} + +\vspace{\stretch{1}} + +% \end{macrocode} +% Eventually the school year is printed with an initial string +% `Anno scolastico'. This terminates the title page; the +% environment is closed and the page ejected. +% \begin{macrocode} +\raisebox{-0.05\textheight}[0pt][0pt]{% +\parbox[t]{\textwidth}{\centering +\makebox[0.25\textwidth]{\hrulefill}\\[\medskipamount] +Anno scolastico \@annoscolastico}} +\end{titlepage} +\clearpage}%% +%% +\endinput +% \end{macrocode} +% This is the end of this module code. +%\iffalse +%</topsss> +%\fi % % \Finale % \endinput % +\endinput +%%%%%% Recent progress +%%% (version 6.1.8 -- 2017-10-15) Extended version 5.92.xx in order +% to modularise the whole bundle; this requires the key=value options +% in order to smoothly handle the various new options, especially those +% that offer the user the new environment ThesisTitlePage +% (FrontespizioTesi for high school tesina); a new environment SDbox +% to produce figures and tables and any other possible floating body, +% defined through package float, with their captions on a side, +% possibly protruding into the external margin; in any case the SD +% box can be used by itself without using the corresponding floating +% environment. Modules available for different thesis types include +% high school tesina, bachelor, master, doctoral theses, the doctoral +% thesis title page for the Doctorate School of Politecnico di Torino; +% custom and frontespizio key-value options are available for a totally +% hand made title page, and a title page typeset by means of the +% external package frontespizio by Enrico Gregorio; backwards +% compatibility with the previous version is almost always maintained +% for both title pages; even the ID number of the candidates is +% maintained, although with a slightly different modern interface, +% since the xparse package facilities are used to define some of the +% new commands and environments. The a4paper paper size is +% maintained as the default one, although alla paper sizes available +% to the report/book/article class can be used (this required a loto +% of thought, because the xkeyval package documentations require +% thoughtful interpretation. + + + diff --git a/Master/texmf-dist/tex/latex/toptesi/topcoman.sty b/Master/texmf-dist/tex/latex/toptesi/topcoman.sty index c8f4ce98d0e..d784ac335a4 100644 --- a/Master/texmf-dist/tex/latex/toptesi/topcoman.sty +++ b/Master/texmf-dist/tex/latex/toptesi/topcoman.sty @@ -6,16 +6,17 @@ %% %% toptesi.dtx (with options: `topcmn') %% ______________________________________________________ -%% The TOPtesi package -%% Copyright (C) 2005-2016 Claudio Beccari +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari %% All rights reserved %% %% License information appended %% -\NeedsTeXFormat{LaTeX2e}[2015/01/01] +\NeedsTeXFormat{LaTeX2e}[2016/01/01] \ProvidesPackage{topcoman}[% -2016/11/25 v.5.9.06 +2017/10/22 v.~6.1.09 Additional commands for the TOPtesi bundle] + \RequirePackage{iftex} \ifPDFTeX \newcommand*\DeclareSlantedCapitalGreekLetters{% @@ -30,7 +31,13 @@ Additional commands for the TOPtesi bundle] \mathchardef\Phi="7108 \mathchardef\Psi="7109 \mathchardef\Omega="710A -}\fi +}\else +\newcommand*\DeclareSlantedCapitalGreekLetters{% +\PackageWarning{toptesi}{% + When using LuaLaTeX or XeLaTeX specify\MessageBreak + option math-style=ISO to package unicode-math\MessageBreak} +} +\fi \providecommand*\ensuremath[1]{\ifmmode#1\else$#1$\fi}% \providecommand*\textormath{} \renewcommand*\textormath{\ifmmode\expandafter\@secondoftwo\else @@ -41,42 +48,29 @@ Additional commands for the TOPtesi bundle] \RequirePackage{textcomp} \fi \providecommand{\ohm}{\textormath{\textohm}{\mathrm{\Omega}}} -\providecommand{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}} -\providecommand{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}} +\@ifpackageloaded{toptesi}{ +\providecommand\ped{}\providecommand\ap{} +\renewcommand*{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}} +\renewcommand*{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}}{% +\providecommand*{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}}% +\providecommand*{\ap}[1]{\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}} \@ifpackageloaded{siunitx}{\def\unit#1{\si{\,#1}}}{% -\providecommand\unit[1]{\ensuremath{{\mathrm{\,#1}}}}} +\providecommand\unit{}% +\renewcommand\unit[1]{\ensuremath{{\mathrm{\,#1}}}} +} \providecommand{\gei}{\ensuremath{{\mathop{\mathrm{j}}\nolimits}}} \providecommand{\eu}{\ensuremath{{\mathop{\mathrm{e}}\nolimits}}} \providecommand{\micro}{\textormath{\textmu}{% \ifPDFTeX - \ifx\muup\undefined\mu\else\muup\fi + \ifdefined\muup\muup\else\mbox{\textmu}\fi \else \mathup{\mu}% \fi }} \providecommand{\gradi}{\textormath{\textdegree}{^\circ}} -\providecommand*{\programmafont}{\ttfamily\footnotesize} -\def\listing#1{\par\begingroup -\programma \input #1 \endgroup} -\def\uncatcodespecials{\def\do##1{\catcode`##1=12}\dospecials} -\def\programma{\programmafont \parindent 0pt -\def\par{\leavevmode\egroup\box0\endgraf} -\catcode`\`=\active \catcode`\^^I=\active \catcode`\^^L=\active -\obeylines \uncatcodespecials \obeyspaces -\begingroup\lccode`~=`\ \lowercase{\endgroup\global\let~}\ % -\everypar{\startbox}} -\newdimen\tabwidth -\setbox0=\hbox{\programmafont\space} -\tabwidth=8\wd0 -\def\startbox{\setbox0=\hbox\bgroup} -{\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 \global\let^^L\newpage} +\RequirePackage{fancyvrb} +\fvset{fontsize=\small} +\let\listing\VerbatimInput \DeclareRobustCommand*{\simulatedSC}[1]{% {\mbox{$\relax$}\fontsize{\sf@size}{\f@baselineskip}\selectfont#1}}% \def\ft@figure{\iflanguage{italian}{\MakeLowercase{\figurename}}% @@ -89,7 +83,7 @@ Additional commands for the TOPtesi bundle] \let\p@figure\empty\let\p@table\empty} \DisableFigTabNames %% -%% Copyright 2005-2016 Claudio Beccari +%% Copyright 2005-2017 Claudio Beccari %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of @@ -98,14 +92,14 @@ Additional commands for the TOPtesi bundle] %% This work is "author-maintained" %% %% This work consists of this file toptesi.dtx, a README file -%% and the derived files: -%% -%% toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -%% toptesi.cfg, and the English documentation toptesi.pdf. +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. %% %% Furthermore the bundle contains the documentation source -%% file toptesi-it-pdftex.tex and the derived file -%% toptesi-it-pdftex.pdf. +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. %% %% The toptesi-example.tex source file is just an example %% that shows how to use the various commands; by commenting @@ -116,18 +110,26 @@ Additional commands for the TOPtesi bundle] %% to produce just the title page with TOPtesi and the external %% package frontespizio. %% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% %% The toptesi.cfg file is a sample of a local configuration %% file that can be copied to another file and its copy freely -%% edited and customized. +%% edited and customised. %% %% By running pdflatex on toptesi.dtx the user gets the class, -%% sty and cfg files and the English documentation file in -%% pdf format. +%% sty, def and cfg files and the English documentation file in +%% PDF format. %% %% The source file of the Italian documentation file -%% toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -%% In spite of its name, toptesi-it-pdftex.tex may be typeset -%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -%% lines of the file for how-to information. +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. %% %% End of file `topcoman.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/topfront.sty b/Master/texmf-dist/tex/latex/toptesi/topfront.sty index d6ca4f3ce7d..772b4705764 100644 --- a/Master/texmf-dist/tex/latex/toptesi/topfront.sty +++ b/Master/texmf-dist/tex/latex/toptesi/topfront.sty @@ -6,26 +6,37 @@ %% %% toptesi.dtx (with options: `topfrn') %% ______________________________________________________ -%% The TOPtesi package -%% Copyright (C) 2005-2016 Claudio Beccari +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari %% All rights reserved %% %% License information appended %% -\NeedsTeXFormat{LaTeX2e}[2015/01/01] +\NeedsTeXFormat{LaTeX2e}[2016/01/01] \ProvidesPackage{topfront}[% -2016/11/25 v.5.9.06 +2017/10/22 v.~6.1.09 Title page for TOPtesi and other classes] + \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} -\ifcsundef{ifclassica}{% -\newif\ifclassica \classicafalse -\newif\if@utoretitolo \@utoretitolofalse -\newif\if@ldstyle \@ldstylefalse -\newif\if@xivpt \@xivptfalse -\newif\if@binding \@bindingfalse -}{} -\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue}{} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifScuDo}{\newif\ifScuDo \ScuDofalse}{} +\ifcsundef{ifmonografia}{\newif\ifmonografia\monografiafalse}{} +\ifcsundef{iftriennale}{\newif\iftriennale\triennalefalse}{} +\ifcsundef{ifmagistrale}{\newif\ifmagistrale\magistralefalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifsecondaria}{\newif\ifsecondaria\secondariafalse}{} +\ifcsundef{ifplurale}{\newif\ifplurale\pluralefalse}{} + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue +\newif\ifevenboxes \evenboxesfalse}{} \ifcsundef{c@tomo}{\newcounter{tomo}}{} +\DeclareOption{evenboxes}{\evenboxestrue} \DeclareOption{cucitura}{\@bindingtrue} \DeclareOption{14pt}{\@xivpttrue} \DeclareOption{classica}{\classicatrue} @@ -33,20 +44,21 @@ Title page for TOPtesi and other classes] \DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} \ProcessOptions*\relax -\if@xivpt\@ifl@aded{clo}{size14}{}{\input{size14.clo}}\fi \def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} \def\ps@titlepage{\let\@mkboth\@gobbletwo \def\@oddfoot{\vbox to 0.05\paperheight{\vss \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% \let\@evenfoot\@oddfoot \def\@oddhead{% - \vbox to\headheight{\vss\iftopTPTlogos + \vbox to\headheight{\vss + \iftopTPTlogos \hbox to\textwidth{% \headstrut\hfil \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% - }\fi - \ifcsvoid{@ateneo}{}{\vskip\smallskipamount - \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + } + \fi\par + \ifcsvoid{@ateneo}{}{% + \hbox to\textwidth{\hss\LARGE\rule[-1ex]{0pt}{3.3ex}\MakeUppercase{\@ateneo}\hss}} \vss }% }% @@ -68,7 +80,8 @@ Title page for TOPtesi and other classes] \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss \ifclassica \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% - \vrule\@height-2.6\p@\@depth3\p@\@width\dimexpr\textwidth/3}\hfil}% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% \fi \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% }% @@ -77,7 +90,7 @@ Title page for TOPtesi and other classes] }% \newif\iffemminile \newif\ifdottorato \dottoratofalse -\newif\iflaureatriennale \laureatriennalefalse +\newif\iftriennale \triennalefalse \ifTOPfront \ifclassica \def\Candidato{Laureando} @@ -85,23 +98,25 @@ Title page for TOPtesi and other classes] \def\Candidati{Laureandi} \def\Candidate{Laureande} \fi\fi -\def\monografia#1{\global\laureatriennaletrue +\def\monografia#1{\global\triennaletrue \global\dottoratofalse \global\def\titolo##1{\PackageWarning{topfront}% {Il titolo e' gia' stato impostato con il comando \string\monografia}}% \gdef\@titolo{#1}} + \let\@stitle\empty + \newcommand*{\titolo}[2][]{% -\ifbool{laureatriennale}{% +\ifbool{triennale}{% \PackageWarning{topfront}{Il titolo deve essere impostato con il comando \string\monografia} -} -{\def\@tempA{#1}\ifdefempty{\@tempA}% - {\gdef\@stitle{#2}} - {\gdef\@stitle{#1}}% +}{% +\def\@tempA{#1}\ifdefempty{\@tempA}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% \gdef\@titolo{#2}% -}} + }% +} \def\sottotitolo#1{\gdef\@subtitle{#1}} \let\@materia\empty \def\Materia#1{\def\@materia{#1}}\let\materia\Materia @@ -113,12 +128,6 @@ Title page for TOPtesi and other classes] \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}} \def\sedutadilaurea#1{\getseduta#1 !} \def\getseduta#1 #2!{% \def\@tempA{#2}% @@ -170,9 +179,9 @@ Title page for TOPtesi and other classes] \vrule\@width\dimen@\@height\dimen4\@depth-\dimen\tw@}}} \def\ciclodidottorato#1{\gdef\@ciclo{#1 \@cyclename}}% \def\corsodilaurea#1{\global\dottoratofalse\gdef\@corso{#1}} -\def\corsodidottorato#1{\global\dottoratotrue\global\laureatriennalefalse +\def\corsodidottorato#1{\global\dottoratotrue\global\triennalefalse \gdef\@corso{#1}} -\def\scuoladidottorato#1{\global\dottoratotrue\global\laureatriennalefalse +\def\scuoladidottorato#1{\global\dottoratotrue\global\triennalefalse \gdef\@phdschool{#1}} \def\ateneo#1{\gdef\@ateneo{#1}} \def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} @@ -185,11 +194,11 @@ Title page for TOPtesi and other classes] \newcommand*\setlogodistance[1]{\TPT@logospace=#1} \providecommand*{\@logosede}{} -\ifcsundef{interno}{%\ - \newlength\interno - \setlength\interno{\dimexpr\paperwidth/7}}{} +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} -\newcommand\logosede[2][\interno]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax \ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% \expandafter\fillup@TCP@logobox\@logosede,!}} @@ -222,12 +231,41 @@ Title page for TOPtesi and other classes] \newcommand\NomeSecondoTomo[1]{\gdef\SecondoTomo{#1}} \newcommand\NomeTerzoTomo[1]{\gdef\TerzoTomo{#1}} \newcommand\NomeQuartoTomo[1]{\gdef\QuartoTomo{#1}} -\newcommand\IDN{\\\quad matricola:\space} +\providecommand\IDlabel{\\\quad matricola\ } \IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}% {\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}} \@ifundefined{@cyclename}{\def\@cyclename{ciclo}}{} \@ifundefined{@titolo}{\def\@titolo{}}{} -\@ifundefined{@author}{\def\@author{}}{} + +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\IDlabel{matricola\ } + \@ifundefined{@principaladviser}{\def\@principaladviser{}}{} \@ifundefined{@secondadviser}{\def\@secondadviser{}}{} \@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} @@ -235,8 +273,6 @@ Title page for TOPtesi and other classes] \ifDirettore\def\@PhDdirector{Direttore del corso di dottorato}\else \def\@PhDdirector{Coordinatore del corso di dottorato}\fi}{} \@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}}{} @@ -326,7 +362,7 @@ Title page for TOPtesi and other classes] {{\centering\LARGE \@ateneo\par}} } \ifcsvoid{@nomeat}{} - {\ifbool{topTPTlogos}{\vspace*{3.5ex}}{\vspace*{-3ex}}% + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}{\vspace*{-3ex}}% {\centering\@nomeat\par}\vfill} \begin{center} @@ -336,15 +372,16 @@ Title page for TOPtesi and other classes] \else \ifcsvoid{@faculty}{}{% \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi - \@faculty\@facname\par\medskip + \@faculty\unskip\xspace\@facname\par\medskip } \fi }% \ifcsvoid{@corso}{}{{\large \ifdottorato - \@PhDname\@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi \else - \@laureaname\@corso + \@laureaname\unskip\xspace\@corso \fi \par}} \end{center} @@ -354,7 +391,7 @@ Title page for TOPtesi and other classes] \ifdottorato \@dissertazione% \else - \iflaureatriennale + \iftriennale \@monografia% \else \@TesiDiLaurea% @@ -386,7 +423,8 @@ Title page for TOPtesi and other classes] \or \QuartoTomo% \else \PackageWarning{toptesi}{% - Counter tomo equals \the\c@tomo\MessageBreak + Counter tomo equals + \the\c@tomo\MessageBreak We never considered a thesis might get divided in more than four volumes}% \fi}}% @@ -397,7 +435,7 @@ Title page for TOPtesi and other classes] \unless\iftopTPTlogos {\vfill\centering \printloghi\par}\fi \vfill - \iflaureatriennale + \iftriennale \let\@nomerelatore\empty \else \ifdottorato @@ -428,11 +466,10 @@ Title page for TOPtesi and other classes] \fi} }{}% \fi - \iflaureatriennale + \iftriennale \begin{center}% \large\mdseries\textsc{\@author} \end{center}% - \else \def\BoxRelatori{% \begin{tabular}[t]{l}% @@ -485,16 +522,21 @@ Title page for TOPtesi and other classes] }% \end{center} \else - \unless\ifclassica - \begin{flushleft}% - \BoxRelatori - \end{flushleft}\par\vspace*{-1.5\baselineskip} - \begin{flushright}% - \BoxCandidati - \end{flushright}% + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi \else \noindent - \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}\par + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par \fi \fi \fi @@ -507,7 +549,7 @@ Title page for TOPtesi and other classes] {\null\vfill\thispagestyle{empty}\@retrofrontespizio\par\clearpage}% \endgroup} %% -%% Copyright 2005-2016 Claudio Beccari +%% Copyright 2005-2017 Claudio Beccari %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of @@ -516,14 +558,14 @@ Title page for TOPtesi and other classes] %% This work is "author-maintained" %% %% This work consists of this file toptesi.dtx, a README file -%% and the derived files: -%% -%% toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -%% toptesi.cfg, and the English documentation toptesi.pdf. +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. %% %% Furthermore the bundle contains the documentation source -%% file toptesi-it-pdftex.tex and the derived file -%% toptesi-it-pdftex.pdf. +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. %% %% The toptesi-example.tex source file is just an example %% that shows how to use the various commands; by commenting @@ -534,18 +576,26 @@ Title page for TOPtesi and other classes] %% to produce just the title page with TOPtesi and the external %% package frontespizio. %% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% %% The toptesi.cfg file is a sample of a local configuration %% file that can be copied to another file and its copy freely -%% edited and customized. +%% edited and customised. %% %% By running pdflatex on toptesi.dtx the user gets the class, -%% sty and cfg files and the English documentation file in -%% pdf format. +%% sty, def and cfg files and the English documentation file in +%% PDF format. %% %% The source file of the Italian documentation file -%% toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -%% In spite of its name, toptesi-it-pdftex.tex may be typeset -%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -%% lines of the file for how-to information. +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. %% %% End of file `topfront.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi-dottorale.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi-dottorale.sty new file mode 100644 index 00000000000..6bdb0632289 --- /dev/null +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi-dottorale.sty @@ -0,0 +1,592 @@ +%% +%% This is file `toptesi-dottorale.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topdoc') +%% ______________________________________________________ +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +\ProvidesPackage{toptesi-dottorale}[% +2017/10/22 v.~6.1.09 +Ph.D. degree title page] + +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifevenboxes}{\newif\ifevenboxes \evenboxesfalse}{} +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfrontfalse}{} +\ifcsundef{ifT@Pfrontespizio}{\newif\ifT@Pfrontespiziofalse}{} +\ifcsundef{c@tomo}{\newcounter{tomo}\setcounter{tomo}{0}}{} +\newif\iffemminile\newif\ifplurale +\newif\iftriennale\triennalefalse +\newif\ifdottorato \dottoratotrue + +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{14pt}{\@xivpttrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +\ProcessOptions*\relax +\def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddfoot{\vbox to 0.05\paperheight{\vss + \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% + \let\@evenfoot\@oddfoot + \def\@oddhead{% + \vbox to\headheight{\vss\iftopTPTlogos + \hbox to\textwidth{% + \headstrut\hfil + \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% + }\fi + \ifcsvoid{@ateneo}{}{\vskip\smallskipamount + \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + \vss + }% + }% + \let\@evenhead\@oddhead + \def\chaptermark##1{}\def\sectionmark##1{}% +} + + \def\ps@classica{\let\@mkboth\markboth + \def\@oddhead{\vbox{% + \setbox256=\hbox{\LARGE\MakeUppercase{\@ateneo}} + \unless\ifdim\wd256<\textwidth + \setbox256=\hbox{\resizebox{\textwidth}{!}{\box256}}% + \fi + \hbox to \hsize{\hss\box256\hss}% + \ifclassica + \hbox to \hsize{\hfil\vrule\@width\z@ + \@height2ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}% + \fi + }}% + \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss + \ifclassica + \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% + \fi + \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% + }% + \let\@evenhead\@oddhead + \let\@evenfoot\@oddfoot + }% +\if@utoretitolo + \if@twoside + \renewcommand*{\ps@headings}{\let\@mkboth\markboth% + \def\@oddfoot{\null \hfill \textbf{\lapagina} \hfill \null}% + \let\@evenfoot\@oddfoot + \def\@evenhead{% + \setbox\@intesta\hbox{\ifPDFTeX\latintext\fi + \footnotesize\strut\textsc{% + \@@author\ifcsvoid{@secondauthor}{\ et al.}: \@stitle}% + }% + \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi + \underline{\makebox[\textwidth]{\box\@intesta}}}% + \def\@oddhead{\ifPDFTeX\latintext\fi + \setbox\@intesta\hbox{% + \footnotesize\strut\textsl{\rightmark}}% + \ifdim\wd\@intesta>\textwidth \headWarn{\section}\fi% + \underline{\makebox[\textwidth]{\box\@intesta}}}% + \def\chaptermark##1{\markright{\thechapter\ -- ##1}}% + \def\sectionmark##1{}}% + \else + \renewcommand*{\ps@headings}{\let\@mkboth\markboth + \def\@oddfoot{\null \hfill \textbf{\lapagina}\hfill \null}% + \let\@evenfoot\empty\let\@evenhead\empty + \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle}}% + \setbox\tw@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsl{\rightmark}}% + \dimen@=\dimexpr2em + \wd\z@ + \wd\tw@\relax + \ifdim\dimen@<\textwidth \relax + \else + \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedright + \ifPDFTeX\latintext\fi\footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle + }}% + \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedleft + \ifPDFTeX\latintext\fi\footnotesize + \textsl{\rightmark}}% + \fi + \setbox\@intesta\vbox to\z@{% + \vss\hbox to\textwidth{\strut\box\z@\hfill\box\tw@}}% + \underline{\box\@intesta}}}% + \def\chaptermark##1{\markright{\thechapter\ -- ##1}}} + \fi +\fi +\let\@stitle\empty + +\newcommand*{\titolo}[2][]{% +\def\@tempA{#1}\ifdefempty{\@tempA}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% + \gdef\@titolo{#2}% +}% + +\def\sottotitolo#1{\gdef\@subtitle{#1}} +\let\@materia\empty +\def\Materia#1{\def\@materia{#1}}\let\materia\Materia +\newif\ifDirettore \Direttorefalse +\def\tutore#1{\gdef\@tutore{#1}} +\def\direttore{\Direttoretrue\relatore}% +\def\coordinatore{\Direttorefalse\relatore}% +\def\QualificaDirettore#1{\gdef\@PhDdirector{#1}}% +\def\relatore#1{\gdef\@principaladviser{#1}} +\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} +\def\esamedidottorato#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \def\@tempA{#2}% + \ifx\@tempA\empty + \def\@submitdate{#1}% + \else + \unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi + \fi +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} +\def\annoaccademico#1{\ifclassica + \def\@submitdate{{\large\textsc{\AnnoAccademico}} {\Large\s@tanno#1!}} + \else + \PackageWarning{toptesi}{\string\annoaccademico\space + is usable only when the\MessageBreak + `classica' option is in force}% + \def\@submitdate{\AnnoAccademico\ #1 --- Needs the `classica' option} + \fi} +\def\s@tanno#1-#2!{\oldstylenums{#1}\EnDash\oldstylenums{#2}} + +\def\EnDash{{\settowidth{\dimen@}{\large\scshape 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@}}} +\def\ciclodidottorato#1{\gdef\@ciclo{#1 \@cyclename}}% +\def\corsodidottorato#1{\global\dottoratotrue + \global\gdef\@corso{#1}} +\def\scuoladidottorato#1{\global\dottoratotrue + \gdef\@phdschool{#1}} +\def\ateneo#1{\gdef\@ateneo{#1}} +\def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} +\newcommand\facolta[2][]{\gdef\@facname{#2}\gdef\@facnumber{#1}} +\let\struttura\facolta +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\newcommand\retrofrontespizio[1]{\long\gdef\@retrofrontespizio{#1}} +\newcommand\FacoltaDi[1]{\gdef\@faculty{#1}} +\let\StrutturaDidattica\FacoltaDi +\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\Relatore{#1}\gdef\Relatori{#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}} +\newcommand\IDlabel{\\matricola:\xspace} +\IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}% + {\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}} +\@ifundefined{@cyclename}{\def\@cyclename{ciclo}}{} +\@ifundefined{@titolo}{\def\@titolo{}}{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} + +\@ifundefined{@principaladviser}{\def\@principaladviser{}}{} +\@ifundefined{@secondadviser}{\def\@secondadviser{}}{} +\@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} +\ifcsundef{@PhDdirector}{% + \ifDirettore\def\@PhDdirector{Direttore del corso di dottorato}\else + \def\@PhDdirector{Coordinatore del corso di dottorato}\fi}{} +\@ifundefined{@tutore}{\def\@tutore{}}{} +\@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{@retrofrontespizio}{\def\@retrofrontespizio{}}{} +\@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{}}{} +\@ifundefined{@facnumber}{\def\@facnumber{}}{} +\@ifundefined{@faculty}{\def\@faculty{}}{} +\@ifundefined{PrimoTomo}{\def\PrimoTomo{Tomo primo}}{} +\@ifundefined{SecondoTomo}{\def\SecondoTomo{Tomo secondo}}{} +\@ifundefined{TerzoTomo}{\def\TerzoTomo{Tomo terzo}}{} +\@ifundefined{QuartoTomo}{\def\QuartoTomo{Tomo quarto}}{} +\@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{@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}}{} +\newbool{topTPTlogos}\newbool{AteneoInHead} + +\DeclareDocumentEnvironment{ThesisTitlePage}{s}{% + \IfBooleanTF{#1}{\boolfalse{topTPTlogos}\booltrue{AteneoInHead}}% + {\booltrue{topTPTlogos}\boolfalse{AteneoInHead}}% + \IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}{% + \PackageWarning{toptesi-dottorale}{% + No configuration file found\MessageBreak}} +}{% + \fr@ntespizio +} +\def\fr@ntespizio{% +\begingroup\par + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin +\null +\setcounter{page}{1}% +\normalfont +\ifclassica + \boolfalse{topTPTlogos} + \thispagestyle{classica} + \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo} + }{} +\else + \thispagestyle{titlepage} +\fi +\ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}} +\ifcsvoid{@ateneo}{% + \ifbool{topTPTlogos} + {}{\booltrue{AteneoInHead}\def\@ateneo{Manca il nome dell'ateneo}}% +}{% + \booltrue{AteneoInHead}% +} + \ifbool{AteneoInHead}{}{% + {{\centering\LARGE \@ateneo\par}} + } + \ifcsvoid{@nomeat}{} + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}{\vspace*{-3ex}}% + {\centering\@nomeat\par}\vfill} + + \begin{center} + {\rmfamily\mdseries + \ifdottorato + \large \@phdschool\par\medskip + \else + \ifcsvoid{@faculty}{}{% + \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi + \@faculty\unskip\xspace\@facname\par\medskip + } + \fi + }% + \ifcsvoid{@corso}{}{{\large + \ifdottorato + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \else + \@laureaname\unskip\xspace\@corso + \fi + \par}} + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + \LARGE\@dissertazione% + \unless\ifx\empty\@materia + \\\@InName\\\@materia + \fi + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + {\huge\bfseries \baselineskip=0.95em plus 1pt + \@titolo \par} + \end{center} + \unless\ifx\@subtitle\empty + \begin{center}% + \large\textrm{\@subtitle}\par + \end{center}% + \fi + \ifclassica + \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 + We never considered a thesis might get + divided in more than four volumes}% + \fi}}% + \fi + \vspace{1em} + \fi + \par + \unless\iftopTPTlogos + {\vfill\centering \printloghi\par}\fi + \vfill + \iftriennale + \let\@nomerelatore\empty + \else + \ifdottorato + \edef\@nomerelatore{\@PhDdirector}% + \else + \ifcsvoid{@principaladviser}{}{% + \def\@nomerelatore{\Relatore}} + \unless\ifclassica + \ifcsvoid{@secondadviser}{}{% + \def\@nomerelatore{\Relatori}}% + \fi + \fi + \fi + \ifdottorato + \let\@nomecandidato\empty + \else + \iflanguage{italian}{% + \iffemminile + \def\@nomecandidato{\Candidata}% + \else + \def\@nomecandidato{\Candidato}% + \fi + \ifcsvoid{@secondauthor}{}{% + \iffemminile + \def\@nomecandidato{\Candidate}% + \else + \def\@nomecandidato{\Candidati}% + \fi} + }{}% + \fi + \iftriennale + \begin{center}% + \large\mdseries\textsc{\@author} + \end{center}% + \else + \def\BoxRelatori{% + \begin{tabular}[t]{l}% + \hbox{\ifclassica\else\large\fi + \textbf{\protect\@nomerelatore}}\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifx\@secondadviser\empty \else + \ifclassica + \ifx\@thirdadviser\empty + \ifx\@secondadviser\empty\else + \\[1.5ex]\textbf{\Correlatore:}% + \fi + \else + \\[1.5ex]\textbf{\Correlatori:}% + \fi + \fi + \\[.6ex]\hbox{{\large\textrm{\protect\@secondadviser}}}% + \fi + \ifx\@thirdadviser\empty \else + \\[.6ex] \hbox{{\large\textrm{\protect\@thirdadviser}}}% + \fi + \end{tabular}% + }% + \def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}} + \def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@thirdauthor\endtabular}} + \def\BoxCandidati{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \textbf{\protect\@nomecandidato}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% + }% + \ifdottorato + \begin{center}\large + \textbf{\@author}\\[3em] + {\normalsize + \begin {tabular*}{\hsize}{@{\extracolsep{\fill}}ccc} + \ifcsvoid{@tutore}{}{\textbf{\Tutore}} + &\relax& + \ifcsvoid{@principaladviser}{}{\textbf{\@nomerelatore}} + \\ + \ifcsvoid{@tutore}{}{\@tutore} + &\relax& + \ifcsvoid{@principaladviser}{}{\@principaladviser} + \end{tabular*} + }% + \end{center} + \else + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi + \else + \noindent + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par + \fi + \fi + \fi +\ifcsvoid{@tutoreaziendale}{}{% + \vfill\vfill + {\centering \textbf{\@tutoreaziendalename}\\[.6ex] + \@tutoreaziendale\par}} + \par\clearpage + \ifcsvoid{@retrofrontespizio}{}% + {\null\vfill\thispagestyle{empty}\@retrofrontespizio\par\clearpage}% +\endgroup} +%% +%% Copyright 2005-2017 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their front pages. +%% +%% The topfront-example.tex source file is an example of how +%% to produce just the title page with TOPtesi and the external +%% package frontespizio. +%% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be copied to another file and its copy freely +%% edited and customised. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty, def and cfg files and the English documentation file in +%% PDF format. +%% +%% The source file of the Italian documentation file +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. +%% +%% End of file `toptesi-dottorale.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi-magistrale.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi-magistrale.sty new file mode 100644 index 00000000000..bbf63d5fdc6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi-magistrale.sty @@ -0,0 +1,537 @@ +%% +%% This is file `toptesi-magistrale.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topmag') +%% ______________________________________________________ +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +\NeedsTeXFormat{LaTeX2e}[2016/01/01] +\ProvidesPackage{toptesi-magistrale}[% +2017/10/22 v.~6.1.09 +Master degree title page] + +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@utoretitolo}{\newif\if@utoretitolo\@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle\@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding\@bindingfalse}{} +\ifcsundef{ifScuDo}{\newif\ifScuDo \ScuDofalse}{} +\ifcsundef{ifmonografia}{\newif\ifmonografia\monografiafalse}{} +\ifcsundef{iftriennale}{\newif\iftriennale\triennalefalse}{} +\ifcsundef{ifmagistrale}{\newif\ifmagistrale\magistralefalse}{} +\ifcsundef{ifdottorale}{\newif\ifdottorale\dottoralefalse}{} +\ifcsundef{ifsecondaria}{\newif\ifsecondaria\secondariafalse}{} +\ifcsundef{ifplurale}{\newif\ifplurale\pluralefalse}{} +\ifcsundef{iffemminile}{\newif\iffemminile\femminilefalse}{} + +\magistraletrue + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfrontfalse +\newif\ifevenboxes \evenboxesfalse}{} + +\ifcsundef{c@tomo}{\newcounter{tomo}{\setcounter{tomo}{0}}}{} +\providecommand\tomo{} +\ifcsundef{tomo}{\renewcommand\tomo[1][]{% + \ifstrequal{#1}{}{}{\setcounter{tomo}{\numexpr#1-1}}% + \refstepcounter{tomo}}}{} +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{14pt}{\@xivpttrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +\ProcessOptions*\relax +\def\headstrut{\vrule \@depth4\p@ \@height\z@ \@width\z@} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddfoot{\vbox to 0.05\paperheight{\vss + \hbox to\hsize{\hfil{\Large{\@submitdate}}\hfil}}}% + \let\@evenfoot\@oddfoot + \def\@oddhead{% + \vbox to\headheight{\vss\iftopTPTlogos + \hbox to\textwidth{% + \headstrut\hfil + \raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null% + }\fi + \ifcsvoid{@ateneo}{}{\vskip\smallskipamount + \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}} + \vss + }% + }% + \let\@evenhead\@oddhead + \def\chaptermark##1{}\def\sectionmark##1{}% +} + +\def\ps@classica{\let\@mkboth\markboth + \def\@oddhead{\vbox{% + \setbox256=\hbox{\LARGE\MakeUppercase{\@ateneo}} + \unless\ifdim\wd256<\textwidth + \setbox256=\hbox{\resizebox{\textwidth}{!}{\box256}}% + \fi + \hbox to \hsize{\hss\box256\hss}% + \ifclassica + \hbox to \hsize{\hfil\vrule\@width\z@ + \@height2ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}% + \fi + }}% + \def\@oddfoot{\vbox to \dimexpr\paperheight/20\relax{\vss + \ifclassica + \hbox to \hsize{\hfil\raisebox{-.3ex}[\z@][\z@]{% + \vrule\@height-2.6\p@\@depth3\p@\@width + \dimexpr\textwidth/3}\hfil}% + \fi + \hbox to\hsize{\hfill{\Large{\@submitdate}}\hfill}}% + }% + \let\@evenhead\@oddhead + \let\@evenfoot\@oddfoot +}% +\newif\iffemminile + +\ifTOPfront\ifclassica +\def\Candidato{Laureando} +\def\Candidata{Laureanda} +\def\Candidati{Laureandi} +\def\Candidate{Laureande} +\fi\fi +\let\@stitle\empty % default short title string + +\newcommand*{\titolo}[2][]{% +\ifstrequal{#1}{}% + {\gdef\@stitle{#2}}{\gdef\@stitle{#1}}% + \gdef\@titolo{#2}% +}% +\def\sottotitolo#1{\gdef\@subtitle{#1}} + +\let\@materia\empty +\def\Materia#1{\def\@materia{#1}}\let\materia\Materia +\def\relatore#1{\gdef\@principaladviser{#1}} +\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} +\def\sedutadilaurea#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \ifstrequal{#2}{}% + {\def\@submitdate{#1}}% + {\unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi} +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} +\def\annoaccademico#1{% +\ifclassica + \def\@submitdate{{\large\textsc{\AnnoAccademico}}% + {\Large\s@tanno#1!}} +\else + \PackageWarning{toptesi}{\string\annoaccademico\space + is usable only when the\MessageBreak + `classica' option is in force}% + \def\@submitdate{\AnnoAccademico\ #1 --- + Needs the `classica' option} +\fi} +\def\s@tanno#1-#2!{\oldstylenums{#1}\EnDash\oldstylenums{#2}} + +\def\EnDash{{\settowidth{\dimen@}{\large\scshape 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@}}} +\def\corsodilaurea#1{\gdef\@corso{#1}} +\def\ateneo#1{\gdef\@ateneo{#1}} +\def\nomeateneo#1{\gdef\@nomeat{\expandafter\uppercase{\expandafter #1}}} +\newcommand\facolta[2][]{\gdef\@facname{#2}\gdef\@facnumber{#1}} +\let\struttura\facolta + +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\newcommand\retrofrontespizio[1]{\long\gdef\@retrofrontespizio{#1}} +\newcommand\FacoltaDi[1]{\gdef\@faculty{#1}} +\let\StrutturaDidattica\FacoltaDi +\newcommand\CorsoDiLaureaIn[1]{\gdef\@laureaname{#1}} +\newcommand\TesiDiLaurea[1]{\gdef\@TesiDiLaurea{#1}} +\newcommand\InName[1]{\gdef\@InName{#1}} +\newcommand\CandidateName[1]{\gdef\@nomecandidato{#1}} +\newcommand\AdvisorName[1]{\gdef\Relatore{#1}\gdef\Relatori{#1}} +\newcommand\CoAdvisorName[1]{\gdef\Correlatore{#1}\gdef\Correlatori{#1}} +\newcommand\TutorName[1]{\gdef\Tutore{#1}} +\newcommand\NomeTutoreAziendale[1]{\gdef\@tutoreaziendalename{#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}} +\newcommand\IDlabel{\\\quad matricola:\xspace} +\IfFileExists{\jobname.cfg}{\input{\jobname.cfg}}% + {\IfFileExists{toptesi.cfg}{\input{toptesi.cfg}}{}} +\@ifundefined{@titolo}{\def\@titolo{}}{} + +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\IDlabel{\\\quad matricola\ } +\@ifundefined{@principaladviser}{\def\@principaladviser{}}{} +\@ifundefined{@secondadviser}{\def\@secondadviser{}}{} +\@ifundefined{@thirdadviser}{\def\@thirdadviser{}}{} +\@ifundefined{@tutore}{\def\@tutore{}}{} +\@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{@retrofrontespizio}{\def\@retrofrontespizio{}}{} +\@ifundefined{@subtitle}{\def\@subtitle{}}{} +\@ifundefined{@corso}{\def\@corso{}}{} +\@ifundefined{@ateneo}{\def\@ateneo{POLITECNICO DI TORINO}}{} +\@ifundefined{@nomeat}{\def\@nomeat{}}{}% Nome proprio dell'ateneo +\@ifundefined{@facolta}{\def\@facname{}}{} +\@ifundefined{@facnumber}{\def\@facnumber{}}{} +\@ifundefined{@faculty}{\def\@faculty{}}{} +\@ifundefined{PrimoTomo}{\def\PrimoTomo{Tomo primo}}{} +\@ifundefined{SecondoTomo}{\def\SecondoTomo{Tomo secondo}}{} +\@ifundefined{TerzoTomo}{\def\TerzoTomo{Tomo terzo}}{} +\@ifundefined{QuartoTomo}{\def\QuartoTomo{Tomo quarto}}{} +\ifclassica +\def\Candidato{Laureando} +\def\Candidata{Laureanda} +\def\Candidati{Laureandi} +\def\Candidate{Laureande} +\fi +\@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{@TesiDiLaurea}{\def\@TesiDiLaurea{Tesi di Laurea}}{} +\@ifundefined{@laureaname}{\def\@laureaname{Corso di Laurea in }}{} +\@ifundefined{@InName}{\def\@InName{in}}{} +\newbool{topTPTlogos} \booltrue{topTPTlogos} +%% Correct usage +%% Wrong usage +\newenvironment{frontespizio*}{\boolfalse{topTPTlogos}}{\fr@ntespizio} + +\newenvironment{frontespizio}{% + \ifdefstring{\@currenvir}{frontespizio} + {\booltrue{topTPTlogos}}{\TPTmaybestar} + }{% + \fr@ntespizio + } + +\DeclareDocumentEnvironment{ThesisTitlePage}{s}{% +\IfBooleanTF{#1}{\boolfalse{topTPTlogos}}{\booltrue{topTPTlogos}}% +\InputIfFileExists{\jobname.cfg}{}{% + \PackageInfo{toptesi-magistrale}{No configuration file found}} +}{\fr@ntespizio} +\newbool{AteneoInHead}\boolfalse{AteneoInHead} +\newcommand\TPTmaybestar[1]{\def\@tempA{#1}% +\ifdefstring{\@tempA}{*}% + {\boolfalse{topTPTlogos}\booltrue{AteneoInHead}\fr@ntespizio} + {\booltrue{topTPTlogos}\fr@ntespizio\@tempA} +} +\def\fr@ntespizio{% +\begingroup\par + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin +\null +\setcounter{page}{1}% +\normalfont +\ifclassica + \boolfalse{topTPTlogos} + \thispagestyle{classica} + \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo} + }{} +\else + \thispagestyle{titlepage} +\fi +\ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}} +\ifcsvoid{@ateneo}{% + \ifbool{topTPTlogos} + {}{\booltrue{AteneoInHead}\def\@ateneo{Manca il nome dell'ateneo}}% +}{% + \booltrue{AteneoInHead}% +} + + \ifbool{AteneoInHead}{}{% + {{\centering\LARGE \@ateneo\par}} + } + \ifcsvoid{@nomeat}{} + {\ifbool{topTPTlogos}{\vspace*{\dimexpr \headsep+2.5ex}}% + {\vspace*{-3ex}}% + {\centering\@nomeat\par}\vfill} + + \begin{center} + {\rmfamily\mdseries + \ifdottorato + \large \@phdschool\par\medskip + \else + \ifcsvoid{@faculty}{}{% + \LARGE\ifx\@facnumber\empty\else\@facnumber\space\fi + \@faculty\unskip\xspace\@facname\par\medskip + } + \fi + }% + \ifcsvoid{@corso}{}{{\large + \ifdottorato + \@PhDname\unskip\xspace + \@corso\ifx\@ciclo\empty\else~--~\@ciclo\fi + \else + \@laureaname\unskip\xspace\@corso + \fi + \par}} + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + \LARGE\@TesiDiLaurea% + \unless\ifx\empty\@materia + \\\@InName\\\@materia + \fi + \end{center} + \vspace{\stretch{0.2}} + \begin{center} + {\huge\bfseries \baselineskip=0.95em plus 1pt + \@titolo \par} + \end{center} + \unless\ifx\@subtitle\empty + \begin{center}% + \large\textrm{\@subtitle}\par + \end{center}% + \fi + \ifclassica + \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 + We never considered a thesis might get + divided in more than four volumes}% + \fi}}% + \fi + \vspace{1em} + \fi + \par + \unless\iftopTPTlogos + {\vfill\centering \printloghi\par}\fi + \vfill + \iflanguage{italian}{% + \iffemminile + \def\@nomecandidato{\Candidata}% + \else + \def\@nomecandidato{\Candidato}% + \fi + \ifcsvoid{@secondauthor}{}{% + \iffemminile + \def\@nomecandidato{\Candidate}% + \else + \def\@nomecandidato{\Candidati}% + \fi} + }{}% + \unless\iftriennale + \def\BoxRelatori{% + + \begin{tabular}[t]{l}% + \ifclassica + \hbox{\textbf{\Relatore}}% + \else + \hbox{\large\bfseries + \ifcsvoid{@secondadviser}{\Relatore}{\Relatori}} + \fi\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifx\@secondadviser\empty \else + \ifclassica + \ifx\@thirdadviser\empty + \ifx\@secondadviser\empty\else + \\[1.5ex]\textbf{\Correlatore:}% + \fi + \else + \\[1.5ex]\textbf{\Correlatori:}% + \fi + \fi + \\[.6ex]\hbox{{\large\textrm{\protect\@secondadviser}}}% + \fi + \ifx\@thirdadviser\empty \else + \\[.6ex] + \hbox{{\large\textrm{\protect\@thirdadviser}}}% + \fi + \end{tabular}% + }% + \def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}% + \@secondauthor\endtabular}} + \def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}% + \@thirdauthor\endtabular}} + \def\BoxCandidati{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \textbf{\protect\@nomecandidato}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% + }% + \unless\ifdottorato + \unless\ifclassica + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par\vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati} + \fi + \else + \noindent + \makebox[\textwidth]{% + \BoxRelatori\hfill\BoxCandidati}\par + \fi + \fi + \fi + \ifcsvoid{@tutoreaziendale}{}{% + \vfill\vfill + {\centering \textbf{\@tutoreaziendalename}\\[.6ex] + \@tutoreaziendale\par}% + } + \par\clearpage +\ifcsvoid{@retrofrontespizio}{}% + {\null\vfill\thispagestyle{empty}\@retrofrontespizio\par\clearpage}% +\endgroup} +%% +%% Copyright 2005-2017 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their front pages. +%% +%% The topfront-example.tex source file is an example of how +%% to produce just the title page with TOPtesi and the external +%% package frontespizio. +%% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be copied to another file and its copy freely +%% edited and customised. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty, def and cfg files and the English documentation file in +%% PDF format. +%% +%% The source file of the Italian documentation file +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. +%% +%% End of file `toptesi-magistrale.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi-monografia.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi-monografia.sty new file mode 100644 index 00000000000..ed636024689 --- /dev/null +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi-monografia.sty @@ -0,0 +1,372 @@ +%% +%% This is file `toptesi-monografia.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topmon') +%% ______________________________________________________ +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +\NeedsTeXFormat{LaTeX2e}[2016/01/01] +\ProvidesPackage{toptesi-monografia}[% +2017/10/22 v.~6.1.09 +Bachelor degree title page] + +\monografiatrue +\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} + +\ifcsundef{ifclassica}{\newif\ifclassica \classicafalse}{} +\ifcsundef{if@autoretitolo}{\newif\if@utoretitolo \@utoretitolofalse}{} +\ifcsundef{if@ldstyle}{\newif\if@ldstyle \@ldstylefalse}{} +\ifcsundef{if@xivpt}{\newif\if@xivpt \@xivptfalse}{} +\ifcsundef{if@binding}{\newif\if@binding \@bindingfalse}{} + +\ifcsundef{ifTOPfront}{\newif\ifTOPfront \TOPfronttrue}{} +\ifcsundef{ifevenboxes}{\newif\ifevenboxes \evenboxesfalse}{} +\DeclareOption{evenboxes}{\evenboxestrue} +\DeclareOption{cucitura}{\@bindingtrue} +\DeclareOption{classica}{\classicatrue} +\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} +\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} +\ProcessOptions\relax + +\def\monografia#1{\gdef\@titolo{#1}} +\let\titolo\monografia +\let\@stitle\empty + +\def\sottotitolo#1{\gdef\@subtitle{#1}} +\providecommand\@materia{} +\def\Materia#1{\gdef\@materia{#1}} +\let\materia\Materia +\providecommand\@nomerelatoresingolare{} +\providecommand\@nomerelatoreplurale{} +\newcommand\NomeRelatore[2]{% + \gdef\@nomerelatoresingolare{#1}\gdef\@nomerelatoreplurale{#2}} +\NomeRelatore{Relatore}{Relatori} +\providecommand\@principaladviser{} +\def\relatore#1{\gdef\@principaladviser{#1}} +\providecommand\@secondadviser{}\def\secondorelatore#1{\gdef\@secondadviser{#1}} +\providecommand\@thirdadviser{} +\def\terzorelatore#1{\gdef\@thirdadviser{#1}} + +\unless\ifcsname iffemminile\endcsname + \newif\iffemminile\femminilefalse +\fi +\unless\ifcsname ifplurale\endcsname + \newif\ifplurale\pluralefalse +\fi +\providecommand\@author{}\providecommand\@@author{} +\NewDocumentCommand\candidato{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminilefalse\pluralefalse} +\NewDocumentCommand\candidata{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}} +\femminiletrue\pluralefalse} +\providecommand\@secondauthor{} +\NewDocumentCommand\secondocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\secondacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@secondauthor{#1}}% + {\gdef\@secondauthor{#1\IDlabel#2}}% +\pluraletrue} +\providecommand\@thirdauthor{} +\NewDocumentCommand\terzocandidato{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\femminilefalse\pluraletrue} +\NewDocumentCommand\terzacandidata{m o}{% +\IfNoValueTF{#2}{\gdef\@thirdauthor{#1}}% + {\gdef\@thirdauthor{#1\IDlabel#2}}% +\pluraletrue} + +\providecommand\IDlabel{\\\quad matricola\ } + +\edef\@submitdate{{\let\today\relax\unskip\today}} + +\def\sedutadilaurea#1{\getseduta#1 !} +\def\getseduta#1 #2!{% + \def\@tempA{#2}% + \ifx\@tempA\empty + \def\@submitdate{#1}% + \else + \unless\ifclassica + \def\@submitdate{#1 #2}% + \else + \s@dutaclassica#1 #2!% + \fi + \fi +}% +\def\s@dutaclassica#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}}% + +\newcommand*\NomeAnnoAccademico[1]{\gdef\AnnoAccademico{#1}} +\@ifundefined{AnnoAccademico}{\gdef\AnnoAccademico{Anno accademico}}{} + +\newcommand\NomeCorsoDiStudi{Corso di laurea in\xspace} +\providecommand\@ateneo{} +\newcommand\ateneo[1]{\gdef\@ateneo{#1}} +\providecommand\@NomeAteneo{} +\newcommand\NomeAteneo[1]{\gdef\@NomeAteneo{#1}} +\let\nomeateneo\NomeAteneo +\providecommand\@strutturadi{} +\newcommand\StrutturaDi[1]{\gdef\@strutturadi{#1\unskip\xspace}} +\newcommand\struttura[2][]{\gdef\@struttura{\ifempty{#1}{}{#1 }\@strutturadi #2}} +\ifcsundef{TPT@logospace}{\newlength{\TPT@logospace}\TPT@logospace=3em}{} +\ifcsundef{TPT@logobox}{\newsavebox{\TPT@logobox}}{} +\ifcsundef{TPT@logoheight}{\newdimen\TPT@logoheight}{} +\providecommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\logosede[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\providecommand\printloghi{} +\renewcommand\printloghi{% +\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +\providecommand\@tutoreaziendale{} +\def\tutoreaziendale#1{\gdef\@tutoreaziendale{#1}} +\providecommand\@tutoreaziendalename{Supervisore Aziendale} +\def\NomeTutoreAziendale#1{\gdef\@tutoreaziendalename{#1}} +\let\@luogo\empty\def\@giorno{*} +\def\luogo#1{\def\@luogo{#1}}% +\def\giorno#1{\def\@giorno{#1}} +\newcommand\retrofrontespizio[1]{% +\long\gdef\@retrofrontespizio{#1}} +\providecommand\@corsodistudi{} +\newcommand\corsodistudi[1]{\gdef\@corsodistudi{#1}} +\let\corsodilaureain\corsodistudi +\providecommand\@monografia{Monografia} +\newcommand\NomeElaborato[1]{\gdef\@monografia{#1}} +\let\NomeMonografia\NomeElaborato +\def\@nomecandidato{\ifclassica Laureando\else Candidato\fi} +\def\@nomecandidata{\ifclassica Laureanda\else Candidata\fi} +\def\@nomecandidati{\ifclassica Laureandi\else Candidati\fi} +\def\@nomecandidate{\ifclassica Laureande\else Candidate\fi} +\newcommand\TitoloListaCandidati[1]{\CandidateNames#1,,,,!} +\def\CandidateNames#1,#2,#3,#4,!{% + \gdef\@nomecandidato{#1}% Masc/neutr-sing + \gdef\@nomecandidati{#2}% Masc/neutr-plur + \gdef\@nomecandidata{#3}% Fem-sing + \gdef\@nomecandidate{#4}% Fem-plur +} +\providecommand\Relatore{Relatore} +\newcommand\AdvisorName[1]{\gdef\Relatore{#1}} +\providecommand\Correlatore{Correlatore} +\providecommand\Correlatori{Correlatori} +\newcommand\CoAdvisorName[2]{\gdef\Correlatore{#1}% + \gdef\Correlatori{#2}} +\ifcsundef{iftopTPTlogos}{\newbool{topTPTlogos} \booltrue{topTPTlogos}}{} +\NewDocumentEnvironment{ThesisTitlePage}{s} +{% OPENING +\IfBooleanTF{#1}{\boolfalse{topTPTlogos}}{\booltrue{topTPTlogos}}% + \begin{titlepage} + \oddsidemargin=\dimexpr(\oddsidemargin+\evensidemargin)/2\relax + \evensidemargin \oddsidemargin + \IfFileExists{\jobname.cfg}{\input{\jobname.cfg}% + }{%C + \PackageWarning{monografia}{No configuration file found}% + }%C +}{% CLOSING + \ifbool{topTPTlogos}{\noindent\raisebox{-0.5em}[\z@][\z@]{\makebox[\textwidth]{\printloghi}}\par\bigskip}{} + \ifdefempty{\ateneo}{}{{\centering\huge \@ateneo\par}} + \ifdefempty{\@NomeAteneo}{}{\medskip{\centering\large + \expandafter\MakeUppercase\expandafter{\@NomeAteneo}\par}} + \ifdefempty{\@strutturadi}{}{\vspace{\stretch{0.1}}\par{\centering \Large\@struttura\par}} + \ifdefempty{\@corsodistudi}{}{\bigskip{\centering\large \NomeCorsoDiStudi\ \@corsodistudi\par}} + \ifdefempty{\@materia}{}{\medskip{\centering\large\@materia\par}} + \vspace{\stretch{0.25}} + {\centering\large \@monografia\par} + \vspace{\stretch{0.1}} + {\centering\LARGE\bfseries \@titolo\par} + \ifdefempty{\@subtitle}{\vspace{\stretch{0.3}}}{\bigskip + {\centering\large\@subtitle\par}} + \ifbool{topTPTlogos}{}{\vspace{3em}\par\centering\printloghi\par} + \vspace{\stretch{0.25}} + +\ifdefempty{\@principaladviser}{\def\BoxRelatori{}}{% + \def\BoxRelatori{% + \begin{tabular}[t]{l}% + \hbox{\unless\ifclassica\large\fi + \ifdefempty{\@secondadviser}% + {\let\@nomerelatore\@nomerelatoresingolare}% + {\let\@nomerelatore\@nomerelatoreplurale}% + \textbf{\@nomerelatore}}\\[.6ex] + \hbox{\large\textrm{\protect\@principaladviser}}% + \ifdefempty{\@secondadviser}{}{% + \ifclassica + \ifdefempty{\@thirdadviser}{% + \ifdefempty{\@secondadviser}{}{% + \\[1.5ex]\textbf{\Correlatore:}% + } + }{% + \\[1.5ex]\textbf{\Correlatori:}% + } + \fi + \\[.6ex] + \hbox{{\large\textrm{\protect\@secondadviser}}}% + } + \ifdefempty{\@thirdadviser}{}{% + \\[.6ex] + \hbox{{\large\textrm{\protect\@thirdadviser}}}% + } + \end{tabular}% + }% +} +\def\print@secondocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}}% +\def\print@terzocandidato{\\\relax + \hbox{\large\tabular{@{}l@{}}\@thirdauthor\endtabular}}% + +\def\BoxCandidati{% + \begin{tabular}[t]{l} + \hbox{\unless\ifclassica\large\fi + \textbf{\ifplurale + \iffemminile\@nomecandidate\else\@nomecandidati\fi + \else + \iffemminile\@nomecandidata\else\@nomecandidato\fi + \fi}}\\[.6ex] + \hbox{\large\tabular{@{}l@{}}\@author\endtabular}% + \ifcsvoid{@secondauthor}{}{\print@secondocandidato}% + \ifcsvoid{@thirdauthor}{}{\print@terzocandidato}% + \end{tabular}% +}% +\unless\ifclassica + \ifdefempty{\BoxRelatori}{%Bachelor degree without supervisors + \noindent\makebox[\textwidth]{\tabular[t]{@{}c@{}} + \unless\ifclassica\large\fi + \textbf{\ifplurale + \iffemminile\@nomecandidate\else\@nomecandidati\fi + \else + \iffemminile\@nomecandidata\else\@nomecandidato\fi + \fi}\\[.6ex] + \@author + \ifcsvoid{@secondauthor}{}{\\ \@secondauthor} + \ifcsvoid{@thirdauthor}{}{\\ \@thirdauthor} + \endtabular}% + }{% + \unless\ifevenboxes + \begin{flushleft}% + \BoxRelatori + \end{flushleft}\par + \vspace*{-1.5\baselineskip} + \begin{flushright}% + \BoxCandidati + \end{flushright}% + \else + \noindent + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}% + \fi} +\else + \noindent + \makebox[\textwidth]{\BoxRelatori\hfill\BoxCandidati}% +\fi +\par\vspace*{\stretch{0.5}} +\ifdefempty{\@tutoreaziendale}{\relax}{\begin{center} +\textbf{\@tutoreaziendalename}\\[0.6ex] +\@tutoreaziendale +\end{center}} +\noindent\raisebox{-\baselineskip}[0pt][0pt]{% + \makebox[\textwidth]{\@submitdate}}% +\end{titlepage}\newpage + \ifdefempty{\@retrofrontespizio}{}{\thispagestyle{empty}% + \vspace*{\stretch{1}}\par + \@retrofrontespizio\par + \ifdefstring{\@giorno}{*}{}{\medskip + \noindent + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lc@{}} + \ifdefempty{\@luogo}{}{\@luogo, }% + \ifdefempty{\@giorno}{\today}{\@giorno} + & \@@author\\[3ex] + & \makebox[0.5\textwidth]{\dotfill} + \end{tabular*}\par} + \newpage} +} +%% +%% Copyright 2005-2017 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their front pages. +%% +%% The topfront-example.tex source file is an example of how +%% to produce just the title page with TOPtesi and the external +%% package frontespizio. +%% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be copied to another file and its copy freely +%% edited and customised. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty, def and cfg files and the English documentation file in +%% PDF format. +%% +%% The source file of the Italian documentation file +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. +%% +%% End of file `toptesi-monografia.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi-scudo.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi-scudo.sty new file mode 100644 index 00000000000..d0e3c8a6033 --- /dev/null +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi-scudo.sty @@ -0,0 +1,301 @@ +%% +%% This is file `toptesi-scudo.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topscu') +%% ______________________________________________________ +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +\NeedsTeXFormat{LaTeX2e}[2016/01/01] +\ProvidesPackage{toptesi-scudo}[% +2017/10/22 v.~6.1.09 +Extension for ScuDo theses] + +\ScuDotrue +\ifPDFTeX + \usepackage{amsmath,amssymb,amsthm} +\else + \usepackage{amsmath,amsthm} + \usepackage{unicode-math} +\fi +\AtBeginDocument{% +\providecommand\diff{}% +\renewcommand{\diff}{\mathop{}\!\mathrm{d}} +\providecommand{\gei}{\ensuremath{{\mathop{\mathrm{j}}\nolimits}}} +\providecommand{\eu}{\ensuremath{{\mathop{\mathrm{e}}\nolimits}}} +\let\iu\gei} +\usepackage{xparse} % Command and environment advanced definitions +\usepackage{lscape} % Supports landscape Layout +\usepackage{setspace} % Define line spacing in paragraph. Don't use! +\usepackage{calc} % Calculation macros +\usepackage{ifthen} % Conditional statements +\usepackage{caption} % Configure captions +\usepackage{subcaption}% Defines env. subfigure and its caption +\usepackage{tabularx} % Tables with expandable columns +\usepackage{booktabs} % professional rules in tables +\usepackage{multirow} % It's more professional avoiding tables with + % cells spanning several rows +\usepackage{siunitx} % advanced management of units of measure +\usepackage{float} % Never ever use its code position H ! + % Use only to define new floating objects +\usepackage[intoc]{nomencl}% Generate nomenclatures or glossaries +\makenomenclature +\renewcommand{\nomgroup}[1]{% +\ifstrequal{#1}{A}{\item[\textbf{Roman Symbols}]}{% +\ifstrequal{#1}{G}{\item[\textbf{Greek Symbols}]}{% +\ifstrequal{#1}{Z}{\item[\textbf{Acronyms / Abbreviations}]}{% +\ifstrequal{#1}{R}{\item[\textbf{Superscripts}]}{% +\ifstrequal{#1}{S}{\item[\textbf{Subscripts}]}{% +\ifstrequal{#1}{X}{\item[\textbf{Other Symbols}]}{}}}}}}} + +\renewcommand{\nompreamble}{\markboth{\nomname}{\nomname}} +\newcommand{\printnomencl}[1][]{% +\immediate\closeout\@nomenclaturefile +\ifLuaTeX + \chardef\T@T@shellescape\directlua{tex.write(os.execute())} + \def\exec@makeindex{% + \directlua{os.execute("\luaescapestring + {makeindex -s nomencl.ist -t \jobname.nlg -o \jobname.nls \jobname.nlo}")}} +\else + \def\exec@makeindex{\immediate\write18{% + makeindex -s nomencl.ist -t \jobname.nlg -o \jobname.nls \jobname.nlo}} +\fi +\exec@makeindex +\ifblank{#1}{\printnomenclature}{\printnomenclature[#1]}% +} +\usepackage[autostyle]{csquotes} % necessary for biblatex +\usepackage[backend=biber, + style=numeric-comp, + citestyle=numeric, + sorting=nty, + natbib]{biblatex} % LaTeX specific bibliography handler +\addbibresource{references.bib}% bibliographic data base(s} +\usepackage{imakeidx}% to generate automatic indices +\ifPDFTeX \usepackage{indentfirst}\fi +\raggedbottom + +\AfterEndPreamble{\english}% Set English as default language + +\TOPfrontfalse + +\providecommand*\@Ndissertation{Doctoral Dissertation} +\providecommand*\@Ndoctoralprogram{Doctoral Program in\xspace} +\providecommand*\@programname{} +\providecommand\@Cyclenumber{} +\providecommand*\@title{} +\providecommand*\@subtitle{\vspace{\stretch{1}}} +\providecommand*\@author{} +\providecommand*\@Nsupervisor{Supervisor}\providecommand*\@Nsupervisors{Supervisors} +\newcount\@supervisornumber +\providecommand*\@supervisorlist{} +\providecommand\@Nexaminationcommittee{Doctoral Examination Committee:} +\providecommand*\@Examinerlist{} +\providecommand*\@examlocation{Politecnico di Torino} +\providecommand*\@examinationdate{} +\providecommand*\@creativecommons{This thesis is licensed under a Creative Commons License, Attribution - Noncommercial- NoDerivative Works 4.0 International: see \url{www.creativecommons.org}. +The text may be reproduced for non-commercial purposes, provided that credit is given to the original author.} +\providecommand\@disclaimer{\noindent I hereby declare that +the contents and organisation of this dissertation constitute +my own original work and does not compromise in any way the +rights of third parties, including those relating to the +security of personal data.} + +\newcommand*\Ndissertation[1]{\gdef\@Ndissertation{#1}} +\newcommand*\Ndoctoralprogram[1]{\gdef\@Ndoctoralprogram{#1\xspace}} +\newcommand*\ProgramName[1]{\gdef\@programname{#1\xspace}} +\newcommand*\CycleNumber[1]{\gdef\@Cyclenumber{\ifblank{#1}{}{(#1 cycle)}}} +\renewcommand*\title[1]{\gdef\@title{#1}} +\newcommand*\subtitle[1]{\gdef\@subtitle{\ifblank{#1}{}{\medskip\par + {\Large #1\par}}\vspace{\stretch{1}}}} +\renewcommand*\author[1]{\gdef\@author{#1}} +\newcommand*\NSupervisor[2] + {\gdef\@Nsupervisor{#1}\gdef\@Nsupervisors{#2}} +\newcommand*\SupervisorList[1]{\gdef\@supervisorlist{#1}} +\newcommand\SupervisorNumber[1]{% + \ifblank{#1}{\@supervisornumber=0}{\@supervisornumber=#1}} +\newcommand\Nexaminationcommittee[1]{\gdef\@Nexaminationcommittee{#1}} +\newcommand*\ExaminerList[1]{\gdef\@Examinerlist{#1}} +\newcommand*\Nlocation[1]{\gdef\@examlocation{#1}} +\newcommand*\ExaminationDate[1]{\gdef\@examinationdate{#1}} + +\newlength{\TPT@logospace}\TPT@logospace=3em\relax +\newsavebox{\TPT@logobox} \setbox\TPT@logobox\hbox{} +\newdimen\TPT@logoheight +\newcommand*\setlogodistance[1]{\TPT@logospace=#1} +\providecommand*{\@logosede}{} + +\ifcsundef{T@Tlogoheight}{%\ + \newlength\T@Tlogoheight + \setlength\T@Tlogoheight{0.8\dimexpr(\paperwidth-\textwidth)/2}}{} + +\newcommand\PhDschoolLogo[2][\T@Tlogoheight]{\def\@logosede{#2}\TPT@logoheight=#1\relax +\ifcsvoid{@logosede}{\sbox{\TPT@logobox}{}}{\begin{lrbox}{\TPT@logobox}% +\expandafter\fillup@TCP@logobox\@logosede,!}} + +\def\fillup@TCP@logobox#1,#2!{% +\ifblank{#1}{\end{lrbox}\ifdim\wd\TPT@logobox>\textwidth +\sbox\TPT@logobox{\resizebox{\textwidth}{!}{\box\TPT@logobox}}\fi}% +{\def\@logosede{#2}% +\includegraphics[height=\TPT@logoheight]{#1}\hskip\TPT@logospace + \expandafter\fillup@TCP@logobox\@logosede,!}} + +\newcommand\printloghi{\unless\ifvoid\TPT@logobox\usebox{\TPT@logobox}\fi} +\newcommand\Disclaimer[1]{\gdef\@disclaimer{#1}} +\newcommand\CClicence[1]{\gdef\@creativecommons{#1}} +\providecommand\@signature{% +\begin{flushright} +\parbox{0.5\textwidth}{\centering +\dotfill\\ +\@author\\ +Turin, \@examinationdate +}% +\end{flushright}} +\newcommand\Signature[1]{\gdef\@signature{#1}} +\newenvironment{ThesisTitlePage}{% Apertura +\InputIfFileExists{\jobname.cfg}{\relax}{\relax}% +}{%Chiusura +\begin{titlepage}\parindent=0pt +{\centering +\raisebox{-1ex}[0pt][0pt]{\makebox[\textwidth]{\printloghi}}\par +\vspace{\baselineskip} +\@Ndissertation\\ +\@Ndoctoralprogram \@programname\@Cyclenumber +\bigskip + +{\Huge\bfseries \@title\par} +\@subtitle +{\Large\bfseries \@author\par} +\smallskip +\mbox{* * * * * *} +\vspace{\stretch{1}} + +{\large\bfseries \ifcase\@supervisornumber +\relax\or \@Nsupervisor\else\@Nsupervisors\fi\par} +\@supervisorlist +\par} + +\vspace{\stretch{1}} + +\ifcsvoid{@Examinerlist}{\relax}{% +\noindent\begin{tabular}{@{}l} +\bfseries \@Nexaminationcommittee\\ +\@Examinerlist +\end{tabular}} + +\begin{center} +\raisebox{-3\baselineskip}[0pt][0pt]{% +\parbox{0.5\textwidth}{\centering +\@examlocation\\ +\@examinationdate}} +\end{center} +\end{titlepage} +\newpage\thispagestyle{empty} +\vspace*{\stretch{1}} +\@creativecommons +\vspace{3\baselineskip} + +\ifempty{\@keywords}{\relax}{Keywords: \@keywords\par +\vspace{2\baselineskip}} + +\@disclaimer +\vspace{3\baselineskip} + +\@signature} + +\providecommand*\subject{}\providecommand*\@subject{} +\renewcommand\subject[1]{\gdef\@subject{#1}} +\providecommand*\keywords{}\providecommand*\@keywords{} +\renewcommand\keywords[1]{\gdef\@keywords{#1}} +\AtBeginDocument{% Set some metadata + \hypersetup{% + pdftitle = {\@title}, + pdfauthor = {\@author}, + pdfsubject = {\@subject}, + pdfkeywords= {\@keywords} + } +} +\AtEndDocument{% +\clearpage +\ifbool{@twoside}% +{\ifodd\value{page}\thispagestyle{empty}\newpage\fi}{\relax}% +\vspace*{\stretch{1}}% +\noindent +\begin{tabularx}{\textwidth}{Xp{0.45\textwidth}X} +& +This Ph.D.\ thesis has been typeset by means of the \TeX-system +facilities. The typesetting engine was +\ifPDFTeX + \ifcsdef{pdfLaTeX}{\pdfLaTeX}{pdf\/\LaTeX}% +\else + \ifLuaTeX + \ifcsdef{LuaLaTeX}{\LuaLaTeX}{Lua\/\LaTeX}% + \else + \ifcsdef{Xe}{\Xe\LaTeX}{Xe\/\LaTeX} + \fi +\fi. +The document class was \texttt{toptesi}, by Claudio Beccari, +with option \texttt{tipotesi\discretionary{}{=}{=}scudo}. +This class is available in every up-to-date and complete +\TeX-system installation. +& +\end{tabularx} +\vspace*{\stretch{2}}% +} + +%% +%% Copyright 2005-2017 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their front pages. +%% +%% The topfront-example.tex source file is an example of how +%% to produce just the title page with TOPtesi and the external +%% package frontespizio. +%% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be copied to another file and its copy freely +%% edited and customised. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty, def and cfg files and the English documentation file in +%% PDF format. +%% +%% The source file of the Italian documentation file +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. +%% +%% End of file `toptesi-scudo.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi-sss.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi-sss.sty new file mode 100644 index 00000000000..6fce750726f --- /dev/null +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi-sss.sty @@ -0,0 +1,194 @@ +%% +%% This is file `toptesi-sss.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% toptesi.dtx (with options: `topsss') +%% ______________________________________________________ +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari +%% All rights reserved +%% +%% License information appended +%% +\NeedsTeXFormat{LaTeX2e}[2016/01/01] +\ProvidesPackage{toptesi-sss}[% +2017/10/22 v.~6.1.09 +High school title page] + +%% +%%%% Math fonts and AMS extensions (fontspec is already loaded) +\secondariatrue +\ifPDFTeX + \@ifpackageloaded{newtxmath}{}% + {\@ifpackageloaded{newpxmath}{}% + {% + \RequirePackage{amsmath,amssymb,amsthm}% + }% + }% +\else + \RequirePackage{amsmath,amsthm} + \RequirePackage{unicode-math} +\fi +\RequirePackage{xcolor} % Intelligent colors +\RequirePackage{xspace} % Intelligent space +\RequirePackage{xparse} % Command and environment advanced definitions +\RequirePackage{calc} % Calculation macros +\RequirePackage{ifthen} % Conditional statements +\RequirePackage{booktabs} % professional rules in tables +\RequirePackage{multirow} % It's more professional avoiding tables + % with cells spanning several rows +\RequirePackage[autostyle]{csquotes} % necessary for biblatex +\ifPDFTeX \RequirePackage{indentfirst}\fi +\raggedbottom +\providecommand*\@SSSLogo{} +\providecommand*\@tiposcuola{} +\providecommand*\@indirizzomiur{} +\providecommand*\@opzionemiur{} +\providecommand*\@nomescuola{} +\providecommand*\@sedescuola{} +\providecommand*\@annoscolastico{} + +\providecommand*\@Ntesina{Tesina di maturit\`a} +\providecommand*\@title{} +\providecommand*\@subtitle{} + +\ifcsundef{ifemminile}{\newif\iffemminile\femminilefalse}{} +\providecommand*\@Ncandidato{\iffemminile Studentessa\else + Studente\fi} +\providecommand*\@author{} +\providecommand*\@Npresidente{Presidente di commissione} +\providecommand*\@presidente{} +\providecommand*\@numerocommissione{} + +\newcommand*\SSSLogo[1]{\gdef\@SSSLogo{#1}} +\newcommand*\NomeTesina[1]{\gdef\@Ntesina{#1}} +\newcommand*\IndirizzoMiur[1]{\gdef\@indirizzomiur{#1}} +\newcommand*\OpzioneMiur[1]{\gdef\@opzionemiur{#1}} +\newcommand*\TipoScuola[1]{\gdef\@tiposcuola{#1}} +\newcommand*\SedeScuola[1]{\gdef\@sedescuola{#1}} +\newcommand*\NomeScuola[1]{\gdef\@nomescuola{#1}} +\newcommand*\AnnoScolastico[1]{\gdef\@annoscolastico{#1}} +\newcommand*\NomeCandidato[1]{\gdef\@Ncandidato{#1}} + +\newcommand*\titolo[1]{\gdef\@title{#1}} +\newcommand*\sottotitolo[1]{\gdef\@subtitle{\ifblank{#1}{}% + {\medskip\par{\Large #1\par}}% + \vspace{\stretch{1}}}} + +\NewDocumentCommand\studente{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}}\femminilefalse} +\NewDocumentCommand\studentessa{m o}{\gdef\@@author{#1}% +\IfNoValueTF{#2}{\gdef\@author{#1}}% + {\gdef\@author{#1\IDlabel#2}}\femminiletrue} +\newcommand*\IDlabel{\\\normalfont Classe\ } +\newcommand*\Presidente[1]{\gdef\@presidente{#1}} +\newcommand*\NumeroCommissione[1]{\gdef\@numerocommissione{#1}} +\newcommand*\ifBlank{\expandafter\ifblank\expandafter} +\newenvironment{FrontespizioTesina}{% +\InputIfFileExists{\jobname.cfg}{\relax}{\relax} +}{% +\begin{titlepage}\parindent=0pt +\centering +\raisebox{0.025\textheight}[0pt][0pt]{\parbox[b]{\textwidth}{% +\centering +\ifBlank{\@tiposcuola}{Manca il tipo di scuola}{\@tiposcuola}% +\ifBlank{\@indirizzomiur}{\relax}{\space--\space\@indirizzomiur}% +\ifBlank{\@opzionemiur}{\relax}{\space--\space\@opzionemiur}\par +\vspace{-1ex} +\makebox[0.5\textwidth]{\rule{0.50\textwidth}{0.4\p@}}\par +\vspace{-1.5ex} +\makebox[0.25\textwidth]{\rule{0.25\textwidth}{0.8\p@}}\par +\medskip + +\textsc{\@nomescuola}}}\par +\null\hfill\ifBlank{\@sedescuola}{\relax}{% +\raisebox{0.5\baselineskip}[0pt][0pt]{% +\parbox{0.4\textwidth}{\raggedleft\@sedescuola}}}\par +\vspace{\stretch{1}} +{\large \@Ntesina\par} +\vspace{\stretch{0.5}} + +{\Large\textbf{\@title}\par} +{\vspace{0.5\baselineskip} + +\normalsize\@subtitle\par}% uno \stretch{1} è già stato fatto +\ifBlank{\@SSSLogo}% + {\vspace{\stretch{1}}}% + {\includegraphics[height=30mm]{\@SSSLogo}}\par\vspace{\stretch{1}} +\begin{minipage}[t]{0.45\textwidth}\flushleft +\ifBlank{\@presidente}{}{\@Npresidente\\ +{\bfseries\scshape\@presidente}\par +\vspace{\baselineskip}} + +\ifBlank{\@numerocommissione}{}{Commissione numero\\ +\textbf{\@numerocommissione}} +\end{minipage} +\hfill +\begin{minipage}[t]{0.45\textwidth}\flushright +\@Ncandidato\\ +{\bfseries\scshape\@author} +\end{minipage} + +\vspace{\stretch{1}} + +\raisebox{-0.05\textheight}[0pt][0pt]{% +\parbox[t]{\textwidth}{\centering +\makebox[0.25\textwidth]{\hrulefill}\\[\medskipamount] +Anno scolastico \@annoscolastico}} +\end{titlepage} +\clearpage}%% +%% +%% +%% Copyright 2005-2017 Claudio Beccari +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "author-maintained" +%% +%% This work consists of this file toptesi.dtx, a README file +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. +%% +%% Furthermore the bundle contains the documentation source +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. +%% +%% The toptesi-example.tex source file is just an example +%% that shows how to use the various commands; by commenting +%% or uncommenting certain source lines it is possible to +%% typeset different kind of theses and their front pages. +%% +%% The topfront-example.tex source file is an example of how +%% to produce just the title page with TOPtesi and the external +%% package frontespizio. +%% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% +%% The toptesi.cfg file is a sample of a local configuration +%% file that can be copied to another file and its copy freely +%% edited and customised. +%% +%% By running pdflatex on toptesi.dtx the user gets the class, +%% sty, def and cfg files and the English documentation file in +%% PDF format. +%% +%% The source file of the Italian documentation file +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. +%% +%% End of file `toptesi-sss.sty'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi.cfg b/Master/texmf-dist/tex/latex/toptesi/toptesi.cfg index 2b0da07a89d..f249f268751 100644 --- a/Master/texmf-dist/tex/latex/toptesi/toptesi.cfg +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi.cfg @@ -6,40 +6,63 @@ %% %% toptesi.dtx (with options: `topcfg') %% ______________________________________________________ -%% The TOPtesi package -%% Copyright (C) 2005-2016 Claudio Beccari +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari %% All rights reserved %% %% License information appended %% + %% %%================================================================ %% This file is the only file of the TOPtesi bundle that the user %% can modify without restrictions in order to customise 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. -%% Use this file by copying it to another file to be named as the -%% thesis main file and with extension .cfg; This bundle will try -%% to read "\jobname.cfg"; if this file it does nothing. This means -%% that the provided file toptesi.cfg is to be used as a model, not -%% to% be used directly. +%% arguments to macros, add definitions and so on. +%% Use this file by copying the relevant section to another file +%% to be named as the thesis main file and with extension .cfg. +%% This bundle will try to read "\jobname.cfg"; if this file does +%% not exist, the bundle files don't do anything. This implies that +%% the provided file toptesi.cfg is to be used as a model, not to +%% be used directly. %%================================================================ %% -\ateneo{Politecnico di Torino} -\facolta{}% nessun nome di default/ no default name -\FacoltaDi{}% nessun prefisso per la facoltà/no default faculty label -%%\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} -%%\retrofrontespizio{Questo testo è soggetto alla Creative Commons Licence} +\ifmagistrale + \ateneo{Politecnico di Torino} + \facolta{}% nessun nome di default/ no default name for PoliTO + \FacoltaDi{}% nessun prefisso per la facoltà/no default faculty label for PoliTO + \CorsoDiLaureaIn{Corso di Laurea in} + \TesiDiLaurea{Tesi di Laurea Magistrale} + \InName{in} + %%\retrofrontespizio{Questo testo è soggetto alla + %% Creative Commons Licence} +\fi +\ifsecondaria + +\fi +\ifScuDo + \PhDschoolLogo{Logo-Scudo} + \Ndissertation{Docoral Dissertation} + \Ndoctoralprogram{Doctoral Program in\xspace} + \NSupervisor{Supervisor}{Supervisors} + \SupervisorNumber{1} + \Nexaminationcommittee{Doctoral Examination Committee:} + \Nlocation{Politecnico di Torino, Turin, Italy} + \Disclaimer{\noindent I hereby declare that the + contents and organisation of this dissertation + constitute my own original work and does not + compromise in any way the rights of third parties, + including those relating to the security of personal + data.} + \CClicence{This thesis is licensed under a Creative Commons + License, Attribution - Noncommercial- NoDerivative Works 4.0 + International: see \url{www.creativecommons.org}. + The text may be reproduced for non-commercial purposes, + provided that credit is given to the original author.} +\fi %% -%% Copyright 2005-2016 Claudio Beccari +%% Copyright 2005-2017 Claudio Beccari %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of @@ -48,14 +71,14 @@ %% This work is "author-maintained" %% %% This work consists of this file toptesi.dtx, a README file -%% and the derived files: -%% -%% toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -%% toptesi.cfg, and the English documentation toptesi.pdf. +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. %% %% Furthermore the bundle contains the documentation source -%% file toptesi-it-pdftex.tex and the derived file -%% toptesi-it-pdftex.pdf. +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. %% %% The toptesi-example.tex source file is just an example %% that shows how to use the various commands; by commenting @@ -66,18 +89,26 @@ %% to produce just the title page with TOPtesi and the external %% package frontespizio. %% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% %% The toptesi.cfg file is a sample of a local configuration %% file that can be copied to another file and its copy freely -%% edited and customized. +%% edited and customised. %% %% By running pdflatex on toptesi.dtx the user gets the class, -%% sty and cfg files and the English documentation file in -%% pdf format. +%% sty, def and cfg files and the English documentation file in +%% PDF format. %% %% The source file of the Italian documentation file -%% toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -%% In spite of its name, toptesi-it-pdftex.tex may be typeset -%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -%% lines of the file for how-to information. +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. %% %% End of file `toptesi.cfg'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi.cls b/Master/texmf-dist/tex/latex/toptesi/toptesi.cls index 092f478817c..a864d7df64e 100644 --- a/Master/texmf-dist/tex/latex/toptesi/toptesi.cls +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi.cls @@ -6,36 +6,42 @@ %% %% toptesi.dtx (with options: `class') %% ______________________________________________________ -%% The TOPtesi package -%% Copyright (C) 2005-2016 Claudio Beccari +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari %% All rights reserved %% %% License information appended %% -\NeedsTeXFormat{LaTeX2e}[2015/01/01] +\NeedsTeXFormat{LaTeX2e}[2016/01/01] \ProvidesClass{toptesi}[% -2016/11/25 v.5.9.06 +2017/10/22 v.~6.1.09 Class for typesetting university theses] -\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption{titlepage}{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} -\ExecuteOptions{a4paper,titlepage} -\ProcessOptions\relax + +\usepackage{trace} +\RequirePackage{xkeyval} +\DeclareOptionX{formato}[a4paper]{\PassOptionsToClass{#1}{report}} +\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{report}} +\ExecuteOptionsX{formato} +\ProcessOptionsX*\relax \LoadClass{report} + \RequirePackage{iftex} \ifPDFTeX - \RequirePackage[english,italian]{babel} + \usepackage[english,italian]{babel} \else - \RequirePackage{polyglossia} + \usepackage{fontspec} + \defaultfontfeatures{Ligatures=TeX} + \usepackage{polyglossia} \setmainlanguage{italian} \setotherlanguage{english} - \renewcommand*{\iflanguage}[1]{\ifnum\the\language=\csname l@#1\endcsname + \renewcommand*{\iflanguage}[1]{% + \ifnum\the\language=\csname l@#1\endcsname \expandafter\@firstoftwo\else \expandafter\@secondoftwo\fi} \fi -\RequirePackage{toptesi} +\usepackage{toptesi} %% -%% Copyright 2005-2016 Claudio Beccari +%% Copyright 2005-2017 Claudio Beccari %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of @@ -44,14 +50,14 @@ Class for typesetting university theses] %% This work is "author-maintained" %% %% This work consists of this file toptesi.dtx, a README file -%% and the derived files: -%% -%% toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -%% toptesi.cfg, and the English documentation toptesi.pdf. +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. %% %% Furthermore the bundle contains the documentation source -%% file toptesi-it-pdftex.tex and the derived file -%% toptesi-it-pdftex.pdf. +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. %% %% The toptesi-example.tex source file is just an example %% that shows how to use the various commands; by commenting @@ -62,18 +68,26 @@ Class for typesetting university theses] %% to produce just the title page with TOPtesi and the external %% package frontespizio. %% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% %% The toptesi.cfg file is a sample of a local configuration %% file that can be copied to another file and its copy freely -%% edited and customized. +%% edited and customised. %% %% By running pdflatex on toptesi.dtx the user gets the class, -%% sty and cfg files and the English documentation file in -%% pdf format. +%% sty, def and cfg files and the English documentation file in +%% PDF format. %% %% The source file of the Italian documentation file -%% toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -%% In spite of its name, toptesi-it-pdftex.tex may be typeset -%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -%% lines of the file for how-to information. +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. %% %% End of file `toptesi.cls'. diff --git a/Master/texmf-dist/tex/latex/toptesi/toptesi.sty b/Master/texmf-dist/tex/latex/toptesi/toptesi.sty index cab63d05b42..da9a3517252 100644 --- a/Master/texmf-dist/tex/latex/toptesi/toptesi.sty +++ b/Master/texmf-dist/tex/latex/toptesi/toptesi.sty @@ -6,58 +6,150 @@ %% %% toptesi.dtx (with options: `topsty') %% ______________________________________________________ -%% The TOPtesi package -%% Copyright (C) 2005-2016 Claudio Beccari +%% The TOPtesi bundle +%% Copyright (C) 2015-2017 Claudio Beccari %% All rights reserved %% %% License information appended %% -\NeedsTeXFormat{LaTeX2e}[2015/01/01] +\NeedsTeXFormat{LaTeX2e}[2016/01/01] \ProvidesPackage{toptesi}[% -2016/11/25 v.5.9.06 +2017/10/22 v.~6.1.09 Extension for toptesi.cls] + \def\TRON{\tracingcommands \tw@ \tracingmacros \tw@} \def\TROFF{\tracingcommands\z@ \tracingmacros \z@} \let\TROF\TROFF + +\newif\ifevenboxes \evenboxesfalse \newif\if@utoretitolo \@utoretitolofalse \newif\if@ldstyle \@ldstylefalse \newif\if@xivpt \@xivptfalse +\newif\iflibro \librofalse \newif\ifT@Pfrontespizio \T@Pfrontespiziofalse \newif\ifTOPfront \TOPfronttrue -\newlength\T@Pbinding\setlength\T@Pbinding{7mm} +\newif\ifScuDo \ScuDofalse +\newif\ifmonografia\monografiafalse +\newif\iftriennale\monografiafalse +\newif\ifmagistrale\magistralefalse +\newif\ifdottorato\dottoratofalse +\newif\ifsecondaria\secondariafalse +\newif\ifcustom\customfalse +\newif\ifTOPnumerazioneromana\TOPnumerazioneromanafalse +\newlength\T@Pbinding \def\setbindingcorrection#1{\T@Pbinding=#1} \newif\if@binding \@bindingfalse \newif\ifchapterbibliography \chapterbibliographyfalse \newif\ifclassica \classicafalse -\DeclareOption{cucitura}{\@bindingtrue} -\DeclareOption{14pt}{\@xivpttrue} -\DeclareOption{chapterbib}{\chapterbibliographytrue} -\DeclareOption{trieste}{\classicatrue}% Just for backwards compatibility -\DeclareOption{classica}{\classicatrue} -\DeclareOption{autoretitolo}{\ifclassica\@utoretitolotrue\fi} -\DeclareOption{oldstyle}{\ifclassica\@ldstyletrue\fi} -\DeclareOption{pdfa}{\PackageWarning{toptesi}{Option pdfa ignored.\MessageBreak -Read documentation toptesi-it-*.pdf, because package pdfx has changed}} -\DeclareOption{usefrontespizio}{\T@Pfrontespiziotrue\TOPfrontfalse} -\DeclareOption{noTOPfront}{\T@Pfrontespiziotrue\TOPfrontfalse} -\ProcessOptions\relax + +\@ifpackageloaded{xkeyval}{}{\RequirePackage{xkeyval}} +\@ifpackageloaded{scrextend}{}{\RequirePackage{scrextend}} +\@ifpackageloaded{iftex}{}{\RequirePackage{iftex}} +\@ifpackageloaded{xspace}{}{\RequirePackage{xspace}} +\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}} + +\DeclareOptionX{cucitura}[7mm]{\setlength\T@Pbinding{#1}\@bindingtrue} +\DeclareOptionX{corpo}[10pt]{\unless\ifdim#1<\@xivpt\p@\@xivpttrue\fi + \changefontsizes{#1}} +\DeclareOptionX{chapterbib}[true]{\chapterbibliographtrue} +\DeclareOptionX{evenboxes}[true]{\evenboxestrue} +\DeclareOptionX{libro}[true]{\librotrue} +\DeclareOptionX{stile}[standard]{\setkeys{toptesi}{stile=#1}} +\define@choicekey{toptesi}{stile}[\val\nr]{standard,classica,trieste}{% + \ifcase\nr + \typeout{valore=\number\nr}\classicafalse + \or + \typeout{valore=\number\nr}\classicatrue + \or + \typeout{valore=\number\nr}\classicatrue + \else + \typeout{valore=\number\nr}\classicafalse + \fi} +\DeclareOptionX{autoretitolo}[true]{\ifclassica\@utoretitolotrue\fi} +\DeclareOptionX{oldstyle}[true]{\ifclassica\@ldstyletrue\fi} +\DeclareOptionX{pdfa}{\PackageWarning{toptesi}{% + ***********************************************\MessageBreak% + Option pdfa ignored.\MessageBreak% + Read documentation toptesi-it-*.pdf,\MessageBreak% + because package pdfx has changed\MessageBreak% + ***********************************************\MessageBreak% + }} + +\DeclareOptionX{numerazioneromana}[true]{\TOPnumerazioneromanatrue} + +\newcommand\NoValidTipo[1]{% +\PackageError{toptesi}{Option value `#1' not defined\MessageBreak +}{Type `X' to exit and check your input}} + +\DeclareOptionX{tipotesi}[topfront]{% + \ifstrequal{#1}{frontespizio}{\TOPfrontfalse\T@Pfrontespiziotrue + \AtEndOfPackage{\RequirePackage{frontespizio}}% + }{% + \ifstrequal{#1}{topfront}{\TOPfronttrue\T@Pfrontespiziofalse + \AtEndOfPackage{\RequirePackage{topfront}}% + }{% + \TOPfrontfalse\T@Pfrontespiziofalse + \ifstrequal{#1}{custom}{\relax}{% + \ifstrequal{#1}{triennale}{% + \def\TPT@tipo{toptesi-monografia}% opz:monografia + }{\ifstrequal{#1}{secondaria}{% opz: secondaria + \edef\TPT@tipo{toptesi-sss}% + }{% + \edef\TPT@tipo{toptesi-#1}% opz: triennale, + }% % magistrale, dottorale + }% + \AtEndOfPackage{% + \IfFileExists{\TPT@tipo.sty}% + {\RequirePackage{\TPT@tipo}}{\NoValidTipo{#1}}% + }% + }% opz: custom + }% opz: topfront + }% opz: frontespizio + } +\ProcessOptionsX* + \RequirePackage{graphicx} \RequirePackage{etoolbox} -\if@xivpt\input{size14.clo}\fi +\RequirePackage{xspace} +\newcommand*\ifempty[1]{\edef\@tempA{#1}% +\ifx\@tempA\@empty\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} \newlength\interno -\textheight 0.7\paperheight -\setlength{\textheight}{\dimexpr\textheight*\baselineskip/\baselineskip+\topskip} -\ifx\f@size\@xivpt +\normalsize% necessary to have the correct value for \baselineskip +\textheight \paperwidth +\setlength{\textheight}{% +\dimexpr\textheight*\baselineskip/\baselineskip+\topskip} +\iflibro + \unless\if@xivpt + \textwidth=\dimexpr0.70711\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/8} + \footskip=1.5\baselineskip + \else + \textwidth=\dimexpr0.79549875\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/9} + \footskip=2\baselineskip + \fi +\else + \unless\if@xivpt + \textwidth=\dimexpr0.70711\paperwidth\relax \setlength\interno{\dimexpr\paperwidth/6} - \footskip=1,5\baselineskip + \footskip=1.5\baselineskip + \else + \textwidth=\dimexpr0.79549875\paperwidth\relax + \setlength\interno{\dimexpr\paperwidth/7} + \footskip=2\baselineskip + \fi +\fi +\iflibro + \interno=\dimexpr\paperwidth-\textwidth\relax + \oddsidemargin=0.414214\interno\relax + \evensidemargin=\dimexpr\paperwidth-\textwidth-\oddsidemargin\relax \else - \setlength\interno{\dimexpr\paperwidth/7} - \footskip=2\baselineskip + \oddsidemargin=\dimexpr(\paperwidth-\textwidth)/2\relax + \evensidemargin=\oddsidemargin \fi -\textwidth=\dimexpr\paperwidth-2\interno\relax -\oddsidemargin=\dimexpr\interno-1in\relax -\evensidemargin=\oddsidemargin -\marginparwidth=\dimexpr\interno-2.5\marginparsep +\marginparwidth=\dimexpr\evensidemargin-2.5\marginparsep +\oddsidemargin=\dimexpr\oddsidemargin-1in\relax +\evensidemargin=\dimexpr\evensidemargin-1in\relax \AtBeginDocument{% \if@binding \PackageInfo{TOPtesi}{Margin width recalculation} @@ -79,7 +171,7 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \def\@oddfoot{\null\hfill {\scshape\lapagina}\hfill \null}\def\@oddhead{} \def\@evenhead{}\let\@evenfoot\@oddfoot} \if@twoside - \def\ps@headings{\let\@mkboth\markboth% + \def\ps@headings{\let\@mkboth\markboth% autoretitolo \def\@oddfoot{\null\hfill {\scshape\lapagina} \hfill\null} \let\@evenfoot\@oddfoot % @@ -110,10 +202,12 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \fi \def\headWarn#1{\PackageWarning{toptesi}{% +*******************************************\MessageBreak THE HEADING IS TOO LONG\MessageBreak Use the optional argument of command \string#1\MessageBreak - See the LaTeX Handbook (1994) on section C.4.1\MessageBreak}} -\renewcommand*\l@chapter[2]{% + See the LaTeX Handbook (1994) on section C.4.1\MessageBreak +*******************************************\MessageBreak}} +\renewcommand\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ @@ -133,27 +227,42 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \newif\iftablespage \newif\ifnumeriromani \newif\iffrontmatter -\def\frontmatter{\clearpage\ps@plain\pagenumbering{roman}% - \numeriromanitrue\frontmattertrue\@openrightfalse\c@secnumdepth=-2} +\def\frontmatter{\clearpage\ps@plain% + \ifTOPnumerazioneromana\numeriromanitrue\fi + \frontmattertrue\@openrightfalse\c@secnumdepth=-2\relax +} + \def\mainmatter{\if@twoside\@openrighttrue\fi - \numeriromanifalse\frontmatterfalse\c@secnumdepth=2 - \clearpage\ps@headings\pagenumbering{arabic}% - } -\AtBeginDocument{\frontmatter} + \ifTOPnumerazioneromana\numeriromanifalse\fi + \frontmatterfalse\c@secnumdepth=2 + \clearpage\ps@headings + \ifTOPnumerazioneromana\pagenumbering{arabic}\fi +} +\newcommand\backmatter{\cleardoublepage[empty]% +\setcounter{secnumdepth}{-1}\if@twoside\@openrightfalse\fi} + +\AtBeginDocument{% + \ifTOPnumerazioneromana\pagenumbering{roman}\fi\frontmatter +} \figurespagefalse \tablespagefalse \let\ps@blank\ps@plain \newcommand*\blankpagestyle[1]{% \expandafter\let\expandafter\ps@blank\csname ps@#1\endcsname} -\renewcommand\cleardoublepage[1][blank]{\clearpage\ifodd\value{page}\else - \if@twoside\if@openright -\clearpage\null\thispagestyle{#1}\clearpage\fi\fi\fi} +\renewcommand\cleardoublepage[1][blank]{\clearpage +\unless\ifodd\value{page} + \if@twoside + \if@openright + \null\thispagestyle{#1}\clearpage + \fi\fi\fi} \def\sommario{% \iffrontmatter\else\frontmattertrue\fi \chapter*{\summaryname}} +\let\summary\sommario \def\ringraziamenti{% \iffrontmatter\else\frontmattertrue\fi \chapter*{\acknowledgename}} +\let\acknowledgements\ringraziamenti \def\@chapter[#1]#2{\iffrontmatter\mainmatter\fi \ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% @@ -230,10 +339,15 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \listoffigures \let\addvspace=\saveaddvspace} \fi -\ifbool{@twoside}{\clearpage\thispagestyle{empty}\null\clearpage}{}} +\ifbool{@twoside}{\cleardoublepage[empty]}{}} +\let\allcontents\indici \onecolumn \if@twoside - \flushbottom + \unless\ifScuDo + \flushbottom + \else + \raggedbottom + \fi \else \ifx\@xivpt\f@size \raggedbottom @@ -264,7 +378,11 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \AtBeginDocument{\@ifpackageloaded{caption}{}{% \providecommand\captionsetup{}\renewcommand\captionsetup[2][]{}% +\providecommand\captionof[1]{\def\@captype{#1}\caption} +\let\originalcaption\caption \newdimen\captionwidth +\newdimen\fullwidth +\if@twocolumn\fullwidth=\columnwidth\else\fullwidth=\textwidth\fi \belowcaptionskip=\abovecaptionskip \long\def\@makecaption#1#2{% \begingroup @@ -272,9 +390,9 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \finalhyphendemerits 100000\relax \linespread{0.95}\selectfont \vskip \abovecaptionskip - \captionwidth=\hsize - \advance\captionwidth-3em - \setbox0 \hbox{#1.\quad#2}% + \ifdim\hsize<\fullwidth \captionwidth=\hsize\else + \captionwidth=\dimexpr\hsize-3em\fi + \setbox0 \hbox{\ifblank{#1}{}{#1.\quad}#2}% \ifdim\wd0>\hsize \setbox1 \vbox{\hsize=\captionwidth \unhbox0\par\global\setbox2\lastbox}% @@ -301,6 +419,126 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \endgroup }}} + +\newdimen\SDcaptionwidth +\newdimen\SDfigurewidth +\newdimen\SDlinewidth +\newbox\SDfigbox \setbox\SDfigbox\hbox{}% +\newbox\SDcapbox \setbox\SDcapbox\hbox{}% +\newcounter{SDpage}% +\newcounter{NumberSD} \setcounter{NumberSD}{0} +\providecommand*\theNumberSD{\value{NumberSD}} +\newif\ifNumberFloat \NumberFloattrue +\NewDocumentCommand\captionSD{s O{} m}{% o: optionale fra graffe + \IfBooleanTF{#1}% + {% + \@makecaption{}{#3}% + }{% + \ifempty{#2}% + {% + \originalcaption{#3}% + }{% + \originalcaption[#2]{#3}% + }% + }% +} + +\DeclareDocumentEnvironment{SDbox}{ G{} s O{0.5} }{%------OPENING +\NumberFloattrue +\ifempty{#1}% + {\NumberFloatfalse}% + {\def\@captype{#1}}% +\IfBooleanTF{#2}% + {\SDlinewidth=\dimexpr\textwidth+0.8\marginparwidth}% + {\SDlinewidth=\textwidth}% +\SDcaptionwidth=#3\SDlinewidth +\ifdim\SDcaptionwidth<0.3\SDlinewidth + \SDcaptionwidth=0.3\SDlinewidth +\fi +\ifdim\SDcaptionwidth>0.7\SDlinewidth + \SDcaptionwidth=0.7\SDlinewidth +\fi +\SDfigurewidth=\dimexpr\SDlinewidth-\SDcaptionwidth\relax +\SDcaptionwidth=\dimexpr\SDcaptionwidth-\columnsep\relax +\SDfigurewidth=\dimexpr\SDfigurewidth-\columnsep\relax +}{%---------------------------------------------------CLOSING + {\ifcsdef{r@\@tempSD}% + {% + \edef\@tempD{r@\@tempSD}% + \edef\@tempD{\expandafter\csuse\expandafter{\@tempD}}% + \edef\@tempD{\@tempD}% + \ifcsdef{ver@hyperref.sty}% + {% + \edef\@tempD{\noexpand\@secondoffive\@tempD}% + }% + {% + \edef\@tempD{\noexpand\@secondoftwo\@tempD}% + }% + \edef\@tempD{\@tempD}% + \setcounter{SDpage}{\@tempD}% + }% + {% + \setcounter{SDpage}{\thepage}% + }% + }% +\ifbool{@twoside}% + {% + \ifnumodd{\value{SDpage}}% + {% + \makebox[\textwidth][l]{\makebox[\SDlinewidth]{% + \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}% + }{% + \makebox[\textwidth][r]{\makebox[\SDlinewidth]{% + \usebox{\SDcapbox}\hfill\usebox{\SDfigbox}}}% + }% + }{% + \makebox[\textwidth][l]{\makebox[\SDlinewidth]{% + \usebox{\SDfigbox}\hfill\usebox{\SDcapbox}}}% + } +} +\NewDocumentCommand\SDcaption{ O{} m G{} }{% + \notbool{NumberFloat}% + {% + \stepcounter{NumberSD}% + \edef\@tempSD{SD\the\c@NumberSD}% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD*{#2}\relax + \expandafter\label\expandafter{\@tempSD}% + }% + \end{lrbox}% + }% + {% + \ifempty{#3}% + {% + \NumberFloatfalse + \stepcounter{NumberSD}% + \edef\@tempSD{SD\the\c@NumberSD}% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD*{#2}\relax + \expandafter\label\expandafter{\@tempSD}% + }% + \end{lrbox}% + }{% + \begin{lrbox}{\SDcapbox}% + \parbox[t]{\SDcaptionwidth}% + {% + \captionSD[#1]{#2}\label{#3}\gdef\@tempSD{#3}% + }% + \end{lrbox}% + }% + }% +} +\newcommand\SDimage[1]{% + \setbox0\hbox{M}\dimen0\ht0\relax + \begin{lrbox}{\SDfigbox}\parbox[t]{\SDfigurewidth}{#1}\end{lrbox}% + \dimen2\dimexpr\ht\SDfigbox+\dimen0\relax + \setbox\SDfigbox\hbox{\raisebox{-\dimen2}{\box\SDfigbox}}% +} +\let\SDtabular\SDimage \newcommand\goodpagebreak[1][4]{\ifvmode \unless\ifdim\dimexpr\pagegoal-\pagetotal>#1\baselineskip\newpage\fi \else\ifhmode\vadjust{\newpage}\fi\fi} @@ -351,7 +589,8 @@ Read documentation toptesi-it-*.pdf, because package pdfx has changed}} \providecommand*\acknowledgename{} \newcommand*\ExtendCaptions[3]{{% \@ifundefined{captions#1}{% -\PackageWarning{toptesi}{Language option #1 not specified\MessageBreak +\PackageWarning{toptesi}{% +Language option #1 not specified\MessageBreak Skipping any redefinition\MessageBreak}% }{% \expandafter\let\expandafter\@tempA\csname captions#1\endcsname @@ -370,9 +609,9 @@ Skipping any redefinition\MessageBreak}% \renewcommand\@chapapp{\chaptername}% } \AtBeginDocument{% -\unless\ifT@Pfrontespizio +\unless\ifT@Pfrontespizio\ifTOPfront \RequirePackage{topfront} - \fi + \fi\fi \RequirePackage{topcoman}% } \ifPDFTeX @@ -418,7 +657,7 @@ Skipping any redefinition\MessageBreak}% \def\@evenhead{% \setbox\@intesta\hbox{\ifPDFTeX\latintext\fi \footnotesize\strut\textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}% + \@@author\ifcsvoid{@secondauthor}{\ et al.}: \@stitle}% }% \ifdim\wd\@intesta>\textwidth\headwrn{\titolo}\fi \underline{\makebox[\textwidth]{\box\@intesta}}}% @@ -433,20 +672,24 @@ Skipping any redefinition\MessageBreak}% \renewcommand*{\ps@headings}{\let\@mkboth\markboth \def\@oddfoot{\null \hfill \textbf{\lapagina}\hfill \null}% \let\@evenfoot\empty\let\@evenhead\empty - \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi\footnotesize - \textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle}}% - \setbox\tw@\hbox{\ifPDFTeX\latintext\fi\footnotesize\textsl{\rightmark}}% + \def\@oddhead{{\setbox\z@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsc{% + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle}}% + \setbox\tw@\hbox{\ifPDFTeX\latintext\fi + \footnotesize\textsl{\rightmark}}% \dimen@=\dimexpr2em + \wd\z@ + \wd\tw@\relax \ifdim\dimen@<\textwidth \relax \else - \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@\raggedright + \setbox\z@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedright \ifPDFTeX\latintext\fi\footnotesize\textsc{% - \@author\ifx\@secondauthor\empty\else\ et al.\fi: \@stitle + \@@author\ifcsvoid{@secondauthor}{}{\ et al.}: \@stitle }}% - \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@\raggedleft - \ifPDFTeX\latintext\fi\footnotesize\textsl{\rightmark}}% - \fi + \setbox\tw@\vbox{\hsize.48\textwidth\parindent\z@ + \raggedleft + \ifPDFTeX\latintext\fi\footnotesize + \textsl{\rightmark}}% + \fi \setbox\@intesta\vbox to\z@{% \vss\hbox to\textwidth{\strut\box\z@\hfill\box\tw@}}% \underline{\box\@intesta}}}% @@ -464,6 +707,7 @@ Skipping any redefinition\MessageBreak}% } \newcommand*{\NoteWhiteLine}{\par\vspace*{-.3\baselineskip}} \newcommand*\paginavuota{\clearpage\thispagestyle{empty}\null\clearpage} +\let\emptypage\paginavuota \newenvironment{dedica}{\clearpage \if@twoside \ifodd\c@page\else\thispagestyle{empty}\null\clearpage\fi @@ -476,6 +720,7 @@ Skipping any redefinition\MessageBreak}% }{% \endlist\clearpage } +\let\dedication\dedica \let\enddedication\enddedica \newenvironment{citazioni}{% \clearpage\thispagestyle{empty} \list{}{\labelwidth\z@ @@ -485,8 +730,9 @@ Skipping any redefinition\MessageBreak}% }{% \endlist\clearpage } +\let\wittysentences\citazioni \let\endwittysentences\endcitazioni %% -%% Copyright 2005-2016 Claudio Beccari +%% Copyright 2005-2017 Claudio Beccari %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of @@ -495,14 +741,14 @@ Skipping any redefinition\MessageBreak}% %% This work is "author-maintained" %% %% This work consists of this file toptesi.dtx, a README file -%% and the derived files: -%% -%% toptesi.cls, toptesi.sty, topfront.sty, topcoman.sty, -%% toptesi.cfg, and the English documentation toptesi.pdf. +%% the manifest.txt file, and the derived files: +%% toptesi.cls, toptesi.sty, topfront.sty, topcommand.sty, +%% toptesi-scudo.sty, toptesi-scudo.def, toptesi.cfg, and the +%% English documentation toptesi.pdf. %% %% Furthermore the bundle contains the documentation source -%% file toptesi-it-pdftex.tex and the derived file -%% toptesi-it-pdftex.pdf. +%% file toptesi-it.tex and the derived file +%% toptesi-it.pdf. %% %% The toptesi-example.tex source file is just an example %% that shows how to use the various commands; by commenting @@ -513,18 +759,26 @@ Skipping any redefinition\MessageBreak}% %% to produce just the title page with TOPtesi and the external %% package frontespizio. %% +%% The toptesi-scudo-example.tex source file is an example +%% that shows the particular features available with TOPtesi, +%% when a doctoral thesis is produced for the SCUola di +%% DOttorato (ScuDo) of Politecnico di Torino. +%% %% The toptesi.cfg file is a sample of a local configuration %% file that can be copied to another file and its copy freely -%% edited and customized. +%% edited and customised. %% %% By running pdflatex on toptesi.dtx the user gets the class, -%% sty and cfg files and the English documentation file in -%% pdf format. +%% sty, def and cfg files and the English documentation file in +%% PDF format. %% %% The source file of the Italian documentation file -%% toptesi-it-pdftex.pdf is another example of how to use TOPtesi. -%% In spite of its name, toptesi-it-pdftex.tex may be typeset -%% with pdfLaTeX, XeLaTeX, and LuaLateX; see the first comment -%% lines of the file for how-to information. +%% toptesi-it.pdf is another example of how to use TOPtesi. +%% This file toptesi-it.tex may be typeset with pdfLaTeX, +%% XeLaTeX, and LuaLateX; see the first comment lines of +%% the file for how-to information. In spite of being mainly +%% written in Italian, it contains several sections in English +%% for the benefit of foreign students attending the Doctoral +%% School of Turin. %% %% End of file `toptesi.sty'. |