LaTeX class za diplomske i master teze na Katedri za tehničku mehaniku i teoriju konstrukcija Građevinskog fakulteta Univerziteta u Beogradu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

tmtkthesis.cls 5.7KB

3 vuotta sitten
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