浏览代码

First Commit

xnecas 1 月之前
当前提交
acf6333b48

+ 446 - 0
main.tex

@@ -0,0 +1,446 @@
+% ==========================================
+% IMPORT ŠABLÓNY
+% ==========================================
+
+\documentclass{beamer}
+\usepackage{uni}
+
+
+% ==========================================
+% IMPORT BALÍČKOV
+% ==========================================
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[slovak]{babel}
+
+
+% ==========================================
+% METADÁTA PREZENTÁCIE
+% ==========================================
+\author{Ing. John Doe, PhD.}
+\title{Demo prezentačnej šablóny uni.sty}
+\subtitle{Prehľad rozložení a dostupných prvkov}
+
+\begin{document}
+
+
+% ==================================================
+% TITULNÁ STRANA A OBSAH
+% ==================================================
+
+\slideTitle
+\slideTableOfContents[2]
+
+
+% ==================================================
+% PREHĽAD PRÍKAZOV PRE VYTVÁRANIE SLAJDOV
+% ==================================================
+
+\slideSectionSubtitle{Prehľad príkazov pre vytváranie slajdov}{Časť I.}
+
+\slideOneColumn*{Prehľad príkazov pre slajdy (1/4)}
+{
+    \begin{itemize}
+        \item \textbf{Titulný slajd:} \texttt{\textbackslash slideTitle} \\
+        Pozn.: Obsah sa nastaví z globálnych premenných (\texttt{\textbackslash inserttitle}, \texttt{\textbackslash insertsubtitle}, \texttt{\textbackslash insertauthor}).
+        \newline
+
+        \item \textbf{Farebný titulný slajd:} \texttt{\textbackslash slideTitleColor} \\
+        Pozn.: Titulný slajd s rovnakým pozadím ako päta.
+        \newline
+
+        \item \textbf{Obsah prezentácie:} \texttt{\textbackslash slideTableOfContents[cols]} \\
+        -- \texttt{[cols]}: Voliteľný počet stĺpcov obsahu (predvolené: 1).
+    \end{itemize}
+}
+
+\slideOneColumn*{Prehľad príkazov pre slajdy (2/4)}
+{
+    \begin{itemize}
+        \item \textbf{Sekčný slajd:} \texttt{\textbackslash slideSection[*]\{title\}} \\
+        -- \texttt{[*]}: Voliteľná hviezdička (potlačí registráciu sekcie). \\
+        -- \texttt{\{title\}}: Názov sekcie.
+        \newline
+
+        \item \textbf{Sekčný slajd s podnadpisom:} \texttt{\textbackslash slideSectionSubtitle[*]\{title\}\{subtitle\}} \\
+        -- \texttt{[*]}: Voliteľná hviezdička. \\
+        -- \texttt{\{title\}}: Hlavný názov sekcie. \\
+        -- \texttt{\{subtitle\}}: Doplňujúci podnadpis.
+    \end{itemize}
+}
+
+\slideOneColumn*{Prehľad príkazov pre slajdy (3/4)}
+{
+    \begin{itemize}
+        \item \textbf{Čistý jednostĺpcový slajd:} \texttt{\textbackslash slideOneColumnPlain\{content\}} \\
+        -- \texttt{\{content\}}: Obsah slajdu bez nadpisu.
+        \newline
+
+        \item \textbf{Štandardný jednostĺpcový slajd:} \texttt{\textbackslash slideOneColumn[*]\{title\}\{content\}} \\
+        -- \texttt{[*]}: Voliteľná hviezdička. \\
+        -- \texttt{\{title\}}: Nadpis slajdu. \\
+        -- \texttt{\{content\}}: Obsah slajdu.
+    \end{itemize}
+}
+
+\slideOneColumn*{Prehľad príkazov pre slajdy (4/4)}
+{
+    \begin{itemize}
+        \item \textbf{Čistý dvojstĺpcový slajd:} \texttt{\textbackslash slideTwoColumnsPlain\{ratio\}\{left\}\{right\}} \\
+        -- \texttt{\{ratio\}}: Šírka ľavého stĺpca (napr. \texttt{0.5}). \\
+        -- \texttt{\{left\}} / \texttt{\{right\}}: Obsah jednotlivých stĺpcov.
+        \newline
+
+        \item \textbf{Štandardný dvojstĺpcový slajd:} \texttt{\textbackslash slideTwoColumns[*]{title}\{ratio\}\{left\}\{right\}} \\
+        -- \texttt{[*]}: Voliteľná hviezdička. \\
+        -- \texttt{\{title\}}: Nadpis slajdu. \\
+        -- \texttt{\{ratio\}}: Šírka ľavého stĺpca (napr. \texttt{0.4}). \\
+        -- \texttt{\{left\}} / \texttt{\{right\}}: Obsah stĺpcov.
+    \end{itemize}
+}
+
+% ==================================================
+% PREHĽAD PRVKOV PREZENTÁCIE
+% ==================================================
+
+\slideSectionSubtitle{Prehľad prvkov šablóny}{Časť II.}
+
+\slideOneColumn*{Prehľad prvkov šablóny (1/2)}
+{
+    \begin{itemize}
+        \item \textbf{Vloženie tabuľky:} \texttt{\textbackslash tab\{cols\}\{label\}\{caption\}\{content\}} \\
+        -- \texttt{\{cols\}}: Špecifikácia stĺpcov (napr. \texttt{c c c}). \\
+        -- \texttt{\{label\}}: Označenie pre odkazovanie. \\
+        -- \texttt{\{caption\}}: Popis tabuľky. \\
+        -- \texttt{\{content\}}: Riadky a stĺpce tabuľky.
+
+        \item \textbf{Vloženie obrázka:} \texttt{\textbackslash fig\{width\}\{label\}\{caption\}\{path\}} \\
+        -- \texttt{\{width\}}: Šírka vzhľadom na riadok (napr. \texttt{0.95}). \\
+        -- \texttt{\{label\}}: Označenie pre odkazovanie. \\
+        -- \texttt{\{caption\}}: Popisok obrázka. \\
+        -- \texttt{\{path\}}: Cesta k súboru.
+    \end{itemize}
+}
+
+\slideOneColumn*{Prehľad prvkov šablóny (2/2)}
+{
+    \begin{itemize}
+        \item \textbf{Kódový fragment bez číslovania:} \texttt{\textbackslash code[*]\{lang\}\{label\}\{path\}} \\
+        -- \texttt{[*]}: Potlačí zobrazenie a inkrementáciu počítadla. \\
+        -- \texttt{\{lang\}}: Programovací jazyk. \\
+        -- \texttt{\{label\}}: Označenie pre odkazovanie. \\
+        -- \texttt{\{path\}}: Cesta k zdrojovému súboru kódu.
+    \end{itemize}
+}
+
+
+% ==================================================
+% TEXT A ZOZNAMY
+% ==================================================
+\slideSectionSubtitle{Vytváranie textu a zoznamov}{Časť III.}
+
+\slideOneColumn{Jednostĺpcový slajd}
+{
+    Jednostĺpcové rozloženie umožňuje kombinovať
+    súvislý text, zvýraznené informácie a zoznamy.
+
+    \vspace{0.5em}
+
+    \begin{itemize}
+        \item Prvá hlavná položka.
+        \item Druhá hlavná položka.
+        \begin{itemize}
+            \item Vnorená položka.
+            \item Ďalšia vnorená položka.
+        \end{itemize}
+        \item Tretia hlavná položka.
+    \end{itemize}
+}
+
+
+\slideOneColumn{Číslovaný zoznam}
+{
+    \begin{enumerate}
+        \item Príprava vstupných údajov.
+        \item Spracovanie údajov.
+        \item Vyhodnotenie výsledkov.
+        \item Interpretácia výstupov.
+    \end{enumerate}
+
+    \vspace{0.5em}
+
+    \textbf{Vnorené číslovanie}
+
+    \begin{enumerate}
+        \item Príprava.
+        \begin{enumerate}
+            \item Definovanie vstupov.
+            \item Nastavenie parametrov.
+        \end{enumerate}
+        \item Vyhodnotenie.
+    \end{enumerate}
+}
+
+
+\slideOneColumnPlain
+{
+    \centering
+    \vspace{1.5cm}
+
+    {\LARGE\bfseries Samostatný obsah}
+
+    \vspace{0.8em}
+
+    {\large
+    Citát, zvýraznená myšlienka alebo vizuálny prvok
+    }
+}
+
+
+% ==================================================
+% TABUĽKY A OBRÁZKY
+% ==================================================
+
+\slideSectionSubtitle{Vytváranie tabuliek a obrázkov}{Časť IV.}
+
+
+\slideOneColumn{Tabuľka s číselnými údajmi}
+{
+    \small
+    \tab{lrr}{tab:comparison}{Porovnanie nameraných hodnôt}
+    {
+        \toprule
+        \textbf{Parameter} &
+        \textbf{Hodnota A} &
+        \textbf{Hodnota B} \\
+        \midrule
+        Parameter 1 & 12.4 & 14.8 \\
+        Parameter 2 & 18.2 & 17.5 \\
+        Parameter 3 & 21.6 & 23.1 \\
+        \midrule
+        \textbf{Priemer} & \textbf{17.4} & \textbf{18.5} \\
+        \bottomrule
+    }
+    
+    \footnotesize
+    Ilustračné údaje slúžia na ukážku formátovania tabuľky.
+}
+
+
+\slideTwoColumns{Tabuľka a výsledok}{0.5}
+{
+    \textbf{Výpočet priemeru}
+
+    \[
+        \bar{x}=\frac{2+4+6+8}{4}=5
+    \]
+
+    \begin{itemize}
+        \item Počet hodnôt: $n=4$.
+        \item Výsledný priemer: $\bar{x}=5$.
+    \end{itemize}
+}
+{   
+    \tab{cc}{tab:input}{Vstupné hodnoty}
+    {
+            \toprule
+            $i$ & $x_i$ \\
+            \midrule
+            1 & 2 \\
+            2 & 4 \\
+            3 & 6 \\
+            4 & 8 \\
+            \bottomrule
+    }
+}
+
+
+\slideOneColumn{Obrázok s popisom}
+{
+    \fig{0.75}{fig:fig8}{Ukážka vloženého obrázka}{demo-image.png}
+}
+
+
+\slideTwoColumns{Obrázok a sprievodný text}{0.45}
+{
+    \fig{0.8}{fig:columns}{Vizuálna ukážka}{demo-image.png}
+}
+{
+    \textbf{Sprievodný text}
+    
+    \begin{itemize}
+        \item Vizuálna prezentácia údajov.
+        \item Popis obrázka.
+        \item Doplňujúce informácie.
+    \end{itemize}
+}
+
+
+\slideTwoColumnsPlain{0.45}
+{
+    \textbf{Užší stĺpec}
+
+    \begin{itemize}
+        \item Vysvetlenie vzorca.
+        \item Interpretácia výsledku.
+        \item Súvisiace informácie.
+    \end{itemize}
+}
+{
+    \textbf{Širší stĺpec}
+
+    \begin{equation*}
+        \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i
+    \end{equation*}
+
+    \small
+    Matematický zápis alebo stručná poznámka.
+}
+
+
+\slideTwoColumns{Porovnanie dvoch možností}{0.45}
+{
+    \textbf{Možnosť A}
+
+    \begin{itemize}
+        \item Jednoduchá implementácia.
+        \item Nízka výpočtová náročnosť.
+        \item Rýchle spracovanie.
+    \end{itemize}
+}
+{
+    \textbf{Možnosť B}
+
+    \begin{itemize}
+        \item Viac možností nastavenia.
+        \item Rozšíriteľná implementácia.
+        \item Vhodná pre zložitejšie úlohy.
+    \end{itemize}
+}
+
+
+% ==================================================
+% MATEMATICKÉ VZORCE
+% ==================================================
+
+\slideSectionSubtitle{Vytváranie matematických vzorcov}{Časť V.}
+
+\slideOneColumn{Vzorce v kombinácii s textom}
+{
+    \textbf{Aritmetický priemer}
+
+    \begin{equation*}
+        \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i
+    \end{equation*}
+
+    \textbf{Výberový rozptyl}
+
+    \begin{equation*}
+        s^2=\frac{1}{n-1}
+        \sum_{i=1}^{n}(x_i-\bar{x})^2
+    \end{equation*}
+
+    \begin{itemize}
+        \item Priemer opisuje centrálnu hodnotu.
+        \item Rozptyl vyjadruje variabilitu údajov.
+    \end{itemize}
+}
+
+
+\slideOneColumn{Zarovnané rovnice}
+{
+    \begin{align}
+        (a+b)^2 &= a^2+2ab+b^2 \\
+        (a-b)^2 &= a^2-2ab+b^2 \\
+        (a+b)(a-b) &= a^2-b^2
+    \end{align}
+
+    \vspace{0.5em}
+
+    \begin{itemize}
+        \item Viacriadkový matematický zápis.
+        \item Zarovnanie podľa znamienka rovnosti.
+        \item Automatické číslovanie rovníc.
+    \end{itemize}
+}
+
+
+\slideTwoColumns{Matematický zápis a vysvetlenie}{0.45}
+{
+    \textbf{Vzorec}
+
+    \[
+        s^2=\frac{1}{n-1}
+        \sum_{i=1}^{n}(x_i-\bar{x})^2
+    \]
+}
+{
+    \textbf{Vysvetlenie}
+
+    \begin{itemize}
+        \item $n$ označuje počet hodnôt.
+        \item $x_i$ je jednotlivá hodnota.
+        \item $\bar{x}$ je aritmetický priemer.
+    \end{itemize}
+}
+
+
+% ==================================================
+% ZDROJOVÉ KÓDY
+% ==================================================
+
+\slideSectionSubtitle{Vytváranie zdrojových kódov}{Časť VI.}
+
+\slideOneColumn{Zdrojový kód v Pythone}
+{
+    \textbf{Výpočet aritmetického priemeru}
+
+    \vspace{0.6em}
+    \code{python}{code:mean-func}{snippets/mean-func.py}
+}
+
+
+\slideOneColumn*{Ukážka algoritmu}
+{
+    \vspace{0.6em}
+
+    \begin{itemize}
+        \small
+        \item \textbf{Popis:} Nájdenie maximálneho prvku v zozname.
+        \item \textbf{Časová zložitosť:} $\mathcal{O}(n)$.
+        \item \textbf{Pamäťová náročnosť:} $\mathcal{O}(1)$.
+    \end{itemize}
+    
+    \vspace{0.6em}
+    
+    \code*{python}{lst:mojlabel}{snippets/maximum.py}
+}
+
+
+\slideOneColumn*{Zdrojový kód a matematický zápis}
+{
+    \textbf{Použitý vzorec}
+
+    \begin{equation}
+        \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i
+    \end{equation}
+
+    \textbf{Implementácia}
+
+    \code{python}{listing:mean}{snippets/mean.py}
+    
+    \vspace{0.5em}
+
+    \textbf{Výsledok:} $\bar{x}=5$
+}
+
+
+% ==================================================
+% FAREBNÁ ZÁVEREČNÁ STRANA
+% ==================================================
+
+\slideTitleColor
+
+
+\end{document}

