From 68a988beed3134f899c689cd9b1f0f55a612feb9 Mon Sep 17 00:00:00 2001 From: Paweł Dybiec Date: Fri, 26 Jan 2018 04:14:51 +0100 Subject: Add missing class --- iithesis.cls | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100755 iithesis.cls diff --git a/iithesis.cls b/iithesis.cls new file mode 100755 index 0000000..ea863f4 --- /dev/null +++ b/iithesis.cls @@ -0,0 +1,280 @@ +% Klasa iithesis sluzy do skladu prac dyplomowych w Instytucie Informatyki UWr. +%%%%% OPCJE KLASY +% polish (domyslnie), english - okresla jezyk pracy +% longabstract (domyslnie), shortabstract - okresla, czy streszczenia w obu +% jezykach maja zostac zlozone na osobnych stronach (longabstract), czy na +% jednej (shortabstract); te druga opcje nalezy wybierac tylko wtedy, gdy +% streszczenia sa dostatecznie krotkie +% declaration - okresla, czy na drugiej stronie pracy ma zostac zlozone +% oswiadczenie o autorskim wykonaniu pracy; domyslnie nie jest skladane, +% nie ma tez wiekszego sensu przy pracy kilku autorow +% lic (domyslnie), inz, mgr - okresla rodzaj pracy podany na stronie tytulowej; +% w przypadku podania opcji 'declaration' rowniez automatycznie okresla +% stopien studiow (I dla 'lic'/'inz', II dla 'mgr') podawany w oswiadczeniu +% fem, masc - w przypadku podania opcji 'declaration' okresla, czy powinny +% zostac uzyte zenskie czy meskie formy czasownikow; jesli nie zostanie +% wybrana zadna z nich, uzywana jest koncowka 'am/em' +% manyadvisors - wymusza uzycie liczby mnogiej slowa 'promotor', jesli praca +% ma kilku promotorow +% +%%%%% POLECENIA DOSTARCZANE PRZEZ KLASE +% \polishtitle, \englishtitle - sluza, podobnie jak tradycyjne \title, do +% zadeklarowania tytulow pracy w obu jezykach; \title nie ma zadnego efektu +% \polishabstract, \englishabstract - analogicznie sluza do zadeklarowania +% streszczen pracy w obu jezykach +% \advisor - sluzy do zadeklarowania nazwiska promotora +% \fmlinebreak - sluzy do lamania linii w obrebie \polishtitle, \englishtitle +% oraz \advisor (w tym przypadku np. do podania kilku promotorow i/lub ich +% afiliacji, jesli sa inne niz II UWr) +% +%%% Dwa kolejne polecenia maja znaczenie tylko z opcja 'declaration' i sluza +%%% do zadeklarowania napisow pojawiajacych sie w tresci oswiadczenia. Jesli +%%% zostana pominiete, w oswiadczeniu pojawia sie wykropkowane miejsca do +%%% pisemnego wypelnienia. +% \transcriptnum - sluzy do zadeklarowania numeru indeksu +% \advisorgen - sluzy do zadeklarowania nazwiska promotora w dopelniaczu; w +% przypadku kilku nazwisk nalezy je oddzielac przecinkami i spojnikami +%%% (Wrazliwe dane osobowe, takie jak adresy i nr ewidencyjny PESEL, nie sa +%%% podawane w wersji elektronicznej pracy dyplomowej i musza w oswiadczeniu +%%% wypelnione pisemnie.) +% +%%%%% PRZYKLADY: WIELU AUTOROW/PROMOTOROW, W TYM Z AFILIACJAMI/ADNOTACJAMI +% \author{Maksymilian Debesciak \and +% Karol Sasiedzki \fmlinebreak +% WPPT PWr} +% \advisor{dr Jan Kowalski \and +% prof. Janina Nowak \fmlinebreak +% Instytut Informatyki \fmlinebreak +% Uniwersytet Jagielloński \fmlinebreak +% (promotor pomocniczy)} +% +%%%%% PAKIETY WYMAGANE I DOLACZANE PRZEZ KLASE +% babel, geometry, fontenc, hyperref, ifthen, titling +% indentfirst, polski (jezeli iithesis zaladowano z opcja 'polish') +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{iithesis} + +\LoadClass[a4paper,11pt,onecolumn,twoside,openright,titlepage]{report} + +\RequirePackage{ifthen} +\newboolean{Long@Abstract} +\newboolean{Polish@Main} +\newboolean{Decl@ration} +\setboolean{Decl@ration}{false} +\newboolean{Many@Advisors} +\setboolean{Many@Advisors}{false} +\newcommand \@thesislevel {} +\newcommand \@studydegree {I} + +\newcommand \@polishtitle {\ClassWarningNoLine{iithesis}{No \noexpand\polishtitle given}} +\newcommand \@englishtitle {\ClassWarningNoLine{iithesis}{No \noexpand\englishtitle given}} +\newcommand \@polishabstract {\ClassWarningNoLine{iithesis}{No \noexpand\polishabstract given}} +\newcommand \@englishabstract {\ClassWarningNoLine{iithesis}{No \noexpand\englishabstract given}} +\newcommand \@advisor {\ClassWarningNoLine{iithesis}{No \noexpand\advisor given}} +\newcommand \@email {\ClassWarningNoLine{iithesis}{No \noexpand\email given}} +\newcommand \@transcriptnum {\ClassWarningNoLine{iithesis}{No \noexpand\transcriptnum given}\dotfill\str@t} +\newcommand \@advisorgen [1] {\ClassWarningNoLine{iithesis}{No \noexpand\advisorgen given}\dotfill\str@t\\\null\dotfill\str@t\\} +\newcommand \@gendersuffix {em/am} +\let\old@title\title +\renewcommand \title [1] {\ClassWarningNoLine{iithesis}{\noexpand\title ignored}} +\newcommand \polishtitle [1] {\gdef\@polishtitle{#1}} +\newcommand \englishtitle [1] {\gdef\@englishtitle{#1}} +\newcommand \polishabstract [1] {\gdef\@polishabstract{#1}} +\newcommand \englishabstract [1] {\gdef\@englishabstract{#1}} +\newcommand \advisor [1] {\gdef\@advisor{#1}} +\newcommand \transcriptnum [1] {\gdef\@transcriptnum{#1}} +\newcommand \advisorgen [1] {\gdef\@advisorgen{#1}} + +\DeclareOption{polish} {\setboolean{Polish@Main}{true} \PassOptionsToPackage{polish,english}{babel}} +\DeclareOption{english} {\setboolean{Polish@Main}{false}\PassOptionsToPackage{english,polish}{babel}} +\DeclareOption{lic} {\renewcommand \@thesislevel {licencjacka}} +\DeclareOption{inz} {\renewcommand \@thesislevel {in\.zynierska}} +\DeclareOption{mgr} {\renewcommand \@thesislevel {magisterska} \renewcommand \@studydegree {II}} +\DeclareOption{longabstract} {\setboolean{Long@Abstract} {true} } +\DeclareOption{shortabstract}{\setboolean{Long@Abstract} {false}} +\DeclareOption{declaration} {\setboolean{Decl@ration}{true}} +\DeclareOption{fem} {\renewcommand \@gendersuffix {am}} +\DeclareOption{masc} {\renewcommand \@gendersuffix {em}} +\DeclareOption{manyadvisors} {\setboolean{Many@Advisors} {true}} + +\DeclareOption*{\ClassWarningNoLine{iithesis}{Unknown option `\CurrentOption'}} + +\ExecuteOptions{polish,lic,longabstract} +\ProcessOptions\relax + +\RequirePackage[OT4]{fontenc} +\RequirePackage{babel,titling,geometry} +\geometry{margin=3cm,bindingoffset=1cm,a4paper,onecolumn,twoside} + +\pagestyle{headings} + +\newcommand \if@pol [2] {\ifthenelse{\boolean{Polish@Main} }{#1}{#2}} +\newcommand \if@long [2] {\ifthenelse{\boolean{Long@Abstract}}{#1}{#2}} +\newcommand \if@many [2] {\ifthenelse{\boolean{Many@Advisors}}{#1}{#2}} + +% Dodatkowa polonizacja +\if@pol{ + \RequirePackage{indentfirst,polski} + % Kropka po numerach jednostek struktury + \renewcommand \thechapter {\arabic{chapter}.} + \renewcommand \thesection {\thechapter \arabic{section}.} + \renewcommand \thesubsection {\thesection \arabic{subsection}.} + \renewcommand \thesubsubsection {\thesubsection \arabic{subsubsection}.} + \renewcommand \chaptermark [1] {\markboth{\MakeUppercase{\chaptername\ \thechapter{} #1}}{}} + \renewcommand \sectionmark [1] {\markright{\MakeUppercase{\thesection{} #1}}{}} + \renewcommand \theequation {\ifnum \c@chapter>\z@ \thechapter\fi \@arabic\c@equation} + \renewcommand \thefigure {\ifnum \c@chapter>\z@ \thechapter\fi \@arabic\c@figure} + \renewcommand \thetable {\ifnum \c@chapter>\z@ \thechapter\fi \@arabic\c@table} + \renewcommand \appendix {\par + \setcounter{chapter}{0} + \setcounter{section}{0} + \gdef \@chapapp {\appendixname} + \gdef \thechapter {\@Alph\c@chapter} + % Poprawki w 'dodatkach' + \renewcommand \thesection {\thechapter.\arabic{section}.} + \renewcommand \chaptermark [1] {\markboth{\MakeUppercase{\appendixname\ \thechapter. ##1}}{}} + } + % Sterowanie lamaniem stron + \brokenpenalty=1000 + \clubpenalty=1000 + \widowpenalty=1000 +}{} + +% Bibliografia pojawia sie jako nienumerowany rozdzial w spisie tresci +\renewenvironment{thebibliography}[1] + {\chapter*{\bibname}% + \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m% + \addcontentsline{toc}{chapter}{\bibname}} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + +% Strona tytulowa oraz abstrakty nie resetuja numeracji stron +\renewenvironment {titlepage} { + \if@twocolumn \@restonecoltrue \onecolumn + \else \@restonecolfalse \newpage \fi + \thispagestyle{empty} +}{\if@restonecol \twocolumn \else \newpage \fi} + +% Puste strony przed nowymi rozdzialami calkowicie puste, tj. bez naglowkow +\def \cleardoublepage { + \clearpage + \if@twoside + \ifodd \c@page + \else \hbox{} \thispagestyle{empty} \newpage + \if@twocolumn \hbox{} \newpage + \fi \fi \fi +} + +\renewcommand \maketitlehookb { + \vfilneg + \begin{center}\large + \if@pol{\selectlanguage{english}(\@englishtitle)} + {\selectlanguage{polish}(\@polishtitle)} + \end{center} + \selectlanguage{polish} +} + +\renewcommand \maketitlehookc { + \vfil + \begin{center} + \renewcommand \fmlinebreak {\\ &} + \renewcommand \and {\\[0.85em] &} + \large Praca \@thesislevel\\[0.85em] + \begin{tabular}[t]{rl} + \textbf{Promotor\if@many{zy}{}:} & \@advisor + \end{tabular}\end{center} + \vfil\vfil\vfil\vfil + \begin{center}Uniwersytet Wroc\l{}awski\\ + Wydzia\l{} Matematyki i Informatyki\\ + Instytut Informatyki\end{center} +} + +\setlength{\parindent}{2em} +\setlength{\parskip}{1.5ex} +\renewcommand \baselinestretch {1.15} + +\newcommand \fmlinebreak { } + +\newcommand \str@t {\rule{0em}{1.85em}} +\newcommand \tw@col [1] {\multicolumn{2}{@{}p{20em}}{#1}} + +\RequirePackage[pdftex,unicode=true]{hyperref} + +\RequirePackage{etoolbox} +\AfterEndPreamble{ + \if@pol{\selectlanguage{polish}\old@title{\bfseries\@polishtitle\mdseries}} + {\selectlanguage{english}\old@title{\bfseries\@englishtitle\mdseries}} + \let\old@nd\and + \renewcommand \and {, } + \hypersetup{pdfauthor={\@author},pdftitle={\@title} } + \renewcommand \and \old@nd + \renewcommand \fmlinebreak {\\} + \maketitle + \renewcommand \maketitle {\ClassWarningNoLine{iithesis}{\noexpand\maketitle ignored}} + \renewcommand \fmlinebreak {, } + \renewcommand \and {, } + \ifthenelse{\boolean{Decl@ration}}{ + \selectlanguage{polish} + \begin{titlepage}\null\vfil + \begin{tabular}{@{}lll} + \multicolumn{3}{@{}l}{\@author}\\ + \tw@col{\dotfill\str@t}\\ + \tw@col{\dotfill\str@t}\\ + \multicolumn{2}{c}{\footnotesize{(adres zameldowania)}}\\ + \tw@col{\dotfill\str@t}\\ + \tw@col{\dotfill\str@t}\\ + \multicolumn{2}{c}{\footnotesize{(adres korespondencyjny)}}\\ + PESEL: & \dotfill\str@t\\ + e-mail: & \dotfill\str@t\\ + \tw@col{Wydzia\l{} Matematyki i~Informatyki\str@t}\\ + \tw@col{stacjonarne studia \@studydegree{} stopnia}\\ + kierunek: & informatyka\\ + nr albumu: & \@transcriptnum\end{tabular}\vskip 4.5em\par + \begin{center}\bfseries O\'swiadczenie\\ + o autorskim wykonaniu pracy dyplomowej\end{center}\par + \frenchspacing Niniejszym o\'swiadczam, \.ze z\l{}o\.zon\k{a} do oceny + prac\k{e} zatytu\l{}owan\k{a} + \renewcommand \fmlinebreak { }% + \emph{\if@pol{\@polishtitle} + {\selectlanguage{english}\@englishtitle\selectlanguage{polish}}} + \renewcommand \fmlinebreak {, }% + wykona\l{}\@gendersuffix{} samodzielnie pod kierunkiem promotor% + \if@many{\'ow:}{a,} \@advisorgen. O\'swiadczam, \.ze powy\.zsze dane s\k{a} + zgodne ze stanem faktycznym i~znane mi s\k{a} przepisy ustawy z~dn. 4~lutego + 1994~r. o~prawie autorskim i~prawach pokrewnych (tekst jednolity: Dz.~U. + z~2006~r. nr 90, poz. 637, z~p\'o\'zniejszymi zmianami) oraz \.ze tre\'s\'c + pracy dyplomowej przedstawionej do obrony, zawarta na przekazanym no\'sniku + elektronicznym, jest identyczna z~jej wersj\k{a} drukowan\k{a}. + \vskip 1.5em\par Wroc\l{}aw, \@date + \vskip 3em\par\hfill\footnotesize{(czytelny podpis)}\hskip 6em\null + \par\vfil\null\end{titlepage} + }{} + \if@pol {\selectlanguage{polish}}{\selectlanguage{english}} + \cleardoublepage\begin{abstract} + \renewcommand \fmlinebreak {\\}\par + \if@pol {\frenchspacing\@polishabstract}{\noindent\@englishabstract} + \if@long{\end{abstract}}{\begin{center}\rule[3pt]{300pt}{1pt}\end{center}\par} + \if@pol {\selectlanguage{english}}{\selectlanguage{polish}} + \if@long{\clearpage\begin{abstract}\par}{} + \if@pol {\noindent\@englishabstract\selectlanguage{polish}} + {\frenchspacing\@polishabstract\selectlanguage{english}} + \end{abstract} + \if@long{\if@pol{\selectlanguage{polish}}{\selectlanguage{english}}}{} + \tableofcontents +} + +\endinput -- cgit 1.4.1