BSc and MSc tex templates
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

tmtkthesis.cls 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. \NeedsTeXFormat{LaTeX2e}
  2. \ProvidesClass{tmtk}[2020/06/06 MSc BSc template class for GRF uni]
  3. \newif\if@msc
  4. \newif\if@bsc
  5. \newif\if@tocitem
  6. \@tocitemfalse
  7. \@mscfalse
  8. \@bscfalse
  9. \DeclareOption{msc}{\@msctrue}
  10. \DeclareOption{bsc}{\@bsctrue}
  11. \DeclareOption{tocitem}{\@tocitemtrue}
  12. \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
  13. \ProcessOptions
  14. % \relax
  15. \LoadClass[a4paper, 12pt, oneside]{book}
  16. % PAGE
  17. \RequirePackage[margin=2cm]{geometry} % Margins
  18. % FONT
  19. \RequirePackage[T1, T2A]{fontenc} % Font rendering
  20. \RequirePackage[utf8]{inputenc} % Input encoding
  21. \RequirePackage[english, serbianc]{babel}
  22. \RequirePackage{microtype}
  23. % PARAGRAPH
  24. \widowpenalty10000 % Prevent widows
  25. \clubpenalty10000 % Prevent orphans
  26. \setlength{\parindent}{0pt} % Paragraph indentation
  27. \setlength{\parskip}{12pt} % Space between paragraphs
  28. % CHAPTER
  29. \RequirePackage{titlesec} % Modify titles style
  30. \titleformat{\chapter}[hang]{\Huge\bfseries}{\thechapter%
  31. \hspace{20pt}}{0pt}{} % Modify chapter style
  32. % NUMBERING
  33. \setcounter{secnumdepth}{5} % Depth of section numbering
  34. \RequirePackage{chngcntr}
  35. \counterwithout{figure}{chapter}
  36. \counterwithout{table}{chapter}
  37. \counterwithout{equation}{chapter}
  38. % HEADER AND FOOTER
  39. \RequirePackage{fancyhdr}
  40. \pagestyle{fancy}
  41. \makeatletter
  42. \renewcommand{\footrulewidth}{0.4pt}
  43. \renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
  44. \fancypagestyle{mainmatter}{
  45. \fancyhf{}
  46. \lhead{\nouppercase{\removelinebreaks\@naslov}}
  47. \rhead{}
  48. \if@bsc \lfoot{\nouppercase{\removelinebreaks\@student} - Дипломски рад} \fi
  49. \if@msc \lfoot{\nouppercase{\removelinebreaks\@student} - Мастер рад} \fi
  50. \cfoot{}
  51. \rfoot{\thepage}
  52. }
  53. \fancypagestyle{frontmatter}{
  54. \fancyhf{}
  55. \lhead{}
  56. \rhead{}
  57. \cfoot{}
  58. \rfoot{}
  59. }
  60. \fancypagestyle{plain}{
  61. \lhead{\nouppercase{\removelinebreaks\@naslov}}
  62. \rhead{}
  63. \if@bsc \lfoot{\nouppercase{\removelinebreaks\@student} - Дипломски рад} \fi
  64. \if@msc \lfoot{\nouppercase{\removelinebreaks\@student} - Мастер рад} \fi
  65. \cfoot{}
  66. \rfoot{\thepage}
  67. }
  68. \addtocontents{toc}{\protect\thispagestyle{frontmatter}}
  69. \makeatother
  70. % BIBLIOGRAPHY
  71. \addto{\captionsserbianc}{\renewcommand{\bibname}{Литература}}
  72. \RequirePackage{cite}
  73. % QUOTES
  74. \RequirePackage[style=german]{csquotes}
  75. % MATH
  76. \RequirePackage{amsmath}
  77. \RequirePackage{mathtools}
  78. \RequirePackage{siunitx}
  79. % REFERENCES & CAPTIONS
  80. \RequirePackage{hyperref} % use [hidelinks] to hide links
  81. \RequirePackage{subcaption}
  82. \captionsetup{justification=centering}
  83. % ITEMIZE
  84. \RequirePackage{enumitem}
  85. \setlist[itemize]{noitemsep, topsep=0pt}
  86. % TABLES
  87. \RequirePackage{booktabs}
  88. % TITLE PAGE
  89. \makeatletter
  90. \newcommand{\naslov}[1]{\gdef\@naslov{#1}}
  91. \newcommand{\naslove}[1]{\gdef\@naslove{#1}}
  92. \newcommand{\rezime}[1]{\gdef\@rezime{#1}}
  93. \newcommand{\abstract}[1]{\gdef\@abstract{#1}}
  94. \newcommand{\kljucnereci}[1]{\gdef\@kljucnereci{#1}}
  95. \newcommand{\keywords}[1]{\gdef\@keywords{#1}}
  96. \newcommand{\krataksadrzaj}[1]{\gdef\@krataksadrzaj{#1}}
  97. \newcommand{\predlogpoglavlja}[1]{\gdef\@predlogpoglavlja{#1}}
  98. \newcommand{\teza}[1]{\gdef\@teza{#1}}
  99. \newcommand{\mentor}[1]{\gdef\@mentor{#1}}
  100. \newcommand{\student}[1]{\gdef\@student{#1}}
  101. \newcommand{\odobreno}[1]{\gdef\@odobreno{#1}}
  102. \newcommand{\godina}[1]{\gdef\@godina{#1}}
  103. \newcommand{\removelinebreaks}[1]{%
  104. \begingroup\def\n{ }#1\endgroup}
  105. \newcommand{\n}{\vadjust{\vspace{12pt}}\nolinebreak\hspace{\fill}\linebreak}
  106. \renewcommand{\maketitle}{
  107. \frontmatter
  108. \pagestyle{frontmatter}
  109. \begin{titlepage}
  110. \begin{center}
  111. {\fontsize{16}{\baselineskip}\selectfont УНИВЕРЗИТЕТ У БЕОГРАДУ\\[6pt] ГРАЂЕВИНСКИ ФАКУЛТЕТ}
  112. \includegraphics[width=46mm]{img/grf.png}
  113. \vspace{2cm}
  114. {\fontsize{20}{\baselineskip}\selectfont\bfseries\MakeUppercase{\@naslov}}
  115. \vspace{1cm}
  116. { \fontsize{16}{\baselineskip}\selectfont
  117. \if@bsc - ДИПЛОМСКИ РАД - \fi
  118. \if@msc - МАСТЕР РАД - \fi
  119. }
  120. \vfill
  121. { \fontsize{16}{\baselineskip}\selectfont
  122. \begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} l}
  123. \textbf{Ментор:} & \textbf{Кандидат:} \\[12pt]
  124. \@mentor & \@student \\
  125. \end{tabular*}
  126. }
  127. \vspace{1cm}
  128. { \fontsize{16}{\baselineskip}\selectfont Београд, \@godina }
  129. \end{center}
  130. \end{titlepage}
  131. }
  132. \newcommand{\prvestrane}{
  133. \textbf{%
  134. \if@bsc ДИПЛОМСКИ РАД \fi
  135. \if@msc МАСТЕР РАД \fi
  136. ИЗ УЖЕ НАУЧНЕ ОБЛАСТИ:}\\
  137. ТЕХНИЧКА МЕХАНИКА И ТЕОРИЈА КОНСТРУКЦИЈА
  138. \textbf{Кандидат:} \@student
  139. \textbf{Тема:} \removelinebreaks{\@naslov}
  140. \textbf{Кратак садржај рада (попуњава ментор):}
  141. \if@tocitem
  142. \begin{enumerate}[itemsep=0mm, topsep=0mm]
  143. \@krataksadrzaj
  144. \end{enumerate}
  145. \else
  146. \@krataksadrzaj
  147. \fi
  148. \textbf{Предлог поглавља (попуњава ментор):}
  149. \begin{enumerate}[itemsep=0mm, topsep=0mm]
  150. \@predlogpoglavlja
  151. \end{enumerate}
  152. Тема
  153. \if@bsc дипломског рада \fi
  154. \if@msc мастер рада \fi
  155. рада одобрена је на седници
  156. Катедре за техничку механику и теорију конструкција
  157. одржаној \@odobreno{} године.
  158. \hfill
  159. \begin{tabular}{@{}l@{}}
  160. Ментор,\\
  161. \@mentor
  162. \end{tabular}
  163. \newpage
  164. {\bfseries\removelinebreaks{\MakeUppercase{\@naslov}}}
  165. \textbf{Резиме:}
  166. {\@rezime}
  167. \textbf{Kljuчне речи:}
  168. {\@kljucnereci}
  169. \vspace{1cm}
  170. {\bfseries\MakeUppercase{\@naslove}}
  171. \textbf{Abstract:}
  172. {\@abstract}
  173. \textbf{Keywords:}
  174. {\@keywords}
  175. }
  176. \newcommand{\sadrzaj}{
  177. \tableofcontents
  178. \mainmatter
  179. \pagestyle{mainmatter}
  180. }
  181. \makeatother