diff --git a/.devcontainer.json b/.devcontainer.json index 175912d..0860a05 100644 --- a/.devcontainer.json +++ b/.devcontainer.json @@ -1,5 +1,5 @@ { - "name": "ipleiria-thesis", + "name": "epfl-thesis", "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { "ghcr.io/prulloac/devcontainer-features/latex:1.3.1": { diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 6fa2335..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -ko_fi: joseareia diff --git a/.github/workflows/latex.yml b/.github/workflows/latex.yml index 17c7d5f..cd256f6 100644 --- a/.github/workflows/latex.yml +++ b/.github/workflows/latex.yml @@ -26,7 +26,7 @@ jobs: - name: LaTeX Document Compilation uses: xu-cheng/latex-action@v3 with: - root_file: IPLeiriaMain.tex + root_file: EPFLMain.tex latexmk_use_xelatex: true latexmk_shell_escape: true extra_fonts: | diff --git a/.gitignore b/.gitignore index df5de86..32358f8 100644 --- a/.gitignore +++ b/.gitignore @@ -313,7 +313,7 @@ TSWLatexianTemp* ### Overleaf Bundle Script ### overleaf-bundle.sh -ipleiria-thesis-overleaf-*.zip +epfl-thesis-overleaf-*.zip ### macOS .DS_Store \ No newline at end of file diff --git a/.latexmkrc b/.latexmkrc index 36ac173..1392a76 100644 --- a/.latexmkrc +++ b/.latexmkrc @@ -17,7 +17,7 @@ $pdf_mode = 5; # Main TeX file. -$root_filename = 'IPLeiriaMain.tex'; +$root_filename = 'EPFLMain.tex'; # Additional flags for the TeX engine. set_tex_cmds("--shell-escape --synctex=1 --file-line-error --halt-on-error %O %S"); diff --git a/Bibliography/Bibliography.bib b/Bibliography/Bibliography.bib index 184de10..4236888 100644 --- a/Bibliography/Bibliography.bib +++ b/Bibliography/Bibliography.bib @@ -13,11 +13,3 @@ @Article{Elgamal1985 doi = {10.1109/TIT.1985.1057074}, url = {https://ieeexplore.ieee.org/document/1057074}, } - -@Misc{IPLeiriaThesis, - author = {{José Areia}}, - title = {Polytechnic University of Leiria: LaTeX Thesis Template}, - year = {2023}, - month = dec, - url = {https://github.com/joseareia/ipleiria-thesis}, -} \ No newline at end of file diff --git a/Chapters/01-Introduction.tex b/Chapters/01-Introduction.tex index 5e7edab..d1063c1 100644 --- a/Chapters/01-Introduction.tex +++ b/Chapters/01-Introduction.tex @@ -4,59 +4,57 @@ { \parindent0pt -\textit{Author: José Areia} +\textit{Template: EPFL Thesis} -\textit{Current Version: 2.2.13} +\textit{Current Version: 1.0.0} \textit{License: \LaTeX~Project Public License v1.3c} -\textit{Official Repository: \href{https://github.com/joseareia/ipleiria-thesis}{GitHub Repository}} +\textit{Official Repository: \href{https://github.com/pmdlt/epfl-thesis}{GitHub Repository}} \vspace{.935em} -Welcome to the \textcolor{maincolor}{\textit{IPLeiria Thesis}} template! Thank you for choosing it for your dissertation, report, or project. This template reflects many hours of development, and I hope you enjoy using it as much as I did creating it. This chapter introduces its purpose and helps you get started. See \autoref{cp:user-guide} for a detailed guide, and \autoref{cp:latex-tutorial} for a brief \LaTeX~tutorial to maximise its use. +Welcome to the \textcolor{maincolor}{\textit{EPFL Thesis}} template! Thank you for choosing it for your dissertation, report, or project at the École polytechnique fédérale de Lausanne. This chapter introduces its purpose and helps you get started. See \autoref{cp:user-guide} for a detailed guide, and \autoref{cp:latex-tutorial} for a brief \LaTeX~tutorial to maximise its use. } \section{Motivation} -I've been using \LaTeX~since 2020 for a wide range of purposes. Over time, I've reviewed over a hundred templates, and there's always something missing. \textit{Always}. Powerful templates---\textit{i.e.}, highly customisable with many options---are often poorly organised. Well-organised ones usually lack flexibility. Some even compile with errors and warnings. Most importantly, many aren't user-friendly. So, I created my own template for theses and reports, tailored to the Polytechnic University of Leiria. My goals were: \(i)\) clear and structured file organisation, \(ii)\) a clean, professional, and attractive design, \(iii)\) high customisability, and \(iv)\) ease of use, especially for beginners. - +This template provides a structured, professional LaTeX foundation for EPFL students writing theses and academic reports. It combines clear file organisation, a clean design aligned with EPFL branding, and flexible class options for language, cover style, and document stage. The goal is to let you focus on your research content rather than document formatting. \section{Getting Started} To start using this template, you first need to know how to use \LaTeX. For this, please refer to \autoref{cp:latex-tutorial}. Once you are familiar with \LaTeX, you will need to either install it locally or use an online \LaTeX~editor. -If you prefer an online editor, I highly recommend \href{https://www.overleaf.com/}{Overleaf}. While Overleaf offers a paid subscription for extended compilation time, this template is specifically designed to compile within the limits of the free subscription plan. To use the template in Overleaf, just refer to \href{https://www.overleaf.com/latex/templates/unofficial-polytechnic-university-of-leiria-estg-thesis-slash-report-template/tqgbrncfhwgt}{official template page} and click \textit{Use as Template}. But if you prefer to use a different version of it (which I do not recommend), you can do the following: +If you prefer an online editor, \href{https://www.overleaf.com/}{Overleaf} is a popular choice. To use this template locally: \begin{enumerate}[font=\itshape] \setlength{\itemsep}{.375em} - \item \textit{Download the \href{https://github.com/joseareia/ipleiria-thesis/releases}{desired version} from the GitHub repository as a Zip file.} - \item \textit{Login to your Overleaf account.} - \item \textit{In your Project area, click in the menu and then: New Project \(\to\) Upload Project.} - \item \textit{Upload the Zip file.} - \item \textit{Let Overleaf compile the document.} + \item \textit{Clone the \href{https://github.com/pmdlt/epfl-thesis}{repository} from GitHub.} + \item \textit{Install a \LaTeX~distribution (TeX Live, MacTeX, or BasicTeX).} + \item \textit{Edit \texttt{Metadata/Metadata.tex} with your thesis details.} + \item \textit{Build with \texttt{make all} or \texttt{latexmk}.} \end{enumerate} -If you choose to use a local editor, you must first install \LaTeX~on your machine. For this, there are several options, but I personally recommend either \href{https://www.tug.org/texlive/}{TeX-Live} or \href{https://miktex.org/}{MikTeX}. After installing \LaTeX, you will need to select an editor for writing and editing your documents. To help with this decision, I suggest checking out this helpful \href{https://tex.stackexchange.com/questions/339/latex-editors-ides}{post}, which provides a comprehensive overview of various editors you can use. Once \LaTeX~and your editor are set up, simply clone or download the \href{https://github.com/joseareia/ipleiria-thesis/releases}{latest} version of the template from GitHub and start using it! +If you choose to use a local editor, you must first install \LaTeX~on your machine. I recommend either \href{https://www.tug.org/texlive/}{TeX Live} or \href{https://miktex.org/}{MikTeX}. After installing \LaTeX, select an editor for writing and editing your documents. A helpful overview of editors is available on \href{https://tex.stackexchange.com/questions/339/latex-editors-ides}{TeX Stack Exchange}. Once \LaTeX~and your editor are set up, clone the template from GitHub and start writing. \begin{block}[tip] -In the official GitHub repository, you'll find a \href{https://github.com/joseareia/ipleiria-thesis/blob/master/Makefile}{Makefile} and a \href{https://github.com/joseareia/ipleiria-thesis/blob/master/.latexmkrc}{Latexmk configuration file}, either of which can be used to compile the project. The Makefile supports both \texttt{rubber} and \texttt{latexmk} as compilers, so you can choose the one that best suits your preferences. +In this repository, you'll find a \href{https://github.com/pmdlt/epfl-thesis/blob/master/Makefile}{Makefile} and a \href{https://github.com/pmdlt/epfl-thesis/blob/master/.latexmkrc}{Latexmk configuration file}, either of which can be used to compile the project. The Makefile supports both \texttt{rubber} and \texttt{latexmk} as compilers. \end{block} \section{Getting Help} -As a newcomer, you may encounter situations where you want to do something in \LaTeX~or with this template but aren't sure how. When questions arise, you have several options. First, you can read the wiki available in the \href{https://github.com/joseareia/ipleiria-thesis}{GitHub} repository for this template. Another great option is the \href{https://tex.stackexchange.com/}{TeX Stack Exchange}, an active community that can help with nearly any issue. Of course, Google is always a reliable resource. If all else fails, feel free to contact me directly with any questions about the template. You can reach me at \textit{\textcolor{blue}{\ul{jose.apareia@gmail.com}}}. +As a newcomer, you may encounter situations where you want to do something in \LaTeX~or with this template but aren't sure how. When questions arise, you have several options. The \href{https://tex.stackexchange.com/}{TeX Stack Exchange} is an active community that can help with nearly any issue. The demo chapters in this document also explain how to use the template. Of course, searching online is always a reliable resource. -\subsection{Issues, Feature Request and Suggestions} -If, by any chance, you encounter a bug, have a suggestion, or would like to request a feature, you can submit them via the \textit{Issues} tab in the \href{https://github.com/joseareia/ipleiria-thesis}{GitHub} repository. Please be as descriptive as possible when reporting issues, and make sure to provide the appropriate labels to help me triage them effectively. +\subsection{Issues and Suggestions} +If you encounter a bug or have a suggestion, you can submit them via the \textit{Issues} tab in the \href{https://github.com/pmdlt/epfl-thesis}{GitHub} repository. Please be as descriptive as possible when reporting issues. -For feature requests or suggestions, you can either follow the steps mentioned above or, if you prefer, you can implement the feature yourself and submit a pull request. Both pull requests and pushes trigger a \href{https://github.com/joseareia/ipleiria-thesis/actions/workflows/latex.yml}{GitHub Action} that will automatically compile the document. If the compilation fails, the pull request will be automatically rejected. Please keep this in mind and take care when submitting changes. +Pull requests and pushes trigger a \href{https://github.com/pmdlt/epfl-thesis/actions/workflows/latex.yml}{GitHub Action} that automatically compiles the document. If the compilation fails, the pull request checks will fail. Please keep this in mind when submitting changes. \subsection{In-Built Comments, Guidance Texts and Warnings} Within this document template, you may encounter informational text displaying the message ``Writing Guidance.'' These sections are provided solely as guidance to help users understand what content should be included in specific sections. They are not related to the \LaTeX~code itself within this template. -While navigating through the template, especially the configuration files, you will notice that everything is thoroughly commented. \LaTeX~can sometimes be difficult to understand without proper documentation for the packages we are working with. With that in mind, I have made an effort to comment on all the changes I’ve made. Occasionally, I may forget or deem it unnecessary to comment on simpler changes, but more advanced modifications are always accompanied by detailed comments. +While navigating through the template, especially the configuration files, you will notice that everything is thoroughly commented. \LaTeX~can sometimes be difficult to understand without proper documentation for the packages we are working with. With that in mind, advanced modifications are accompanied by detailed comments. -Finally, regarding warnings: please take them into consideration when compiling the document. As you may have noticed, the template is designed to be free of warnings, so please strive to maintain this clean compilation. +Finally, regarding warnings: please take them into consideration when compiling the document. The template is designed to compile cleanly, so please strive to maintain warning-free builds. \section{Important Notices} -Although this template is specifically tailored for students from all six schools of the Polytechnic University of Leiria, you are welcome to use it if you are from a different institution. It is highly customisable and can be easily modified to suit the needs of other schools. If your school is interested in adopting this as the official template, please contact me first. +This template is tailored for EPFL students writing theses, dissertations, and academic reports. Update the metadata in \texttt{Metadata/Metadata.tex} with your school, department, supervisors, and thesis details before submitting your work. -If you decide to use this template, please consider acknowledging it in your work. To do so, simply cite it using \verb|\citep{IPLeiriaThesis}|. You can also show your appreciation for this template by giving a \href{https://github.com/joseareia/ipleiria-thesis/stargazers}{star} on the GitHub repository. This helps increase its visibility, and you will receive notifications about the latest updates and releases. Either way, acknowledging this work, which involved significant effort and countless hours, would be greatly appreciated. \ No newline at end of file +If you find this template useful, consider giving the \href{https://github.com/pmdlt/epfl-thesis}{repository} a star on GitHub to help others discover it. diff --git a/Chapters/02-User-Guide.tex b/Chapters/02-User-Guide.tex index da84510..b58876c 100644 --- a/Chapters/02-User-Guide.tex +++ b/Chapters/02-User-Guide.tex @@ -1,7 +1,7 @@ \chapter[Comprehensive User Guide: Instructions for Using the Template]{Comprehensive User Guide Instructions for Using the Template} \label{cp:user-guide} -If you plan to use this template, please read this chapter carefully. It provides all the information you need to effectively use the template, including the mandatory modifications (\textit{e.g.}, title, subtitle, author information) and other configurations that, while not highly recommended, are optional. The template comprises various directories and files, including a total of seven distinct directories and dozens of files. Among these, the most important are \texttt{IPLeiriaMain.tex} and \texttt{IPLeiriaThesis.cls}. Below, \autoref{tab:file-structure} presents the different directories available, along with their descriptions and a check-mark indicating whether you need to access the directory to make changes. Of course, the check mark indicates that you can make changes to the content, while a hyphen signifies that you should not modify it. +If you plan to use this template, please read this chapter carefully. It provides all the information you need to effectively use the template, including the mandatory modifications (\textit{e.g.}, title, subtitle, author information) and other configurations that, while not highly recommended, are optional. The template comprises various directories and files, including a total of seven distinct directories and dozens of files. Among these, the most important are \texttt{EPFLMain.tex} and \texttt{EPFLThesis.cls}. Below, \autoref{tab:file-structure} presents the different directories available, along with their descriptions and a check-mark indicating whether you need to access the directory to make changes. Of course, the check mark indicates that you can make changes to the content, while a hyphen signifies that you should not modify it. \begin{table}[!htpb] \setlength{\extrarowheight}{2pt} @@ -26,14 +26,14 @@ It is crucial to note that the files are organised according to a specific naming convention, which must be \textbf{respected} and \textbf{maintained}. The naming convention consists of an ascending two-digit numeric value, followed by a hyphen, and then the file name in capital letters. The name should always aim to be a single word. If more than one word is necessary, they should be separated by a hyphen and capitalised. \begin{block}[note] -While \autoref{tab:file-structure} indicates that the \textit{Matter} directory is not modifiable, two files within that directory should be altered when necessary: \texttt{04-Glossary.tex} and \texttt{05-Acronyms.tex}. Although the names are fairly self-explanatory, these files should contain the glossary and acronyms entries, respectively. +While \autoref{tab:file-structure} indicates that the \textit{Matter} directory is not modifiable, two files within that directory should be altered when necessary: \texttt{05-Glossary.tex} and \texttt{06-Acronyms.tex}. Although the names are fairly self-explanatory, these files should contain the glossary and acronyms entries, respectively. \end{block} -The two files mentioned earlier, \texttt{IPLeiriaMain.tex} and \texttt{IPLeiriaThesis.cls}, should be used with caution. The main file, as the name suggests, is the master file where you will add the necessary chapters to be included in your work. The class file, on the other hand, requires even more caution, and it is not recommended to alter it. +The two files mentioned earlier, \texttt{EPFLMain.tex} and \texttt{EPFLThesis.cls}, should be used with caution. The main file, as the name suggests, is the master file where you will add the necessary chapters to be included in your work. The class file, on the other hand, requires even more caution, and it is not recommended to alter it. \section{Template and Class Options} \label{sec:class-options} -The first thing you need to do is specify the options within the \texttt{IPLeiriaMain.tex} file. How do you do that? It's simple. On the very first line, you will find a \texttt{documentclass} command that loads the custom class for this template. In this call, you can pass the options you need. The available options, presented in a key-argument style, are listed in \autoref{tab:template-options}. +The first thing you need to do is specify the options within the \texttt{EPFLMain.tex} file. How do you do that? It's simple. At the top of the file, you will find a \texttt{documentclass} command that loads the custom class for this template. In this call, you can pass the options you need. The available options, presented in a key-argument style, are listed in \autoref{tab:template-options}. { \setlength{\extrarowheight}{-1.75pt} @@ -62,21 +62,17 @@ \section{Template and Class Options} \bottomrule \endlastfoot -\textbf{school=OPT} & \textbf{Choosing a school and its corresponding logo.} \\ -\multirow[t]{2}{*}{\footnotesize{\textit{estg, esecs, esslei, esad, estm, utnfrba}}} & \footnotesize{\textit{$\Rightarrow$ Default: school=estg}} \\ -& \footnotesize{\textit{This option only modifies the school name and the corresponding logo, which will be displayed on the cover and front page.}} \\[1.70em] - \textbf{language=OPT} & \textbf{Language preference selection.} \\ \footnotesize{\textit{portuguese, english, spanish}} & \footnotesize{\textit{$\Rightarrow$ Default: language=english}} \\[0.85em] -\textbf{chapterstyle=OPT} & \textbf{Selection of a cover design style.} \\ +\textbf{chapterstyle=OPT} & \textbf{Selection of a chapter design style.} \\ \multirow[t]{2}{*}{\footnotesize{\textit{classic, modern, fancy}}} & \footnotesize{\textit{$\Rightarrow$ Default: chapterstyle=classic}} \\ & \footnotesize{\textit{This option modifies the appearance of the chapter, including its title and numbering style. Explore the available styles and apply the one you prefer.}} \\[1.70em] -\textbf{coverstyle=OPT} & \textbf{Choosing a style for the chapter.} \\ +\textbf{coverstyle=OPT} & \textbf{Choosing a style for the cover.} \\ \multirow[t]{3}{*}{\footnotesize{\textit{classic, bw}}} & \footnotesize{\textit{$\Rightarrow$ Default: coverstyle=classic}} \\ -& \footnotesize{\textit{classic $\rightarrow$ Put the cover on in the original red.}} \\ -& \footnotesize{\textit{bw $\rightarrow$ Make the cover black and white.}} \\ +& \footnotesize{\textit{classic $\rightarrow$ EPFL cover with red gradient background.}} \\ +& \footnotesize{\textit{bw $\rightarrow$ Black and white cover variant.}} \\ \textbf{docstage=OPT} & \textbf{Choosing a stage for you document.} \\ \multirow[t]{3}{*}{\footnotesize{\textit{final, working}}} & \footnotesize{\textit{$\Rightarrow$ Default: docstage=final}} \\ @@ -110,7 +106,7 @@ \section{Template and Class Options} \section{Metadata Customisation} \label{sec:metadata} -While options like language and school can be passed as arguments to the main class, other options, such as author and title, must be defined manually. Since this template supports a wide range of metadata options, a dedicated file is provided for this purpose. The file at \texttt{Metadata/Metadata.tex} lists metadata variables, with comments on whether they are mandatory. Comment out the variables to omit them. \autoref{tab:metadata} includes all metadata variables, their GET command, and if they are mandatory. The GET command automatically retrieves the information from the stored variable. +While options like language can be passed as arguments to the main class, other options, such as author and title, must be defined manually. Since this template supports a wide range of metadata options, a dedicated file is provided for this purpose. The file at \texttt{Metadata/Metadata.tex} lists metadata variables, with comments on whether they are mandatory. Comment out the variables to omit them. \autoref{tab:metadata} includes all metadata variables, their GET command, and if they are mandatory. The GET command automatically retrieves the information from the stored variable. \begin{longtable}[c]{llc} \caption{Metadata variables within the template.} @@ -171,7 +167,7 @@ \section{Metadata Customisation} Second co-supervisor title and affiliation & \verb|\GetSecCoSupervisorTitle| & - \\ \end{longtable} -If, by any chance, \textbf{you want to add more options}, please contact me by opening an issue in the official GitHub repository or via the email provided in this document. +If you want to add more metadata options, open an issue in the \href{https://github.com/pmdlt/epfl-thesis}{GitHub repository}. \section{Custom Chapter Insertion} As stated before, to use this template, you need to do three things: set the appropriate options in the document class (see \autoref{sec:class-options}), update the document metadata (see \autoref{sec:metadata}), and create and import your custom chapters. To create and import a custom chapter, follow these steps: \(i\) create a TeX file in the Chapters directory that follows the predefined naming convention and \(ii)\) include it in the main file using the command \verb|\include{CHAPTER}|. And voilà, your first chapter is ready! @@ -207,4 +203,4 @@ \section{Custom Commands} This is a note block. \end{block} \end{tcbraster} -\vspace{.875em} \ No newline at end of file +\vspace{.875em} diff --git a/Chapters/03-Latex-Tutorial.tex b/Chapters/03-Latex-Tutorial.tex index 0422cf0..06c160b 100644 --- a/Chapters/03-Latex-Tutorial.tex +++ b/Chapters/03-Latex-Tutorial.tex @@ -11,7 +11,7 @@ \section{Citations} Proper citations are vital in academic writing and ensure credibility, transparency, and knowledge advancement. They are essential for responsible scholarship. Ensure accuracy and appropriateness. \end{block} -\noindent\textbf{Example:} A novel signature scheme is introduced, along with an implementation of the Diffie-Hellman key distribution scheme that accomplishes a public key cryptosystem \citep{Elgamal1985}. According to \citet{Elgamal1985}, a new signature scheme that accomplishes a public key cryptosystem is introduced (...) This template was created by \citeauthor{IPLeiriaThesis}, with the title \citetitle{IPLeiriaThesis}. +\noindent\textbf{Example:} A novel signature scheme is introduced, along with an implementation of the Diffie-Hellman key distribution scheme that accomplishes a public key cryptosystem \citep{Elgamal1985}. According to \citet{Elgamal1985}, a new signature scheme that accomplishes a public key cryptosystem is introduced (...). \section{References} Much like citations, it is advisable to employ references in your document for citing crucial elements such as chapters, sections, figures, or tables. To reference these elements, begin by creating a label. This label can be generated using \verb|\label{TEXT}|, and it should be positioned within the element you intend to refer to. Once the element is created, you can utilise \verb|\ref{LABEL}| to generate an in-text reference. \textbf{We strongly recommend using} \verb|\autoref{LABEL}|. This command automatically creates a custom link with color corresponding to the type of element being referred to. For instance, a chapter reference will appear like this: \autoref{cp:introduction}, rather than simply Chapter \ref{cp:introduction}. diff --git a/IPLeiriaMain.tex b/EPFLMain.tex similarity index 84% rename from IPLeiriaMain.tex rename to EPFLMain.tex index d7489db..10fb48d 100644 --- a/IPLeiriaMain.tex +++ b/EPFLMain.tex @@ -1,13 +1,9 @@ -% Author Name: José Areia -% Author Contact: jose.apareia@gmail.com -% Version: 2.2.13 - 2026/01/06 -% Public Repository: https://github.com/joseareia/ipleiria-thesis -% Wiki/Getting Help: https://github.com/joseareia/ipleiria-thesis/wiki +% EPFL Thesis Template +% Repository: https://github.com/pmdlt/epfl-thesis %%% Document Options %%% \documentclass[ language=english, - school=epfl, docstage=final, media=paper, bookprint=false, @@ -16,7 +12,7 @@ coverstyle=classic, aiacknowledgement=true, listprefix=false -]{IPLeiriaThesis} % Refer to the Wiki for a list of available options. +]{EPFLThesis} %%% Document Version %%% \DocumentVersion{1.0.0} % Required only if the 'docstage' is set to 'working'. @@ -86,4 +82,4 @@ %%% Back Page %%% \input{Matter/10-Back-Page} -\end{document} \ No newline at end of file +\end{document} diff --git a/IPLeiriaThesis.cls b/EPFLThesis.cls similarity index 59% rename from IPLeiriaThesis.cls rename to EPFLThesis.cls index 2a50282..0518b3d 100644 --- a/IPLeiriaThesis.cls +++ b/EPFLThesis.cls @@ -1,79 +1,68 @@ -% Author Name: José Areia -% Author Contact: jose.apareia@gmail.com -% Version: 2.2.13 - 2026/01/06 -% Public Repository: https://github.com/joseareia/ipleiria-thesis -% Wiki/Getting Help: https://github.com/joseareia/ipleiria-thesis/wiki +% EPFL Thesis LaTeX Class +% Repository: https://github.com/pmdlt/epfl-thesis +% Version: 1.0.0 - 2026/06/09 %%% Class Information %%% \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{IPLeiriaThesis}[2023/12/12 IPLeiria Thesis Class] +\ProvidesClass{EPFLThesis}[2026/06/09 EPFL Thesis Class] \RequirePackage{expl3} % Required for writing LaTeX3 code in this class. %%% Handle Class Options %%% \ExplSyntaxOn -\cs_new:Npn \IPLeiriaThesis_check_color:n #1 { +\cs_new:Npn \EPFLThesis_check_color:n #1 { \tl_set:Nn \l_tmpa_tl { #1 } \color_set:nn { \l_tmpa_tl } { #1 } } -\keys_define:nn { IPLeiriaThesis } { - school .choices:nn = - { estg, esecs, esslei, esad, estm, epfl, utnfrba } - { \tl_gset:Nn \g_IPLeiriaThesis_myschool_tl { #1 } }, - school / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis} - {Specified~'school'~not~available.~Defaulting~to~'estg'} }, - school .default:n = { estg }, - school .initial:n = { estg }, - +\keys_define:nn { EPFLThesis } { coverstyle .choices:nn = { classic, bw } - { \tl_gset:Nn \g_IPLeiriaThesis_mycover_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_mycover_tl { #1 } }, coverstyle / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'coverstyle'~not~available.~Defaulting~to~'classic'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'coverstyle'~not~available.~Defaulting~to~'classic'} }, coverstyle .default:n = { classic }, coverstyle .initial:n = { classic }, language .choices:nn = { english, portuguese, spanish } - { \tl_gset:Nn \g_IPLeiriaThesis_mylanguage_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_mylanguage_tl { #1 } }, language / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'language'~not~available.~Defaulting~to~'english'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'language'~not~available.~Defaulting~to~'english'} }, language .default:n = { english }, language .initial:n = { english }, chapterstyle .choices:nn = { classic, fancy, modern } - { \tl_gset:Nn \g_IPLeiriaThesis_style_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_style_tl { #1 } }, chapterstyle / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'chapterstyle'~not~available.~Defaulting~to~'classic'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'chapterstyle'~not~available.~Defaulting~to~'classic'} }, chapterstyle .default:n = { classic }, chapterstyle .initial:n = { classic }, docstage .choices:nn = { working, final } - { \tl_gset:Nn \g_IPLeiriaThesis_docstage_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_docstage_tl { #1 } }, docstage / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'docstage'~not~available.~Defaulting~to~'working'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'docstage'~not~available.~Defaulting~to~'working'} }, docstage .default:n = { working }, docstage .initial:n = { working }, media .choices:nn = { paper, screen } - { \tl_gset:Nn \g_IPLeiriaThesis_media_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_media_tl { #1 } }, media / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'media'~not~available.~Defaulting~to~'paper'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'media'~not~available.~Defaulting~to~'paper'} }, media .default:n = { paper }, media .initial:n = { paper }, linkcolor .code:n = { - \tl_gset:Nn \g_IPLeiriaThesis_linkcolor_tl { #1 } - \IPLeiriaThesis_check_color:n { #1 } + \tl_gset:Nn \g_EPFLThesis_linkcolor_tl { #1 } + \EPFLThesis_check_color:n { #1 } \tl_if_eq:NNTF \l_tmpa_tl \q_no_value { - \tl_gset:Nn \g_IPLeiriaThesis_linkcolor_tl { black } - \ClassWarningNoLine{IPLeiriaThesis}{Specified~'linkcolor'~not~available.~Defaulting~to~'black'} + \tl_gset:Nn \g_EPFLThesis_linkcolor_tl { black } + \ClassWarningNoLine{EPFLThesis}{Specified~'linkcolor'~not~available.~Defaulting~to~'black'} } }, linkcolor .default:n = { black }, @@ -81,53 +70,52 @@ doctype .choices:nn = { thesis, report } - { \tl_gset:Nn \g_IPLeiriaThesis_doctype_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_doctype_tl { #1 } }, doctype / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'doctype'~not~available.~Defaulting~to~'thesis'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'doctype'~not~available.~Defaulting~to~'thesis'} }, doctype .default:n = { thesis }, doctype .initial:n = { thesis }, bookprint .choices:nn = { true, false } - { \tl_gset:Nn \g_IPLeiriaThesis_bookprint_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_bookprint_tl { #1 } }, bookprint / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'bookprint'~not~available.~Defaulting~to~'false'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'bookprint'~not~available.~Defaulting~to~'false'} }, bookprint .default:n = { false }, bookprint .initial:n = { false }, aiacknowledgement .choices:nn = { true, false } - { \tl_gset:Nn \g_IPLeiriaThesis_aiacknowledgement_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_aiacknowledgement_tl { #1 } }, aiacknowledgement / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'aiacknowledgement'~not~available.~Defaulting~to~'true'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'aiacknowledgement'~not~available.~Defaulting~to~'true'} }, aiacknowledgement .default:n = { true }, aiacknowledgement .initial:n = { true }, listprefix .choices:nn = { true, false } - { \tl_gset:Nn \g_IPLeiriaThesis_listprefix_tl { #1 } }, + { \tl_gset:Nn \g_EPFLThesis_listprefix_tl { #1 } }, listprefix / unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{Specified~'listprefix'~not~available.~Defaulting~to~'false'} }, + { \ClassWarningNoLine{EPFLThesis}{Specified~'listprefix'~not~available.~Defaulting~to~'false'} }, listprefix .default:n = { false }, listprefix .initial:n = { false }, unknown .code:n = - { \ClassWarningNoLine{IPLeiriaThesis}{An~unknown~option~was~ignored.~Please~check~the~documentation~to~see~the~available~options} } + { \ClassWarningNoLine{EPFLThesis}{An~unknown~option~was~ignored.~Please~check~the~documentation~to~see~the~available~options} } } -\newcommand{\LanguageOption}{\g_IPLeiriaThesis_mylanguage_tl} -\newcommand{\SchoolOption}{\g_IPLeiriaThesis_myschool_tl} -\newcommand{\CoverOption}{\g_IPLeiriaThesis_mycover_tl} -\newcommand{\ChapterOption}{\g_IPLeiriaThesis_style_tl} -\newcommand{\DocStageOption}{\g_IPLeiriaThesis_docstage_tl} -\newcommand{\MediaOption}{\g_IPLeiriaThesis_media_tl} -\newcommand{\ColorOption}{\g_IPLeiriaThesis_linkcolor_tl} -\newcommand{\DocTypeOption}{\g_IPLeiriaThesis_doctype_tl} -\newcommand{\BookPrintOption}{\g_IPLeiriaThesis_bookprint_tl} -\newcommand{\AiAckOption}{\g_IPLeiriaThesis_aiacknowledgement_tl} -\newcommand{\ListPrefixOption}{\g_IPLeiriaThesis_listprefix_tl} - -\ProcessKeyOptions[IPLeiriaThesis] +\newcommand{\LanguageOption}{\g_EPFLThesis_mylanguage_tl} +\newcommand{\CoverOption}{\g_EPFLThesis_mycover_tl} +\newcommand{\ChapterOption}{\g_EPFLThesis_style_tl} +\newcommand{\DocStageOption}{\g_EPFLThesis_docstage_tl} +\newcommand{\MediaOption}{\g_EPFLThesis_media_tl} +\newcommand{\ColorOption}{\g_EPFLThesis_linkcolor_tl} +\newcommand{\DocTypeOption}{\g_EPFLThesis_doctype_tl} +\newcommand{\BookPrintOption}{\g_EPFLThesis_bookprint_tl} +\newcommand{\AiAckOption}{\g_EPFLThesis_aiacknowledgement_tl} +\newcommand{\ListPrefixOption}{\g_EPFLThesis_listprefix_tl} + +\ProcessKeyOptions[EPFLThesis] \ExplSyntaxOff %%% Load Master Class %%% @@ -188,4 +176,4 @@ \usepackage{Configurations/08-Tables} \usepackage{Configurations/09-Code} \usepackage{Configurations/10-Macros} -\usepackage{Configurations/11-Metadata} \ No newline at end of file +\usepackage{Configurations/11-Metadata} diff --git a/Figures/Theme/Back-Page-BG-W.pdf b/Figures/Theme/Back-Page-BG-W.pdf deleted file mode 100644 index 28fd048..0000000 Binary files a/Figures/Theme/Back-Page-BG-W.pdf and /dev/null differ diff --git a/Figures/Theme/Back-Page-BG.pdf b/Figures/Theme/Back-Page-BG.pdf deleted file mode 100644 index 9fb8415..0000000 Binary files a/Figures/Theme/Back-Page-BG.pdf and /dev/null differ diff --git a/Figures/Theme/Cover-BG.pdf b/Figures/Theme/Cover-BG.pdf deleted file mode 100644 index 23dd508..0000000 Binary files a/Figures/Theme/Cover-BG.pdf and /dev/null differ diff --git a/Figures/Theme/Front-Page-BG.pdf b/Figures/Theme/Front-Page-BG.pdf deleted file mode 100644 index 7f026bb..0000000 Binary files a/Figures/Theme/Front-Page-BG.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-B.pdf deleted file mode 100644 index 9b119de..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-W.pdf deleted file mode 100644 index 6cbaeb3..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-B.pdf deleted file mode 100644 index 57e5c62..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-W.pdf deleted file mode 100644 index bb13a50..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-B.pdf deleted file mode 100644 index 048f181..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-W.pdf deleted file mode 100644 index 9d5688a..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-B.pdf deleted file mode 100644 index 337b95b..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-W.pdf deleted file mode 100644 index 9003987..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-B.pdf deleted file mode 100644 index e4aa5e9..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-W.pdf deleted file mode 100644 index 0a3cb8f..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-Logo-B.pdf b/Figures/Theme/Logotypes/IPLeiria-Logo-B.pdf deleted file mode 100644 index 8046f97..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/IPLeiria-Logo-W.pdf b/Figures/Theme/Logotypes/IPLeiria-Logo-W.pdf deleted file mode 100644 index 6c87851..0000000 Binary files a/Figures/Theme/Logotypes/IPLeiria-Logo-W.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/UTN-FRBA-Logo-B.pdf b/Figures/Theme/Logotypes/UTN-FRBA-Logo-B.pdf deleted file mode 100644 index d6a2296..0000000 Binary files a/Figures/Theme/Logotypes/UTN-FRBA-Logo-B.pdf and /dev/null differ diff --git a/Figures/Theme/Logotypes/UTN-FRBA-Logo-W.pdf b/Figures/Theme/Logotypes/UTN-FRBA-Logo-W.pdf deleted file mode 100644 index 0a45084..0000000 Binary files a/Figures/Theme/Logotypes/UTN-FRBA-Logo-W.pdf and /dev/null differ diff --git a/IPLeiriaMain.pdf b/IPLeiriaMain.pdf deleted file mode 100644 index 91a77a2..0000000 Binary files a/IPLeiriaMain.pdf and /dev/null differ diff --git a/Makefile b/Makefile index fa7d9fb..dbd67aa 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # Reference Link: https://scaron.info/blog/makefiles-for-latex.html # Dependencies: ["rubber", "latexmk", "inotify-tools"] -DOCUMENT=IPLeiriaMain.tex +DOCUMENT=EPFLMain.tex SHELL=/bin/bash TOOL=latexmk @@ -22,9 +22,9 @@ check-minted: echo "Detected minted version: $$MINTED_VERSION"; \ MAJOR_VERSION=$$(echo $$MINTED_VERSION | cut -d. -f1); \ if [ "$$MAJOR_VERSION" -lt 3 ]; then \ - echo "Version < 3.0.0, modifying IPLeiriaThesis.cls..."; \ - sed -i.bak 's/\\RequirePackage\[newfloat\]{minted}/\\RequirePackage[newfloat,outputdir=.aux]{minted}/' IPLeiriaThesis.cls; \ - echo "Modification complete. Backup saved as IPLeiriaThesis.cls.bak"; \ + echo "Version < 3.0.0, modifying EPFLThesis.cls..."; \ + sed -i.bak 's/\\RequirePackage\[newfloat\]{minted}/\\RequirePackage[newfloat,outputdir=.aux]{minted}/' EPFLThesis.cls; \ + echo "Modification complete. Backup saved as EPFLThesis.cls.bak"; \ else \ echo "Version >= 3.0.0, no modification required."; \ fi diff --git a/Matter/00-Cover.tex b/Matter/00-Cover.tex index e487a31..c83cf91 100644 --- a/Matter/00-Cover.tex +++ b/Matter/00-Cover.tex @@ -1,43 +1,21 @@ \ifthenelse{\equal{\CoverOption}{classic}}{ - \ifthenelse{\equal{\SchoolOption}{epfl}}{ - \newcommand\BackgroundPicCover{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Cover-BG.pdf}% - \vfill - }}} - }{ - \newcommand\BackgroundPicCover{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/Cover-BG.pdf}% - \vfill - }}} - } + \newcommand\BackgroundPicCover{% + \put(0,0){% + \parbox[b][\paperheight]{\paperwidth}{% + \vfill + \centering + \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Cover-BG.pdf}% + \vfill + }}} }{ - \ifthenelse{\equal{\SchoolOption}{epfl}}{ - \newcommand\BackgroundPicCover{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Front-Page-BG.pdf}% - \vfill - }}} - }{ - \newcommand\BackgroundPicCover{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/Front-Page-BG.pdf}% - \vfill - }}} - } + \newcommand\BackgroundPicCover{% + \put(0,0){% + \parbox[b][\paperheight]{\paperwidth}{% + \vfill + \centering + \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Front-Page-BG.pdf}% + \vfill + }}} } \AddToShipoutPictureBG*{\BackgroundPicCover} @@ -49,94 +27,15 @@ \vspace*{\baselineskip} \ifthenelse{\equal{\CoverOption}{classic}}{ - \ifthenelse{\equal{\SchoolOption}{estg}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-W.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esad}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-W.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esslei}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-W.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{estm}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-W.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esecs}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-W.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{epfl}}{ - \noindent - \makebox[\textwidth][l]{% - \includegraphics[width=0.35\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_WHITE_PROD.png} - } - }{} - - \ifthenelse{\equal{\SchoolOption}{utnfrba}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/UTN-FRBA-Logo-W.pdf} - \end{figure} - \vspace{-1.8\baselineskip} - }{} - } { - \ifthenelse{\equal{\SchoolOption}{estg}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-B.pdf} - % \includegraphics[width=0.4\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-Old.png} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esad}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-B.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esslei}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-B.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{estm}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-B.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{esecs}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-B.pdf} - \end{figure} - }{} - - \ifthenelse{\equal{\SchoolOption}{epfl}}{ - \noindent - \makebox[\textwidth][l]{% - \includegraphics[width=0.25\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_BLACK_PROD.png} - } - }{} - - \ifthenelse{\equal{\SchoolOption}{utnfrba}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/UTN-FRBA-Logo-B.pdf} - \end{figure} - \vspace{-1.8\baselineskip} - }{} + \noindent + \makebox[\textwidth][l]{% + \includegraphics[width=0.35\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_WHITE_PROD.png} + } + }{ + \noindent + \makebox[\textwidth][l]{% + \includegraphics[width=0.25\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_BLACK_PROD.png} + } } \vspace{5.5\baselineskip} @@ -206,4 +105,4 @@ \vspace{68pt} \end{titlepage} \restoregeometry -\MediaOptionLogicBlank \ No newline at end of file +\MediaOptionLogicBlank diff --git a/Matter/01-Front-Page.tex b/Matter/01-Front-Page.tex index 2463838..8245e98 100644 --- a/Matter/01-Front-Page.tex +++ b/Matter/01-Front-Page.tex @@ -1,22 +1,11 @@ -\ifthenelse{\equal{\SchoolOption}{epfl}}{ - \newcommand\BackgroundPicFrontPage{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Front-Page-BG.pdf}% - \vfill - }}} -}{ - \newcommand\BackgroundPicFrontPage{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/Front-Page-BG.pdf}% - \vfill +\newcommand\BackgroundPicFrontPage{% + \put(0,0){% + \parbox[b][\paperheight]{\paperwidth}{% + \vfill + \centering + \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Front-Page-BG.pdf}% + \vfill }}} -} \AddToShipoutPictureBG*{\BackgroundPicFrontPage} \newgeometry{margin=1.98cm, top=2.15cm, bottom=1.47cm} @@ -25,49 +14,9 @@ \color{frontpagedark} \vspace*{\baselineskip} - \ifthenelse{\equal{\SchoolOption}{estg}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-B.pdf} - % \includegraphics[width=0.4\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTG-Logo-Old.png} - \end{figure} - } - - \ifthenelse{\equal{\SchoolOption}{esad}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESAD-Logo-B.pdf} - \end{figure} - } - - \ifthenelse{\equal{\SchoolOption}{esslei}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESSLEI-Logo-B.pdf} - \end{figure} - } - - \ifthenelse{\equal{\SchoolOption}{estm}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESTM-Logo-B.pdf} - \end{figure} - } - - \ifthenelse{\equal{\SchoolOption}{esecs}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/IPLeiria-ESECS-Logo-B.pdf} - \end{figure} - } - - \ifthenelse{\equal{\SchoolOption}{epfl}}{ - \noindent - \makebox[\textwidth][l]{% - \includegraphics[width=0.35\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_BLACK_PROD.png} - } - } - - \ifthenelse{\equal{\SchoolOption}{utnfrba}}{ - \begin{figure} - \includegraphics[width=0.485\linewidth]{Figures/Theme/Logotypes/UTN-FRBA-Logo-B.pdf} - \end{figure} - \vspace{-1.8\baselineskip} + \noindent + \makebox[\textwidth][l]{% + \includegraphics[width=0.35\linewidth]{Figures/Theme/Logotypes/EPFL_Logo_Digital_BLACK_PROD.png} } \vspace{3.5\baselineskip} @@ -161,4 +110,4 @@ \vspace{68pt} \end{titlepage} \restoregeometry -\MediaOptionLogicBlank \ No newline at end of file +\MediaOptionLogicBlank diff --git a/Matter/02-Copyright.tex b/Matter/02-Copyright.tex index b8bb014..6d60be4 100644 --- a/Matter/02-Copyright.tex +++ b/Matter/02-Copyright.tex @@ -9,15 +9,11 @@ \vspace{.575em} - \noindent A presente dissertação é um trabalho original, elaborado exclusivamente para este fim, tendo sido devidamente citados todos os autores cujos estudos contribuíram para a sua elaboração. É permitida a sua reprodução parcial com indicação do autor e referência ao grau, ano letivo, instituição---\textit{Politécnico de Leiria}---e data da defesa pública. + \noindent A presente dissertação é um trabalho original, elaborado exclusivamente para este fim, tendo sido devidamente citados todos os autores cujos estudos contribuíram para a sua elaboração. É permitida a sua reprodução parcial com indicação do autor e referência ao grau, ano letivo, instituição---\textit{École polytechnique fédérale de Lausanne (EPFL)}---e data da defesa pública. \vspace{1.395em} \noindent\psvectorian[scale=.25,opacity=.80]{2} - - \vspace{.935em} - - \noindent O presente trabalho beneficiou da utilização do modelo \textit{IPLeiria-Thesis}. }{\ifthenelse{\equal{\LanguageOption}{spanish}}{% \noindent \textbf{\GetTitle} @@ -25,15 +21,11 @@ \vspace{.575em} - \noindent La presente disertación es un trabajo original, elaborado exclusivamente para este fin, habiendo sido debidamente citados todos los autores cuyos estudios contribuyeron a su elaboración. Se permite su reproducción parcial con indicación del autor y referencia al grado, año académico, institución---\textit{Politécnico de Leiria}---y fecha de defensa pública. + \noindent La presente disertación es un trabajo original, elaborado exclusivamente para este fin, habiendo sido debidamente citados todos los autores cuyos estudios contribuyeron a su elaboración. Se permite su reproducción parcial con indicación del autor y referencia al grado, año académico, institución---\textit{École polytechnique fédérale de Lausanne (EPFL)}---y fecha de defensa pública. \vspace{1.395em} \noindent\psvectorian[scale=.25,opacity=.80]{2} - - \vspace{.935em} - - \noindent La preparación de este trabajo fue facilitada por el uso de la plantilla \href{https://github.com/joseareia/ipleiria-thesis}{\textit{IPLeiria-Thesis}}. }{% \noindent \textbf{\GetTitle} @@ -41,16 +33,12 @@ \vspace{.575em} - \noindent This dissertation is original work, written solely for this purpose, and all the authors whose studies and publications contributed to it have been duly cited. Partial reproduction is allowed with acknowledgment of the author and reference to the degree, academic year, institution---\textit{Polytechnic University of Leiria}---and public defense date. + \noindent This dissertation is original work, written solely for this purpose, and all the authors whose studies and publications contributed to it have been duly cited. Partial reproduction is allowed with acknowledgment of the author and reference to the degree, academic year, institution---\textit{École polytechnique fédérale de Lausanne (EPFL)}---and public defense date. \vspace{1.395em} \noindent\psvectorian[scale=.25,opacity=.80]{2} - - \vspace{.935em} - - \noindent Preparation of this work was facilitated by the use of the \href{https://github.com/joseareia/ipleiria-thesis}{\textit{IPLeiria-Thesis}} template. }} \vspace*{\fill} -\MediaOptionLogic \ No newline at end of file +\MediaOptionLogic diff --git a/Matter/10-Back-Page.tex b/Matter/10-Back-Page.tex index 9275754..629984d 100644 --- a/Matter/10-Back-Page.tex +++ b/Matter/10-Back-Page.tex @@ -4,28 +4,17 @@ \null \thispagestyle{empty} -\ifthenelse{\equal{\CoverOption}{classic}}{ - \newcommand\BackgroundPicBackPage{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/Back-Page-BG.pdf}% - \vfill - }}} -}{ - \newcommand\BackgroundPicBackPage{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/Back-Page-BG-W.pdf}% - \vfill - }}} -} +\newcommand\BackgroundPicBackPage{% +\put(0,0){% +\parbox[b][\paperheight]{\paperwidth}{% +\vfill +\centering +\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{Figures/Theme/EPFL-Back-Page-BG.pdf}% +\vfill +}}} \AddToShipoutPictureBG*{\BackgroundPicBackPage} \newgeometry{margin=1.98cm, top=1.47cm, bottom=1.47cm} \noindent\clearpage -\restoregeometry \ No newline at end of file +\restoregeometry diff --git a/Metadata/Metadata.tex b/Metadata/Metadata.tex index 3b63016..f024df8 100644 --- a/Metadata/Metadata.tex +++ b/Metadata/Metadata.tex @@ -51,7 +51,7 @@ \ThesisType{Master's Thesis} % Local & Date (Mandatory) -\Date{Leiria, \DTMmonthname{\month} \number\year} +\Date{Lausanne, \DTMmonthname{\month} \number\year} % Academic Year \AcademicYear{2024/25} \ No newline at end of file diff --git a/README-EPFL.md b/README-EPFL.md deleted file mode 100644 index d0ff5d6..0000000 --- a/README-EPFL.md +++ /dev/null @@ -1,111 +0,0 @@ -# EPFL Thesis Template - -This document describes the customization of the IPLeiria thesis template for École Polytechnique Fédérale de Lausanne (EPFL). - -## Quick Start - -To use the EPFL version: - -1. Open `IPLeiriaMain.tex` -2. Set `school=epfl` in the document class options (already configured) -3. Compile with pdfLaTeX: `pdflatex IPLeiriaMain.tex` -4. Run additional passes if needed for references: `pdflatex IPLeiriaMain.tex` - -## Status: ✅ COMPLETE - -The EPFL thesis template has been successfully implemented and tested. All EPFL branding elements are working correctly with pdfLaTeX compilation. - -## EPFL Customizations Implemented - -### 1. School Option -- Added 'epfl' as a school choice in `IPLeiriaThesis.cls` -- Enables EPFL-specific branding throughout the document - -### 2. Colors (Configurations/01-Colors.sty) -- **epflred**: Primary EPFL red (#FF0000) -- **epflgray**: EPFL dark gray (#373A36) -- **epfllightgray**: EPFL light gray (#E5E5E5) -- Updated link colors to use EPFL red - -### 3. Logos and Graphics -- **EPFL Logos**: Located in `Figures/Theme/Logotypes/` - - `EPFL_Logo_Digital_WHITE_PROD.png` (for dark backgrounds) - - `EPFL_Logo_Digital_BLACK_PROD.png` (for light backgrounds) -- **Custom Backgrounds**: Auto-generated EPFL-themed backgrounds - - `EPFL-Cover-BG.pdf` (classic cover with red gradient) - - `EPFL-Front-Page-BG.pdf` (modern front page, clean white) - - `EPFL-Back-Page-BG.pdf` (clean white back page) - -### 4. Metadata Template (Metadata/Metadata.tex) -Updated with EPFL-specific information: -- University: École Polytechnique Fédérale de Lausanne (EPFL) -- School: School of Computer and Communication Sciences -- Department: Department of Computer Science -- Supervisors and committee structure adapted for EPFL format - -### 5. Font Compatibility -- Enhanced font configuration for pdfLaTeX compatibility -- Automatic detection of compilation engine (pdfLaTeX vs XeLaTeX/LuaLaTeX) -- Fallback fonts for pdfLaTeX users - -## File Structure - -``` -/workspaces/epfl-thesis/ -├── IPLeiriaMain.tex # Main document (configured for EPFL) -├── IPLeiriaThesis.cls # Class file (EPFL support added) -├── Configurations/ -│ ├── 00-Fonts.sty # Font configuration (pdfLaTeX compatible) -│ └── 01-Colors.sty # EPFL brand colors -├── Metadata/ -│ └── Metadata.tex # EPFL metadata template -├── Matter/ -│ ├── 00-Cover.tex # Cover page (EPFL logos & backgrounds) -│ └── 01-Front-Page.tex # Front page (EPFL branding) -├── Figures/Theme/ -│ ├── Logotypes/ # EPFL logo files -│ ├── EPFL-Cover-BG.pdf # Custom EPFL cover background -│ ├── EPFL-Front-Page-BG.pdf # Custom EPFL front page background -│ └── EPFL-Back-Page-BG.pdf # Custom EPFL back page background -├── create_epfl_backgrounds.py # Script to generate backgrounds -└── README-EPFL.md # This documentation -``` - -## Compilation - -The template successfully compiles with: -```bash -pdflatex IPLeiriaMain.tex -``` - -Output: `IPLeiriaMain.pdf` (55 pages, ~1.1MB) - -## Features Verified - -✅ EPFL school option working -✅ EPFL colors properly applied -✅ EPFL logos displaying correctly -✅ Custom EPFL backgrounds rendering -✅ pdfLaTeX compatibility resolved -✅ Complete PDF generation successful -✅ All 55 pages rendering without errors - -## Usage Notes - -1. **Font Commands**: The template provides pdfLaTeX-compatible font commands: - - `\latofont` - Sans-serif font for headings - - `\garamondfont` - Roman font alternative - - `\minionfont` - Roman font alternative - -2. **Color Usage**: Use EPFL colors in your content: - ```latex - \textcolor{epflred}{EPFL Red Text} - \textcolor{epflgray}{EPFL Gray Text} - ``` - -3. **Background Customization**: The background generation script can be modified to create additional EPFL-themed graphics if needed. - -## Original Template - -Based on IPLeiria Thesis Template by Instituto Politécnico de Leiria -EPFL customization completed June 2025 diff --git a/README.md b/README.md index 60b7dc3..4463710 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,63 @@ -

- Logo -

- -

- Report a Bug -· - Request a Feature -· - Ask a Question -· - Read the Wiki -

- -

- - - - - -

-
- -

-IPLeiria Thesis is an open-source LaTeX template designed for creating professional thesis, dissertations, and academic reports specifically tailored for the Polytechnic University of Leiria students. It was developed to ensure a clean, aesthetically pleasing, and professional design while remaining highly customizable to suit various needs. The template is also user-friendly, making it accessible even for newcomers. - -Curious to see it in action? Check out the PDF demo for a preview! -

- -

- - - -

- -

-This repository contains all the source code for the template, organised into a clear and well-structured file hierarchy. It also includes various tools and configuration files necessary for compiling the template across different workspaces. -

- -## Installation and Documentation -This template is available online on [Overleaf](https://www.overleaf.com/latex/templates/polytechnic-university-of-leiria-thesis-template/tqgbrncfhwgt), providing a **hassle-free way to compile it without the need to install any dependencies**. If you plan to use the template locally or have any questions, please refer to our [GitHub Wiki](https://github.com/joseareia/ipleiria-thesis/wiki) for comprehensive guidance. However, before you start using the template, be sure to read the [Instructions for Using the Template](https://github.com/joseareia/ipleiria-thesis/wiki/Instructions-for-Using-the-Template) to gain a better understanding of its features and setup. - -## Getting Help -If you have any questions regarding the template, its usage, or encounter any errors you're struggling with, please feel free to open an [issue](https://github.com/joseareia/ipleiria-thesis/issues), start a new [discussion](https://github.com/joseareia/ipleiria-thesis/discussions), or email me at jose.apareia@gmail.com. - -## Contributing -Contributions to this template are welcome! If you encounter any issues, have suggestions for improvements, or would like to add new features, please submit a [pull request](https://github.com/joseareia/ipleiria-thesis/pulls). We appreciate your feedback and contributions to make this template even better. +# EPFL Thesis + +An open-source LaTeX template for creating professional theses, dissertations, and academic reports at **École polytechnique fédérale de Lausanne (EPFL)**. + +## Quick Start + +1. Clone this repository +2. Edit `Metadata/Metadata.tex` with your thesis information +3. Add your chapters in `Chapters/` and include them from `EPFLMain.tex` +4. Build the document: + +```bash +make all +``` + +Or with `latexmk` directly: + +```bash +latexmk +``` + +The main entry file is [`EPFLMain.tex`](EPFLMain.tex). The document class is [`EPFLThesis.cls`](EPFLThesis.cls). + +## Requirements + +- A TeX Live distribution (TeX Live, MacTeX, or BasicTeX) +- `latexmk` +- `biber` +- `Pygments` (for the `minted` package) + +## Project Structure + +| Directory | Purpose | +|-----------|---------| +| `Chapters/` | Your thesis chapters | +| `Matter/` | Cover, front page, copyright, glossary, appendices | +| `Metadata/` | Author, title, supervisor, and other document metadata | +| `Configurations/` | Fonts, colors, margins, and layout settings | +| `Figures/` | Images and EPFL theme assets | +| `Bibliography/` | BibLaTeX bibliography file | + +## Class Options + +Pass options to `\documentclass` in `EPFLMain.tex`: + +- `language` — `english`, `portuguese`, or `spanish` +- `coverstyle` — `classic` or `bw` +- `chapterstyle` — `classic`, `fancy`, or `modern` +- `docstage` — `final` or `working` +- `media` — `paper` or `screen` +- `linkcolor` — any valid `xcolor` color name +- `aiacknowledgement` — `true` or `false` +- `listprefix` — `true` or `false` + +See the User Guide chapter in the compiled PDF for full documentation. ## License -The **IPLeiria Thesis** project is released under the terms of the [LPPL 1.3c License](https://www.latex-project.org/lppl/lppl-1-3c/). + +This project is released under the [LPPL 1.3c License](https://www.latex-project.org/lppl/lppl-1-3c/). + +## Credits + +This template is based on [IPLeiria Thesis](https://github.com/joseareia/ipleiria-thesis) by [José Areia](https://github.com/joseareia), originally developed for the Polytechnic University of Leiria. The EPFL version adapts that template with EPFL branding and metadata defaults while preserving the underlying LaTeX architecture. diff --git a/create_epfl_backgrounds.py b/create_epfl_backgrounds.py index fb2281d..6285c96 100644 --- a/create_epfl_backgrounds.py +++ b/create_epfl_backgrounds.py @@ -3,14 +3,14 @@ Script to create EPFL-themed backgrounds for LaTeX thesis template """ +from pathlib import Path + import matplotlib.pyplot as plt -import matplotlib.patches as patches -from matplotlib.patches import Rectangle import numpy as np +from matplotlib.patches import Rectangle # EPFL brand colors epfl_red = '#FF0000' -epfl_gray = '#373A36' epfl_light_gray = '#E5E5E5' white = '#FFFFFF' @@ -18,25 +18,23 @@ a4_width = 8.27 a4_height = 11.69 +THEME_DIR = Path(__file__).resolve().parent / 'Figures' / 'Theme' + def create_cover_background(): """Create EPFL cover background with red gradient""" fig, ax = plt.subplots(figsize=(a4_width, a4_height)) - # Create gradient background gradient = np.linspace(0, 1, 256).reshape(1, -1) gradient = np.vstack((gradient, gradient)) - # Create red gradient from dark red to bright red - colors = [(0.6, 0, 0), (1, 0, 0)] # Dark red to bright red + colors = [(0.6, 0, 0), (1, 0, 0)] from matplotlib.colors import LinearSegmentedColormap cmap = LinearSegmentedColormap.from_list('epfl_red', colors) ax.imshow(gradient, aspect='auto', cmap=cmap, extent=[0, a4_width, 0, a4_height]) - # Add subtle geometric elements - # Add diagonal lines for texture for i in range(0, int(a4_width * 10), 3): x = i * 0.1 ax.plot([x, x + 2], [0, a4_height], @@ -47,7 +45,7 @@ def create_cover_background(): ax.axis('off') plt.tight_layout(pad=0) - plt.savefig('/workspaces/epfl-thesis/Figures/Theme/EPFL-Cover-BG.pdf', + plt.savefig(THEME_DIR / 'EPFL-Cover-BG.pdf', dpi=300, bbox_inches='tight', pad_inches=0) plt.close() @@ -56,19 +54,12 @@ def create_front_page_background(): """Create EPFL front page background - clean white with subtle elements""" fig, ax = plt.subplots(figsize=(a4_width, a4_height)) - # White background ax.add_patch(Rectangle((0, 0), a4_width, a4_height, facecolor=white)) - - # Add subtle red accent elements - # Top red stripe ax.add_patch(Rectangle((0, a4_height - 0.2), a4_width, 0.2, facecolor=epfl_red, alpha=0.8)) - - # Bottom red accent ax.add_patch(Rectangle((0, 0), a4_width, 0.1, facecolor=epfl_red, alpha=0.6)) - # Subtle geometric pattern in light gray for i in range(0, int(a4_width * 2)): x = i * 0.5 ax.plot([x, x + 0.1], [a4_height * 0.2, a4_height * 0.8], @@ -79,7 +70,7 @@ def create_front_page_background(): ax.axis('off') plt.tight_layout(pad=0) - plt.savefig('/workspaces/epfl-thesis/Figures/Theme/EPFL-Front-Page-BG.pdf', + plt.savefig(THEME_DIR / 'EPFL-Front-Page-BG.pdf', dpi=300, bbox_inches='tight', pad_inches=0) plt.close() @@ -88,11 +79,8 @@ def create_back_page_background(): """Create EPFL back page background""" fig, ax = plt.subplots(figsize=(a4_width, a4_height)) - # Light gray background ax.add_patch(Rectangle((0, 0), a4_width, a4_height, facecolor=epfl_light_gray)) - - # Red accent at bottom ax.add_patch(Rectangle((0, 0), a4_width, 0.3, facecolor=epfl_red, alpha=0.9)) @@ -101,17 +89,18 @@ def create_back_page_background(): ax.axis('off') plt.tight_layout(pad=0) - plt.savefig('/workspaces/epfl-thesis/Figures/Theme/EPFL-Back-Page-BG.pdf', + plt.savefig(THEME_DIR / 'EPFL-Back-Page-BG.pdf', dpi=300, bbox_inches='tight', pad_inches=0) plt.close() if __name__ == "__main__": + THEME_DIR.mkdir(parents=True, exist_ok=True) print("Creating EPFL-themed backgrounds...") create_cover_background() - print("✓ Created EPFL cover background") + print("Created EPFL cover background") create_front_page_background() - print("✓ Created EPFL front page background") + print("Created EPFL front page background") create_back_page_background() - print("✓ Created EPFL back page background") + print("Created EPFL back page background") print("All EPFL backgrounds created successfully!")