Repozytorium zawiera szablon pracy dyplomowej w LateXu: inżynierskiej lub magisterskiej - przeznaczony dla Wydziału EiTI Politechniki Warszawskiej.
Szablon został zatwierdzony przez Instytuty wydziału EiTI do oficjalnego użytku (na dzień 20.09.2019 jest to Instytut Informatyki, link do odpowiedniego komunikatu tutaj). Oprócz wymaganej przepisami strony tytułowej, streszczeń i deklaracji o autorstwie, w dokumencie zawarte są przykładowe fragmenty kodu:
- prosta tabela z podpisem;
- duża tabela wielostronicowa, z regulowaną szerokością kolumn i zagnieżdżaniem (multirow);
- wzory matematyczne z numeracją lub bez, w tym równanie macierzowe;
- twierdzenia, aksjomaty i definicje;
- fragment kodu źródłowego programu;
- bibliografia w BibLaTeX zawierająca różne typy źródeł: artykuł, książka lub jej fragment, raport, specyfikacja techniczna, repozytorium kodu;
- wykaz symboli i skrótów;
- spisy: spis rysunków, tabel oraz załączników.
Możliwa jest kompilacja z użyciem trzech głównych kompilatorów: pdfTeX, LuaTeX oraz XeTeX. Pewne funkcje dostępne są jednak tylko w niektórych kompilatorach:
- kompilacja na pdfTeX oraz LuaTeX daje prawie takie same rezultaty, co - dzięki zastosowaniu techniki microtypingu i innych takich bajerów - gwarantuje epicki wygląd całego dokumentu.
- Na LuaTeX dodatkowo działa funkcja automatycznego przenoszenia jednoliterowych wyrazów do nowej linii, zgodnie z tradycyjnym zaleceniem polskiej typografii. Funkcja ta nie działa na pdfTeX, ze względu na brak możliwości oskryptowania dokumentu w języku Lua. Kompilacja LuaTeX-em jest jednak również znacznie dłuższa niż w pdfTeX.
- kompilator XeTeX daje możliwość stosowania własnych czcionek, czego nie zapewnia pdfTeX. Niestety, na XeTeX-u niedostępna jest część niskopoziomowych funkcji TeX-a, przez co, jeśli chodzi o końcowy rezultat, jestem w stanie zagwarantować co najwyżej dramat. Dlatego, jeżeli masz potrzebę zastosowania innego kompilatora niż pdfTeX (do czego nie zachęcam, bo nie ma po co) - to ogranicz się raczej do LuaTeX-a.
Zalecam zatem następujący workflow:
- Bieżąca kompilacja podczas tworzenia dokumentu w pdfTeX;
- Kompilacja końcowej wersji za pomocą LuaTeX-a.
Powyższe zalecenia dotyczą obu sposobów korzystania z szablonu: w przeglądarce (Overleaf) oraz lokalnie.
Jest to chyba najpopularniejsze w chwili obecnej środowisko TeX-owe, które pozwala na tworzenie i edycję dokumentów w przeglądarce, bez konieczności instalowania TeX-a na lokalnej maszynie.
Link do szablonu: https://www.overleaf.com/latex/templates/wut-thesis/vfvvdqztfqbt.
Na jego podstawie możecie tworzyć i edytować własne dokumenty.
Jeżeli nie lubisz Overleafa, możliwa jest również samodzielna kompilacja szablonu. Kolejne wersje szablonu gotowe do kompilacji znajdują się w zakładce Releases. Najnowsza wersja szablonu jest zawsze dostępna pod adresem https://github.com/ArturB/WUT-Thesis/releases/download/latest/WUT-Thesis.zip. Kompilacja za pomocą Makefile:
make pdf
albo
make lua
dla kompilacji z użyciem LuaTeX. Na Windowsie make jest dostępny w msys, instalujesz go najlepiej razem z git-scm.
Szablon kompiluje się również bez problemu za pomocą dedykowanych dla LaTeXa IDE: TeX Studio oraz w VS Code, wyposażonym w odpowiednią wtyczkę.
Szablonu można używać zasadniczo w trzech głównych konfiguracjach:
Szablon, oprócz biblioteki standardowej LaTeXa, wykorzystuje rzecz jasna również inne pakiety jako zależności. Na texlive wymagane jest zainstalowanie następujących zbiorów pakietów:
latexmk texlive-bibtex-extra texlive-fonts-extra texlive-latex-extra texlive-lang-polish tex-gyre
Na miktex menedżer pakietów powinien sam zainstalować odpowiednie zależności.
Oficjalne Quality Assurance gwarantujemy tylko dla środowiska texlive; miktex ma długą tradycję problemów z uprawnieniami, dlatego w tym środowisku nie przeprowadzamy automatycznych testów. Co prawda w większości sytuacji szablon powinien działać również w miktex, niemniej zachęcam do instalowania texlive-a także na swoich Windowsach. W innych konfiguracjach póki co nie próbowałem, w szczególności nie gwarantuję wsparcia dla systemów Apple'a. Z macOS-em radzisz więc sobie sam(a).
Szablon jest zoptymalizowany pod użycie z systemem kontroli wersji git. Możliwa - i zalecana przy większych dokumentach - jest praca w systemie wieloplikowym: po jednym pliku na każdy rozdział. Pliki z rozdziałami zawartymi w szablonie znajdują się w katalogu tex.
Szablon można stosować zarówno w języku polskim jak i angielskim. W celu wyboru języka, w pliku main.tex stosujemy komendę:
\langpol
dla prac w języku polskim, lub
\langeng
dla prac w języku angielskim. Wg. stanu na dzień 23.11.2019, tłumaczenie szablonu na język angielski nie jest ukończone w 100%; do przetłumaczenia pozostaje oświadczenie o autorstwie pracy na str. 5.
Domyślną czcionką jest Adobe Utopia, która jest zgodna z wymaganiami wydziału i zapewnia wszystkie niezbędne interfejsy. Możliwe jest użycie innych czcionek, jednak ja nie widzę takiego powodu.
Preferowanym kanałem zgłaszania problemów z szablonem są issues-y na GitHubie. Pisz tam, jeżeli masz jakiś problem.
Wygląd dokumentów tworzonych z użyciem szablonu zdefiniowany jest w pliku klasy eiti-thesis.cls. Pliki zawierające treść właściwego dokumentu (.tex) formatowane są zgodnie z plikiem klasy. Zawartość pliku .cls traktowana jest jako publiczne API niniejszego szablonu (w rozumieniu inżynierii oprogramowania) i podlega wersjonowaniu zgodnie z odpowiednimi zaleceniami.
Budowanie szablonu odbywa się z linii komend za pomocą Makefile. Dostępne są następujące komendy:
make pdf, make lua, make xetex
Tworzy PDF-a z użyciem kompilatorów, odpowiednio: pdfTeX, LuaTex oraz XeTeX. Wygenerowany plik PDF jest umieszczany w katalogu pdfs, wraz z nazwą kompilatora.
make all
Tworzy wszystkie 3 wymienione wyżej PDF-y i umieszcza je w folderze pdfs.
make clean
Czyści katalog z plików pośrednich kompilacji (katalog build, wyłączony z kontroli wersji); usuwa również pliki pośrednie istniejące w katalogu głównym oraz PDF-y, istniejące zarówno w katalogu głównym jak i w folderze pdfs.
make release version=X.Y.Z
Tworzy (w folderze releases) archiwum ZIP zawierające wersję szablonu gotową do kompilacji na lokalnej maszynie. Wytyczne dot. numerów wersji zostały opisane w rozdziale Wersjonowanie.
Branch master ma status protected: każdy nowy kod musi być najpierw zacommitowany do osobnego brancha, a następnie przejść przez wszystkie testy (Continuous Integration) i zostać zatwierdzony przez administratora (tzn. przeze mnie) przed jego zmerge'owaniem do głównego brancha.
Testy automatycznie z użyciem Travisa. Po każdym commicie, tworzony jest osobny build dla trzech kompilatorów: pdfTeX, LuaTeX i XeTeX. Build jest traktowany jako zaliczony, jeżeli szablon zbuduje się poprawnie na każdym z trzech kompilatorów. Buildy odbywają się w środowisku texlive na Ubuntu 18.04; próbowaliśmy dodać również automatyczne testy na Windowsie w miktex, ale ze względu na problemy z rzeczonym, automatyczne testy odbywają się jedynie na Ubuntu w texlive.
Każda kolejna wersja szablonu musi być oznaczona numerem wersji w formacie Major.Minor.Patch. Schemat wersjonowania jest zgodny z (nieco uproszczonymi) zasadami Semantic Versioning:
- Wersja Major ulega zmianie po wprowadzeniu zmian łamiących wsteczną kompatybilność (backward incompatible changes), tj. zmian, które:
- uniemożliwiają kompilację kodu z użyciem pliku klasy z poprzedniej wersji;
- znacząco zmieniają wygląd dokumentu (co może wymagać ponownych rozmów z Instytutami);
- Wersja Minor ulega zmianie przy wprowadzaniu nowych funkcji LaTeX-a, np. nowego znacznika, które nie powodują złamania wstecznej kompatybilności;
- Wersja Patch ulega zmianie przy innych niż zmiana kodu LaTeXa (np. komentarze, dokumentacja).
Copyright by Artur M. Brodzki 2019, based on https://github.com/pwozniak/EiTI-Szablon by Piotr Woźniak.