+ 32 - 0
organisation/feit-uniza/feit-uniza.sty

@@ -0,0 +1,32 @@
+% author Matus Necas, October 2026
+%
+% Description: Color palette and branding configuration for FEIT UNIZA 
+%              (Faculty of Electrical Engineering and Information Technology, University of Žilina).
+%              Defines corporate RGB primary/secondary colors, maps them to semantic theme 
+%              components (text, highlights, footers), and configures university logos.
+
+% ==============================================================================
+% 1. COLOR PALETTE DEFINITION (FEIT UNIZA BRANDING)
+% ==============================================================================
+% Primary corporate orange for FEIT UNIZA branding (used in footer background)
+\providecolor{feitOrange}{RGB}{244, 119, 35}
+
+% Darker orange variant for contrast and active text elements
+\providecolor{darkOrange}{RGB}{228, 92, 18}
+
+
+% ==============================================================================
+% 2. SEMANTIC COLOR ASSIGNMENT
+% ==============================================================================
+\colorlet{colorBg}{white}                   % Default slide background color
+\colorlet{colorText}{black}                 % Main body text color
+\colorlet{colorTextHighlight}{darkOrange}   % Color for titles, highlights, and active elements
+\colorlet{colorFooterFg}{white}             % Text and icon color in the footline
+\colorlet{colorFooterBg}{feitOrange}        % Background color for the footline bar
+
+
+% ==============================================================================
+% 3. ORGANISATION LOGO CONFIGURATION
+% ==============================================================================
+% Path to the official FEIT UNIZA logo used in the presentation footline
+\providecommand{\orgLogoFooter}{organisation/feit-uniza/logo-footer.png}

