% 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