Merge pull request #6 from Maetveis/improvements

* Use the subcaption package instead of the outdated subfigure

* Use setspace package for spacing

* Integrate with minted for source code highlighting

* Set theorem and definition styles

* Thesis template: use algorithmicx package for algorithms

* Add the list of algorithms

* Enable the use of XeTex or LuaTex

* Move settings.tex definitons inside the class file

* Load geometry before fancyhdr

* Add PDF

* Update ci.yml: PDF output as a build artifact

* Add luatex to automatic ci run
This commit is contained in:
Máté Cserép 2021-09-20 15:33:19 +02:00 committed by GitHub
commit c48fb6d899
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 164 additions and 61 deletions

View File

@ -2,11 +2,35 @@ name: Build LaTeX document
on: [push]
jobs:
build_latex:
strategy:
matrix:
engine: [pdflatex, lualatex]
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v2
- name: Compile LaTeX document
- if: ${{ matrix.engine == 'pdflatex' }}
name: Compile LaTeX document
uses: xu-cheng/latex-action@master
with:
root_file: thesis.tex
root_file: |
thesis.tex
minted-integration.tex
latexmk_shell_escape: true
- if: ${{ matrix.engine == 'lualatex' }}
name: Compile LaTeX document
uses: xu-cheng/latex-action@master
with:
root_file: |
thesis.tex
minted-integration.tex
latexmk_shell_escape: true
latexmk_use_lualatex: true
- name: Upload the compiled pdf
uses: actions/upload-artifact@v2.2.4
with:
name: thesis-${{ matrix.engine }}
path: |
thesis.pdf
minted-integration.pdf
if-no-files-found: error

View File