二进制
organisation/feit-uniza/logo-footer.png


+ 1 - 0
organisation/info.sty

@@ -0,0 +1 @@
+\input{organisation/uniza/uniza.sty}

二进制
organisation/uniza/logo-footer.pdf


+ 32 - 0
organisation/uniza/uniza.sty

@@ -0,0 +1,32 @@
+% author Matus Necas, October 2026
+%
+% Description: Color palette and branding configuration for general UNIZA 
+%              (University of Žilina).
+%              Defines corporate blue RGB shades, maps them to semantic theme 
+%              components (text, highlights, footers), and configures university logos.
+
+% ==============================================================================
+% 1. COLOR PALETTE DEFINITION (UNIZA BRANDING)
+% ==============================================================================
+% Primary corporate blue for University of Žilina branding (used in footline)
+\providecolor{unizaBlue}{RGB}{0, 45, 113}
+
+% Darker blue shade for emphasis and active/highlighted text elements
+\providecolor{darkbBlue}{RGB}{24, 47, 105}
+
+
+% ==============================================================================
+% 2. SEMANTIC COLOR ASSIGNMENT
+% ==============================================================================
+\colorlet{colorBg}{white}                   % Default slide background color
+\colorlet{colorText}{black}                 % Main body text color
+\colorlet{colorTextHighlight}{darkbBlue}    % Color for titles, highlights, and active elements
+\colorlet{colorFooterFg}{white}             % Text and icon color in the footline
+\colorlet{colorFooterBg}{unizaBlue}         % Background color for the footline bar
+
+
+% ==============================================================================
+% 3. ORGANISATION LOGO CONFIGURATION
+% ==============================================================================
+% Path to the official UNIZA vector logo used in the presentation footline
+\providecommand{\orgLogoFooter}{organisation/uniza/logo-footer.pdf}

