vutinfth.cls 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. %%
  2. %% This is file `vutinfth.cls',
  3. %% generated with the docstrip utility.
  4. %%
  5. %% The original source files were:
  6. %%
  7. %% vutinfth.dtx (with options: `class')
  8. %%
  9. %% This is a generated file.
  10. %% Copyright (C) 2014-2017 by Thomas Auzinger <thomas@auzinger.name>
  11. %%
  12. %% This work may be distributed and/or modified under the
  13. %% conditions of the LaTeX Project Public License, either version 1.3
  14. %% of this license or (at your option) any later version.
  15. %% The latest version of this license is in
  16. %% http://www.latex-project.org/lppl.txt
  17. %% and version 1.3 or later is part of all distributions of LaTeX
  18. %% version 2005/12/01 or later.
  19. %%
  20. %% This work has the LPPL maintenance status `maintained'.
  21. %%
  22. %% The Current Maintainer of this work is Thomas Auzinger.
  23. %%
  24. %% This work consists of the files vutinfth.dtx and vutinfth.ins
  25. %% and the derived file vutinfth.cls.
  26. %% This work also consists of the file intro.tex.
  27. %%
  28. %% vutinfth.dtx
  29. %% Copyright (C) 2014-2017 by Thomas Auzinger <thomas@auzinger.name>
  30. \NeedsTeXFormat{LaTeX2e}[1999/12/01]
  31. \ProvidesClass{vutinfth}
  32. [2017/06/19 v1.7 TU Wien Faculty of Informatics thesis template]
  33. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  34. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  35. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  38. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  39. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  40. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  41. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  42. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  43. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  44. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  45. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  46. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  47. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  48. \DeclareOption*{%
  49. \PassOptionsToClass{\CurrentOption}{memoir}%
  50. }%
  51. \ProcessOptions\relax
  52. \LoadClass[a4paper,11pt]{memoir}%
  53. \chapterstyle{veelo}%
  54. \RequirePackage[scaled]{helvet}%
  55. \RequirePackage{lmodern}%
  56. \RequirePackage{courier}%
  57. \RequirePackage[T1]{fontenc}%
  58. \RequirePackage[english,naustrian]{babel}%
  59. \RequirePackage[nodayofweek]{datetime}%
  60. \RequirePackage{geometry}%
  61. \RequirePackage{calc}%
  62. \RequirePackage{etoolbox}%
  63. \RequirePackage{graphicx}%
  64. \graphicspath{{graphics/}}%
  65. \newcommand{\@namexdef}[1]{\expandafter\xdef\csname#1\endcsname}%
  66. \newcommand{\ifestrequal}[4]{%
  67. \begingroup
  68. \edef\vutinfth@tempa{{#1}}%
  69. \edef\vutinfth@tempb{{#2}}%
  70. \expandafter\expandafter\expandafter\ifstrequal
  71. \expandafter\vutinfth@tempa\vutinfth@tempb{#3}{#4}%
  72. \endgroup
  73. }%
  74. \newcommand{\vutinfth@HUGE}{\fontsize{30}{34}\selectfont}%
  75. \newcommand{\vutinfth@huge}{\fontsize{20}{23}\selectfont}%
  76. \newcommand{\vutinfth@LARGE}{\fontsize{17}{22}\selectfont}%
  77. \newcommand{\vutinfth@Large}{\fontsize{14}{18}\selectfont}%
  78. \newcommand{\vutinfth@large}{\fontsize{12}{14.5}\selectfont}%
  79. \newcommand{\vutinfth@normalsize}{\fontsize{11}{13.6}\selectfont}%
  80. \newenvironment{SFFont}[1]{%
  81. \begingroup
  82. \sffamily
  83. \global\let\vutinfth@f@family@tmp=\f@family
  84. \endgroup
  85. \renewcommand{\sfdefault}{#1}%
  86. \ifdefstrequal{\f@family}{\vutinfth@f@family@tmp}{\sffamily}{}%
  87. }{%
  88. \renewcommand{\sfdefault}{\vutinfth@f@family@tmp}%
  89. }%
  90. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  91. \newcommand{\setdate}[3]{%
  92. \newdate{vutinfth@date@signing}{#1}{#2}{#3}%
  93. }%
  94. \newcommand{\vutinfth@def@data}[2]{%
  95. \@namedef{vutinfth@data@#1@def}{}%
  96. \@namedef{vutinfth@data@#1}{#2}%
  97. }%
  98. \newcommand{\vutinfth@def@data@invalid}[2]{%
  99. \@namedef{vutinfth@data@#1@error}{%
  100. \ClassError{vutinfth}{No #2 issued}{Set #1 with #2.}%
  101. }%
  102. \@namedef{vutinfth@data@#1}{\@nameuse{vutinfth@data@#1@error}}%
  103. }%
  104. \newcommand{\CreateData}[1]{%
  105. \@namedef{set#1}##1{%
  106. \vutinfth@def@data{#1}{##1}%
  107. }%
  108. \vutinfth@def@data@invalid{#1}{\string\set#1}%
  109. }%
  110. \newcommand{\vutinfth@person@male}{male}%
  111. \newcommand{\vutinfth@person@female}{female}%
  112. \newcommand{\ifmale}[2]{%
  113. \ifcsstring{vutinfth@person@#1@gender}{\vutinfth@person@male}{#2}{}%
  114. }%
  115. \newcommand{\iffemale}[2]{%
  116. \ifcsstring{vutinfth@person@#1@gender}{\vutinfth@person@female}{#2}{}%
  117. }%
  118. \newcommand{\vutinfth@def@person}[5]{%
  119. \@namedef{vutinfth@person@#1@def}{}%
  120. \@namedef{vutinfth@person@#1@pretitle}{#2}%
  121. \@namedef{vutinfth@person@#1@name}{#3}%
  122. \@namedef{vutinfth@person@#1@posttitle}{#4}%
  123. \ifdefstring{\vutinfth@person@male}{#5}{%
  124. \@namedef{vutinfth@person@#1@gender}{\vutinfth@person@male}%
  125. }{}%
  126. \ifdefstring{\vutinfth@person@female}{#5}{%
  127. \@namedef{vutinfth@person@#1@gender}{\vutinfth@person@female}%
  128. }{}%
  129. \ifstrempty{#3}{%
  130. \ifstrempty{#2}{%
  131. \@namedef{vutinfth@person@#1@fullname}{#4}%
  132. }{%
  133. \ifstrempty{#4}{%
  134. \@namedef{vutinfth@person@#1@fullname}{#2}%
  135. }{%
  136. \@namedef{vutinfth@person@#1@fullname}{#2 #4}%
  137. }%
  138. }%
  139. }{%
  140. \ifstrempty{#2}{%
  141. \ifstrempty{#4}{%
  142. \@namedef{vutinfth@person@#1@fullname}{#3}%
  143. }{%
  144. \@namedef{vutinfth@person@#1@fullname}{#3, #4}%
  145. }%
  146. }{%
  147. \ifstrempty{#4}{%
  148. \@namedef{vutinfth@person@#1@fullname}{#2 #3}%
  149. }{%
  150. \@namedef{vutinfth@person@#1@fullname}{#2 #3, #4}%
  151. }%
  152. }%
  153. }%
  154. }%
  155. \newcommand{\vutinfth@def@person@invalid}[2]{%
  156. \@namedef{vutinfth@person@#1@error}{%
  157. \ClassError{vutinfth}{No #2 issued}{Set #1 with #2.}%
  158. }%
  159. \@namedef{vutinfth@person@#1@name}{%
  160. \@nameuse{vutinfth@person@#1@error}}%
  161. \@namedef{vutinfth@person@#1@pretitle}{%
  162. \@nameuse{vutinfth@person@#1@error}}%
  163. \@namedef{vutinfth@person@#1@posttitle}{%
  164. \@nameuse{vutinfth@person@#1@error}}%
  165. \@namedef{vutinfth@person@#1@gender}{%
  166. \@nameuse{vutinfth@person@#1@error}}%
  167. \@namedef{vutinfth@person@#1@fullname}{%
  168. \@nameuse{vutinfth@person@#1@error}}%
  169. }%
  170. \newcommand{\CreatePerson}[1]{%
  171. \@namedef{set#1}##1##2##3##4{%
  172. \vutinfth@def@person{#1}{##1}{##2}{##3}{##4}%
  173. }%
  174. \vutinfth@def@person@invalid{#1}{\string\set#1}%
  175. }%
  176. \newcommand{\AddLanguage}[1]{%
  177. \@namedef{KV@vutinfth@#1}##1{%
  178. \@namedef{vutinfth@current@#1}{##1}%
  179. }%
  180. \@nameuse{KV@vutinfth@#1}{}%
  181. \ifundef{\vutinfth@allocate@polylingual}{%
  182. \newcommand{\vutinfth@allocate@polylingual}[1]{\@empty}%
  183. }{}%
  184. \@namelet{vutinfth@allocate@polylingual@#1}%
  185. \vutinfth@allocate@polylingual
  186. \renewcommand{\vutinfth@allocate@polylingual}[1]{%
  187. \@nameuse{vutinfth@allocate@polylingual@#1}{##1}%
  188. \@namexdef{vutinfth@##1@#1}{%
  189. \ifcsempty{vutinfth@current@#1}{%
  190. \ifdraftdoc{%
  191. [Draft: No `#1' text for polylingual `##1'.]%
  192. }\else{%
  193. \relax
  194. }\fi
  195. }{%
  196. \@nameuse{vutinfth@current@#1}%
  197. }%
  198. }%
  199. }%
  200. \ifundef{\vutinfth@selectlanguage@polylingual}{%
  201. \newcommand{\vutinfth@selectlanguage@polylingual}[1]{\@empty}%
  202. }{}%
  203. \@namelet{vutinfth@selectlanguage@polylingual@#1}%
  204. \vutinfth@selectlanguage@polylingual
  205. \renewcommand{\vutinfth@selectlanguage@polylingual}[1]{%
  206. \@nameuse{vutinfth@selectlanguage@polylingual@#1}{##1}%
  207. \ifdefstring{\languagename}{#1}{\@nameuse{vutinfth@##1@#1}}{}%
  208. }%
  209. }%
  210. \newcommand{\CreatePolylingual}[2][]{%
  211. \begingroup
  212. \setkeys{vutinfth}{#1}%
  213. \vutinfth@allocate@polylingual{#2}%
  214. \endgroup
  215. \@namedef{vutinfth@polylingual@#2}{%
  216. \vutinfth@selectlanguage@polylingual{#2}}%
  217. }%
  218. \newcommand{\vutinfth@thesis@basetype@undergraduate}{%
  219. vutinfth@undergraduate}%
  220. \newcommand{\vutinfth@thesis@basetype@graduate}{%
  221. vutinfth@graduate}%
  222. \newcommand{\ifundergraduate}[1]{%
  223. \ifestrequal{\vutinfth@thesis@basetype}{%
  224. \vutinfth@thesis@basetype@undergraduate
  225. }{#1}{}%
  226. }%
  227. \newcommand{\ifgraduate}[1]{%
  228. \ifestrequal{\vutinfth@thesis@basetype}{%
  229. \vutinfth@thesis@basetype@graduate
  230. }{#1}{}%
  231. }%
  232. \newcommand{\vutinfth@thesis@doctortype@doctor}{%
  233. vutinfth@doctor}%
  234. \newcommand{\vutinfth@thesis@doctortype@phd}{%
  235. vutinfth@phd}%
  236. \newcommand{\ifdoctor}[1]{%
  237. \ifestrequal{\vutinfth@thesis@doctortype}{%
  238. \vutinfth@thesis@doctortype@doctor
  239. }{#1}{}%
  240. }%
  241. \newcommand{\ifphd}[1]{%
  242. \ifestrequal{\vutinfth@thesis@doctortype}{%
  243. \vutinfth@thesis@doctortype@phd
  244. }{#1}{}%
  245. }%
  246. \newcommand{\vutinfth@thesis@basetype}{%
  247. \ClassError{vutinfth}{No \string\setthesis \space issued}{%
  248. Set thesis type with \string\setthesis.}%
  249. }%
  250. \newcommand{\vutinfth@thesis@doctortype}{%
  251. \ClassError{vutinfth}{No \string\setthesis \space issued}{%
  252. Set thesis type with \string\setthesis.}%
  253. }%
  254. \newcommand{\vutinfth@polylingual@degreename}{%
  255. \ClassError{vutinfth}{No \string\setthesis \space issued}{%
  256. Set thesis type with \string\setthesis.}%
  257. }%
  258. \newcommand{\vutinfth@polylingual@thesisname}{%
  259. \ClassError{vutinfth}{No \string\setthesis \space issued}{%
  260. Set thesis type with \string\setthesis.}%
  261. }%
  262. \newcommand{\vutinfth@thesis@bachelor}{bachelor}%
  263. \newcommand{\vutinfth@thesis@master}{master}%
  264. \newcommand{\vutinfth@thesis@doctor}{doctor}%
  265. \newcommand{\vutinfth@thesis@phd}{phd-school}%
  266. \newcommand{\@setthesisname}[1]{%
  267. \renewcommand{\vutinfth@polylingual@thesisname}{#1}}%
  268. \newcommand{\@setdegreename}[1]{%
  269. \renewcommand{\vutinfth@polylingual@degreename}{#1}}%
  270. \newcommand{\@setgendereddegreename}[2]{%
  271. \ifmale{author}{\@setdegreename{#1}}%
  272. \iffemale{author}{\@setdegreename{#2}}%
  273. }%
  274. \newcommand{\setthesis}[1]{%
  275. \ifdefstring{\vutinfth@thesis@bachelor}{#1}{%
  276. \renewcommand{\vutinfth@thesis@basetype}{%
  277. \vutinfth@thesis@basetype@undergraduate}%
  278. \@setthesisname{\vutinfth@polylingual@BACHELORTHESIS}%
  279. \@setdegreename{\vutinfth@polylingual@Bdeg}%
  280. }{}%
  281. \ifdefstring{\vutinfth@thesis@master}{#1}{%
  282. \renewcommand{\vutinfth@thesis@basetype}{%
  283. \vutinfth@thesis@basetype@undergraduate}%
  284. \@setthesisname{%
  285. \ClassError{vutinfth}{No \string\setmasterdegree \space issued}{%
  286. Set masterdegree with \string\setmasterdegree.}%
  287. }%
  288. \@setdegreename{%
  289. \ClassError{vutinfth}{No \string\setmasterdegree \space issued}{%
  290. Set master degree with \string\setmasterdegree.}%
  291. }%
  292. }{}%
  293. \ifdefstring{\vutinfth@thesis@doctor}{#1}{%
  294. \renewcommand{\vutinfth@thesis@basetype}{%
  295. \vutinfth@thesis@basetype@graduate}%
  296. \renewcommand{\vutinfth@thesis@doctortype}{%
  297. \vutinfth@thesis@doctortype@doctor}%
  298. \@setthesisname{\vutinfth@polylingual@DOCTORTHESIS}%
  299. \@setdegreename{%
  300. \ClassError{vutinfth}{No \string\setdoctordegree \space issued}{%
  301. Set doctor degree with \string\setdoctordegree.}%
  302. }%
  303. }{}%
  304. \ifdefstring{\vutinfth@thesis@phd}{#1}{%
  305. \renewcommand{\vutinfth@thesis@basetype}{%
  306. \vutinfth@thesis@basetype@graduate}%
  307. \renewcommand{\vutinfth@thesis@doctortype}{%
  308. \vutinfth@thesis@doctortype@phd}%
  309. \@setthesisname{\vutinfth@polylingual@PHDTHESIS}%
  310. \@setdegreename{\vutinfth@polylingual@Pdeg}%
  311. }{}%
  312. }%
  313. \newcommand{\vutinfth@thesis@mdeg@dipl}{dipl.}%
  314. \newcommand{\vutinfth@thesis@mdeg@master}{master}%
  315. \newcommand{\vutinfth@thesis@mdeg@rernat}{rer.nat.}%
  316. \newcommand{\vutinfth@thesis@mdeg@rersocoec}{rer.soc.oec.}%
  317. \newcommand{\setmasterdegree}[1]{%
  318. \ifdefstring{\vutinfth@thesis@mdeg@dipl}{#1}{%
  319. \@setthesisname{\vutinfth@polylingual@DIPLOMATHESIS}%
  320. \@setgendereddegreename{%
  321. \vutinfth@polylingual@MdegDiplMale
  322. }{%
  323. \vutinfth@polylingual@MdegDiplFemale
  324. }%
  325. }{}%
  326. \ifdefstring{\vutinfth@thesis@mdeg@master}{#1}{%
  327. \@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
  328. \@setdegreename{\vutinfth@polylingual@MdegMaster}%
  329. }{}%
  330. \ifdefstring{\vutinfth@thesis@mdeg@rernat}{#1}{%
  331. \@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
  332. \@setgendereddegreename{%
  333. \vutinfth@polylingual@MdegRerNatMale
  334. }{%
  335. \vutinfth@polylingual@MdegRerNatFemale
  336. }%
  337. }{}%
  338. \ifdefstring{\vutinfth@thesis@mdeg@rersocoec}{#1}{%
  339. \@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
  340. \@setgendereddegreename{%
  341. \vutinfth@polylingual@MdegRerSocOecMale
  342. }{%
  343. \vutinfth@polylingual@MdegRerSocOecFemale
  344. }%
  345. }{}%
  346. }%
  347. \newcommand{\vutinfth@thesis@ddeg@rernat}{rer.nat.}%
  348. \newcommand{\vutinfth@thesis@ddeg@techn}{techn.}%
  349. \newcommand{\vutinfth@thesis@ddeg@rersocoec}{rer.soc.oec.}%
  350. \newcommand{\setdoctordegree}[1]{%
  351. \ifdefstring{\vutinfth@thesis@ddeg@rernat}{#1}{%
  352. \@setgendereddegreename{%
  353. \vutinfth@polylingual@DdegRerNatMale
  354. }{%
  355. \vutinfth@polylingual@DdegRerNatFemale
  356. }%
  357. }{}%
  358. \ifdefstring{\vutinfth@thesis@ddeg@techn}{#1}{%
  359. \@setgendereddegreename{%
  360. \vutinfth@polylingual@DdegTechnMale
  361. }{%
  362. \vutinfth@polylingual@DdegTechnFemale
  363. }%
  364. }{}%
  365. \ifdefstring{\vutinfth@thesis@ddeg@rersocoec}{#1}{%
  366. \@setgendereddegreename{%
  367. \vutinfth@polylingual@DdegRerSocOecMale
  368. }{%
  369. \vutinfth@polylingual@DdegRerSocOecFemale
  370. }%
  371. }{}%
  372. }%
  373. \CreateData{address}%
  374. \CreateData{regnumber}%
  375. \CreateData{firstreviewerdata}%
  376. \CreateData{secondreviewerdata}%
  377. \CreatePerson{author}%
  378. \CreatePerson{advisor}%
  379. \CreatePerson{secondadvisor}%
  380. \CreatePerson{firstassistant}%
  381. \CreatePerson{secondassistant}%
  382. \CreatePerson{thirdassistant}%
  383. \CreatePerson{firstreviewer}%
  384. \CreatePerson{secondreviewer}%
  385. \AddLanguage{english}%
  386. \AddLanguage{naustrian}%
  387. \CreatePolylingual[
  388. english=Advisor,
  389. naustrian=Betreuung]{Advisor}%
  390. \CreatePolylingual[
  391. english=Second advisor,
  392. naustrian=Zweitbetreuung]{Secondadvisor}%
  393. \CreatePolylingual[
  394. english=submitted in partial fulfillment of the requirements
  395. for the degree of,
  396. naustrian=zur Erlangung des akademischen Grades]{submission}%
  397. \CreatePolylingual[
  398. english=in,
  399. naustrian=im Rahmen des Studiums]{in}%
  400. \CreatePolylingual[
  401. english=within the]{within}%
  402. \CreatePolylingual[
  403. english=Vienna PhD School of Informatics]{School}%
  404. \CreatePolylingual[
  405. english=by,
  406. naustrian=eingereicht von]{by}%
  407. \CreatePolylingual[
  408. english=Registration Number,
  409. naustrian=Matrikelnummer]{Registrationnumber}%
  410. \CreatePolylingual[
  411. english=to the Faculty of Informatics,
  412. naustrian=an der Fakult\"at f\"ur Informatik]{faculty}%
  413. \CreatePolylingual[
  414. english=at the TU Wien,
  415. naustrian=der Technischen Universit\"at Wien]{university}%
  416. \CreatePolylingual[
  417. english=Assistance,
  418. naustrian=Mitwirkung]{Assistance}%
  419. \CreatePolylingual[
  420. english=The dissertation has been reviewed by:,
  421. naustrian=Diese Dissertation haben begutachtet:]{Reviewed}%
  422. \CreatePolylingual[
  423. english=External reviewers:]{Reviewers}%
  424. \CreatePolylingual[
  425. english=Vienna,
  426. naustrian=Wien]{Place}%
  427. \CreatePolylingual[
  428. english=Declaration of Authorship,
  429. naustrian=Erkl\"arung zur Verfassung der Arbeit]{StatementChapter}%
  430. \CreatePolylingual[
  431. english={I hereby declare that I have written this Doctoral Thesis
  432. independently, that I have completely specified the utilized
  433. sources and resources and that I have definitely marked all parts
  434. of the work - including tables, maps and figures - which belong
  435. to other works or to the internet, literally or extracted, by
  436. referencing the source as borrowed.},
  437. naustrian={Hiermit erkl\"are ich, dass ich diese Arbeit
  438. selbst\"andig verfasst habe, dass ich die verwendeten Quellen
  439. und Hilfsmittel vollst\"andig angegeben habe und dass ich die
  440. Stellen der Arbeit -- einschlie{\ss}lich Tabellen, Karten und
  441. Abbildungen --, die anderen Werken oder dem Internet im Wortlaut
  442. oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe
  443. der Quelle als Entlehnung kenntlich gemacht habe.}]{Statement}%
  444. \CreatePolylingual[
  445. english=Bachelor of Science,
  446. naustrian=Bachelor of Science]{Bdeg}%
  447. \CreatePolylingual[
  448. english=Master of Science,
  449. naustrian=Master of Science]{MdegMaster}%
  450. \CreatePolylingual[
  451. english=Diplom-Ingenieur,
  452. naustrian=Diplom-Ingenieur]{MdegDiplMale}%
  453. \CreatePolylingual[
  454. english=Diplom-Ingenieurin,
  455. naustrian=Diplom-Ingenieurin]{MdegDiplFemale}%
  456. \CreatePolylingual[
  457. english=Magister der Naturwissenschaften,
  458. naustrian=Magister der Naturwissenschaften]{MdegRerNatMale}%
  459. \CreatePolylingual[
  460. english=Magistra der Naturwissenschaften,
  461. naustrian=Magistra der Naturwissenschaften]{MdegRerNatFemale}%
  462. \CreatePolylingual[
  463. english=Magister der Sozial- und Wirtschaftswissenschaften,
  464. naustrian=Magister der Sozial- und Wirtschaftswissenschaften]{%
  465. MdegRerSocOecMale}%
  466. \CreatePolylingual[
  467. english=Magistra der Sozial- und Wirtschaftswissenschaften,
  468. naustrian=Magistra der Sozial- und Wirtschaftswissenschaften]{%
  469. MdegRerSocOecFemale}%
  470. \CreatePolylingual[
  471. english=Doktor der Naturwissenschaften,
  472. naustrian=Doktor der Naturwissenschaften]{DdegRerNatMale}%
  473. \CreatePolylingual[
  474. english=Doktorin der Naturwissenschaften,
  475. naustrian=Doktorin der Naturwissenschaften]{DdegRerNatFemale}%
  476. \CreatePolylingual[
  477. english=Doktor der Technischen Wissenschaften,
  478. naustrian=Doktor der Technischen Wissenschaften]{DdegTechnMale}%
  479. \CreatePolylingual[
  480. english=Doktorin der Technischen Wissenschaften,
  481. naustrian=Doktorin der Technischen Wissenschaften]{DdegTechnFemale}%
  482. \CreatePolylingual[
  483. english=Doktor der Sozial- und Wirtschaftswissenschaften,
  484. naustrian=Doktor der Sozial- und Wirtschaftswissenschaften]{%
  485. DdegRerSocOecMale}%
  486. \CreatePolylingual[
  487. english=Doktorin der Sozial- und Wirtschaftswissenschaften,
  488. naustrian=Doktorin der Sozial- und Wirtschaftswissenschaften]{%
  489. DdegRerSocOecFemale}%
  490. \CreatePolylingual[
  491. english=Doctor of Technical Sciences]{%
  492. Pdeg}%
  493. \CreatePolylingual[
  494. english=BACHELOR'S THESIS,
  495. naustrian=BACHELORARBEIT]{BACHELORTHESIS}%
  496. \CreatePolylingual[
  497. english=MASTER'S THESIS,
  498. naustrian=MASTERARBEIT]{MASTERTHESIS}%
  499. \CreatePolylingual[
  500. english=DIPLOMA THESIS,
  501. naustrian=DIPLOMARBEIT]{DIPLOMATHESIS}%
  502. \CreatePolylingual[
  503. english=DISSERTATION,
  504. naustrian=DISSERTATION]{DOCTORTHESIS}%
  505. \CreatePolylingual[
  506. english=PhD THESIS]{PHDTHESIS}%
  507. \newcommand{\settitle}[2]{%
  508. \CreatePolylingual[english=#1,naustrian=#2]{Title}%
  509. }%
  510. \newcommand{\setsubtitle}[2]{%
  511. \CreatePolylingual[english=#1,naustrian=#2]{Subtitle}%
  512. }%
  513. \newcommand{\setcurriculum}[2]{%
  514. \CreatePolylingual[english=#1,naustrian=#2]{Curriculum}%
  515. }%
  516. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  517. \newcommand{\newsetlength}[2]{%
  518. \newlength{#1}%
  519. \setlength{#1}{#2}%
  520. }%
  521. \newcommand{\vutinfth@squarebullet}{\rule[0.47ex]{0.4ex}{0.4ex}}%
  522. \newlength{\vutinfth@tmp@parindent}%
  523. \newlength{\vutinfth@tmp@baselineskip}%
  524. \newlength{\vutinfth@tmp@parskip}%
  525. \newcommand{\vutinfth@savelayout}{%
  526. \setlength{\vutinfth@tmp@parindent}{\parindent}%
  527. \setlength{\vutinfth@tmp@baselineskip}{\baselineskip}%
  528. \setlength{\vutinfth@tmp@parskip}{\parskip}%
  529. }%
  530. \newcommand{\vutinfth@restorelayout}{%
  531. \setlength{\parindent}{\vutinfth@tmp@parindent}%
  532. \setlength{\baselineskip}{\vutinfth@tmp@baselineskip}%
  533. \setlength{\parskip}{\vutinfth@tmp@parskip}%
  534. }%
  535. \newsetlength{\vutinfth@header@placement}{-41.49731pt}%
  536. \newsetlength{\vutinfth@bar@width}{511bp}%
  537. \newsetlength{\vutinfth@bar@height}{47bp}%
  538. \newsetlength{\vutinfth@bar@pivot@x}{330.71bp}%
  539. \newsetlength{\vutinfth@bar@pivot@y}{25.31bp}%
  540. \newsetlength{\vutinfth@logo@height}{46bp}%
  541. \newsetlength{\vutinfth@logo@pivot@x}{4.57bp}%
  542. \newsetlength{\vutinfth@logo@pivot@y}{5.37bp}%
  543. \newsetlength{\vutinfth@logo@offset@height}{\vutinfth@logo@height
  544. + \vutinfth@bar@pivot@y - \vutinfth@logo@pivot@y}%
  545. \newsetlength{\vutinfth@logo@offset@x}{-\vutinfth@bar@width
  546. + \vutinfth@bar@pivot@x - \vutinfth@logo@pivot@x}%
  547. \newsetlength{\vutinfth@logo@offset@y}{
  548. - \vutinfth@bar@pivot@y + \vutinfth@logo@pivot@y}%
  549. \newcommand{\vutinfth@header@titlepage}{%
  550. \centering
  551. \begin{minipage}[b][\vutinfth@logo@offset@height][t]{%
  552. \vutinfth@bar@width
  553. }%
  554. \includegraphics{TU_INF_header}%
  555. \hspace*{\vutinfth@logo@offset@x}%
  556. \raisebox{\vutinfth@logo@offset@y}{%
  557. \includegraphics[scale=1]{TU_INF_Logo_gray}%
  558. }%
  559. \end{minipage}%
  560. }%
  561. \newcommand{\vutinfth@footer@titlepage}{%
  562. \centering
  563. \begin{minipage}{\textwidth}%
  564. \centering\vutinfth@normalsize\sffamily
  565. Technische Universit\"{a}t Wien\\
  566. A-1040 Wien \vutinfth@squarebullet\space
  567. Karlsplatz 13 \vutinfth@squarebullet\space
  568. Tel. +43-1-58801-0 \vutinfth@squarebullet\space
  569. www.tuwien.ac.at%
  570. \end{minipage}%
  571. }%
  572. \makepagestyle{vutinfth@pagestyle@titlepage}%
  573. \makerunningwidth{vutinfth@pagestyle@titlepage}[\textwidth]{%
  574. \vutinfth@bar@width}%
  575. \makeheadposition{vutinfth@pagestyle@titlepage}{%
  576. center}{center}{center}{center}%
  577. \makeevenhead{vutinfth@pagestyle@titlepage}{}{%
  578. \vutinfth@header@titlepage}{}%
  579. \makeoddhead{vutinfth@pagestyle@titlepage}{}{%
  580. \vutinfth@header@titlepage}{}%
  581. \makefootrule{vutinfth@pagestyle@titlepage}{%
  582. \vutinfth@pagestyle@titlepagefootrunwidth}{0.5pt}{\footruleskip}%
  583. \makeevenfoot{vutinfth@pagestyle@titlepage}{}{%
  584. \vutinfth@footer@titlepage}{}%
  585. \makeoddfoot{vutinfth@pagestyle@titlepage}{}{%
  586. \vutinfth@footer@titlepage}{}%
  587. \newsetlength{\vutinfth@bigskipamount}{6mm}%
  588. \newcommand{\vutinfth@bigskip}{\vspace{\vutinfth@bigskipamount}}%
  589. \newcommand{\AdvisorBlock}{%
  590. \ifundergraduate{%
  591. \begin{minipage}[t][2.5cm][t]{\textwidth}%
  592. \vutinfth@normalsize
  593. \begin{tabular}{@{}l@{ }l}%
  594. \vutinfth@polylingual@Advisor: &
  595. \vutinfth@person@advisor@fullname\\
  596. \ifdef{\vutinfth@person@firstassistant@def}{%
  597. \vutinfth@polylingual@Assistance: &
  598. \vutinfth@person@firstassistant@fullname\\
  599. }{}%
  600. \ifdef{\vutinfth@person@secondassistant@def}{%
  601. \ifundef{\vutinfth@person@firstassistant@def}{%
  602. \vutinfth@person@firstassistant@error
  603. }{%
  604. & \vutinfth@person@secondassistant@fullname\\
  605. }%
  606. }{}%
  607. \ifdef{\vutinfth@person@thirdassistant@def}{%
  608. \ifundef{\vutinfth@person@firstassistant@def}{%
  609. \vutinfth@person@firstassistant@error
  610. }{%
  611. \ifundef{\vutinfth@person@secondassistant@def}{%
  612. \vutinfth@person@secondassistant@error
  613. }{%
  614. & \vutinfth@person@thirdassistant@fullname\\
  615. }%
  616. }%
  617. }{}%
  618. \end{tabular}%
  619. \end{minipage}%
  620. }%
  621. \ifgraduate{%
  622. \begin{minipage}[t][1.6cm][t]{\textwidth}%
  623. \vutinfth@normalsize
  624. \vutinfth@polylingual@Advisor:
  625. \vutinfth@person@advisor@fullname
  626. \ifdef{\vutinfth@person@secondadvisor@def}{%
  627. \\
  628. \vutinfth@polylingual@Secondadvisor:
  629. \vutinfth@person@secondadvisor@fullname
  630. }{}%
  631. \end{minipage}\par%
  632. }%
  633. }%
  634. \newsetlength{\vutinfth@signature@height}{25mm}%
  635. \newsetlength{\vutinfth@signature@width}{51mm}%
  636. \newsetlength{\vutinfth@placedate@width}{50mm}%
  637. \newcommand{\SignatureFields}[3][n]{%
  638. {\vutinfth@normalsize
  639. \ifstrequal{#1}{y}{%
  640. \begin{minipage}[b][\vutinfth@signature@height]{%
  641. \vutinfth@placedate@width
  642. }%
  643. \vutinfth@polylingual@Place,
  644. \displaydate{vutinfth@date@signing}\vspace*{\baselineskip}%
  645. \end{minipage}%
  646. \hfill
  647. }{}%
  648. \ifstrequal{#1}{n}{}{}%
  649. \ifstrequal{#1}{h}{%
  650. \hspace*{\vutinfth@placedate@width}%
  651. \hfill
  652. }{}%
  653. \ifstrempty{#2}{%
  654. \hspace*{\vutinfth@signature@width}%
  655. \hfill
  656. }{%
  657. \begin{minipage}[b][\vutinfth@signature@height]{%
  658. \vutinfth@signature@width
  659. }%
  660. \centering
  661. \rule{\vutinfth@signature@width}{0.5pt}\\
  662. #2%
  663. \end{minipage}%
  664. \hfill
  665. }%
  666. \ifstrempty{#3}{}{%
  667. \begin{minipage}[b][\vutinfth@signature@height]{%
  668. \vutinfth@signature@width
  669. }%
  670. \centering
  671. \rule{\vutinfth@signature@width}{0.5pt}\\
  672. #3%
  673. \end{minipage}%
  674. }%
  675. }%
  676. }%
  677. \newcommand{\ReviewerBlock}{%
  678. \ifgraduate{%
  679. \ifdoctor{%
  680. {\vutinfth@normalsize
  681. \vutinfth@polylingual@Reviewed\\
  682. \SignatureFields[h]{%
  683. \vutinfth@person@firstreviewer@name
  684. }{%
  685. \vutinfth@person@secondreviewer@name
  686. }%
  687. }%
  688. }%
  689. \ifphd{%
  690. {\vutinfth@normalsize
  691. \vutinfth@polylingual@Reviewers\\
  692. \vutinfth@person@firstreviewer@name.
  693. \vutinfth@data@firstreviewerdata.\\
  694. \vutinfth@person@secondreviewer@name.
  695. \vutinfth@data@secondreviewerdata.\\
  696. }%
  697. }%
  698. }%
  699. }%
  700. \newcommand{\SignatureBlock}{%
  701. \ifundergraduate{%
  702. {\vutinfth@normalsize
  703. \SignatureFields[y]{%
  704. \vutinfth@person@author@name
  705. }{%
  706. \vutinfth@person@advisor@name
  707. }%
  708. }%
  709. }%
  710. \ifgraduate{%
  711. {\vutinfth@normalsize
  712. \ifdoctor{%
  713. \SignatureFields[y]{}{%
  714. \vutinfth@person@author@name
  715. }%
  716. }%
  717. \ifphd{%
  718. \SignatureFields[y]{%
  719. \vutinfth@person@author@name
  720. }{%
  721. \vutinfth@person@advisor@name
  722. }%
  723. }%
  724. }%
  725. }%
  726. }%
  727. \newcommand{\AddTitlePage}{
  728. \thispagestyle{vutinfth@pagestyle@titlepage}%
  729. \newgeometry{%
  730. left=2.4cm,right=2.4cm,bottom=2.5cm,top=2cm,
  731. headsep=\vutinfth@header@placement,
  732. head=2\vutinfth@logo@offset@height
  733. }%
  734. \vutinfth@savelayout
  735. \setlength{\parindent}{0pt}%
  736. \setlength{\baselineskip}{13.6pt}%
  737. \setlength{\parskip}{0pt plus 1pt}%
  738. \begin{SFFont}{phv}%
  739. \sffamily
  740. {\centering
  741. \vspace*{1.2cm}\par
  742. \begin{minipage}[t][5cm][b]{\textwidth}%
  743. \centering
  744. \vutinfth@HUGE{\bfseries\vutinfth@polylingual@Title}\\
  745. \bigskip
  746. \vutinfth@huge{\bfseries
  747. \ifdef{\vutinfth@polylingual@Subtitle}{%
  748. \vutinfth@polylingual@Subtitle}{%
  749. }%
  750. }%
  751. \end{minipage}\par
  752. \vutinfth@bigskip\vutinfth@bigskip
  753. {\vutinfth@LARGE\vutinfth@polylingual@thesisname}\par
  754. \vutinfth@bigskip
  755. {\vutinfth@large\vutinfth@polylingual@submission}\par
  756. \vutinfth@bigskip
  757. \ifundergraduate{%
  758. {\vutinfth@LARGE{\bfseries\vutinfth@polylingual@degreename}}\par
  759. \vutinfth@bigskip
  760. {\vutinfth@large\vutinfth@polylingual@in}\par
  761. \vutinfth@bigskip
  762. {\vutinfth@Large{\bfseries\vutinfth@polylingual@Curriculum}}\par
  763. }%
  764. \ifgraduate{%
  765. {\vutinfth@LARGE{\bfseries\vutinfth@polylingual@degreename}}\par
  766. \ifphd{%
  767. \vutinfth@bigskip
  768. {\vutinfth@large\vutinfth@polylingual@within}\par
  769. \vutinfth@bigskip
  770. {\vutinfth@LARGE{\bfseries\vutinfth@polylingual@School}}\par
  771. }%
  772. }%
  773. \vutinfth@bigskip
  774. {\vutinfth@large\vutinfth@polylingual@by}\par
  775. \vutinfth@bigskip
  776. {\vutinfth@Large{\bfseries\vutinfth@person@author@fullname}}\par
  777. \smallskip
  778. {\vutinfth@large\vutinfth@polylingual@Registrationnumber\
  779. \vutinfth@data@regnumber}\par
  780. }%
  781. \vutinfth@bigskip\vutinfth@bigskip
  782. \ifgraduate{\ifphd{\vspace*{-8mm}}}%
  783. \begin{minipage}[b][1.6cm][c]{\textwidth}%
  784. \vutinfth@normalsize%
  785. \vutinfth@polylingual@faculty\par
  786. \vutinfth@polylingual@university
  787. \end{minipage}\par
  788. \AdvisorBlock\par
  789. \vfill
  790. \ReviewerBlock\par
  791. \SignatureBlock\par
  792. \vspace*{1cm}%
  793. \end{SFFont}%
  794. \pagestyle{empty}%
  795. \cleardoublepage
  796. \vutinfth@restorelayout
  797. \restoregeometry
  798. }%
  799. \newcommand{\AddStatementPage}{
  800. \vutinfth@savelayout
  801. \setlength{\parindent}{0pt}%
  802. \setlength{\baselineskip}{13.6pt}%
  803. \setlength{\parskip}{0pt plus 1pt}%
  804. \begin{SFFont}{phv}%
  805. \sffamily
  806. \chapter*{\vutinfth@polylingual@StatementChapter}%
  807. \vutinfth@person@author@fullname\\
  808. \vutinfth@data@address\par
  809. \vspace{1.2cm}%
  810. {\normalfont\vutinfth@polylingual@Statement}\par
  811. \vspace{1.2cm}%
  812. \SignatureFields[y]{\vutinfth@person@author@name}{}%
  813. \end{SFFont}%
  814. \cleardoublepage
  815. \vutinfth@restorelayout
  816. }%
  817. \newcommand{\addtitlepage}[1]{%
  818. \selectlanguage{#1}%
  819. \AddTitlePage
  820. }%
  821. \newcommand{\addstatementpage}{%
  822. \selectlanguage{naustrian}%
  823. \ifundergraduate{\AddStatementPage}%
  824. \ifgraduate{%
  825. \ifdoctor{\AddStatementPage}%
  826. \ifphd{%
  827. \selectlanguage{english}%
  828. \AddStatementPage
  829. }%
  830. }%
  831. }%
  832. \newenvironment{acknowledgements}{%
  833. \selectlanguage{english}%
  834. \chapter{Acknowledgements}%
  835. }{%
  836. \cleardoublepage
  837. }%
  838. \newenvironment{acknowledgements*}{%
  839. \selectlanguage{english}%
  840. \chapter*{Acknowledgements}%
  841. }{%
  842. \cleardoublepage
  843. }%
  844. \newenvironment{danksagung}{%
  845. \selectlanguage{naustrian}%
  846. \chapter{Danksagung}%
  847. }{%
  848. \cleardoublepage
  849. }%
  850. \newenvironment{danksagung*}{%
  851. \selectlanguage{naustrian}%
  852. \chapter*{Danksagung}%
  853. }{%
  854. \cleardoublepage
  855. }%
  856. \renewenvironment{abstract}{%
  857. \selectlanguage{english}%
  858. \chapter{Abstract}%
  859. }{%
  860. \cleardoublepage
  861. }%
  862. \newenvironment{abstract*}{%
  863. \selectlanguage{english}%
  864. \chapter*{Abstract}%
  865. }{%
  866. \cleardoublepage
  867. }%
  868. \newenvironment{kurzfassung}{%
  869. \selectlanguage{naustrian}%
  870. \chapter{Kurzfassung}%
  871. }{%
  872. \cleardoublepage
  873. }%
  874. \newenvironment{kurzfassung*}{%
  875. \selectlanguage{naustrian}%
  876. \chapter*{Kurzfassung}%
  877. }{%
  878. \cleardoublepage
  879. }%
  880. \makepagestyle{vutinfth@pagestyle@default}%
  881. \makeevenfoot{vutinfth@pagestyle@default}{\thepage}{}{}%
  882. \makeoddfoot{vutinfth@pagestyle@default}{}{}{\thepage}%
  883. \aliaspagestyle{chapter}{vutinfth@pagestyle@default}%
  884. \aliaspagestyle{part}{vutinfth@pagestyle@default}%
  885. \addto\frontmatter{\pagestyle{vutinfth@pagestyle@default}}%
  886. \addto\mainmatter{\pagestyle{Ruled}}%
  887. \addto\backmatter{\pagestyle{vutinfth@pagestyle@default}}%
  888. \endinput
  889. %%
  890. %% End of file `vutinfth.cls'.