@ -95,21 +95,21 @@ Példa forrása: \href{https://www.inf.u-szeged.hu/actacybernetica/}{Acta Cybern
\label{alg:ibb}
\textbf{\underline{Funct}} IBB($S,f$)
\begin{algorithmic}[1] % sorszámok megjelenítése minden n. sor előtt, most n = 1
\STATE Set the working list ${\cal L}_W$ := $\{S\}$ and the final list ${\cal L}_Q$ := $\{\}$
\WHILE{( ${\cal L}_W \neq \emptyset$ )} \label{alg:igoend}
\STATE Select an interval $X$ from ${\cal L}_W$ \label{step:selrule}\COMMENT{Selection rule}
\STATE Compute $lbf(X)$ \COMMENT{Bounding rule}
\IF[Elimination rule]{$X$ cannot be eliminated}
\STATE Divide $X$ into $X^j,\ j=1,\dots, p$, subintervals \COMMENT{Division rule}
\FOR{$j=1,\ldots,p$}
\IF[Termination rule]{$X^j$ satisfies the termination criterion}
\STATE Store $X^j$ in ${\cal L}_W$
\ELSE
\STATE Store $X^j$ in ${\cal L}_W$
\ENDIF
\ENDFOR
\ENDIF
\ENDWHILE
\STATE \textbf{return} ${\cal L}_Q$
\State Set the working list ${\cal L}_W$ := $\{S\}$ and the final list ${\cal L}_Q$ := $\{\}$
\While{( ${\cal L}_W \neq \emptyset$ )} \label{alg:igoend}
\State Select an interval $X$ from ${\cal L}_W$ \label{step:selrule}\Comment{Selection rule}
\State Compute $lbf(X)$ \Comment{Bounding rule}
\If{$X$ cannot be eliminated} \Comment{Elimination rule}
\State Divide $X$ into $X^j,\ j=1,\dots, p$, subintervals \Comment{Division rule}
\For{$j=1,\ldots,p$}
\If{$X^j$ satisfies the termination criterion} \Comment{Termination rule}
\State Store $X^j$ in ${\cal L}_W$
\Else
\State Store $X^j$ in ${\cal L}_W$
\EndIf
\EndFor
\EndIf
\EndWhile
\State \textbf{return} ${\cal L}_Q$
\end{algorithmic}
\end{algorithm}

View File

@ -85,10 +85,10 @@ In non ipsum fermentum urna feugiat rutrum a at odio. Pellentesque habitant morb
\begin{figure}[H]
\centering
\subfigure[Vestibulum quis mattis urna]{
\subcaptionbox{Vestibulum quis mattis urna}{
\includegraphics[width=0.45\linewidth]{elte_cimer_szines}}
\hspace{5pt}
\subfigure[Donec hendrerit quis dui sit amet venenatis]{
\subcaptionbox{Donec hendrerit quis dui sit amet venenatis}{
\includegraphics[width=0.45\linewidth]{elte_cimer_szines}}
\caption{Aenean porttitor mi volutpat massa gravida}
\label{fig:example-2}

View File

@ -53,8 +53,13 @@
% ------------------------------
% Karakterkódolás, nyelv
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{iftex} % XeTex or LuaTex
\iftutex
\RequirePackage{fontspec}
\else % other (PdfTex)
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\fi
\RequirePackage[english,magyar]{babel}
\RequirePackage{indentfirst}
% ------------------------------
@ -102,6 +107,7 @@
\newcommand{\alglabel}{Algoritmus}
\newcommand{\biblabel}{Irodalomjegyzék}
\newcommand{\lstalgorithmlabel}{Algoritmusjegyzék}
\newcommand{\lstfigurelabel}{Ábrajegyzék}
\newcommand{\lsttablelabel}{Táblázatjegyzék}
\newcommand{\lstcodelabel}{Forráskódjegyzék}
@ -125,6 +131,7 @@
\newcommand{\alglabel}{Algorithm}
\newcommand{\biblabel}{Bibliography}
\newcommand{\lstalgorithmlabel}{List of Algorithms}
\newcommand{\lstfigurelabel}{List of Figures}
\newcommand{\lsttablelabel}{List of Tables}
\newcommand{\lstcodelabel}{List of Codes}
@ -136,6 +143,13 @@
}
% ------------------------------
% ------------------------------
% Margók
\RequirePackage[left=35mm, right=25mm, top=25mm, bottom=25mm, headheight=16pt]{geometry}
%\setlength{\textwidth}{150mm}
%\setlength{\textheight}{247mm}
% ------------------------------
% ------------------------------
% Fejlécek és láblécek
\RequirePackage{fancyhdr}
@ -194,7 +208,7 @@
% Maximális ill. minimális méret megadása ábráknak
\RequirePackage[export]{adjustbox}
% Több ábra egy figure-on belül
\RequirePackage[center]{subfigure}
\RequirePackage{subcaption}
% Ábrák forgatása
\RequirePackage{rotating}
@ -214,13 +228,6 @@
\paperheight 297mm
% ------------------------------
% ------------------------------
% Margók
\RequirePackage[left=35mm, right=25mm, top=25mm, bottom=25mm]{geometry}
%\setlength{\textwidth}{150mm}
%\setlength{\textheight}{247mm}
% ------------------------------
% ------------------------------
% Térköz bekezdések közé
\iftoggle{parspace}{
@ -247,7 +254,6 @@
% ------------------------------
% Helyközök és tördelés
\linespread{1.5}
% Egyszeres helyköz a mondatok végén
\frenchspacing
% Szavak jobb margón túlnyúlásának tiltása
@ -256,10 +262,15 @@
\nottoggle{hypenation}{\RequirePackage[none]{hyphenat}}{}
% Beállítás alternatív módon
%\RequirePackage{setspace}
%\singlespacing % ~1.0 linespread
%\onehalfspacing % ~1.3 linespread
%\doublespacing % ~1.6 linespread
\RequirePackage{setspace}
% According to
% https://tex.stackexchange.com/questions/442030/setting-spaces-with-titlespacing-and-fonts
% this matches the 1.5 linespacing in MS Word
\setstretch{1.427465}
% Vektorok és mátrixok egyszeres sorközzel
% https://tex.stackexchange.com/questions/568084/problem-with-matrices-using-linespread
\everydisplay=\expandafter{\the\everydisplay\linespread{1}\selectfont}
% Azonos sorköz használata láblácben
%\RequirePackage{footmisc}
@ -286,8 +297,13 @@
% ------------------------------
% Tételek, definíciók
\theoremstyle{definition}
\newtheorem{definition}{\deflabel}
\theoremstyle{plain}
\newtheorem{theorem}{\theolabel}
\theoremstyle{remark}
\newtheorem*{remark}{\remlabel}
\newtheorem*{note}{\notelabel}
% ------------------------------
@ -344,6 +360,9 @@
% ------------------------------
% Számozott elemek kezelése
\RequirePackage{chngcntr}
% Lábjegyzet folytonos számozása fejezetek között
% Continuous counting of footnotes among chapters
\counterwithout{footnote}{chapter}
% Lábjegyzet oldalak közti eltörésének tiltása
\interfootnotelinepenalty=10000
% ------------------------------
@ -374,7 +393,7 @@
% ------------------------------
% Feliratok, tartalomjegyzék, ábrajegyzék, táblázatjegyzék
\RequirePackage[justification=centering]{caption}
\RequirePackage[subfigure]{tocloft}
\RequirePackage{tocloft}
% ------------------------------
@ -402,7 +421,7 @@
% ------------------------------
% Algoritmusok és kódblokkok írása
\RequirePackage{algorithm}
\RequirePackage{algorithmic}
\RequirePackage{algpseudocode}
\RequirePackage{listingsutf8}
\lstset{
basicstyle=\footnotesize\ttfamily,
@ -422,17 +441,16 @@
breaklines=true,
breakatwhitespace=false,
float,
frame=linesc,
frame=lines,
captionpos=b
}
% Forráskód elnevezése
\renewcommand{\lstlistingname}{\codelabel}
% Forráskódjegyzék elnevezése
\renewcommand{\lstlistlistingname}{\lstcodelabel}
% Algoritmus kommentek jobb szélre igazítása
\renewcommand{\algorithmiccomment}[1]{\hfill {\it #1}}
% Algoritmus elnevezése
\renewcommand{\ALG@name}{\alglabel}
\floatname{algorithm}{\alglabel}
\renewcommand{\listalgorithmname}{\lstalgorithmlabel}
% ------------------------------
% ------------------------------
@ -527,3 +545,40 @@
\setcounter{page}{1}
}
% ------------------------------
\AtBeginDocument{
% If the minted package is loaded, then provide a default for the formatting,
% and set the labels for the listings
\@ifpackageloaded{minted}{
\setminted{
style=tango,
numbers=left,
stepnumber=1,
firstnumber=1,
numbersep=5pt,
showspaces=false,
showtabs=false,
tabsize=2,
breaklines=true,
frame=lines,
bgcolor=codebackg,
}
\SetupFloatingEnvironment{listing}{
name=\codelabel, % Forráskód elnevezése
listname=\lstcodelabel, % Forráskódjegyzék elnevezése
}
}
% Az oldalszámozás a tartalomjegyzékkel kezdődik, de ott nem látható
\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}{
\pagenumbering{gobble}
\oldtableofcontents
\cleardoublepage
% Oldalszám mentése és betöltésem mert a \pagenumbering visszállítja
\newcounter{conpageno}
\defcounter{conpageno}{\value{page}}
\pagenumbering{arabic}
\setcounter{page}{\value{conpageno}}
}
}

BIN
minted-integration.pdf Normal file

Binary file not shown.

33
minted-integration.tex Normal file
View File

@ -0,0 +1,33 @@
\documentclass{elteikthesis}[2020/11/23]
\usepackage[newfloat]{minted}
\begin{document}
\documentlang{magyar}
\chapter{Minted forráskód}
\label{ch:chapter}
\begin{listing}[H]
\begin{minted}{cpp}
#include <stdio>
int main()
{
int c;
std::cout << "Hello World!" << std::endl;
std::cout << "Press any key to exit." << std::endl;
std::cin >> c;
return 0;
}
\end{minted}
\caption{Hello World in C++}
\end{listing}
\phantomsection
\addcontentsline{toc}{chapter}{\lstcodelabel}
\listoflistings
\end{document}

View File

@ -1,16 +0,0 @@
% Lábjegyzet folytonos számozása fejezetek között
% Continuous counting of footnotes among chapters
\counterwithout{footnote}{chapter}
% Tartalomjegyzék oldalszámozásának rejtése
% Hide page numbering of ToC
\newcounter{conpageno}
\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}{
\pagenumbering{gobble}
\oldtableofcontents
\cleardoublepage
\setcounter{conpageno}{\value{page}}
\pagenumbering{arabic}
\setcounter{page}{\value{conpageno}}
}

Binary file not shown.

View File

@ -7,6 +7,10 @@
%final, % Teendők elrejtése / Set final to hide todos
]{elteikthesis}[2020/11/23]
% A minted csomag támogatva van forráskódok szedésére
% The minted package is also supported for source higlighting
%\usepackage[newfloat]{minted}
% Dolgozat metaadatai
% Document's metadata
\title{Dolgozat címe} % cím / title
@ -49,10 +53,6 @@
% List of todos (not in the final document)
%\listoftodos[\todolabel]
% Dokumentum beállítások
% Some document settings
\input{settings.tex}
% Címlap (kötelező)
% Title page (mandatory)
\maketitle
@ -104,6 +104,13 @@
\listoftables
\cleardoublepage
% Algorithmusjegyzék
% List of algorithms
\phantomsection
\addcontentsline{toc}{chapter}{\lstalgorithmlabel}
\listofalgorithms
\cleardoublepage
% Forráskódjegyzék (opcionális) - 3-5 kódpélda fölött érdemes
% List of codes (optional) - useful over 3-5 code samples
\phantomsection