+ 8 - 0
snippets/maximum.py

@@ -0,0 +1,8 @@
+def find_maximum(values):
+        maximum = values[0]
+
+        for value in values[1:]:
+            if value > maximum:
+                maximum = value
+
+        return maximum

+ 7 - 0
snippets/mean-func.py

@@ -0,0 +1,7 @@
+    def calculate_mean(values):
+        return sum(values) / len(values)
+
+    values = [10, 20, 30, 40]
+    mean = calculate_mean(values)
+
+    print(mean)

+ 3 - 0
snippets/mean.py

@@ -0,0 +1,3 @@
+values = [2, 4, 6, 8]
+mean = sum(values) / len(values)
+print(mean)

+ 23 - 0
styles/colors.sty

@@ -0,0 +1,23 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Global Beamer color theme configuration.
+% Note: Color definitions can be customized in organisation/info.txt.
+
+\mode<presentation>
+
+\input{organisation/info.sty}
+
+% 1. Main text color and slide canvas background
+\setbeamercolor{normal text}{fg=colorText, bg=colorBg}
+\setbeamercolor{background canvas}{bg=colorBg} % This ensures the entire slide background is colored
+
+% 2. Structure color (headings, bullet points, highlights)
+\setbeamercolor{structure}{fg=colorTextHighlight}
+
+% 3. Footline color
+\setbeamercolor{footline}{use=structure, fg=colorFooterFg, bg=colorFooterBg}
+% Set the color for section entries in the Table of Contents
+\setbeamercolor{section in toc}{fg=colorText}
+
+\mode <all>

+ 131 - 0
styles/contents.sty

