diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 451e5c9..8f3f7b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/chapters/impl.tex b/chapters/impl.tex index aad6f32..7f9e0a8 100644 --- a/chapters/impl.tex +++ b/chapters/impl.tex @@ -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} diff --git a/chapters/user.tex b/chapters/user.tex index 47e302f..f0318a5 100644 --- a/chapters/user.tex +++ b/chapters/user.tex @@ -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} diff --git a/elteikthesis.cls b/elteikthesis.cls index 6527315..5690cf8 100644 --- a/elteikthesis.cls +++ b/elteikthesis.cls @@ -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}} + } +} diff --git a/minted-integration.pdf b/minted-integration.pdf new file mode 100644 index 0000000..409b970 Binary files /dev/null and b/minted-integration.pdf differ diff --git a/minted-integration.tex b/minted-integration.tex new file mode 100644 index 0000000..1a45028 --- /dev/null +++ b/minted-integration.tex @@ -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 + +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} \ No newline at end of file diff --git a/settings.tex b/settings.tex deleted file mode 100644 index d2040f9..0000000 --- a/settings.tex +++ /dev/null @@ -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}} -} diff --git a/thesis.pdf b/thesis.pdf index be1a019..57a5daa 100644 Binary files a/thesis.pdf and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index eb9f368..6b64a5c 100644 --- a/thesis.tex +++ b/thesis.tex @@ -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