commit 763750ad196925f08df0bbca48fd0f58b2be82b2 Author: Christos Choutouridis Date: Sun Nov 3 16:42:27 2024 +0200 Init commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4272786 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.synctex.gz + +# TexStudio files +*.aux +*.out +*.log + +# Output files +*.pdf + diff --git a/AUTHReport.cls b/AUTHReport.cls new file mode 100644 index 0000000..a5d5055 --- /dev/null +++ b/AUTHReport.cls @@ -0,0 +1,385 @@ +% +% AUTH report class +% +% note: Requires compilation with XeLaTeX or LuaTeX +% +% author: Christos Choutouridis +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{AUTHReport}[2024-11-03 AUTH Report document class] + + +% Options +% =============================================== + +% Declare option for short report version +\DeclareOption{short}{\def\auth@short{yes}} + +% Declare option for CoAuthor +\DeclareOption{coauthor}{\def\auth@coauthor{yes}} + + +% Default option values +\def\auth@short{no} +\def\auth@coauthor{no} + +% Pass all other options to article +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article} +} +\ProcessOptions\relax + +\LoadClass{article} + + +% Requirements +% =============================================== +\RequirePackage{iftex} +\ifPDFTeX + \RequirePackage[utf8]{inputenc} + \RequirePackage[T1]{fontenc} +\else + \RequirePackage{fontspec} +\fi + +\RequirePackage{xargs} % Commands + +\RequirePackage{geometry} % Layout +\RequirePackage{fancyhdr} + +\RequirePackage{graphicx} % Figures + +% Format packages +\RequirePackage[hang, small,labelfont=bf,up,textfont=it,up]{caption} % Custom captions under/above floats in tables or figures +\RequirePackage[nobottomtitles]{titlesec} +\RequirePackage{titling} +\RequirePackage[bottom]{footmisc} % Place footnotes always as much to the bottom as possible. + +\RequirePackage{hyperref} % Various +\RequirePackage[ddmmyyyy]{datetime} +\RequirePackage{enumitem} + + +% Local Tools +% =============================================== + +% Tool to check equality +\newcommand{\isequal}[2]{ \pdf@strcmp{#1}{#2} } + +% syntactic suggar for horizaontal rule +\newcommand{\Hrule}{ \rule{\linewidth}{0.1mm} } + + +% Theme +% =============================================== + +% Layout +% ===================================================== + +% Page core layout settings (include head and foot) +% A4 will result to: +% Top margin: 12mm +% Bottom margin: 11mm +% Head hight: 14mm +% Foot skip: 15mm +% Left margin: 15mm +% Right margin: 12mm +\newcommand{\authTopMargin}{12mm} +\newcommand{\authBottomMargin}{12mm} +\newcommand{\authHeadHeight}{10mm} +\newcommand{\authFootSkip}{10mm} +\newcommand{\authLeftMargin}{15mm} +\newcommand{\authRightMargin}{15mm} + + +% +% Sets page layout. (include head and foot) +\newcommand*{\authSetPageLayout}{% + \newgeometry{% + includeheadfoot, + top= \authTopMargin, + bottom= \authBottomMargin, + headheight= \authHeadHeight, + footskip= \authFootSkip, + lmargin= \authLeftMargin, + rmargin= \authRightMargin + } +} + +% Fonts +% ===================================================== + +% [1]: Main(Serif) body font +% [5]: Sans family font +% [6]: Mono family font +% +\newcommand{\authFontEnvSetup}[3]{% + \setmainfont{#1}[SmallCapsFeatures={Letters=SmallCaps}] + \setsansfont{#2} + \setmonofont{#3} + +% \newfontface\smallcapsfont{Libertinus Serif}[Letters=SmallCaps] +} + + +% Header and Footer +% ===================================================== + +\newcommand*{\authSetFooterEmpty}{% + % Clear styles + \fancyfoot{} + \renewcommand{\footrulewidth}{0pt} +} + +\newcommand*{\authSetFooter}{% + % Clear styles + \fancyfoot{} + \fancyfoot[C]{\thepage} + \renewcommand{\footrulewidth}{0pt} + \pagenumbering{arabic} +} + +\newcommand{\authSetHeaderEmpty}{ + % Clear styles + \fancyhead{} + \renewcommand{\headrulewidth}{0pt} +} + +\newcommand{\authSetHeader}{ + % Clear styles + \fancyhead{} + \fancyhead[L]{\auth@className} + \fancyhead[R]{\auth@docTitle} + \renewcommand{\headrulewidth}{0.5pt} +} + + +% +% Page styles +% +\fancypagestyle{plain}{% + % Style for the main document (including TOC) + \authSetFooter + \authSetHeader +} + +\fancypagestyle{authTitlePageStyle}{% + % Style for Title page + \authSetHeaderEmpty + \ifnum \isequal{\auth@short}{no}=0 + \authSetFooterEmpty + \else + \authSetFooter + \fi +} + + +% Common Page style +\newcommand{\authPageStyle}{% + + \renewcommand{\bottomtitlespace}{0.12\textheight} + + % Change the look of the section and subsection titles + \titleformat{\section}[block]{\large\scshape}{\thesection.}{1em}{} + \titleformat{\subsection}[block]{\large}{\thesubsection.}{1em}{} + \titleformat{\subsubsection}[block]{\normalsize}{\thesubsubsection.}{1em}{} + + \setlist[itemize]{noitemsep} % Make itemize lists more compact + + % Set paragraph identation and skip + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.65em} + +} + +% \FirstPage +\newcommand{\authTitlePage}{% + \begin{titlepage} + % Logo + \begin{figure} + \begin{flushleft} + \includegraphics[width=5cm]{img/auth_logogr.png} + \end{flushleft} + \end{figure} + % Titles + \center % Center everything on the page + \textbf{} \\[3.5cm] % vertical space + \textsc{\Large \auth@department} \\[0.5cm] % Department + \textsc{\Large \auth@className} \\[1.5cm] % Class/Course name + \Hrule \\[0.4cm] % ------- + {\huge \bfseries \auth@docTitle} \\[0.1cm] % Document/Assignement Title + \Hrule \\[3.5cm] % ------- + % vertical space + % Authors + \begin{minipage}{0.4\textwidth} + \begin{flushleft} + \large + \ifdefined \auth@workGroup \emph{\textsc{\auth@workGroup}} \\[2ex]\fi + \ifnum \isequal{\auth@coauthor}{yes}=0 + \emph{Συντάκτες:} + \else + \emph{Συντάκτης:} + \fi \\ + \textsc{\auth@authorName} \\ + \textsc{AEM:\auth@authorAEM} \\[1ex] + \normalsize \href{mailto:\auth@authorMail}{\auth@authorMail} \\[2ex] + \large + \ifnum \isequal{\auth@coauthor}{yes}=0 + \textsc{\auth@coauthorName} \\ + \textsc{AEM:\auth@coauthorAEM} \\[1ex] + \normalsize \href{mailto:\auth@coauthorMail}{\auth@coauthorMail} + \fi + \end{flushleft} + \end{minipage} + \begin{minipage}{0.4\textwidth} + \begin{flushright} \large + \emph{Διδάσκων:} \\ % Instructor + \textsc{\auth@instructorName} \\[1ex] + \normalsize + \href{mailto:\auth@instructorMail}{\auth@instructorMail} + \end{flushright} + \end{minipage} \\ + \vfill + {\large \auth@date} \\ % date + + \end{titlepage} + \newpage +} + +% \TitleHeader +\newcommand{\authTitleHeader}{% + \begin{center} % Center everything on the page + % Logo + \begin{figure} + \center + \includegraphics[width=5cm]{img/auth_logogr.png} + \end{figure} + % Titles + \textsc{\Large \auth@department} \\[0.4cm] % Department + \textsc{\Large \auth@className} \\[0.1cm] % Class/Course name + {\Large \bfseries \auth@docTitle} \\[0.2cm] % Document/Assignement Title + {\large \auth@date} \\[0.4cm] % date + % Authors + \begin{minipage}{0.4\textwidth} + \begin{flushleft} + \large + \ifnum \isequal{\auth@coauthor}{yes}=0 + \emph{Συντάκτες:} + \else + \emph{Συντάκτης:} + \fi \\ + \textsc{\auth@authorName} \\ + \textsc{AEM:\auth@authorAEM} \\[1ex] + \normalsize \href{mailto:\auth@authorMail}{\auth@authorMail} \\[2ex] + \large + \ifnum \isequal{\auth@coauthor}{yes}=0 + \textsc{\auth@coauthorName} \\ + \textsc{AEM:\auth@coauthorAEM} \\[1ex] + \normalsize \href{mailto:\auth@coauthorMail}{\auth@coauthorMail} + \fi + \end{flushleft} + \end{minipage} + \begin{minipage}{0.4\textwidth} + \begin{flushright} \large + \emph{Διδάσκων:} \\ % Instructor + \textsc{\auth@instructorName} \\[1ex] + \normalsize + \href{mailto:\auth@instructorMail}{\auth@instructorMail} + \end{flushright} + \end{minipage} + \end{center} +} + + + + + +% Setup theme +% ===================================================== + +\AtBeginDocument{% + % Page layout (check above for the geometry setup) + \authSetPageLayout + + % Fonts + \authFontEnvSetup{CMU Serif}{CMU Sans Serif}{Courier New} + + % Header - Footer + \pagestyle{plain} + \thispagestyle{authTitlePageStyle} + + % Page styles and formating + \authPageStyle + + \normalsize +} % End \AtBeginDocument + + + +% QA document public environments/commands +% ===================================================== + +% Common fields +% ===================================================== +\newcommand*{\AuthorName}[1]{\def\auth@authorName{#1}} +\newcommand*{\AuthorMail}[1]{\def\auth@authorMail{#1}} +\newcommand*{\AuthorAEM}[1]{\def\auth@authorAEM{#1}} + +\newcommand*{\CoAuthorName}[1]{\def\auth@coauthorName{#1}} +\newcommand*{\CoAuthorMail}[1]{\def\auth@coauthorMail{#1}} +\newcommand*{\CoAuthorAEM}[1]{\def\auth@coauthorAEM{#1}} + +\newcommand*{\WorkGroup}[1]{\def\auth@workGroup{#1}} + +\newcommand*{\DocTitle}[1]{\def\auth@docTitle{#1}} +\newcommand*{\Department}[1]{\def\auth@department{#1}} +\newcommand*{\ClassName}[1]{\def\auth@className{#1}} + +\newcommand*{\InstructorName}[1]{\def\auth@instructorName{#1}} +\newcommand*{\InstructorMail}[1]{\def\auth@instructorMail{#1}} +\newcommand*{\CurrentDate}[1]{\def\auth@date{#1}} + + +\newcommand{\Title}{% + \ifnum \isequal{\auth@short}{no}=0 + \authTitlePage + \else + \authTitleHeader + \fi +} + +% \InsertFigure{}{}{}{} +% [1]: scale +% [2]: Label +% [3]: Figure file +% [4]: Caption text +% example: \InsertFigure{0.8}{fig:lala}{lala.png}{\eng{Makes lala}} +\newcommand{\InsertFigure}[4]{ + \begin{figure*}[h!] + \captionsetup{format=plain} + \centering + \includegraphics[width=#1\textwidth]{#3} + \caption{#4} + \label{#2} + \end{figure*} +} + +% \WrapFigure{}{}{}{} +% [1]: scale +% [2]: place left or right r,l,R,L +% [3]: Label +% [4]: Figure file +% [5]: Caption text +% example: \WrapFigure{0.8}{r}{fig:lala}{lala.png}{\eng{Makes lala}} +\newcommand{\WrapFigure}[5]{ + \begin{wrapfigure}{#2}{#1\textwidth} + \vspace{-20pt} + \begin{center} + \captionsetup{format=plain} + \includegraphics[width=#1\textwidth]{#4} + \caption{#5} + \label{#3} + \end{center} + \vspace{-20pt} + \end{wrapfigure} +} diff --git a/AUTHReportTemplate.tex b/AUTHReportTemplate.tex new file mode 100644 index 0000000..1abd80a --- /dev/null +++ b/AUTHReportTemplate.tex @@ -0,0 +1,45 @@ +% +% Network programming Lab sum report +% +% authors: +% Χρήστος Χουτουρίδης ΑΕΜ 8997 +% cchoutou@ece.auth.gr + + +\documentclass[a4paper, 11pt]{AUTHReport} + +% Document configuration +\AuthorName{Χρήστος Χουτουρίδης} +\AuthorMail{cchoutou@ece.auth.gr} +\AuthorAEM{8997} + +\CoAuthorName{asdf} +\CoAuthorMail{asdf} +\CoAuthorAEM{9874} + +%\WorkGroup{Ομάδα 3} + +\DocTitle{Τίτλος Title} +\Department{Computer εργαστήριο} +\ClassName{PDS πααλληλα} + +\InstructorName{Nick Πιτσιάνης} +\InstructorMail{ςε} +\CurrentDate{\today} + + +\usepackage{lipsum} + + +\begin{document} + +\Title + +\section{Εισαγωγή Intro} +\lipsum[1-4] + +\subsection{μικρός τίτλος small title} + +\lipsum[1-4] + +\end{document} diff --git a/img/auth_logogr.png b/img/auth_logogr.png new file mode 100644 index 0000000..85b39f2 Binary files /dev/null and b/img/auth_logogr.png differ