@@ -0,0 +1,131 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Custom LaTeX macros for tables, figures with automatic fallbacks,
+%              and equation-style code snippet environments using minted.
+%              All configurable parameters are centralized as macros and lengths.
+\RequirePackage{caption}
+
+\mode<presentation>
+
+% ==============================================================================
+% Global Parameter Definitions
+% ==============================================================================
+
+% Code snippet layout & dimensions
+\newlength{\uniListingRefGap}
+\setlength{\uniListingRefGap}{0.07\textwidth}
+
+\newlength{\uniListingLeftMargin}
+\setlength{\uniListingLeftMargin}{1.5em}
+
+\newlength{\uniListingNumberSep}
+\setlength{\uniListingNumberSep}{5pt}
+
+\newlength{\uniListingFrameRule}
+\setlength{\uniListingFrameRule}{0.4pt}
+
+\newcommand{\uniListingFontSize}{\normalsize}
+\newcommand{\uniListingFrame}{leftline}
+
+% Figure placeholder dimensions
+\newlength{\uniFigPlaceholderHeight}
+\setlength{\uniFigPlaceholderHeight}{0.2\textheight}
+
+\newlength{\uniFigPlaceholderRule}
+\setlength{\uniFigPlaceholderRule}{0pt}
+
+
+% ==============================================================================
+% Custom Macros
+% ==============================================================================
+
+% Custom macro for tables
+% #1: Column specifiers (e.g., c c c or |l|r|)
+% #2: Reference label (e.g., tab:results)
+% #3: Table caption text
+% #4: Table content (rows and columns)
+\newcommand{\tab}[4]
+{%
+    \begin{table}%
+    \centering%
+        \begin{tabular}{#1}%
+            #4%
+        \end{tabular}%
+    \caption{#3}%
+    \label{#2}%
+    \end{table}%
+}
+
+% Custom macro for figures
+% #1: Width factor relative to line width (e.g., 0.95 for 95% \linewidth)
+% #2: Reference label (e.g., fig:overview)
+% #3: Figure caption text
+% #4: Path to the image file
+\NewDocumentCommand{\fig}{m m m m}{%
+    \begin{figure}%
+    \centering%
+        \IfFileExists{#4}{%
+            \includegraphics[width=#1\linewidth, keepaspectratio]{#4}%
+        }{%
+            \setlength{\fboxsep}{\uniFigPlaceholderRule}%
+            \fbox{%
+                \parbox[c][\uniFigPlaceholderHeight][c]{#1\linewidth}{%
+                    \centering
+                    \small Placeholder%
+                }%
+            }%
+        }%
+        \caption{#3}%
+        \label{#2}%
+    \end{figure}%
+}
+
+% Custom macro for code snippets (equation-style layout)
+% #1: Star (*) boolean flag (if present, renders code without equation counter/number)
+% #2: Programming language (e.g., python)
+% #3: Reference label (e.g., [lst:my_code])
+% #4: Path to the source code file
+\NewDocumentCommand{\code}{s m m m}{%
+    \par\addvspace{\abovedisplayskip}% Vertical spacing above matching standard equations
+    \noindent
+    \IfBooleanTF{#1}{%
+        % Starred version (\code*): Full width, no counter
+        \begin{minipage}[c]{\textwidth}%
+            \inputminted[
+                fontsize=\uniListingFontSize,
+                linenos,
+                breaklines,
+                autogobble,
+                numbersep=\uniListingNumberSep,
+                xleftmargin=\uniListingLeftMargin,
+                frame=\uniListingFrame,
+                framerule=\uniListingFrameRule
+            ]{#2}{#4}%
+        \end{minipage}%
+    }{%
+        % Unstarred version (\code): Code block with equation counter on the right
+        \begin{minipage}[c]{\textwidth - \uniListingRefGap}%
+            \inputminted[
+                fontsize=\uniListingFontSize,
+                linenos,
+                breaklines,
+                autogobble,
+                numbersep=\uniListingNumberSep,
+                xleftmargin=\uniListingLeftMargin,
+                frame=\uniListingFrame,
+                framerule=\uniListingFrameRule
+            ]{#2}{#4}%
+        \end{minipage}%
+        \hfill
+        \begin{minipage}[c]{\uniListingRefGap}%
+            \centering
+            \refstepcounter{codeeq}% Increment the custom code counter
+            (\thecodeeq)% Display the formatted counter (e.g., (L1))
+            \IfNoValueF{#3}{\label{#3}}% Apply label only if provided
+        \end{minipage}%
+    }%
+    \par\addvspace{\belowdisplayskip}% Vertical spacing below matching standard equations
+}
+
+\mode <all>

+ 39 - 0
styles/fonts.sty

@@ -0,0 +1,39 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Global Beamer typography and font size configuration
+%              for titles, body text, structural elements, and lists.
+
+\RequirePackage{fix-cm}      % Enables arbitrary scaling for Computer Modern Sans Serif (cmss)
+
+% Fix T1/cmtt/bx/n font shape substitution warning by mapping 'bx' (bold extended) to 'm' (medium) or 'b' (bold)
+\DeclareFontShape{T1}{cmtt}{bx}{n}{<->ssub * cmtt/m/n}{}
+
+\mode<presentation>
+
+% Default body font size and baselineskip
+\AtBeginDocument{\fontsize{12}{14}\selectfont}
+
+% Frame, section, title, and subtitle font sizes
+\setbeamerfont{title}{size*={22}{25pt}}
+\setbeamerfont{subtitle}{size*={13}{15pt}}
+\setbeamerfont*{frametitle}{parent=title}
+\setbeamerfont*{section title}{parent=title}
+
+% Author metadata font size
+\setbeamerfont{author}{size*={10}{12pt}}
+
+% Header and footer text font size
+\setbeamerfont{title in head/foot}{size*={7}{8pt}}
+
+% List item label font sizes (1st, 2nd, and 3rd hierarchy levels)
+\setbeamerfont{item}{size*={12}{14pt}}
+\setbeamerfont{subitem}{size*={11}{13pt}}
+\setbeamerfont{subsubitem}{size*={10}{12pt}}
+
+% Itemize / enumerate body text font sizes (1st, 2nd, and 3rd hierarchy levels)
+\setbeamerfont{itemize/enumerate body}{size*={12}{14pt}}
+\setbeamerfont{itemize/enumerate subbody}{size*={11}{13pt}}
+\setbeamerfont{itemize/enumerate subsubbody}{size*={10}{12pt}}
+
+\mode<all>

+ 83 - 0
styles/footer.sty

@@ -0,0 +1,83 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Beamer footline template configuration and dimension calculations.
+%              Handles adaptive footer layouts for title and standard slides,
+%              logo positioning, slide numbering, and navigation symbol removal.
+
+\RequirePackage{calc}
+\RequirePackage{adjustbox}
+
+\mode<presentation>
+
+\input{organisation/info.sty}
+
+% ==============================================================================
+% Footer Dimension & Ratio Calculations
+% ==============================================================================
+
+% Custom length variables for footer dimensions based on scaled design ratios (128mm / 254mm)
+\newlength{\footlinedp}
+\setlength{\footlinedp}{9.127mm * \ratio{128mm}{254mm}}
+
+\newlength{\footlineht}
+\setlength{\footlineht}{19.454mm * \ratio{128mm}{254mm}}
+
+\newlength{\footlinesk}
+\setlength{\footlinesk}{3.338mm * \ratio{128mm}{254mm}}
+
+% Footer logo width configuration
+\newlength{\logowd}
+\setlength{\logowd}{60.046mm * \ratio{128mm}{254mm}}
+
+% Declare and scale footer logo image to fit footer height precisely
+\pgfdeclareimage[height=\dimexpr\footlineht + \footlinedp - 2pt\relax]{smalllogo}{\orgLogoFooter}
+
+% Fixed widths for footer text elements and slide number counters
+\newlength{\footlinetextwd}
+\setlength{\footlinetextwd}{100pt}
+
+\newlength{\numberwd}
+\setlength{\numberwd}{20pt}
+
+% Extra right margin offset (used for horizontal alignment correction)
+\def\footextraright{3mm}
+
+% ==============================================================================
+% Title Slide Toggle & Footline Template
+% ==============================================================================
+
+% 1. Boolean switch declaration for title slide detection
+\newif\ifuni@onstitle
+\uni@onstitlefalse
+
+% 2. Unified global Beamer footline template (adapts layout based on \ifuni@onstitle)
+\defbeamertemplate*{footline}{uni}{
+    \begin{beamercolorbox}[
+        wd=\paperwidth,
+        dp=\footlinedp,
+        ht=\footlineht,
+        leftskip=\footlinesk,
+        rightskip=\dimexpr\footlinesk + 3mm\relax
+    ]{footline}
+        \usebeamerfont{title in head/foot}%
+        \ifuni@onstitle
+            % --- TITLE SLIDE FOOTER: Logo on left, presentation date on right ---
+            \raisebox{\dimexpr 0.5\footlineht - 0.5\footlinedp - 0.5\height\relax}{\pgfuseimage{smalllogo}}%
+            \hfill
+            \raisebox{\dimexpr 0.5\footlineht - 0.5\footlinedp - 0.5\height\relax}{\insertdate}%
+        \else
+            % --- STANDARD SLIDE FOOTER: Logo on left, slide number counter on right ---
+            \raisebox{\dimexpr 0.5\footlineht - 0.5\footlinedp - 0.5\height\relax}{\pgfuseimage{smalllogo}}%
+            \hfill
+            \raisebox{\dimexpr 0.5\footlineht - 0.5\footlinedp - 0.5\height\relax}{%
+                \makebox[\numberwd][r]{\insertframenumber\,/\,\inserttotalframenumber}%
+            }%
+        \fi
+    \end{beamercolorbox}
+}
+
+% Remove default Beamer navigation symbols (bottom right corner)
+\defbeamertemplate*{navigation symbols}{uni}{}
+
+\mode<all>

+ 22 - 0
styles/lists.sty

@@ -0,0 +1,22 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Beamer itemize symbol templates configuration.
+%              Defines standard bullet points across 1st, 2nd, and 3rd hierarchy levels.
+
+\mode<presentation>
+
+% Itemize bullet point definitions (1st, 2nd, and 3rd hierarchy levels)
+\defbeamertemplate*{itemize item}{uni}{%
+    \raise2pt\hbox{\textbullet}%
+}
+
+\defbeamertemplate*{itemize subitem}{uni}{%
+    \raise2pt\hbox{\textbullet}%
+}
+
+\defbeamertemplate*{itemize subsubitem}{uni}{%
+    \raise2pt\hbox{\textbullet}%
+}
+
+\mode<all>

+ 245 - 0
styles/slides.sty

@@ -0,0 +1,245 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: High-level slide layout macros for Beamer presentations.
+%              Provides specialized commands for title slides, table of contents,
+%              section dividers, single-column, and two-column slide layouts.
+
+\RequirePackage{multicol}
+
+\input{organisation/info.sty}                                            % Import user configurations and colors
+
+% ==============================================================================
+% DIMENSIONS CONFIGURATION
+% ==============================================================================
+\newlength{\uniTitleTopSpace}\setlength{\uniTitleTopSpace}{42pt}         % Top spacing for title slides
+\newlength{\uniTitleSubtitleGap}\setlength{\uniTitleSubtitleGap}{15pt}   % Gap between title and subtitle
+\newlength{\uniTitleAuthorGap}\setlength{\uniTitleAuthorGap}{10pt}       % Gap before author (standard title)
+\newlength{\uniColorAuthorGap}\setlength{\uniColorAuthorGap}{10pt}       % Gap before author (colored title)
+\newlength{\uniColumnIndent}\setlength{\uniColumnIndent}{0.8em}          % Text indentation in columns
+\newlength{\uniFootlineRightPad}\setlength{\uniFootlineRightPad}{3mm}    % Right padding in footline
+\newlength{\uniColumnGap}\setlength{\uniColumnGap}{2em}                  % Gap between two columns
+
+
+% ==============================================================================
+% STATE SWITCH AND GLOBAL FOOTLINE TOGGLE
+% ==============================================================================
+\newif\ifuni@onstitle
+\uni@onstitlefalse
+
+
+% ==============================================================================
+% HELPER MACRO FOR TWO-COLUMN SLIDE
+% ==============================================================================
+% #1: Left column width ratio relative to \textwidth (e.g., 0.5)
+% #2: Left column content
+% #3: Right column content
+\newcommand{\uni@renderColumns}[3]{%
+    \noindent
+    \begin{minipage}[t]{#1\textwidth}%
+        \setlength{\fboxsep}{0pt}%
+        \begin{minipage}[t]{\linewidth}%
+            #2%
+        \end{minipage}%
+    \end{minipage}%
+    \hspace{\uniColumnGap}%
+    \begin{minipage}[t]{\dimexpr\textwidth - #1\textwidth - \uniColumnGap\relax}%
+        \setlength{\fboxsep}{0pt}%
+        \begin{minipage}[t]{\linewidth}%
+            #3%
+        \end{minipage}%
+    \end{minipage}%
+}
+
+
+% ==============================================================================
+% HELPER MACRO FOR TITLE TEXT
+% ==============================================================================
+% #1: Title formatting, #2: Subtitle formatting, #3: Title text, #4: Subtitle text
+\newcommand{\uni@renderTitleText}[4]{%
+    #1#3%
+    \def\uni@tempsub{#4}%
+    \ifx\uni@tempsub\@empty
+    \else
+        \vspace{\uniTitleSubtitleGap}%
+        \par
+        #2#4%
+    \fi
+}
+
+
+% ==============================================================================
+% TABLE OF CONTENTS SLIDE
+% ==============================================================================
+% #1: Number of columns (optional, default is 1)
+\NewDocumentCommand{\slideTableOfContents}{o}{%
+    \uni@onstitlefalse
+    \begin{frame}{%
+       \contentsname%
+    }%
+        \IfValueTF{#1}{%
+            \ifnum#1>1%
+                \begin{multicols}{#1}%
+                    \tableofcontents
+                \end{multicols}%
+            \else%
+                \tableofcontents%
+            \fi%
+        }{%
+            \tableofcontents%
+        }%
+    \end{frame}%
+}
+
+
+% ==============================================================================
+% 2. TITLE SLIDES
+% ==============================================================================
+
+% Creates a standard title slide using global Beamer variables (\inserttitle, \insertsubtitle, \insertauthor).
+\NewDocumentCommand{\slideTitle}{}{
+    \uni@onstitletrue
+    \begin{frame}[c]
+        \vspace{\uniTitleTopSpace}
+        \noindent
+        \begin{minipage}{\textwidth}
+            \raggedright
+            \uni@renderTitleText
+                {\usebeamerfont{title}\usebeamercolor[fg]{title}}
+                {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}}
+                {\inserttitle}{\insertsubtitle}%
+            
+            \vspace{\uniTitleAuthorGap}%
+            {\usebeamerfont{author}\color{colorText}\insertauthor}%
+        \end{minipage}
+    \end{frame}
+}
+
+
+% Creates a colored title slide with custom background canvas and vertical centering matching \slideTitle.
+\NewDocumentCommand{\slideTitleColor}{}{
+    \uni@onstitletrue
+    {
+        \usebeamercolor{footline}
+        \setbeamercolor{background canvas}{bg=footline.bg}
+        
+        \begin{frame}[c,plain]
+            \vspace{\uniTitleTopSpace}
+            \noindent
+            \begin{minipage}{\textwidth}
+                \raggedright
+                \color{footline.fg}%
+                \uni@renderTitleText
+                    {\usebeamerfont{title}}
+                    {\usebeamerfont{subtitle}}
+                    {\inserttitle}{\insertsubtitle}%
+                
+                \vspace{\uniTitleAuthorGap}%
+                {\usebeamerfont{author}\insertauthor}%
+            \end{minipage}
+        \end{frame}
+    }
+}
+
+
+% ==============================================================================
+% 3. SECTIONS
+% ==============================================================================
+
+% Creates a dedicated section divider slide with vertical centering.
+% *  : Optional star (captured as #1) to suppress automatic section registration
+% #2 : Section title text (+m supports multi-line text with \\)
+\NewDocumentCommand{\slideSection}{s +m}{
+    \uni@onstitlefalse
+    \IfBooleanF{#1}{\section{#2}}
+    \begin{frame}
+        \vfill
+        \begin{beamercolorbox}[leftskip=\titlelf]{section title}
+            \usebeamerfont{section title}#2
+        \end{beamercolorbox}
+        \vfill
+    \end{frame}
+} 
+
+
+% Creates a dedicated section divider slide with vertical centering and subtitle.
+% *  : Optional star (captured as #1) to suppress automatic section registration
+% #2 : Section title text (+m supports multi-line text with \\)
+% #3 : Section subtitle text (+m supports multi-line text with \\)
+\NewDocumentCommand{\slideSectionSubtitle}{s +m +m}{
+    \uni@onstitlefalse
+    \IfBooleanF{#1}{\section{#2}}
+    
+    \begin{frame}
+        \vfill
+        \begin{beamercolorbox}[leftskip=\titlelf]{section title}
+            \usebeamerfont{section title}#2%
+            \IfNoValueF{#3}{%
+                \par
+                \vspace{\uniTitleSubtitleGap}%
+                \usebeamerfont{subtitle}\color{colorText}#3%
+            }%
+        \end{beamercolorbox}
+        \vfill
+    \end{frame}
+}
+
+
+% ==============================================================================
+% 4. SINGLE-COLUMN SLIDES 
+% ==============================================================================
+
+% Creates a plain single-column slide without a frame title.
+% #1: Slide content (+m supports multi-line text, lists, and macros)
+\NewDocumentCommand{\slideOneColumnPlain}{+m}{
+    \uni@onstitlefalse
+    \begin{frame}
+        #1
+    \end{frame}
+}
+
+
+% Creates a standard single-column slide with a frame title and section handling.
+% *  : Optional star (captured as #1) to suppress automatic section registration
+% #2 : Frame and section title (m)
+% #3 : Slide content (+m)
+\NewDocumentCommand{\slideOneColumn}{s m +m}{
+    \uni@onstitlefalse
+    \IfBooleanF{#1}{\section{#2}}
+    
+    \begin{frame}{#2}
+        #3
+    \end{frame}
+}
+
+
+% ==============================================================================
+% 5. TWO-COLUMN SLIDES 
+% ==============================================================================
+
+% Creates a blank two-column slide without a frame title.
+% #1: Left column width ratio (e.g., 0.5 for 50%)
+% #2: Left column content (+m supports multi-line text and macros)
+% #3: Right column content (+m supports multi-line text and macros)
+\NewDocumentCommand{\slideTwoColumnsPlain}{m +m +m}{
+    \uni@onstitlefalse
+    \begin{frame}
+        \uni@renderColumns{#1}{#2}{#3}
+    \end{frame}
+}
+
+
+% Creates a standard two-column slide with a frame title and section handling.
+% *  : Optional star to suppress automatic section registration
+% #1 : Frame and section title (m)
+% #2 : Left column width ratio (m)
+% #3 : Left column content (+m)
+% #4 : Right column content (+m)
+\NewDocumentCommand{\slideTwoColumns}{s m m +m +m}{
+    \uni@onstitlefalse
+    \IfBooleanF{#1}{\section{#2}}
+    
+    \begin{frame}{#2}
+        \uni@renderColumns{#3}{#4}{#5}
+    \end{frame}
+}

+ 31 - 0
styles/titles.sty

@@ -0,0 +1,31 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Beamer frame title template and continuation indicator configuration.
+%              Ensures consistent alignment and standardized slide titles across all frames.
+
+% ==============================================================================
+% Frame Title Template
+% ==============================================================================
+
+% Custom frame (slide) title template
+\defbeamertemplate*{frametitle}{uni}
+{
+    \vspace{15pt}%
+    % Depth is explicitly set to 0pt to prevent vertical layout shifts 
+    % caused by characters with descenders (e.g., 'g', 'p', 'y')
+    \begin{beamercolorbox}[dp=0pt, leftskip=\titlelf]{title}
+        \usebeamerfont{frametitle}%
+        \insertframetitle%
+    \end{beamercolorbox}%
+}
+
+% ==============================================================================
+% Frame Title Continuation
+% ==============================================================================
+
+% Format continuation indicators for multi-frame slides (e.g., using allowframebreaks)
+% Renders lowercase roman numerals enclosed in parentheses: (i), (ii), (iii)...
+\defbeamertemplate*{frametitle continuation}{uni}{%
+    (\insertcontinuationcountroman)%
+}

+ 58 - 0
uni.sty

@@ -0,0 +1,58 @@
+% author Matus Necas, October 2026
+% original work by Jan Sumsky <jan.sumsky@gmail.com>, August 2024
+%
+% Description: Main package coordinator for the custom UNIZA Beamer theme.
+%              Loads required dependencies, sets global configurations, 
+%              initializes custom counters, and imports all modular style submodules.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{uni}[University Beamer Package]
+
+% ==============================================================================
+% 1. REQUIRED PACKAGES
+% ==============================================================================
+\RequirePackage{xparse}      % Advanced argument parsing for robust custom commands
+\RequirePackage{graphicx}    % Enhanced image inclusion and scaling support
+\RequirePackage{booktabs}    % Professional-quality horizontal rules for tables
+\RequirePackage{amsmath}     % Advanced mathematical typesetting environment
+\RequirePackage{minted}      % Source code syntax highlighting via Pythongments
+\RequirePackage{verbatim}    % Raw verbatim text block environments
+
+
+% ==============================================================================
+% 2. CONDITIONAL FLAGS & CUSTOM LENGTHS
+% ==============================================================================
+% Conditional flag for alternative title/cover page layouts
+\newif\ifbeamer@uni@cover
+\beamer@uni@coverfalse
+
+% Custom vertical/layout length for title adjustments
+\newlength{\titlelf}
+\setlength{\titlelf}{-9pt}
+
+
+% ==============================================================================
+% 3. BEAMER TEMPLATES & STRUCTURAL DEFAULTS
+% ==============================================================================
+\setbeamertemplate{caption}[numbered]                 % Automatically number figures and tables
+\setbeamertemplate{section in toc}[sections numbered] % Number sections in the table of contents
+
+
+% ==============================================================================
+% 4. CUSTOM COUNTERS FOR CODE SNIPPETS
+% ==============================================================================
+% Initialize a dedicated counter for equation-style code blocks and format it (e.g., L1, L2)
+\newcounter{codeeq}
+\renewcommand{\thecodeeq}{L\arabic{codeeq}}
+
+
+% ==============================================================================
+% 5. MODULAR SUBMODULE IMPORTS
+% ==============================================================================
+\input{styles/fonts.sty}     % Global typography and font size configuration
+\input{styles/colors.sty}    % Color palette and semantic theme color mapping
+\input{styles/footer.sty}    % Presentation footer layout, navigation, and logos
+\input{styles/titles.sty}    % Title slide and section header layouts
+\input{styles/contents.sty}  % Table of contents slide macro definitions
+\input{styles/lists.sty}     % Itemize, enumerate, and list spacing setups
+\input{styles/slides.sty}    % High-level structural slide wrappers (\slideOneColumn, etc.)