summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/toptesi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-12-29 23:22:14 +0000
committerKarl Berry <karl@freefriends.org>2014-12-29 23:22:14 +0000
commit1502159a0ea1bde12aee24add557f14386539361 (patch)
tree0e356221f90454c8e972a9b5c268a13cc1780829 /Master/texmf-dist/source/latex/toptesi
parent8a59fc071605caee4bf4c22580cc26015d967f68 (diff)
toptesi (28dec14)
git-svn-id: svn://tug.org/texlive/trunk@35916 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/toptesi')
-rw-r--r--Master/texmf-dist/source/latex/toptesi/toptesi.dtx247
1 files changed, 147 insertions, 100 deletions
diff --git a/Master/texmf-dist/source/latex/toptesi/toptesi.dtx b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx
index 2d3f86ff616..b617955cabd 100644
--- a/Master/texmf-dist/source/latex/toptesi/toptesi.dtx
+++ b/Master/texmf-dist/source/latex/toptesi/toptesi.dtx
@@ -68,7 +68,7 @@ its source file is another example of how to use toptesi.
\endgroup
%</internal>
%
-% Copyright 1989--2013 Claudio Beccari
+% Copyright 1989--2014 Claudio Beccari
%
% This file is part of the TOPtesi bundle
% -------------------------------------------
@@ -95,7 +95,7 @@ its source file is another example of how to use toptesi.
% \iffalse
%<*driver>
\documentclass{ltxdoc}
-\ProvidesFile{toptesi.dtx}[2014/11/13 v.5.85b Documented TeX file for
+\ProvidesFile{toptesi.dtx}[2014/12/13 v.5.86f Documented TeX file for
the TOPtesi bundle]
\GetFileInfo{toptesi.dtx}
\title{The TOPtesi bundle}
@@ -116,7 +116,7 @@ the TOPtesi bundle]
%</driver>
% \fi
%
-% \CheckSum{2771}
+% \CheckSum{2792}
%
%% \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
@@ -149,7 +149,7 @@ the TOPtesi bundle]
% 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, because it resorts to a compilation with pdf\LaTeX;
+% cannot be used any more; this id 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
@@ -172,24 +172,27 @@ the TOPtesi bundle]
% \item An extension package \texttt{toptesi.sty} that contains most of the code
% for the real typesetting; it might be used as an extension to the report class file,
% although this use is discouraged.
-% \item A second extension package \texttt{topfront.sty} that contain the commands
-% and the typesetting macros for the title page; this file may be used as an
-% independent extension package to be added to, say, the report class file for
-% typesetting just the title page; this file might be used as a template for setting
-% up the title page fixed information in languages different from Italian.
-% This package is part of the bundle, but it is loaded automatically 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.
-% \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 certain number 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 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
@@ -365,8 +368,8 @@ the TOPtesi bundle]
%^^A
% \Item[frontespizio] 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 actua
-%l status of the boolean |\topTPTlogos|; the user, before issuing the
+% 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|.
@@ -792,7 +795,7 @@ the TOPtesi bundle]
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{toptesi}%
-[2014/11/13 v.5.85b Class for typesetting university theses]
+[2014/12/13 v.5.86f Class for typesetting university theses]
% \end{macrocode}
%
% The class itself is very simple since it requires just the \texttt{report} document
@@ -849,7 +852,7 @@ the TOPtesi bundle]
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{toptesi}%
-[2014/11/13 v.5.85b Extension for toptesi.cls]%
+[2014/12/13 v.5.86f Extension for toptesi.cls]%
% \end{macrocode}
%
% We start with defining the debugging macros; these trace commands and macros
@@ -1559,11 +1562,13 @@ Skipping any redefinition\MessageBreak}%
% \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 a the other settings,
+% 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.
+% loading operation with both engines. This delayed loading implies that the
+% commands defined in |topfront| and in |topcomand| cannot be used in the
+% preamble.
% \begin{macrocode}
\AtBeginDocument{%
\unless\ifT@Pfrontespizio
@@ -1916,7 +1921,7 @@ Skipping any redefinition\MessageBreak}%
% \fi
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{topfront}[2014/11/13 v.5.85b Title page for TOPtesi and other classes]
+\ProvidesPackage{topfront}[2014/12/13 v.5.86f Title page for TOPtesi and other classes]
% \end{macrocode}
% In oder to use |topfront| as a stand-alone extension package with other
% classes it is necessary to verify if the |classica| option corresponds
@@ -1961,7 +1966,7 @@ Skipping any redefinition\MessageBreak}%
\raisebox{3\baselineskip}{\usebox\TPT@logobox}\hfil\null%
}\fi
\ifcsvoid{@ateneo}{}{\vskip\smallskipamount
- \hbox to\textwidth{\hss\LARGE\@ateneo\hss}}
+ \hbox to\textwidth{\hss\LARGE\MakeUppercase{\@ateneo}\hss}}
\vss
}%
}%
@@ -1976,7 +1981,7 @@ Skipping any redefinition\MessageBreak}%
% \begin{macrocode}
\def\ps@classica{\let\@mkboth\markboth
\def\@oddhead{\vbox{%
- \hbox to \hsize{\hfill {\LARGE \@ateneo}\hfill}%
+ \hbox to \hsize{\hfill {\LARGE\MakeUppercase{\@ateneo}}\hfill}%
\ifclassica
\hbox to \hsize{\hfil\vrule\@width\z@
\@height2ex\vrule\@height1.4\p@\@depth-\p@\@width50mm\hfil}%
@@ -2282,7 +2287,7 @@ Skipping any redefinition\MessageBreak}%
\gdef\@corso{#1}}
\def\scuoladidottorato#1{\global\dottoratotrue\global\laureatriennalefalse
\gdef\@phdschool{#1}}
-\def\ateneo#1{\gdef\@ateneo{\expandafter\uppercase{\expandafter #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
@@ -2380,7 +2385,7 @@ Skipping any redefinition\MessageBreak}%
% used in a language depended way and with the correct number and gender once for all.
% The four endings in the Italian strings allow to exercise the correct selection only
% for Italian; a specific test is made inside the |\frontespizio| command; because of
-% this the same machinery cannot be used, say, for French but may be in the future this
+% 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|.
@@ -2458,17 +2463,17 @@ Skipping any redefinition\MessageBreak}%
% 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, possible sub titel and passible tome information., that is
+% 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 eiter value |true|
-% (for header logos) and |false| otherwise. The key of the different typesetting
+% 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 serve macro
+% 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
@@ -2489,39 +2494,55 @@ Skipping any redefinition\MessageBreak}%
\newenvironment{frontespizio}{%
\ifdefstring{\@currenvir}{frontespizio}
- {\booltrue{topTPTlogos}}{\fr@ntespizio}
+ {\booltrue{topTPTlogos}}{\TPTmaybestar}
}{%
\fr@ntespizio
}
% \end{macrocode}
%
-% With the new bolean |AteneoInHead| we can mark these situations where the
-% university common name goes int to header; With the |classica| option the
+% 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 no been
+% 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). Whne no universty name is set in the header
-% some little attentions in formatting the title page are necessary.
+% 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.
+% \begin{macrocode}
+\newcommand\TPTmaybestar[1]{\def\@tempA{#1}%
+\ifdefstring{\@tempA}{*}%
+ {\boolfalse{topTPTlogos}\booltrue{AteneoInHead}\fr@ntespizio}
+ {\booltrue{topTPTlogos}\fr@ntespizio\@tempA}
+}
+% \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.
+% \begin{macrocode}
\def\fr@ntespizio{%
-\begingroup
-\ifclassica
- \boolfalse{topTPTlogos}
- \thispagestyle{classica}
- \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo}
- }{}
-\else
- \thispagestyle{titlepage}
-\fi
-\ifcsvoid{@ateneo}{}{\booltrue{AteneoInHead}}
+\begingroup\par
% \end{macrocode}
%
% We want also the title page to be set in the middle of the page irrespective of
@@ -2531,15 +2552,31 @@ Skipping any redefinition\MessageBreak}%
\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
% commands did change the font characteristics.
% \begin{macrocode}
- \null\setcounter{page}{1}%
- \normalfont
+\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
+% university name has been forgotten.
+% \begin{macrocode}
+\ifclassica
+ \boolfalse{topTPTlogos}
+ \thispagestyle{classica}
+ \ifcsvoid{@ateneo}{\def\@ateneo{Manca il nome dell'ateneo}
+ }{}
+\else
+ \thispagestyle{titlepage}
+\fi
+\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
@@ -2551,6 +2588,13 @@ Skipping any redefinition\MessageBreak}%
% so as to avoid repeating the university name possibly already present in the logo
% itself.
% \begin{macrocode}
+\ifcsvoid{@ateneo}{%
+ \ifbool{topTPTlogos}
+ {}{\booltrue{AteneoInHead}\def\@ateneo{Manca il nome dell'ateneo}}%
+}{%
+ \booltrue{AteneoInHead}%
+}
+
\ifbool{AteneoInHead}{}{%
{{\centering\LARGE \@ateneo\par}}
}
@@ -2610,7 +2654,7 @@ Skipping any redefinition\MessageBreak}%
\@TesiDiLaurea%
\fi
\fi
- \ifx\empty\@materia\else
+ \unless\ifx\empty\@materia
\\\@InName\\\@materia
\fi
\end{center}
@@ -2672,7 +2716,7 @@ Skipping any redefinition\MessageBreak}%
% not do anything.
% \begin{macrocode}
\unless\iftopTPTlogos
- {\centering \printloghi\par}\fi
+ {\vfill\centering \printloghi\par}\fi
% \end{macrocode}
%
% The final task is to typeset the possible supervisors' names, the candidates'
@@ -2768,7 +2812,7 @@ Skipping any redefinition\MessageBreak}%
% \begin{macrocode}
\else
-% Per laurea e dottorato con relatori e correlatori...
+% For theses of any kind that expect the supervisor and co-supervisor names...
\def\BoxRelatori{%
\begin{tabular}[t]{l}%
\hbox{\ifclassica\else\large\fi
@@ -2792,9 +2836,9 @@ Skipping any redefinition\MessageBreak}%
\end{tabular}%
}%
% \end{macrocode}
-% A similar approach is taken for the candidate name(s),although for code
+% 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 the clearer way.
+% other candidates names and ID in a clearer way.
% \begin{macrocode}
\def\print@secondocandidato{\\\relax
\hbox{\large\tabular{@{}l@{}}\@secondauthor\endtabular}}
@@ -2816,7 +2860,7 @@ Skipping any redefinition\MessageBreak}%
% 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 personal labels and the second line containing the true names. The central
+% 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
@@ -2837,7 +2881,7 @@ Skipping any redefinition\MessageBreak}%
\else
% \end{macrocode}
% For the master thesis the two virtual boxes are set one besides the other but
-% skewed so that to the right or, respectively, to the left of every name there
+% 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}
@@ -2867,8 +2911,8 @@ Skipping any redefinition\MessageBreak}%
% |\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; I the copyright page
-% text is not empty, after the shipping out of the title page, we set the copyright page
+% 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.
% \begin{macrocode}
\par\clearpage
@@ -2883,7 +2927,10 @@ Skipping any redefinition\MessageBreak}%
% \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.
+% 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>
% \fi
@@ -2891,22 +2938,20 @@ Skipping any redefinition\MessageBreak}%
%%
%%================================================================
%% This file is the only file of the TOPtesi bundle that the user
-%% can modify without restrictions in order to customize the
+%% 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.
-%% 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.
+%% 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.
%%================================================================
%%
\ateneo{Politecnico di Torino}
-\facolta{}% nessun nome di default
-\FacoltaDi{}% non viene scritta nessuna indicazione per la facoltà
+\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}
@@ -2930,14 +2975,14 @@ Skipping any redefinition\MessageBreak}%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e} % lavora solo con LaTeX 2e
\ProvidesPackage{topcoman}%
- [2014/11/13 v.5.85b Additional commands for the TOPtesi bundle]
+ [2014/12/13 v.5.86f Additional commands for the TOPtesi bundle]
% \end{macrocode}
% The new command |\DeclareSlantedCapitalGreekLetters| optionally sets the capital
% Greek letters in math mode with the glyphs taken from the math italic fonts, not from
-% the math roman fonts, at is is by default; some persons prefer to use both symbols with
-% different meanings, so this command lets them do so. This may be useful unless the XeTeX
-% 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 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 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.
% \begin{macrocode}
\RequirePackage{ifxetex}
\ifxetex\else
@@ -2955,30 +3000,31 @@ Skipping any redefinition\MessageBreak}%
\mathchardef\Omega="710A
}\fi
% \end{macrocode}
-% The |\ensuremath| command is defined in the \LaTeX\ kernel from a certain version on;
-% should the user employ a really old \LaTeXe\ implementation this definition
+% 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 it it's already
-% loaded the |\RequirePackage| command performs the necessary tests and possibly does not load
-% anything.
+% 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{}
\renewcommand{\textormath}{\ifmmode\expandafter\@secondoftwo\else
\expandafter\@firstoftwo\fi}
\providecommand*\textsubscript{\raisebox{-0.5ex}}
+
\ifxetex\else
\RequirePackage{textcomp}
\fi
% \end{macrocode}
% The following commands may be already defined; should they be missing they are supplied
-% here. The greatest part of them is already defined in the Italian option to the
+% 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\ that does
-% 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.
+% package; these commands are not predefined if the thesis is typeset with \XeLaTeX\
+% that does 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.
% \begin{macrocode}
\providecommand{\ohm}{\textormath{\textohm}{\mathrm{\Omega}}}
\providecommand{\ped}[1]{\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}}
@@ -2991,42 +3037,43 @@ 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 better
+% 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 boundary which is ``zero modulo eight''. If the program file
+% 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 Wahat concern the macro |\obeyspaces| (already defined in the \LaTeXe\
+% 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
+% 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{\ttfamily\footnotesize \parindent 0pt
+\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, but the alignment to the tab stops and the
-% new page command associated to the form feed ASCII character are done with the
+% 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{\ttfamily\footnotesize\space}
+\setbox0=\hbox{\programmafont\space}
\tabwidth=8\wd0
\def\startbox{\setbox0=\hbox\bgroup}
%{\obeyspaces\global\let =\space}
@@ -3043,7 +3090,7 @@ Skipping any redefinition\MessageBreak}%
% 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| module that
+% 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