summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Dybiec <dybiec@windowslive.com>2018-01-26 04:14:51 +0100
committerPaweł Dybiec <dybiec@windowslive.com>2018-01-26 04:14:51 +0100
commit68a988beed3134f899c689cd9b1f0f55a612feb9 (patch)
treee5d59736f50c62d790946aebf127843f2dcffa56
parent62b3f3ff6a3662680d95bd3d3d6e25f6b312e341 (diff)
Add missing class
-rwxr-xr-xiithesis.cls280
1 files changed, 280 insertions, 0 deletions
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