From df9074726b74dad2e353c2976dd2ae7d91aae73b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Mar 2016 21:19:12 +0000 Subject: suftesi (13mar16) git-svn-id: svn://tug.org/texlive/trunk@40019 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/suftesi/suftesi.pdf | Bin 1063112 -> 1116595 bytes Master/texmf-dist/source/latex/suftesi/suftesi.dtx | 632 +++++++++++++++------ Master/texmf-dist/tex/latex/suftesi/suftesi.cls | 313 +++++++--- 3 files changed, 679 insertions(+), 266 deletions(-) diff --git a/Master/texmf-dist/doc/latex/suftesi/suftesi.pdf b/Master/texmf-dist/doc/latex/suftesi/suftesi.pdf index 333388a1d55..45a9e4628db 100644 Binary files a/Master/texmf-dist/doc/latex/suftesi/suftesi.pdf and b/Master/texmf-dist/doc/latex/suftesi/suftesi.pdf differ diff --git a/Master/texmf-dist/source/latex/suftesi/suftesi.dtx b/Master/texmf-dist/source/latex/suftesi/suftesi.dtx index 3ebec9475b9..4295edd4e96 100644 --- a/Master/texmf-dist/source/latex/suftesi/suftesi.dtx +++ b/Master/texmf-dist/source/latex/suftesi/suftesi.dtx @@ -67,7 +67,7 @@ %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesClass{suftesi} %<*class> - [2016/03/02 v2.5 A class for typesetting theses, books and articles] + [2016/03/13 v2.6 A class for typesetting theses, books and articles] % %<*driver> \documentclass{ltxdoc} @@ -83,6 +83,7 @@ \DeclareFontFamily{T1}{Cochineal-LF}{} \DeclareFontShape{T1}{Cochineal-LF}{m}{n}{ <-> s*[1.0] Cochineal-Roman-osf-t1}{} +\def\lmfntscale{1} % Doc facilities \let\cs\relax \let\cmd\relax @@ -95,10 +96,17 @@ \mdfsetup{roundcorner=3pt,linecolor=white,backgroundcolor=gray!10} \usepackage{tikz} \usetikzlibrary{shadows} +\usepackage{afterpage} % Tables \usepackage{array} \usepackage{booktabs} \usepackage{multirow} +% +\usepackage{fancyhdr} +\fancyhf{} +\fancyfoot[C]{\iffloatpage{}{\thepage}} +\renewcommand\headrulewidth{0pt} +\pagestyle{fancy} % Bibliography \usepackage[autostyle]{csquotes} \usepackage[style=philosophy-classic,backend=biber]{biblatex} @@ -152,7 +160,7 @@ \author{Ivan Valbusa\thanks{Dipartimento di Scienze Umane, Università degli Studi di Verona --- \texttt{ivan dot valbusa at univr dot it}}} \title{User's Guide to \textsf{suftesi}\\ - \normalsize A document class for typesetting\\ theses, books and articles} + \large A document class for typesetting\\ theses, books and articles} \date{\fileversion{} -- \filedate} \EnableCrossrefs @@ -166,7 +174,7 @@ % % \fi % -% \CheckSum{4589} +% \CheckSum{4770} % % \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 @@ -184,6 +192,7 @@ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % +% \changes{v2.6}{2016/03/13}{New \opt{mathfont} option for non-standard fonts. New command \cmd{makecover} for printing the cover page. Updated documentation.} % \changes{v2.5}{2016/03/02}{Corrected a bug when loading CB Greek fonts. Updated documentation.} % \changes{v2.4}{2016/02/27}{Changed the default font to Cochineal with Linux Biolinum O sans serif and Inconsolata monospaced. The Palatino is now loaded with \sty{newpxtext} and \sty{newpxmath}. Bera Mono and Iwona have been substituted by Linux Biolinum O and Inconsolata. New values for font options: \opt{cochineal}, \opt{libertine}, \opt{bodoni} (greek only). Value \opt{compatibility} for \opt{defaultfont} option to get the fonts of suftesi v2.3 or previous. Updated documentation.} % \changes{v2.3}{2015/09/19}{Maintenance release.} @@ -264,6 +273,7 @@ % \DoNotIndex{\huge,\large,\makebox,\ProcessOptions,\renewcommand} % %\maketitle +% % \begin{abstract} % The standard document classes allow you to typeset beautiful % documents but their layout is quite far from the stylistic requests @@ -280,7 +290,7 @@ % \tableofcontents %\end{multicols} % -% \subsection*{Legalese}\enlargethispage{.5\baselineskip} +% \section*{Legalese}\enlargethispage{3\baselineskip} % %\noindent Copyright \copyright\ 2009-\the\year{} Ivan Valbusa % \smallskip @@ -304,18 +314,18 @@ % the layout redefinitions. % % -% \subsection*{A brief history}\thispagestyle{empty} +% \section*{A brief history}\thispagestyle{empty} % % The \sty{suftesi} class was born as a result of the course \emph{Introduzione a \LaTeX{} per le scienze umane} (\emph{Introduction to \LaTeX{} for the human sciences}) which I held at the Graduate School of Human Sciences and Philosophy (\textcolor{sufred}{\textbf{S}}cienze \textcolor{sufred}{\textbf{U}}mane e \textcolor{sufred}{\textbf{F}}ilosofia) of Verona University (Italy) in June 2010. Originally thought as a class to typeset theses, during these years it has developed many new features and styles. Finally it has become the referential class of the Joint Project \emph{Formal Style for PhD Theses with LaTeX} of the University of Verona. % -% \subsection*{Acknowledgments} +% \section*{Acknowledgments} % % I would like to thank Professors Paola Di~Nicola, % Director of the Graduate School, and Ugo Savardi who suggested to propose the course precisely to that School; Gilberto D'Arduini, Matteo Lanza and Antonio Rinaldi, who installed \LaTeX{} on the computers used during the course; Catia Cordioli, for her help in the organization of the lessons; Corrado Ferreri, responsible of the \mbox{E-Learning} Center, who provided the \TeX{}~Live~2009 \textsc{DVD}s. % Special thanks to Professors Enrico~Gregorio, the Italian guru of \TeX, for the \TeX pert support and his priceless ``magic formulas'', and Tommaso Gordini for his valuable advice in choosing and improving the class features during these years. %I would finally thank all the participants to the course who patiently resisted the four intensive lessons. This work is dedicated to them. %% -%% \subsection*{Feedback} +%% \section*{Feedback} % % \noindent If you have any questions, feedback or requests please email me at \texttt{ivan dot valbusa at univr dot it}. If you need specific features not already implemented, remember to attach the example files. % @@ -392,7 +402,8 @@ %\opt{periodical} &110& 165& 170& 240&$2:3$&$2:3$&$2:3$&$1:\kern-3pt\sqrt{2}$\\ %\opt{periodicalaureo}& 120& 194& 170& 240&$2:3$&$2:3$&$5:8$\makebox[0pt]{\ \textsuperscript{*}}&$1:\kern-3pt\sqrt{2}$\\ % -%\opt{elements} (pt)& 251& 502& 374& 648&$1:2$&$2:5$&$1:2$&$1:\kern-3pt\sqrt{3}$\\ +%^^A\opt{elements} (pt)& 251& 502& 374& 648&$1:2$&$2:5$&$1:2$&$1:\kern-3pt\sqrt{3}$\\ +%\opt{elements} ($\approx$)& 88& 176& 131& 227&$1:2$&$2:5$&$1:2$&$1:\kern-3pt\sqrt{3}$\\ % \bottomrule\\[-2ex] % \multicolumn{9}{r}{\footnotesize\textsuperscript{*} $5:8\approx 1:1,618$} %\end{tabular}}\\[-4ex] @@ -426,7 +437,7 @@ % % \subsubsection[Mathematics]{Typesetting mathematics} % -% All the non-standard fonts selectable with the \opt{defaultfont} option, i.e. Cochineal (default), Linux Libertine O and New PX, have a very good mathematical support, but if you aim at typesetting high mathematics the Latin Modern font family remains, of course, the better choice: \opt{defaultfont=standard} (see section \ref{sec:fonts}). +% The class loads by default a minimal mathematical support for Cochineal (default), Linux Libertine O or New PX and the \opt{mathfont} option is provided to extend or disable the support for mathematics when using these fonts. Even if these non-standard fonts have a very good mathematical support, if you aim at typesetting high mathematics the Latin Modern font family remains, of course, the better choice: \opt{defaultfont=standard}. See section \ref{sec:fonts} for details. % % % \subsubsection[Greek]{Typesetting Greek} @@ -458,6 +469,7 @@ % loading the \sty{frontespizio} package % with the \opt{suftesi} option. It is meant only for Italian users % \parencite[see][version 1.4 or later]{Gregorio:frontespizio}: +% %\begin{latexcode} %\begin{verbatim} %\usepackage[suftesi]{frontespizio} @@ -466,30 +478,31 @@ % Note that this frontispiece requires the use of a logo which could be restricted by some institutions. So before using it you have to be sure that you have the required permissions. % % The \sty{frontespizio} package produces a frontispiece in the standard Computer Modern typeface. If you prefer a consistent font remember to load the needed packages or commands in the \cmd{Preambolo} command: +% %\begin{latexcode} %\begin{verbatim} -% \begin{frontespizio} -% \Preambolo{\usepackage[osf]{cochineal}}% <=== -% \Universita{Paperopoli} -% \Dipartimento{Filosofia, Pedagogia e Psicologia} -% \Corso[Laurea]{Filosofia} -% \Annoaccademico{2030--2031} -% \Titolo{La mia tesi:\\ una lunga serie di risultati\\ -% difficilissimi e complicatissimi} -% \Sottotitolo{Alcune considerazioni mutevoli} -% \Candidato[vr12301231]{Paolo Rossi} -% \Relatore{Guido Bianchi} -% \end{frontespizio} +%\begin{frontespizio} +% \Preambolo{\usepackage[osf]{cochineal}}% <=== +% \Universita{Paperopoli} +% \Dipartimento{Filosofia, Pedagogia e Psicologia} +% \Corso[Laurea]{Filosofia} +% \Annoaccademico{2030--2031} +% \Titolo{La mia tesi:\\ una lunga serie di risultati\\ +% difficilissimi e complicatissimi} +% \Sottotitolo{Alcune considerazioni mutevoli} +% \Candidato[vr12301231]{Paolo Rossi} +% \Relatore{Guido Bianchi} +%\end{frontespizio} %\end{verbatim} %\end{latexcode} % % %\begin{figure} % \centering -%\begin{tikzpicture}[scale=0.9] -% \draw[drop shadow,draw=none,fill=gray!2.5,xshift=-12mm,yshift=2mm] (0,0) rectangle (13.9,20cm); -%\draw[line width=1.5mm,fill=sufred!50,text=white,draw=sufred!60] (1.2,18.1) circle (9mm) node {\parbox{12mm}{\centering\tiny * * * \\ St. Anford\\ University\\[1mm] * * * }}; -%\node[anchor=north west] at (3cm,19cm) {% +%\begin{tikzpicture} +% \draw[draw=gray,fill=white,drop shadow] (-.5\textwidth,0) rectangle (.5\textwidth,\textheight); +%\draw[line width=1.5mm,fill=sufred!50,text=white,draw=sufred!60] (-4.2,17.1) circle (9mm) node {\parbox{12mm}{\centering\tiny * * * \\ St. Anford\\ University\\[1mm] * * * }}; +%\node[anchor=north west] at (-2.5cm,18cm) {% % \parbox{8cm}{% % \small University of St. Anford\par % \normalsize Department of Typography @@ -516,7 +529,7 @@ % % {\normalsize\sffamily Research supervisors:\par} % \small J. H. Quick\par -% B. L. User\vspace{1.5cm} +% B. L. User\vspace{4cm} % % Thesis submitted in 2010 % } @@ -525,11 +538,35 @@ %\end{tikzpicture} %\caption{The frontispiece of \sty{suftesi}}\label{fig:frontispiece} %\end{figure} +%\begin{figure} +% \centering +%\begin{tikzpicture} +% \draw[draw=gray,fill=blue!10,drop shadow] (-.5\textwidth,0) rectangle (.5\textwidth,\textheight); +% \node at (0,.7\textheight) (c) {}; +% \draw[fill=DarkBlue,draw=none,circular drop shadow] (c) circle (4.5cm); +% \node[anchor=center,text=white] at (c) {\parbox{6cm}{% +% \centering +% {\scriptsize\scshape Bruce Lee\\} +% \vspace*{\baselineskip} +% +% {\Large\bfseries The Art of Kicking\\} +% +% {\smallskip\normalsize How to survive in the modern societies\\} +% +% {\vspace*{2\baselineskip}\scriptsize edited by\\ Walker Texas Ranger\\}}}; +%\node[align=center] at (0,1) {\scriptsize \textcolor{black}{Punch Press}\\[1ex]\textcolor{black}{\fbox{§§§§}}\\}; +%\end{tikzpicture} +%\caption{An example of the cover page of \sty{suftesi}}\label{fig:cover} +%\end{figure} % %^^A\subsection{Title page} % %^^A The class provides a very simple title page through the \cmd{maketitle} command. A large collection of stylish title pages is provided by the \sty{titlepages} package by Peter Wilson. This package is part of the \sty{memoir} documentation but you can copy the code examples and adapt them to work with \sty{suftesi} with quite simple changes. % +% \subsection{The cover page} +% Since version 2.6 \sty{suftesi} provides a command to print a simple cover page (figure \ref{fig:cover}), inspired by the Italian designer Bruno \textcite[85-89]{munari:arte-come-mestiere}. The color used for the text and the circle such as other graphical elements are customizable (see section \ref{sec:options} for details). To produce a complete book cover, with spine and dust jacket, you should take a look at the \sty{bookcover} package by Tibor Tómács. +% +% % \section{Options}\label{sec:options} % % \subsection{Layout}\label{sec:page-styles} @@ -575,10 +612,9 @@ % The details of this option are shown in table \ref{tab:layouts}. % \optitem[final]{version}{\opt{screen}, \opt{draft}, \opt{final}} % \begin{valuelist} -% \item[screen] -% Prints the \textsc{pdf} with its real dimensions (according to the \opt{pagelayout} option) and execute the \opt{oneside} option. +% \item[screen] Prints the \textsc{pdf} with its real dimensions and if \emph{loaded after the \opt{pagelayout} option} defines \texttt{hmarginratio=1:1}. % It is provided to have a better view when you are -% typesetting and reading the \textsc{pdf} on the screen. +% typesetting and reading the \textsc{pdf} on the screen. % \item[draft] % Prints the output on a A4 paper, showing the crop marks. % \item[final] Prints the output on a A4 paper, hiding the crop marks. @@ -601,10 +637,10 @@ % \item[libertine] Loads the Linux Libertine O serif, the Linux Biolinum O sans serif and the Inconsolata typewriter. % \item[palatino] Loads the New PX serif, the Linux Biolinum O sans serif and the Inconsolata typewriter. Note that the New PX font does not provide support for Greek. The \opt{greekfont=artemisa} option offers a very good solution. %^^A and {\fontfamily{artemisia}\selectfont Artemisia} by the {\fontfamily{artemisia}\selectfont Greek Font Society} for the greek text. -% \item[standard] Loads the {\fontfamily{lmr}\selectfont Latin Modern} font family -% and the standard CB Greek font. +% \item[standard] Loads the \sty{lmodern} package: Latin Modern font family and CB Greek. % \end{valuelist} % \optitem[none]{greekfont}{\opt{none}, \opt{artemisia}, \opt{porson}, \opt{bodoni}, \opt{cbgreek}} +% Not available with \opt{defaultfont=none} or \opt{defaultfont=standard} options. % \changes{v0.9b}{2012/09/23}{New option \opt{greekfont}} % \begin{valuelist} % \item[none] Does not load any Greek font. @@ -615,6 +651,15 @@ % \item[bodoni] Loads the Bodoni font by the Greek Font Society. % \item[cbgreek] Loads the standard CB~Greek font by Claudio Beccari. % \end{valuelist} +% +% \optitem[minimal]{mathfont}{\opt{none},\opt{minimal},\opt{extended}} +% +% Available only with Cochineal, Libertine and Palatino default fonts. +% \begin{valuelist} +% \item[none] Do not load any math support. Use this option if you need full control over mathematics settings. +% \item[minimal] Loads \sty{newtxmaht} (or \sty{newpxmaht}) and \sty{mathalfa}. +% \item[extended] Loads the previous option plus \sty{amsmath} and \sty{amsthm}. +% \end{valuelist} % \end{optionlist} % % \begin{optionlist} @@ -854,7 +899,7 @@ % \begin{valuelist} % \item[true] Prints the output on a A4 paper, showing the crop marks. It is the same of \opt{version=draft}. % \item[false] Prints a \textsc{pdf} with page dimensions -% according to the \opt{pagelayout} option. It is similar to \opt{version=screen} but it does not execute \opt{oneside} option and it does not redefine \cmd{crop}. +% according to the \opt{pagelayout} option. Similar to \opt{version=screen}. % \end{valuelist} % \end{optionlist} % @@ -888,6 +933,107 @@ % % \section{New commands}\label{sec:commands} % +% \subsection{Printing the cover page} +% +% \begin{ltxsyntax} +% \cmditem{makeover} +% \cmditem{makeover}[tikz options] +% +% Prints the cover page (figure \ref{fig:cover}). This command requires \sty{tikz} and the optional arguments accepts the same options of the \cmd{draw} command of that package (see the examples below). Commands available: +% +% \cmditem{Cauthor}{text} +% +%Printed at the top of the circle. +% +% \cmditem{Ctitle}{text} +% +% Printed below the author. +% +% \cmditem{Csubtitle}{text} +% +%Printed below the title. +% +% \cmditem{Ceditor}{text} +% +%Printed below the subtitle. +% +% \cmditem{Cfoot}{text} +% +%Printed in the footer. +% +% The color of the circle can be customized using the optional argument of the \cmd{makecover} command. For the other elements of the cover page the following commands are available. (You can load \sty{xcolor} with your favorite option to access to many beautiful colors.) +% +% \cmditem{Cpagecolor}{color} +% +%The color of the cover page. +% +% \cmditem{Ctextcolor}{color} +% +%The color of the text inside the circle. +% +% \cmditem{Cfootcolor}{color} +% +%The color of the text in the footer. +% +% \end{ltxsyntax} +% +% \subsubsection*{Some examples of cover pages} +% +% First you have to declare the informations you want to put in the cover page. It is better to give these informations in the preamble: +% +%\begin{latexcode} +%\begin{verbatim} +%\usepackage{tikz} +% +%\Cauthor{Bruce Lee} +%\Ctitle{The Art of Kicking} +%\Csubtitle{How to survive in the modern societies} +%\Ceditor{edited by\\ Walker Texas Ranger} +%\Cfoot{Punch Press\\\includegraphics[width=1cm]{logo}} +%\end{verbatim} +%\end{latexcode} +% +%Then you can print the cover page with: +% +%\begin{ttquote} +%\cmd{makecover}\phantom{\oar{\meta{tikz options}}} +%\end{ttquote} +% +% or +% +%\begin{ttquote} +%\cmd{makecover}\oar{\meta{tikz options}} +%\end{ttquote} + +% You can customize the circle using the optional arguments of the \cmd{makecover} command. Some of these \meta{tikz options} require special \sty{tikz} libraries. For example, you can add a shadow to the circle loading the \texttt{shadows} library and using the \texttt{circular drop shadow} otpion: +% +%\begin{latexcode} +%\begin{verbatim} +%\usepackage{tikz} +%\usetikzlibrary{shadows} +%... +%\begin{document} +%\makecover[circular drop shadow] +%\end{document} +%\end{verbatim} +%\end{latexcode} +% +% There are thousands of possibilities. Here is another (not necessarily good) example: +%\begin{latexcode} +%\begin{verbatim} +%\usepackage{tikz} +% +%\Cpagecolor{gray!30} +%\Ctextcolor{blue!50} +%\Cfootcolor{black} +% +%\begin{document} +%\makecover[fill=blue!30!black,draw=teal,line width=2mm,dashed] +%\end{document} +%\end{verbatim} +%\end{latexcode} +% +% % \subsection{Printing the colophon} % % As explained at the beginning of this documentation, in addition to the terms of the \LaTeX{} Project Public License, \textsf{suftesi} requires a specific attribution notice. You can typeset the attribution notice manually or using one of these commands. @@ -912,9 +1058,8 @@ %\begin{latexcode} %\begin{verbatim} %\author{Name Surname -% \thanks{This work has been typeset with \LaTeX, -% using the \textsf{suftesi} class -% by Ivan Valbusa}.} +% \thanks{This work has been typeset with \LaTeX, using the +% \textsf{suftesi} class by Ivan Valbusa}.} %\end{verbatim} %\end{latexcode} % @@ -930,12 +1075,10 @@ %\begin{verbatim} % \bookcolophon{% % Copyright © 2007 by Ivan Valbusa}{% -% This work has been typeset with \LaTeX, -% using the \textsf{suftesi} class -% by Ivan Valbusa\index{Valbusa, Ivan}. -% The serif font is Cochineal and the sans serif font -% is Linux Biolinum O by Michael Sharpe. -% } +% This work has been typeset with \LaTeX, using the \textsf{suftesi} +% class by Ivan Valbusa\index{Valbusa, Ivan}. The serif font is % +% Cochineal by Michael Sharpe and the sans serif font is Linux +% Biolinum O by Philipp H. Poll.} %\end{verbatim} %\end{latexcode} % @@ -1005,6 +1148,7 @@ % \changes{v0.9a}{2012/08/31}{New command \cmd{toclabelspace}} % % Adds the \meta{dim} to the \meta{level} label in the table of contents, where \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}, \opt{fig}, \opt{tab}. For example, when using \opt{chapnumstyle=Roman} you would probably need to adjust the width of the chapter label with: +% %\begin{latexcode} %\begin{verbatim} % \toclabelwidth{chap}{1em} @@ -1059,12 +1203,15 @@ % The default is Libertine (\LaTeX) or Computer Modern (\XeLaTeX{} and \LuaLaTeX). Using (pdf)\LaTeX{} you can change it simply giving the name of the font family. % %For example, to select the Helvetica family you will need: +% %\begin{latexcode} %\begin{verbatim} % \chapnumfont{phv} %\end{verbatim} %\end{latexcode} +% % With \XeLaTeX{} and \LuaLaTeX{} the \cmd{fontspec} command is required: +% %\begin{latexcode} %\begin{verbatim} % \chapnumfont{\fontspec[Numbers=OldStyle]{Helvetica}} @@ -1075,6 +1222,7 @@ % \section{Collections}\label{sec:collection} % % The \opt{collection} document structure is thought to compose a collection of papers. Each paper has to be typeset in a separate \file{.tex} inside the \env{article} environment: +% %\begin{latexcode} %\begin{verbatim} % \begin{article} @@ -1422,6 +1570,8 @@ \newif\ifsuftesi@twocolumnlot \newif\ifsuftesi@reverseauthortitle \newif\ifsuftesi@collection +\newif\ifsuftesi@mathminimal +\newif\ifsuftesi@mathextended \DeclareOption{a5paper}{% \ClassError{suftesi}{Option 'a5paper' not available}} \DeclareOption{b5paper}{% @@ -1473,6 +1623,9 @@ supercompactaureo,elements,periodicalaureo}[standard]{% \ifcase\nr\relax \DeclareRobustCommand{\SUF@chaptersize}{\Large} + \DeclareRobustCommand{\SUF@sectionsize}{\large} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, a4paper, @@ -1484,6 +1637,9 @@ marginparsep= 12pt} \or \DeclareRobustCommand{\SUF@chaptersize}{\Large} + \DeclareRobustCommand{\SUF@sectionsize}{\large} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, a4paper, @@ -1496,6 +1652,9 @@ \or \suftesi@periodicaltrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -1509,6 +1668,9 @@ \or \suftesi@compacttrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -1522,6 +1684,9 @@ \or \suftesi@compactaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -1535,6 +1700,9 @@ \or \suftesi@supercompacttrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -1548,6 +1716,9 @@ \or \suftesi@supercompactaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -1573,6 +1744,9 @@ \or \suftesi@periodicalaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, includeheadfoot=true, @@ -2048,7 +2222,7 @@ dotarabic,dotroman,dotRoman}[arabic]{% \define@choicekey{}{defaultfont}[\val\nr]{% none,cochineal,libertine,palatino,standard,compatibility}[cochineal]{% \ifcase\nr\relax - \suftesi@nofonttrue\suftesi@greekfontfalse + \suftesi@nofonttrue \or \suftesi@cochinealtrue \or @@ -2060,6 +2234,16 @@ dotarabic,dotroman,dotRoman}[arabic]{% \or \suftesi@compatibilitytrue \fi} +\define@choicekey{}{mathfont}[\val\nr]{% + none,minimal,extended}[minimal]{% +\ifcase\nr\relax + \suftesi@mathminimalfalse + \suftesi@mathextendedfalse +\or + \suftesi@mathminimaltrue +\or + \suftesi@mathextendedtrue +\fi} % \end{macrocode} % \subsubsection*{Greek fonts} % \begin{macrocode} @@ -2097,16 +2281,6 @@ dotarabic,dotroman,dotRoman}[arabic]{% \relax \fi} % \end{macrocode} -% \subsubsection*{Crop marks} -% \begin{macrocode} -\define@choicekey{}{crop}[\val\nr] - {true,false}[true]{% -\ifcase\nr\relax -\or - \suftesi@nocroptrue - \newcommand*\crop[1][]{} -\fi} -% \end{macrocode} % \subsubsection*{Draftdate} % \begin{macrocode} \define@choicekey{}{draftdate}[\val\nr] @@ -2123,10 +2297,18 @@ dotarabic,dotroman,dotRoman}[arabic]{% \ifcase\nr\relax \suftesi@nocroptrue \newcommand*\crop[1][]{} + \geometry{hmarginratio=1:1} \or \or \AtBeginDocument{\crop[off]} \fi} +\define@choicekey{}{crop}[\val\nr] + {true,false}[true]{% +\ifcase\nr\relax +\or + \suftesi@nocroptrue + \newcommand*\crop[1][]{} +\fi} % \end{macrocode} % \subsubsection*{Titlepage} % \begin{macrocode} @@ -2450,6 +2632,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} parindent=compact, tocstyle=standard, defaultfont=cochineal, + mathfont=minimal, greekfont=none, pagelayout=standard, headerstyle=inner, @@ -2550,10 +2733,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \RequirePackage{cclicenses} \else \fi +\ifthenelse{\boolean{xetex}\or\boolean{luatex}} % \end{macrocode} -% \subsection*{Greek fonts} +% +% \subsection*{Fonts} +% +% With \XeTeX{} we do not load any fonts. Anyway the \sty{fontspec} +% package is required because some commands of the class are base on it. % \begin{macrocode} -\ifthenelse{\boolean{xetex}\or\boolean{luatex}} {% if xetex or luatex \AtBeginDocument{% \@ifpackageloaded{fontspec} @@ -2573,89 +2760,164 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} ************************************}} } } +% \end{macrocode} +% +% \begin{macrocode} {% if pdftex \RequirePackage[LGR,T1]{fontenc} \RequirePackage{substitutefont} \AtBeginDocument{\fontencoding{T1}\selectfont} -\ifsuftesi@nofont\relax +% \end{macrocode} +% Now we load the macros for the \sty{defaultfont} option. +% The greek fonts by the Greek Font Society are available +% only with \opt{palatino}, \opt{libertine} and \opt{cochineal} options. +% A warning appears if the \opt{cbgreek} option is unused. +% \begin{macrocode} +\ifsuftesi@nofont + \ifsuftesi@greekfont + \ClassWarningNoLine{suftesi}{% + Unused 'greekfont' option}{}% + \suftesi@greekfontfalse + \else\suftesi@greekfontfalse\fi \else \ifsuftesi@standard - \RequirePackage{lmodern} - \else - \ifsuftesi@compatibility + \RequirePackage{lmodern} + \ifsuftesi@greekfont + \ClassWarningNoLine{suftesi}{% + Unused 'greekfont' option}{}% + \suftesi@greekfontfalse + \else\suftesi@greekfontfalse\fi +\else +% \end{macrocode} +% Previous versions of the class were based on +% Palatino (\sty{mathpazo}), Iwona and Bera Mono. +% Now this combination is provided only +% for backward compatibility. +% \begin{macrocode} + \ifsuftesi@compatibility \RequirePackage[osf,sc]{mathpazo} \RequirePackage[scaled=0.8]{beramono} \renewcommand{\sfdefault}{iwona} + \ifsuftesi@greekfont \ifsuftesi@bodoni - \def\SUFfntscale{0.955} + \gdef\SUFfntscale{0.96} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.97} + \gdef\SUFfntscale{0.97} \else \ifsuftesi@porson - \def\SUFfntscale{1.18} + \gdef\SUFfntscale{1.18} + \else + \ifsuftesi@cbgreek + \def\lmfntscale{1.06} \else \fi \fi \fi - \else - \ifsuftesi@palatino + \fi + \else + \ClassError{suftesi}{\MessageBreak + Set one of the following options\MessageBreak + greekfont=artemisia,\MessageBreak + greekfont=porson,\MessageBreak + greekfont=cbgreek}{\MessageBreak + Set one of the following options\MessageBreak + greekfont=artemisia,\MessageBreak + greekfont=porson,\MessageBreak + greekfont=cbgreek} + \fi +\else + \ifsuftesi@palatino \RequirePackage[full]{textcomp} \RequirePackage[osf]{newpxtext} \RequirePackage[scaled=1.06]{biolinum} \RequirePackage[varqu,varl]{inconsolata} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} + \RequirePackage[bigdelims,vvarbb]{newpxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal \RequirePackage[bigdelims,vvarbb]{newpxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \ifsuftesi@bodoni - \def\SUFfntscale{0.955} + \gdef\SUFfntscale{0.96} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.97} + \gdef\SUFfntscale{0.97} \else \ifsuftesi@porson - \def\SUFfntscale{1.18} + \gdef\SUFfntscale{1.18} + \else + \ifsuftesi@cbgreek + \def\lmfntscale{1.06} \else \fi \fi \fi + \fi \else - \ifsuftesi@libertine + \ifsuftesi@libertine \RequirePackage{textcomp} \RequirePackage[sb]{libertine} \RequirePackage[varqu,varl,scaled=0.94]{inconsolata} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} + \RequirePackage[libertine,bigdelims,vvarbb]{newtxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal \RequirePackage[libertine,bigdelims,vvarbb]{newtxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \useosf \ifsuftesi@bodoni - \def\SUFfntscale{0.89} + \gdef\SUFfntscale{0.9} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.91} + \gdef\SUFfntscale{0.91} \else \ifsuftesi@porson - \def\SUFfntscale{1.08} + \gdef\SUFfntscale{1.1} \else \fi \fi \fi - \else - \ifsuftesi@cochineal +\else + \ifsuftesi@cochineal \RequirePackage{textcomp} \RequirePackage{cochineal} \RequirePackage[varqu,varl,var0]{inconsolata} \RequirePackage{biolinum} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} + \RequirePackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal \RequirePackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \useosf \useproportional \ifsuftesi@bodoni - \def\SUFfntscale{0.88} + \gdef\SUFfntscale{0.9} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.89} + \gdef\SUFfntscale{0.905} \else \ifsuftesi@porson - \def\SUFfntscale{1.04} + \gdef\SUFfntscale{1.1} \else \fi \fi @@ -2667,107 +2929,43 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \fi \fi \fi +} % \end{macrocode} -% The greek fonts are available only with \opt{palatino}, \opt{libertine} and \opt{cochineal} options. +% % \begin{macrocode} +\ifxetex\else\ifluatex\else \ifsuftesi@greekfont -\ifsuftesi@artemisia - \def\SUF@greekfamily{artemisia} - \else - \ifsuftesi@porson - \def\SUF@greekfamily{porson} - \else - \ifsuftesi@bodoni - \def\SUF@greekfamily{bodoni} - \else - \ifsuftesi@cbgreek - \def\SUF@greekfamily{lmr} + \ifsuftesi@artemisia + \def\SUF@greekfamily{artemisia} \else + \ifsuftesi@porson + \def\SUF@greekfamily{porson} + \else + \ifsuftesi@bodoni + \def\SUF@greekfamily{bodoni} + \else + \ifsuftesi@cbgreek + \def\SUF@greekfamily{lmr} + \else + \fi + \fi \fi \fi - \fi -\fi % \end{macrocode} -% Thanks to Claudio Beccari for this macro. +% Thanks to Claudio Beccari for the following macro. % \begin{macrocode} -\AtBeginDocument{ - \substitutefont{LGR}{\rmdefault}{\SUF@greekfamily} - \DeclareRobustCommand{\greektext}{% - \usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape} - \def\encodingdefault{LGR}} - \DeclareTextFontCommand{\textgreek}{\greektext}} -\else -\fi -% \DeclareFontFamily{LGR}{pplj}{} -% \DeclareFontShape{LGR}{pplj}{m}{n}{<->ssub * lmr/m/n}{} -% \DeclareFontShape{LGR}{pplj}{m}{it}{<->ssub * lmr/m/it}{} -% \DeclareFontShape{LGR}{pplj}{m}{sl}{<->ssub * lmr/m/sl}{} -% \DeclareFontShape{LGR}{pplj}{m}{sc}{<->ssub * lmr/m/sc}{} -% \DeclareFontShape{LGR}{pplj}{b}{n}{<->ssub * lmr/bx/n}{} -% \DeclareFontShape{LGR}{pplj}{b}{it}{<->ssub * lmr/bx/it}{} -% \DeclareFontShape{LGR}{pplj}{b}{sl}{<->ssub * lmr/bx/sl}{} -% \DeclareFontShape{LGR}{pplj}{b}{sc}{<->ssub * lmr/bx/sc}{} -% \DeclareFontShape{LGR}{pplj}{bx}{n}{<->ssub * lmr/bx/n}{} -% \DeclareFontShape{LGR}{pplj}{bx}{it}{<->ssub * lmr/bx/it}{} -% \DeclareFontShape{LGR}{pplj}{bx}{sl}{<->ssub * lmr/bx/sl}{} -% \DeclareFontShape{LGR}{pplj}{bx}{sc}{<->ssub * lmr/bx/sc}{} -% \DeclareFontShape{LGR}{pplj}{m}{li}{<->ssub * lmr/m/li}{} -% \DeclareFontShape{LGR}{pplj}{b}{li}{<->ssub * lmr/b/li}{} -% \DeclareFontShape{LGR}{pplj}{bx}{li}{<->ssub * lmr/bx/li}{} -% \DeclareFontShape{LGR}{pplj}{m}{ui}{<->ssub * lmr/m/ui}{} -% \DeclareFontShape{LGR}{pplj}{b}{ui}{<->ssub * lmr/m/ui}{} -% \DeclareFontShape{LGR}{pplj}{bx}{ui}{<->ssub * lmr/bx/ui}{} -% \DeclareFontShape{LGR}{pplj}{m}{rs}{<->ssub * lmr/m/rs}{} -% \DeclareFontShape{LGR}{pplj}{b}{rs}{<->ssub * lmr/m/rs}{} -% \DeclareFontShape{LGR}{pplj}{bx}{rs}{<->ssub * lmr/bx/rs}{} -%\ifsuftesi@porson -%\sbox\z@{\fontsize{10}{10}\normalfont A} -%\sbox\tw@{\font\temp=gporsonrg6a at 10pt \temp A} -%\dimen@=\dimexpr \p@*\ht\z@/\ht\tw@\relax -%\sbox\z@{\normalfont\fontsize{10}{10}\selectfont a} -%\sbox\tw@{\font\temp=gporsonrg6a at 10pt \temp a} -%\dimen2=\dimexpr \p@*\ht\z@/\ht\tw@\relax -%\dimen4= 0.6\p@ -%\dimen@=\dimexpr \dimen@ - \dimen4*\dimen@/\p@+\dimen4*\dimen2/\p@\relax -%\edef\art@scale{\strip@pt\dimen@} -%\DeclareFontFamily{LGR}{porson}{} -%\DeclareFontShape{LGR}{porson}{m}{n} {<-> s * [\art@scale] gporsonrg6a}{} -%\DeclareFontShape{LGR}{porson}{m}{it} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{b}{n} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{b}{it} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{m}{sl} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{b}{sl} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{m}{sc} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{bx}{n} {<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{bx}{it}{<-> ssub * porson/m/n}{} -%\DeclareFontShape{LGR}{porson}{bx}{sl}{<-> ssub * porson/m/n}{} -% \fi -} + \AtBeginDocument{ + \substitutefont{LGR}{\rmdefault}{\SUF@greekfamily} + \DeclareRobustCommand{\greektext}{% + \usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape} + \def\encodingdefault{LGR}} + \DeclareTextFontCommand{\textgreek}{\greektext}} +\ifsuftesi@cbgreek + \else % \end{macrocode} -% +% We redefine the font definitions of the GFS fonts +% in order to scale the fonts according to the roman default. % \begin{macrocode} -\ifsuftesi@nofont - \ifsuftesi@greekfont - \ClassError{suftesi} - {'greekfont' option\MessageBreak - You can not use 'greekfont' option\MessageBreak - with 'defaultfont=none' option\MessageBreak - Set 'greekfont=none' or do not load\MessageBreak - the 'greekfont' option} - {'greekfont' option\MessageBreak - You can not use 'greekfont' option\MessageBreak - with 'defaultfont=none' option\MessageBreak - Set 'greekfont=none' or do not load\MessageBreak - the 'greekfont' option} - \else - \fi - \else -\fi - -\ifxetex\else - \ifsuftesi@greekfont - \ifsuftesi@cbgreek - \else \DeclareFontFamily{LGR}{bodoni}{} \DeclareFontShape{LGR}{bodoni}{m}{n}{<-> s * [\SUFfntscale] gbodonirg6a}{} \DeclareFontShape{LGR}{bodoni}{m}{it}{<-> s * [\SUFfntscale] gbodonii6a}{} @@ -2810,7 +3008,8 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \DeclareFontShape{LGR}{porson}{bx}{sl}{<-> s * [\SUFfntscale] gporsonrg6a}{} \fi \else - \fi +\fi +\fi \fi % \end{macrocode} % \subsection*{Page layout} @@ -2821,13 +3020,6 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \RequirePackage[a4,cam,center]{crop} \fi % \end{macrocode} -% A trick to produce one-side documents: -% \begin{macrocode} - \ifsuftesi@screen - \geometry{hmarginratio=1:1} - \else - \fi -% \end{macrocode} % \subsection*{Section titles} % \begin{macrocode} \RequirePackage{titlesec} @@ -2925,7 +3117,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \def\SUF@default@SECTIONS{ \ifsuftesi@numparsec \titleformat{\section}[display] - {\SUF@lr@SECSwitch} + {\SUF@sectionsize\SUF@lr@SECSwitch} {\ifsuftesi@article\SUF@thesection \else\thesection\fi\SUF@dotsec} {0ex} @@ -2933,7 +3125,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \titlespacing*{\section}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\section}[hang] - {\SUF@lr@SECSwitch} + {\SUF@sectionsize\SUF@lr@SECSwitch} {\ifsuftesi@article\SUF@thesection \else\thesection\fi\SUF@dotsec} {1em} @@ -2944,14 +3136,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} % \begin{macrocode} \ifsuftesi@numparsubsec \titleformat{\subsection}[display] - {\SUF@lr@SUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSECSwitch} {\textnormal\thesubsection} {0ex} {\SUF@SUBSEC@StyleSwitch} \titlespacing*{\subsection}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\subsection}[hang] - {\SUF@lr@SUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSECSwitch} {\textnormal\thesubsection} {1em} {\SUF@SUBSEC@StyleSwitch} @@ -2961,14 +3153,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} % \begin{macrocode} \ifsuftesi@numparsubsubsec \titleformat{\subsubsection}[display] - {\SUF@lr@SUBSUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSUBSECSwitch} {\textnormal\thesubsubsection} {0ex} {\SUF@SUBSUBSEC@StyleSwitch} \titlespacing*{\subsubsection}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\subsubsection}[hang] - {\SUF@lr@SUBSUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSUBSECSwitch} {\textnormal\thesubsubsection} {1em} {\SUF@SUBSUBSEC@StyleSwitch} @@ -3202,6 +3394,75 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} }% \fi % \end{macrocode} +% \subsection*{Cover page} +% \begin{macrocode} +\newcommand{\Ctitle}[1]{\def\@Ctitle{#1}} +\newcommand{\Csubtitle}[1]{\def\@Csubtitle{#1}} +\newcommand{\Cauthor}[1]{\def\@Cauthor{#1}} +\newcommand{\Ceditor}[1]{\def\@Ceditor{#1}} +\newcommand{\Cfoot}[1]{\def\@Cfoot{#1}} +\newcommand{\Cpagecolor}[1]{\def\@Cpagecolor{#1}} +\newcommand{\Ccirclecolor}[1]{\def\@Ccirclecolor{#1}} +\newcommand{\Ctextcolor}[1]{\def\@Ctextcolor{#1}} +\newcommand{\Cfootcolor}[1]{\def\@Cfootcolor{#1}} +\Cauthor{} +\Ctitle{} +\Csubtitle{} +\Ceditor{} +\Cfoot{} +\Cpagecolor{gray!30} +\Ctextcolor{white} +\Cfootcolor{black} +\AtBeginDocument{ +\@ifpackageloaded{tikz}{% +\newcommand\makecover[1][]{% +\begin{titlepage} +\begin{tikzpicture}[overlay,remember picture] + \draw[draw=none,fill=\@Cpagecolor] + (current page.north west) rectangle (current page.south east); + \node[anchor=center,yshift=.22\paperwidth] at (current page.center) (c) {}; + \draw[draw=none,fill=gray,#1] + (c) circle (.38\paperwidth) ; + \node[anchor=center] at (c) (author) {% +\parbox{.7\paperwidth}{% + \centering + \ifx\@Cauthor\@empty + \else + {\scshape\color{\@Ctextcolor}\@Cauthor\\} + \vspace*{\baselineskip} + \fi + + \ifx\@Ctitle\@empty + \else + {\Huge\bfseries\color{\@Ctextcolor}\@Ctitle\\} + \fi + + \ifx\@Csubtitle\@empty + \else + {\smallskip\Large\color{\@Ctextcolor}\@Csubtitle\\} + \fi + + \ifx\@Ceditor\@empty + \else + {\vspace*{2\baselineskip}\color{\@Ctextcolor}\@Ceditor\\} + \fi} +}; +\ifx\@Cfoot\@empty\else + \node[xshift=.5\paperwidth,yshift=1cm, + align=center,text=\@Cfootcolor,anchor=south] + at (current page.south west) {\@Cfoot}; +\fi +\end{tikzpicture} +\end{titlepage} +} +} +{\def\makecover{\ClassError{suftesi}{\MessageBreak% + ***********************************\MessageBreak + * To use the \noexpand\makecover command\MessageBreak + * load the 'tikz' package.\MessageBreak + ************************************}{}}} +} +% \end{macrocode} % \subsection*{Title page} % The new \cmd{title} command has an optional argument % which can be used in the headers. @@ -4794,6 +5055,17 @@ Janusz M. Nowacki. Subtitle = {La classe suftesi}, Title = {La forma del testo umanistico}} + +@book{munari:arte-come-mestiere, + Author = {Bruno Munari}, + Booktitle = {Arte come mestiere}, + Date-Added = {2016-03-12 16:39:37 +0000}, + Date-Modified = {2016-03-12 16:40:07 +0000}, + Location = {Roma-Bari}, + Publisher = {Laterza}, + Title = {Arte come mestiere}, + Year = {1966}} + % % \fi % diff --git a/Master/texmf-dist/tex/latex/suftesi/suftesi.cls b/Master/texmf-dist/tex/latex/suftesi/suftesi.cls index 7411f0b66df..01d9cb1d1dd 100644 --- a/Master/texmf-dist/tex/latex/suftesi/suftesi.cls +++ b/Master/texmf-dist/tex/latex/suftesi/suftesi.cls @@ -19,10 +19,11 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesClass{suftesi} - [2016/03/02 v2.5 A class for typesetting theses, books and articles] + [2016/03/13 v2.6 A class for typesetting theses, books and articles] %% -%% \subsection*{Feedback} +%% \section*{Feedback} % \begin{table}[h] + \ClassWarningNoLine{suftesi}{% ******************************************\MessageBreak * DO NOT MODIFY THE STYLES OF THIS CLASS\MessageBreak @@ -81,6 +82,8 @@ \newif\ifsuftesi@twocolumnlot \newif\ifsuftesi@reverseauthortitle \newif\ifsuftesi@collection +\newif\ifsuftesi@mathminimal +\newif\ifsuftesi@mathextended \DeclareOption{a5paper}{% \ClassError{suftesi}{Option 'a5paper' not available}} \DeclareOption{b5paper}{% @@ -123,6 +126,9 @@ supercompactaureo,elements,periodicalaureo}[standard]{% \ifcase\nr\relax \DeclareRobustCommand{\SUF@chaptersize}{\Large} + \DeclareRobustCommand{\SUF@sectionsize}{\large} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, a4paper, @@ -134,6 +140,9 @@ marginparsep= 12pt} \or \DeclareRobustCommand{\SUF@chaptersize}{\Large} + \DeclareRobustCommand{\SUF@sectionsize}{\large} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, a4paper, @@ -146,6 +155,9 @@ \or \suftesi@periodicaltrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -159,6 +171,9 @@ \or \suftesi@compacttrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -172,6 +187,9 @@ \or \suftesi@compactaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -185,6 +203,9 @@ \or \suftesi@supercompacttrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -198,6 +219,9 @@ \or \suftesi@supercompactaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{ heightrounded, includeheadfoot=false, @@ -223,6 +247,9 @@ \or \suftesi@periodicalaureotrue \DeclareRobustCommand{\SUF@chaptersize}{\large} + \DeclareRobustCommand{\SUF@sectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsectionsize}{\normalsize} + \DeclareRobustCommand{\SUF@subsubsectionsize}{\normalsize} \geometry{% heightrounded, includeheadfoot=true, @@ -644,7 +671,7 @@ dotarabic,dotroman,dotRoman}[arabic]{% \define@choicekey{}{defaultfont}[\val\nr]{% none,cochineal,libertine,palatino,standard,compatibility}[cochineal]{% \ifcase\nr\relax - \suftesi@nofonttrue\suftesi@greekfontfalse + \suftesi@nofonttrue \or \suftesi@cochinealtrue \or @@ -656,6 +683,16 @@ dotarabic,dotroman,dotRoman}[arabic]{% \or \suftesi@compatibilitytrue \fi} +\define@choicekey{}{mathfont}[\val\nr]{% + none,minimal,extended}[minimal]{% +\ifcase\nr\relax + \suftesi@mathminimalfalse + \suftesi@mathextendedfalse +\or + \suftesi@mathminimaltrue +\or + \suftesi@mathextendedtrue +\fi} \define@choicekey{}{greekfont}[\val\nr]{% none,artemisia,porson,bodoni,cbgreek}[none]{% \ifcase\nr\relax @@ -682,13 +719,6 @@ dotarabic,dotroman,dotRoman}[arabic]{% \or \relax \fi} -\define@choicekey{}{crop}[\val\nr] - {true,false}[true]{% -\ifcase\nr\relax -\or - \suftesi@nocroptrue - \newcommand*\crop[1][]{} -\fi} \define@choicekey{}{draftdate}[\val\nr] {true,false}[true]{% \ifcase\nr\relax @@ -700,10 +730,18 @@ dotarabic,dotroman,dotRoman}[arabic]{% \ifcase\nr\relax \suftesi@nocroptrue \newcommand*\crop[1][]{} + \geometry{hmarginratio=1:1} \or \or \AtBeginDocument{\crop[off]} \fi} +\define@choicekey{}{crop}[\val\nr] + {true,false}[true]{% +\ifcase\nr\relax +\or + \suftesi@nocroptrue + \newcommand*\crop[1][]{} +\fi} \define@choicekey{}{titlepage}[\val\nr] {true,false}[true]{% \ifcase\nr\relax @@ -997,6 +1035,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} parindent=compact, tocstyle=standard, defaultfont=cochineal, + mathfont=minimal, greekfont=none, pagelayout=standard, headerstyle=inner, @@ -1100,85 +1139,145 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \RequirePackage[LGR,T1]{fontenc} \RequirePackage{substitutefont} \AtBeginDocument{\fontencoding{T1}\selectfont} -\ifsuftesi@nofont\relax +\ifsuftesi@nofont + \ifsuftesi@greekfont + \ClassWarningNoLine{suftesi}{% + Unused 'greekfont' option}{}% + \suftesi@greekfontfalse + \else\suftesi@greekfontfalse\fi \else \ifsuftesi@standard - \RequirePackage{lmodern} - \else - \ifsuftesi@compatibility + \RequirePackage{lmodern} + \ifsuftesi@greekfont + \ClassWarningNoLine{suftesi}{% + Unused 'greekfont' option}{}% + \suftesi@greekfontfalse + \else\suftesi@greekfontfalse\fi +\else + \ifsuftesi@compatibility \RequirePackage[osf,sc]{mathpazo} \RequirePackage[scaled=0.8]{beramono} \renewcommand{\sfdefault}{iwona} + \ifsuftesi@greekfont \ifsuftesi@bodoni - \def\SUFfntscale{0.955} + \gdef\SUFfntscale{0.96} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.97} + \gdef\SUFfntscale{0.97} \else \ifsuftesi@porson - \def\SUFfntscale{1.18} + \gdef\SUFfntscale{1.18} + \else + \ifsuftesi@cbgreek + \def\lmfntscale{1.06} \else \fi \fi \fi - \else - \ifsuftesi@palatino + \fi + \else + \ClassError{suftesi}{\MessageBreak + Set one of the following options\MessageBreak + greekfont=artemisia,\MessageBreak + greekfont=porson,\MessageBreak + greekfont=cbgreek}{\MessageBreak + Set one of the following options\MessageBreak + greekfont=artemisia,\MessageBreak + greekfont=porson,\MessageBreak + greekfont=cbgreek} + \fi +\else + \ifsuftesi@palatino \RequirePackage[full]{textcomp} \RequirePackage[osf]{newpxtext} \RequirePackage[scaled=1.06]{biolinum} \RequirePackage[varqu,varl]{inconsolata} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} \RequirePackage[bigdelims,vvarbb]{newpxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal + \RequirePackage[bigdelims,vvarbb]{newpxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \ifsuftesi@bodoni - \def\SUFfntscale{0.955} + \gdef\SUFfntscale{0.96} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.97} + \gdef\SUFfntscale{0.97} \else \ifsuftesi@porson - \def\SUFfntscale{1.18} + \gdef\SUFfntscale{1.18} + \else + \ifsuftesi@cbgreek + \def\lmfntscale{1.06} \else \fi \fi \fi + \fi \else - \ifsuftesi@libertine + \ifsuftesi@libertine \RequirePackage{textcomp} \RequirePackage[sb]{libertine} \RequirePackage[varqu,varl,scaled=0.94]{inconsolata} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} + \RequirePackage[libertine,bigdelims,vvarbb]{newtxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal \RequirePackage[libertine,bigdelims,vvarbb]{newtxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \useosf \ifsuftesi@bodoni - \def\SUFfntscale{0.89} + \gdef\SUFfntscale{0.9} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.91} + \gdef\SUFfntscale{0.91} \else \ifsuftesi@porson - \def\SUFfntscale{1.08} + \gdef\SUFfntscale{1.1} \else \fi \fi \fi - \else - \ifsuftesi@cochineal +\else + \ifsuftesi@cochineal \RequirePackage{textcomp} \RequirePackage{cochineal} \RequirePackage[varqu,varl,var0]{inconsolata} \RequirePackage{biolinum} + \ifsuftesi@mathextended + \RequirePackage{amsmath} + \RequirePackage{amsthm} \RequirePackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath} \RequirePackage[cal=boondoxo]{mathalfa} + \else + \ifsuftesi@mathminimal + \RequirePackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath} + \RequirePackage[cal=boondoxo]{mathalfa} + \else + \fi + \fi \useosf \useproportional \ifsuftesi@bodoni - \def\SUFfntscale{0.88} + \gdef\SUFfntscale{0.9} \else \ifsuftesi@artemisia - \def\SUFfntscale{0.89} + \gdef\SUFfntscale{0.905} \else \ifsuftesi@porson - \def\SUFfntscale{1.04} + \gdef\SUFfntscale{1.1} \else \fi \fi @@ -1190,54 +1289,33 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \fi \fi \fi +} +\ifxetex\else\ifluatex\else \ifsuftesi@greekfont -\ifsuftesi@artemisia - \def\SUF@greekfamily{artemisia} - \else - \ifsuftesi@porson - \def\SUF@greekfamily{porson} - \else - \ifsuftesi@bodoni - \def\SUF@greekfamily{bodoni} - \else - \ifsuftesi@cbgreek - \def\SUF@greekfamily{lmr} + \ifsuftesi@artemisia + \def\SUF@greekfamily{artemisia} \else + \ifsuftesi@porson + \def\SUF@greekfamily{porson} + \else + \ifsuftesi@bodoni + \def\SUF@greekfamily{bodoni} + \else + \ifsuftesi@cbgreek + \def\SUF@greekfamily{lmr} + \else + \fi + \fi \fi \fi - \fi -\fi -\AtBeginDocument{ - \substitutefont{LGR}{\rmdefault}{\SUF@greekfamily} - \DeclareRobustCommand{\greektext}{% - \usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape} - \def\encodingdefault{LGR}} - \DeclareTextFontCommand{\textgreek}{\greektext}} -\else -\fi -} -\ifsuftesi@nofont - \ifsuftesi@greekfont - \ClassError{suftesi} - {'greekfont' option\MessageBreak - You can not use 'greekfont' option\MessageBreak - with 'defaultfont=none' option\MessageBreak - Set 'greekfont=none' or do not load\MessageBreak - the 'greekfont' option} - {'greekfont' option\MessageBreak - You can not use 'greekfont' option\MessageBreak - with 'defaultfont=none' option\MessageBreak - Set 'greekfont=none' or do not load\MessageBreak - the 'greekfont' option} - \else - \fi - \else -\fi - -\ifxetex\else - \ifsuftesi@greekfont - \ifsuftesi@cbgreek - \else + \AtBeginDocument{ + \substitutefont{LGR}{\rmdefault}{\SUF@greekfamily} + \DeclareRobustCommand{\greektext}{% + \usefont{LGR}{\SUF@greekfamily}{\f@series}{\f@shape} + \def\encodingdefault{LGR}} + \DeclareTextFontCommand{\textgreek}{\greektext}} +\ifsuftesi@cbgreek + \else \DeclareFontFamily{LGR}{bodoni}{} \DeclareFontShape{LGR}{bodoni}{m}{n}{<-> s * [\SUFfntscale] gbodonirg6a}{} \DeclareFontShape{LGR}{bodoni}{m}{it}{<-> s * [\SUFfntscale] gbodonii6a}{} @@ -1280,17 +1358,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \DeclareFontShape{LGR}{porson}{bx}{sl}{<-> s * [\SUFfntscale] gporsonrg6a}{} \fi \else - \fi +\fi +\fi \fi \ifsuftesi@nocrop \relax \else \RequirePackage[a4,cam,center]{crop} \fi - \ifsuftesi@screen - \geometry{hmarginratio=1:1} - \else - \fi \RequirePackage{titlesec} \newlength{\sectionsep} \setlength{\sectionsep}{\dimexpr(\baselineskip) plus 1pt minus 1pt} @@ -1375,7 +1450,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \def\SUF@default@SECTIONS{ \ifsuftesi@numparsec \titleformat{\section}[display] - {\SUF@lr@SECSwitch} + {\SUF@sectionsize\SUF@lr@SECSwitch} {\ifsuftesi@article\SUF@thesection \else\thesection\fi\SUF@dotsec} {0ex} @@ -1383,7 +1458,7 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \titlespacing*{\section}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\section}[hang] - {\SUF@lr@SECSwitch} + {\SUF@sectionsize\SUF@lr@SECSwitch} {\ifsuftesi@article\SUF@thesection \else\thesection\fi\SUF@dotsec} {1em} @@ -1392,14 +1467,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \fi \ifsuftesi@numparsubsec \titleformat{\subsection}[display] - {\SUF@lr@SUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSECSwitch} {\textnormal\thesubsection} {0ex} {\SUF@SUBSEC@StyleSwitch} \titlespacing*{\subsection}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\subsection}[hang] - {\SUF@lr@SUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSECSwitch} {\textnormal\thesubsection} {1em} {\SUF@SUBSEC@StyleSwitch} @@ -1407,14 +1482,14 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} \fi \ifsuftesi@numparsubsubsec \titleformat{\subsubsection}[display] - {\SUF@lr@SUBSUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSUBSECSwitch} {\textnormal\thesubsubsection} {0ex} {\SUF@SUBSUBSEC@StyleSwitch} \titlespacing*{\subsubsection}{0em}{\sectionsep}{\sectionsep}[0em] \else \titleformat{\subsubsection}[hang] - {\SUF@lr@SUBSUBSECSwitch} + {\SUF@subsectionsize\SUF@lr@SUBSUBSECSwitch} {\textnormal\thesubsubsection} {1em} {\SUF@SUBSUBSEC@StyleSwitch} @@ -1623,6 +1698,72 @@ quotesize,footnotestyle,liststyle,captionstyle,parindent} {\relax}% }% \fi +\newcommand{\Ctitle}[1]{\def\@Ctitle{#1}} +\newcommand{\Csubtitle}[1]{\def\@Csubtitle{#1}} +\newcommand{\Cauthor}[1]{\def\@Cauthor{#1}} +\newcommand{\Ceditor}[1]{\def\@Ceditor{#1}} +\newcommand{\Cfoot}[1]{\def\@Cfoot{#1}} +\newcommand{\Cpagecolor}[1]{\def\@Cpagecolor{#1}} +\newcommand{\Ccirclecolor}[1]{\def\@Ccirclecolor{#1}} +\newcommand{\Ctextcolor}[1]{\def\@Ctextcolor{#1}} +\newcommand{\Cfootcolor}[1]{\def\@Cfootcolor{#1}} +\Cauthor{} +\Ctitle{} +\Csubtitle{} +\Ceditor{} +\Cfoot{} +\Cpagecolor{gray!30} +\Ctextcolor{white} +\Cfootcolor{black} +\AtBeginDocument{ +\@ifpackageloaded{tikz}{% +\newcommand\makecover[1][]{% +\begin{titlepage} +\begin{tikzpicture}[overlay,remember picture] + \draw[draw=none,fill=\@Cpagecolor] + (current page.north west) rectangle (current page.south east); + \node[anchor=center,yshift=.22\paperwidth] at (current page.center) (c) {}; + \draw[draw=none,fill=gray,#1] + (c) circle (.38\paperwidth) ; + \node[anchor=center] at (c) (author) {% +\parbox{.7\paperwidth}{% + \centering + \ifx\@Cauthor\@empty + \else + {\scshape\color{\@Ctextcolor}\@Cauthor\\} + \vspace*{\baselineskip} + \fi + + \ifx\@Ctitle\@empty + \else + {\Huge\bfseries\color{\@Ctextcolor}\@Ctitle\\} + \fi + + \ifx\@Csubtitle\@empty + \else + {\smallskip\Large\color{\@Ctextcolor}\@Csubtitle\\} + \fi + + \ifx\@Ceditor\@empty + \else + {\vspace*{2\baselineskip}\color{\@Ctextcolor}\@Ceditor\\} + \fi} +}; +\ifx\@Cfoot\@empty\else + \node[xshift=.5\paperwidth,yshift=1cm, + align=center,text=\@Cfootcolor,anchor=south] + at (current page.south west) {\@Cfoot}; +\fi +\end{tikzpicture} +\end{titlepage} +} +} +{\def\makecover{\ClassError{suftesi}{\MessageBreak% + ***********************************\MessageBreak + * To use the \noexpand\makecover command\MessageBreak + * load the 'tikz' package.\MessageBreak + ************************************}{}}} +} \def\isbn#1{\gdef\@isbn{#1}} \def\@issn{\@latex@warning@no@line{% No \noexpand\isbn given}} -- cgit v1.2.3