diff --git a/docs/thesis/Makefile b/docs/thesis/Makefile new file mode 100644 index 0000000..28b5e34 --- /dev/null +++ b/docs/thesis/Makefile @@ -0,0 +1,68 @@ +DOCUMENT=thesis +#MODE=-interaction=batchmode + +all: clean xelatex + echo + +xelatex: compile_xelatex + mv $(DOCUMENT)-xelatex.pdf ../pdf/$(DOCUMENT).pdf + +compile_xelatex: + xelatex $(MODE) $(DOCUMENT) + bibtex $(DOCUMENT) + xelatex $(MODE) $(DOCUMENT) + xelatex $(MODE) $(DOCUMENT) + mv $(DOCUMENT).pdf $(DOCUMENT)-xelatex.pdf + +pdflatex: compile_pdflatex + mv $(DOCUMENT)-pdflatex.pdf ../pdf/$(DOCUMENT).pdf + +compile_pdflatex: + pdflatex $(MODE) $(DOCUMENT) + bibtex $(DOCUMENT) + pdflatex $(MODE) $(DOCUMENT) + pdflatex $(MODE) $(DOCUMENT) + mv $(DOCUMENT).pdf $(DOCUMENT)-pdflatex.pdf + +lualatex: compile_lualatex + mv $(DOCUMENT)-lualatex.pdf ../pdf/$(DOCUMENT).pdf + +compile_lualatex: + lualatex $(MODE) $(DOCUMENT) + bibtex $(DOCUMENT) + lualatex $(MODE) $(DOCUMENT) + lualatex $(MODE) $(DOCUMENT) + mv $(DOCUMENT).pdf $(DOCUMENT)-lualatex.pdf + +switch_to_hungarian: + sed -i "s|^\\\input{include/thesis-en}|%\\\input{include/thesis-en}|" $(DOCUMENT).tex + sed -i "s|^%\\\input{include/thesis-hu}|\\\input{include/thesis-hu}|" $(DOCUMENT).tex + +test_hu: + ${MAKE} clean compile_xelatex + ${MAKE} clean compile_pdflatex + ${MAKE} clean compile_lualatex + mv $(DOCUMENT)-xelatex.pdf ../pdf/$(DOCUMENT)-xelatex-hu.pdf + mv $(DOCUMENT)-pdflatex.pdf ../pdf/$(DOCUMENT)-pdflatex-hu.pdf + mv $(DOCUMENT)-lualatex.pdf ../pdf/$(DOCUMENT)-lualatex-hu.pdf + +switch_to_english: + sed -i "s|^\\\input{include/thesis-hu}|%\\\input{include/thesis-hu}|" $(DOCUMENT).tex + sed -i "s|^%\\\input{include/thesis-en}|\\\input{include/thesis-en}|" $(DOCUMENT).tex + +test_en: + ${MAKE} switch_to_english + ${MAKE} clean compile_xelatex + ${MAKE} clean compile_pdflatex + ${MAKE} clean compile_lualatex + mv $(DOCUMENT)-xelatex.pdf ../pdf/$(DOCUMENT)-xelatex-en.pdf + mv $(DOCUMENT)-pdflatex.pdf ../pdf/$(DOCUMENT)-pdflatex-en.pdf + mv $(DOCUMENT)-lualatex.pdf ../pdf/$(DOCUMENT)-lualatex-en.pdf + ${MAKE} switch_to_hungarian + +test: test_hu test_en + echo + +clean: + echo Cleaning temporary files... + rm -f *.aux *.dvi *.thm *.lof *.log *.lot *.fls *.out *.toc *.bbl *.blg diff --git a/docs/thesis/Vizualizacios-megoldas-IoT-adat-elemzo-Feladatkiiras-1.pdf b/docs/thesis/Vizualizacios-megoldas-IoT-adat-elemzo-Feladatkiiras-1.pdf new file mode 100644 index 0000000..ee2121c Binary files /dev/null and b/docs/thesis/Vizualizacios-megoldas-IoT-adat-elemzo-Feladatkiiras-1.pdf differ diff --git a/docs/thesis/bib/mybib.bib b/docs/thesis/bib/mybib.bib new file mode 100644 index 0000000..b413396 --- /dev/null +++ b/docs/thesis/bib/mybib.bib @@ -0,0 +1,79 @@ +@book{Wettl04, + author = {Ferenc Wettl and Gyula Mayer and Péter Szabó}, + publisher = {Panem Könyvkiadó}, + title = {\LaTeX~kézikönyv}, + year = {2004}, +} + +@article{Candy86, + author = {James C. Candy}, + journaltitle = {{IEEE} Trans.\ on Communications}, + month = {01}, + note = {\doi{10.1109/TCOM.1986.1096432}}, + number = {1}, + pages = {72--76}, + title = {Decimation for Sigma Delta Modulation}, + volume = {34}, + year = {1986}, +} + +@inproceedings{Lee87, + author = {Wai L. Lee and Charles G. Sodini}, + booktitle = {Proc.\ of the IEEE International Symposium on Circuits and Systems}, + location = {Philadelphia, PA, USA}, + month = {05~4--7}, + pages = {459--462}, + title = {A Topology for Higher Order Interpolative Coders}, + vol = {2}, + year = {1987}, +} + +@thesis{KissPhD, + author = {Peter Kiss}, + institution = {Technical University of Timi\c{s}oara, Romania}, + month = {04}, + title = {Adaptive Digital Compensation of Analog Circuit Imperfections for Cascaded Delta-Sigma Analog-to-Digital Converters}, + type = {phdthesis}, + year = {2000}, +} + +@manual{Schreier00, + author = {Richard Schreier}, + month = {01}, + note = {\url{http://www.mathworks.com/matlabcentral/fileexchange/}}, + organization = {Oregon State University}, + title = {The Delta-Sigma Toolbox v5.2}, + year = {2000}, +} + +@misc{DipPortal, + author = {{Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar}}, + howpublished = {\url{http://diplomaterv.vik.bme.hu/}}, + title = {Diplomaterv portál (2011. február 26.)}, +} + +@incollection{Mkrtychev:1997, + author = {Mkrtychev, Alexey}, + booktitle = {Logical Foundations of Computer Science}, + doi = {10.1007/3-540-63045-7_27}, + editor = {Adian, Sergei and Nerode, Anil}, + isbn = {978-3-540-63045-6}, + pages = {266-275}, + publisher = {Springer Berlin Heidelberg}, + series = {Lecture Notes in Computer Science}, + title = {Models for the logic of proofs}, + url = {http://dx.doi.org/10.1007/3-540-63045-7_27}, + volume = {1234}, + year = {1997}, +} + +@report{Jeney, + author = {Jeney, Gábor}, + institution = {Budapesti Műszaki és Gazdaságtudományi Egyetem, Híradástechnikai Tanszék}, + location = {Budapest}, + note = {\url{http://www.mcl.hu/~jeneyg/kinezet.pdf}}, + title = {Hogyan néz ki egy igényes dokumentum? {N}éhány szóban az alapvető tipográfiai szabályokról}, + type = {techreport}, + year = {2014}, +} + diff --git a/docs/thesis/content/abstract.aux b/docs/thesis/content/abstract.aux new file mode 100644 index 0000000..7e6cefd --- /dev/null +++ b/docs/thesis/content/abstract.aux @@ -0,0 +1,47 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Kivonat}{i}{chapter*.2}\protected@file@percent } +\@writefile{toc}{\select@language{english} \contentsline {chapter}{Abstract}{ii}{chapter*.3}\protected@file@percent } +\@setckpt{content/abstract}{ +\setcounter{page}{3} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{0} +\setcounter{section}{0} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote@add}{0} +\setcounter{footnote@ch}{0} +\setcounter{parentequation}{0} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{2} +\setcounter{lstnumber}{1} +\setcounter{endNonectr}{2} +\setcounter{currNonectr}{0} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{NAT@ctr}{0} +\setcounter{currexamplectr}{0} +\setcounter{endexamplectr}{0} +\setcounter{example}{0} +\setcounter{currdefinitionctr}{0} +\setcounter{enddefinitionctr}{0} +\setcounter{definition}{0} +\setcounter{currtheoremctr}{0} +\setcounter{endtheoremctr}{0} +\setcounter{theorem}{0} +\setcounter{section@level}{0} +\setcounter{lstlisting}{0} +\setcounter{romanPage}{3} +} diff --git a/docs/thesis/content/abstract.tex b/docs/thesis/content/abstract.tex new file mode 100644 index 0000000..c2a703d --- /dev/null +++ b/docs/thesis/content/abstract.tex @@ -0,0 +1,31 @@ +\pagenumbering{roman} +\setcounter{page}{1} + +\selecthungarian + +%---------------------------------------------------------------------------- +% Abstract in Hungarian +%---------------------------------------------------------------------------- +\chapter*{Kivonat}\addcontentsline{toc}{chapter}{Kivonat} + +Jelen dokumentum egy diplomaterv sablon, amely formai keretet ad a BME Villamosmérnöki és Informatikai Karán végző hallgatók által elkészítendő szakdolgozatnak és diplomatervnek. A sablon használata opcionális. Ez a sablon \LaTeX~alapú, a \emph{TeXLive} \TeX-implementációval és a PDF-\LaTeX~fordítóval működőképes. + + +\vfill +\selectenglish + + +%---------------------------------------------------------------------------- +% Abstract in English +%---------------------------------------------------------------------------- +\chapter*{Abstract}\addcontentsline{toc}{chapter}{Abstract} + +This document is a \LaTeX-based skeleton for BSc/MSc~theses of students at the Electrical Engineering and Informatics Faculty, Budapest University of Technology and Economics. The usage of this skeleton is optional. It has been tested with the \emph{TeXLive} \TeX~implementation, and it requires the PDF-\LaTeX~compiler. + + +\vfill +\selectthesislanguage + +\newcounter{romanPage} +\setcounter{romanPage}{\value{page}} +\stepcounter{romanPage} \ No newline at end of file diff --git a/docs/thesis/content/appendices.aux b/docs/thesis/content/appendices.aux new file mode 100644 index 0000000..6d18096 --- /dev/null +++ b/docs/thesis/content/appendices.aux @@ -0,0 +1,49 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Függelék}{18}{appendix*.10}\protected@file@percent } +\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.1}A TeXstudio felülete}{18}{section.F.1}\protected@file@percent } +\@writefile{lof}{\select@language{magyar} \contentsline {figure}{\numberline {F.1.1.}{\ignorespaces A TeXstudio \LaTeX -szerkesztő.\relax }}{18}{figure.caption.11}\protected@file@percent } +\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.2}Válasz az ,,Élet, a világmindenség, meg minden'' kérdésére}{19}{section.F.2}\protected@file@percent } +\@setckpt{content/appendices}{ +\setcounter{page}{20} +\setcounter{equation}{2} +\setcounter{enumi}{11} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{9} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{6} +\setcounter{section}{2} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{1} +\setcounter{footnote@add}{0} +\setcounter{footnote@ch}{0} +\setcounter{parentequation}{0} +\setcounter{Item}{14} +\setcounter{Hfootnote}{11} +\setcounter{bookmark@seq@number}{26} +\setcounter{lstnumber}{14} +\setcounter{endNonectr}{15} +\setcounter{currNonectr}{0} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{NAT@ctr}{8} +\setcounter{currexamplectr}{1} +\setcounter{endexamplectr}{0} +\setcounter{example}{1} +\setcounter{currdefinitionctr}{1} +\setcounter{enddefinitionctr}{0} +\setcounter{definition}{1} +\setcounter{currtheoremctr}{1} +\setcounter{endtheoremctr}{0} +\setcounter{theorem}{1} +\setcounter{section@level}{1} +\setcounter{lstlisting}{0} +\setcounter{romanPage}{3} +} diff --git a/docs/thesis/content/appendices.tex b/docs/thesis/content/appendices.tex new file mode 100644 index 0000000..bd6c958 --- /dev/null +++ b/docs/thesis/content/appendices.tex @@ -0,0 +1,32 @@ +%---------------------------------------------------------------------------- +\appendix +%---------------------------------------------------------------------------- +\chapter*{\fuggelek}\addcontentsline{toc}{chapter}{\fuggelek} +\setcounter{chapter}{\appendixnumber} +%\setcounter{equation}{0} % a fofejezet-szamlalo az angol ABC 6. betuje (F) lesz +\numberwithin{equation}{section} +\numberwithin{figure}{section} +\numberwithin{lstlisting}{section} +%\numberwithin{tabular}{section} + +%---------------------------------------------------------------------------- +\section{A TeXstudio felülete} +%---------------------------------------------------------------------------- +\begin{figure}[!ht] +\centering +\includegraphics[width=150mm, keepaspectratio]{figures/TeXstudio.png} +\caption{A TeXstudio \LaTeX-szerkesztő.} +\end{figure} + +%---------------------------------------------------------------------------- +\clearpage\section{Válasz az ,,Élet, a világmindenség, meg minden'' kérdésére} +%---------------------------------------------------------------------------- +A Pitagorasz-tételből levezetve +\begin{align} +c^2=a^2+b^2=42. +\end{align} +A Faraday-indukciós törvényből levezetve +\begin{align} +\rot E=-\frac{dB}{dt}\hspace{1cm}\longrightarrow \hspace{1cm} +U_i=\oint\limits_\mathbf{L}{\mathbf{E}\mathbf{dl}}=-\frac{d}{dt}\int\limits_A{\mathbf{B}\mathbf{da}}=42. +\end{align} diff --git a/docs/thesis/content/introduction.aux b/docs/thesis/content/introduction.aux new file mode 100644 index 0000000..534f236 --- /dev/null +++ b/docs/thesis/content/introduction.aux @@ -0,0 +1,48 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{\numberline {1}Bevezetés}{1}{chapter.1}\protected@file@percent } +\@writefile{lof}{\select@language{magyar} \addvspace {10\p@ }} +\@writefile{lot}{\select@language{magyar} \addvspace {10\p@ }} +\@setckpt{content/introduction}{ +\setcounter{page}{2} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{1} +\setcounter{section}{0} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote@add}{0} +\setcounter{footnote@ch}{0} +\setcounter{parentequation}{0} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{3} +\setcounter{lstnumber}{1} +\setcounter{endNonectr}{2} +\setcounter{currNonectr}{0} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{NAT@ctr}{0} +\setcounter{currexamplectr}{0} +\setcounter{endexamplectr}{0} +\setcounter{example}{0} +\setcounter{currdefinitionctr}{0} +\setcounter{enddefinitionctr}{0} +\setcounter{definition}{0} +\setcounter{currtheoremctr}{0} +\setcounter{endtheoremctr}{0} +\setcounter{theorem}{0} +\setcounter{section@level}{0} +\setcounter{lstlisting}{0} +\setcounter{romanPage}{3} +} diff --git a/docs/thesis/content/introduction.tex b/docs/thesis/content/introduction.tex new file mode 100644 index 0000000..f1ee508 --- /dev/null +++ b/docs/thesis/content/introduction.tex @@ -0,0 +1,7 @@ +%---------------------------------------------------------------------------- +\chapter{\bevezetes} +%---------------------------------------------------------------------------- + +A bevezető tartalmazza a diplomaterv-kiírás elemzését, történelmi előzményeit, a feladat indokoltságát (a motiváció leírását), az eddigi megoldásokat, és ennek tükrében a hallgató megoldásának összefoglalását. + +A bevezető szokás szerint a diplomaterv felépítésével záródik, azaz annak rövid leírásával, hogy melyik fejezet mivel foglalkozik. diff --git a/docs/thesis/figures/TeXstudio.png b/docs/thesis/figures/TeXstudio.png new file mode 100644 index 0000000..9977af8 Binary files /dev/null and b/docs/thesis/figures/TeXstudio.png differ diff --git a/docs/thesis/figures/bme_logo.pdf b/docs/thesis/figures/bme_logo.pdf new file mode 100644 index 0000000..ca1c084 Binary files /dev/null and b/docs/thesis/figures/bme_logo.pdf differ diff --git a/docs/thesis/figures/convert.cmd b/docs/thesis/figures/convert.cmd new file mode 100644 index 0000000..bc178bc --- /dev/null +++ b/docs/thesis/figures/convert.cmd @@ -0,0 +1,7 @@ +@echo off +for %%j in (*.eps) do ( +echo converting file "%%j" +epstopdf "%%j" +) +echo done . + diff --git a/docs/thesis/huplain.bst b/docs/thesis/huplain.bst new file mode 100644 index 0000000..0c02e48 --- /dev/null +++ b/docs/thesis/huplain.bst @@ -0,0 +1,1910 @@ +% +% huplain.bst -- plain.bst in Hungarian +% by pts@fazekas.hu at Thu Oct 30 10:10:04 CET 2003 +% tetex-url at Mon May 3 20:01:40 CEST 2004 +% derived from BibTeX standard bibliography style `plain' +% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% !! title={Az foo} -> key={foo} +% !! auto add space into URLs longer than 70 characters +% !! don't remove double-accent in T1 encoding: \'{\`a}} +% !! sort year +% !! make sure about Hungarian typography of {proceedings} and {inproceedings} +% it is better now to have talked=1, (Elhangzott a ... cm konferencin) +% !! also remove space after \ae before calling purify$ +% !! crossrefs +% !! ` type ' +% !! hu ordering: author, year, title if author is present +% title, year if author is missing! +% !! use and document ``address'' +% !! MSZ 3401--81. A bibliogrfiai ttelek betrendbe sorolsnak szablyai. +% !! MSZ 3402--80. Knyvek bibliogrfiai adatkzlse s bels elrendezse. +% !! MSZ 3424/*-*. Bibliogrfiai lers. *. +% !! MSZ 3432-85. Szavak s szkapcsolatok rvidtse a bibliogrfiai lersban. +% !! MSZ 3440/*-*. A bibiliogrfiai lers besorolsi adatai. *. +% !! abbrv style for J.-P. Sartre +% !! test all entry types +% !! optional \uppercase or \textsc +% !! "5~ {\hbox{ja}}nu\'ar" #1 "({l,}{ff,})" format.name$ warning$ +% !! format.name$ keeps the first char of the name only, so specify {Gy}ula +% !! don't use width$ ??, because it's the cmr10 font in 1987. +% !! getting the first chars of names +% !! \include... +% !! bibgerman.sty, gerplain.bst, language = "german" | "USenglish" | "english" etc. +% \selectlanguage{...} \bibitem... +% !! doc: parametric volume: `ktet' (volumeisyearly={1}) instead of `vf.' +% OK: smaller space for \newblock +% OK: huname: name in hungarian order +% SUXX: cannot read current (overridden) MACRO values from .bst +% SUXX: #161 int.to.chr$ doesn't work (out of bounds), stupid BibTeX... +% Dat: @preamble { "..." # "..." } +% Dat: bibtex removes spaces from end of field contents +% Dat: `volume=' is `vfolyam' +% Dat: Doc: key={{ }.} +% Dat: Doc: write non-decaptilized titles: title = {Fejt {Ferenc} s a szocildemokrcia}, +% Dat: print debug messages with "foo" warning$ +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + + street + zip + city + phone + mobile + name + + numvolumes + numpages + tetex-url + ctan-url + url + isbn + issn + nocheck % ****pts**** + huname % ****pts**** + inputenc % ****pts**** + author2 % ****pts**** + talked % ****pts**** + volumeisyearly % ****pts**** + + % vvv for fmts + firstname.fmt % ****pts**** + lastname.fmt % ****pts**** + } + {} + { label adr.char } % !! what does this mean? + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + + +STRINGS { ss tt } + +%STRINGS { acc.latin2.160 acc.latin1.160 acc.160 } +%FUNCTION {init.accs} { +% " A L LS SSTZ-ZZ a l ls sstz zzRAAAALCCCEEEEIIDDNNOOOO*RUUUUYTsraaaalccceeeeiiddnnoooo/ruuuuytd" 'acc.latin2.160 := +% " ! | AAAAAAACEEEEIIIIDNOOOOO*OUUUUYTsaaaaaaaceeeeiiiidnooooo/ouuuuyty" 'acc.latin1.160 := +%} +%%** @param #1 string +%%** @return string +%FUNCTION {rmacc.latinx} { % ****pts**** +% 'tt := +% "" 'ss := +% { tt empty$ not } { +% #1 +% { duplicate$ tt swap$ #1 substring$ +% duplicate$ "" = { pop$ #0 } { chr.to.int$ #160 < } if$ +% } { #1 + } while$ +% duplicate$ tt swap$ #1 swap$ #1 - substring$ +% % duplicate$ ";" * warning$ +% ss swap$ * 'ss := +% duplicate$ tt swap$ #1 substring$ +% duplicate$ "" = { pop$ } { +% chr.to.int$ #159 - acc.160 swap$ #1 substring$ +% ss swap$ * 'ss := +% #1 + +% } if$ +% tt swap$ global.max$ substring$ 'tt := +% % tt warning$ +% } while$ +% ss +%} +% +%%** @param #1 a string +%%** @return a string +%FUNCTION {rmacc} { % **** pts **** +% inputenc empty$ 'skip$ { +% inputenc "latin1" = { acc.latin1.160 'acc.160 := rmacc.latinx } 'skip$ if$ +% inputenc "latin2" = { acc.latin2.160 'acc.160 := rmacc.latinx } 'skip$ if$ +% } if$ +%} + +STRINGS { acc4.latin2.160 acc4.latin1.160 acc4.160 } +FUNCTION {init.accs4} { + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\S %\" quote$ "{}%%%%%%%%%%%%%%%%%%%%%%%%\={}%%%%%%%%%%%%%%%%\'{}%%%%\P %%%%%\c\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%\`A%\'A%\^A%\~A%\" quote$ "A%\r A\AE%\c C\`E%\'E%\^E%\" quote$ "E%\`I%\'I%\^I%\" quote$ "I%\DH%\~N%\`O%\'O%\^O%\~O%\" quote$ "O%%%%%\O %\`U%\'U%\^U%\" quote$ "U%\'Y%\TH%\ss%\`a%\'a%\^a%\~a%\" quote$ "a%\r a\ae%\c c\`e%\'e%\^e%\" quote$ "e%\`\i\'\i\^\i\" quote$ "\i\dh%\~n%\`o%\'o%\^o%\~o%\" quote$ "o%%%%%\o %\`u%\'u%\^u%\" quote$ "u%\'y%\th%\" quote$ "y%" * * * * * * * * * * * * * * * * * * * * * * * * 'acc4.latin1.160 := + "%%%%\k A\u{}\L %%%%%\v L\'S%\S %\" quote$ "{}\v S\c S\v T\'Z%%%%%\v Z\.Z%%%%%\k a\k\ \l %\'{}\v l\'s%\v{}\c\ \v s\c s\v t\'z%\H{}\v z\.z%\'R%\'A%\^A%\u A\" quote$ "A%\'L%\'C%\c C\v C\'E%\k E\" quote$ "E%\v E\'I%\^I%\v D\DJ%\'N%\v N\'O%\^O%\H O\" quote$ "O%%%%%\v R\r U\'U%\H U\" quote$ "U%\'Y%\c T\ss%\'r%\'a%\^a%\u a\" quote$ "a%\'l%\'c%\c c\v c\'e%\k e\" quote$ "e%\v e\'\i\^\i\v d\dj%\'n%\v n\'o%\^o%\H o\" quote$ "o%%%%%\v r\r u\'u%\H u\" quote$ "u%\'y%\c t\.{}" * * * * * * * * * * * * * * * * * * 'acc4.latin2.160 := +} +%** @param #1 string +%** @return string +FUNCTION {rmacc4.latinx} { % ****pts**** + 'tt := + "" 'ss := + { tt "" = not } { % Dat: empty$ is true for space + #1 + { duplicate$ tt swap$ #1 substring$ + duplicate$ "" = { pop$ #0 } { chr.to.int$ #160 < } if$ + } { #1 + } while$ + duplicate$ tt swap$ #1 swap$ #1 - substring$ + % duplicate$ ";" * warning$ + ss swap$ * 'ss := + duplicate$ tt swap$ #1 substring$ + duplicate$ "" = { pop$ } { + % chr.to.int$ #159 - acc.160 swap$ #1 substring$ + duplicate$ chr.to.int$ + acc4.160 swap$ duplicate$ + duplicate$ + #639 - #4 substring$ + duplicate$ "%%%%" = { + pop$ + } { + swap$ pop$ + duplicate$ #4 #1 substring$ "%" = { #1 #3 substring$ } 'skip$ if$ + "{" swap$ * "}" * + } if$ + ss swap$ * 'ss := + #1 + + } if$ + tt swap$ global.max$ substring$ 'tt := + % tt warning$ + } while$ + ss +} + +%** Changes "" to "{\'a}" etc. +%** @param #1 a string +%** @return a string +FUNCTION {rmacc4} { % **** pts **** + inputenc empty$ 'skip$ { + inputenc "latin1" = { acc4.latin1.160 'acc4.160 := rmacc4.latinx } 'skip$ if$ + inputenc "latin2" = { acc4.latin2.160 'acc4.160 := rmacc4.latinx } 'skip$ if$ + } if$ +} + +INTEGERS { acc.fwd } +%** Changes "fo{\'o}h{\H u}s" to "fo\'oh\H us". Helps keeping ligatures. +%** Changes `{\ae}' to `\ae ' and `{\\XY}' to `\XY ' +%** Changes only known accents inside braces, followed by 1 or 2 accented +%** letters. +%** Dat: previous \oe must be inserted as {\\oe}, the same for {\DH} etc. +%** @param #1 string +%** @return string +FUNCTION {rmbrace.accs} { % ****pts**** + % Dat: LaTeX non-alphanumeric accents \`\'\^\~\"\=\. + % Dat: LaTeX accents for purify$: \c\u\v\H\d\b\t\r + % Dat: specially removed: {\?...} -> ... + 'tt := + "" 'ss := + { tt "" = not } { + #1 + { duplicate$ tt swap$ #2 substring$ + duplicate$ "" = { pop$ #0 } { "{\" = not } if$ + } { #1 + } while$ + duplicate$ tt swap$ #1 swap$ #1 - substring$ + % duplicate$ ";" * warning$ + ss swap$ * 'ss := + + duplicate$ tt swap$ #2 + #1 substring$ + "}" = { #3 } { + duplicate$ tt swap$ #3 + #1 substring$ + "}" = { % `{\i}' etc. + duplicate$ tt swap$ #2 + #1 substring$ + duplicate$ "o" = {#4} { + duplicate$ "O" = {#4} { + duplicate$ "l" = {#4} { + duplicate$ "L" = {#4} { + duplicate$ "i" = {#4} { + duplicate$ "j" = {#4} { + #3} % Dat: disallow other {\X} + if$} if$} if$} if$} if$} if$ + swap$ pop$ + } { + duplicate$ tt swap$ #4 + #1 substring$ + "}" = { #5 } { + duplicate$ tt swap$ #5 + #1 substring$ + "}" = { #6 } { #3 } if$ + } if$ + } if$ + } if$ + 'acc.fwd := + % Status: offset-of-"\{" + %%acc.fwd int.to.str$ warning$ + acc.fwd #3 = { + duplicate$ tt swap$ acc.fwd substring$ % copy 3 bytes + } { + duplicate$ #1 + tt swap$ acc.fwd #2 - substring$ % keep "\'o" or "\H u" only + %%duplicate$ warning$ + duplicate$ "\oe" = {#5} { + duplicate$ "\OE" = {#5} { + duplicate$ "\ae" = {#5} { + duplicate$ "\AE" = {#5} { + duplicate$ "\aa" = {#5} { + duplicate$ "\AA" = {#5} { + duplicate$ "\th" = {#5} { + duplicate$ "\TH" = {#5} { + duplicate$ "\dh" = {#5} { + duplicate$ "\DH" = {#5} { + duplicate$ "\dj" = {#5} { + duplicate$ "\DJ" = {#5} { + duplicate$ "\ng" = {#5} { + duplicate$ "\NG" = {#5} { + duplicate$ "\ss" = {#5} { + duplicate$ "\SS" = {#5} { + duplicate$ "\o" = {#5} { + duplicate$ "\O" = {#5} { + duplicate$ "\l" = {#5} { + duplicate$ "\L" = {#5} { + duplicate$ "\i" = {#5} { + duplicate$ "\j" = {#5} { + duplicate$ #2 #1 substring$ + duplicate$ "`" = {#1} { + duplicate$ "'" = {#1} { + duplicate$ "^" = {#1} { + duplicate$ "~" = {#1} { + duplicate$ quote$ = {#1} { + duplicate$ "=" = {#1} { + duplicate$ "." = {#1} { + duplicate$ "c" = {#2} { + duplicate$ "u" = {#2} { + duplicate$ "v" = {#2} { + duplicate$ "H" = {#2} { + duplicate$ "d" = {#2} { + duplicate$ "b" = {#2} { + duplicate$ "t" = {#2} { + duplicate$ "r" = {#2} { + duplicate$ "?" = {#3} { + duplicate$ "\" = {#4} { % added at Mon May 17 15:39:30 CEST 2004 + #0} if$} if$} if$} if$} if$} if$} if$} if$} if$} + if$} if$} if$} if$} if$} if$} if$} if$ + % Stack: "\'o" "'" 0|1|2 + swap$ pop$ + } if$} if$} if$} if$} if$} if$} if$} if$} if$} if$} if$} if$} if$} if$} + if$} if$} if$} if$} if$} if$} if$} if$ + + % Stack: "\'o" 0|1|2|3 + duplicate$ #5 = { + pop$ " " * % `{\oe}' becomes `\oe ' + } { duplicate$ #4 = { + pop$ #2 global.max$ substring$ % include single backlsash + " " * % add space so `{\\th}' becomes `\th ' + } { duplicate$ #3 = { + pop$ #3 global.max$ substring$ + } { duplicate$ #2 = { + pop$ + duplicate$ #3 #1 substring$ + " " = + } 'skip$ if$ + % Stack: "\'o" 0|1 + 'skip$ { "{" swap$ * "}" * } if$ + } if$ } if$ } if$ + } if$ + ss swap$ * 'ss := + acc.fwd + tt swap$ global.max$ substring$ 'tt := + } while$ + ss +} + +% --- + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + cur.adr.char after.authors } +STRINGS { s t ls rs } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.authors := +} + + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\bibNewBlock " write$ + } + { output.state before.all = + 'write$ + { output.state after.authors = + { write$ newline$ "\bibNewBlock " write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ + nocheck empty$ { "empty " t * " in " * cite$ * warning$ } {} if$ + } + 'output.nonnull + if$ +} + +% @return a string +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + inputenc empty$ {} { " \bibInputEncoding{" inputenc "}" * * write$ } if$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + inputenc empty$ 'skip$ { "\bibResetInputEncoding" write$ newline$ } if$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% ****pts**** +FUNCTION {new.block.authors} { + duplicate$ empty$ 'skip$ { ":" * } if$ + output.state before.all = + 'skip$ + { after.authors 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +%** is.url.split.char <0-or-1> +%** Is the spefified char candidate to split the URL at? +FUNCTION {is.url.split.char} { + duplicate$ "/" = { pop$ #1 } { + duplicate$ "." = { pop$ #1 } { + duplicate$ "?" = { pop$ #1 } { + duplicate$ "&" = { pop$ #1 } { + duplicate$ "-" = { pop$ #1 } { + pop$ #0 } if$ } if$ } if$ } if$ } if$ +} + +%** string.length +%** Imp: a faster implementation +%** Dat: destroys 'ls +FUNCTION {string.length} { + 'ls := + #1 + { duplicate$ ls swap$ #1 substring$ "" = #1 swap$ - } + { #1 + } while$ + #1 - + "" 'ls := +} + + +INTEGERS { last.split.ofs } + +%** split.url +%** We have to add spaces (works with \usepackage{url}), because otherwise +%** bibtex adds a % at column 79. +%** After a maxinmum of 71 chars, a space gets inserted. +%** Clobbers 'ss, 'ls and 'rs. +FUNCTION {split.url} { + % We add spaces after the last is.url.split.char + 'ss := % save original string + #0 'last.split.ofs := % Dat: last offset to split _after_ + "" 'rs := + #1 % loop variable + { duplicate$ ss swap$ #1 substring$ "" = #1 swap$ - } % more chars in ss + { duplicate$ ss swap$ #1 substring$ is.url.split.char { + duplicate$ 'last.split.ofs := + } 'skip$ if$ + duplicate$ #70 > { + last.split.ofs #0 = { + duplicate$ 'last.split.ofs := % Dat: split at any char if cannot split at good position + } 'skip$ if$ + rs ss #1 last.split.ofs substring$ " " * * 'rs := + ss last.split.ofs #1 + ss string.length substring$ 'ss := + %% ss warning$ + last.split.ofs - #1 + % decrement loop variable + %% duplicate$ warning$ + #0 'last.split.ofs := + } { #1 + } if$ + } while$ + pop$ % Dat: pop loop variable + rs ss * + "" 'ss := + "" 'rs := +} + +FUNCTION {output.url} { + url empty$ + { "" } + { new.block "" output.nonnull + before.all 'output.state := + newline$ % Dat: bibtex breaks lines -- let it be longer + "\bibUrll{URL} >" url split.url * ">" * } + if$ output + ctan-url empty$ + { "" } + { new.block "" output.nonnull + before.all 'output.state := + newline$ % Dat: bibtex breaks lines -- let it be longer + "\bibUrll{CTAN} >" ctan-url split.url * ">" * } + if$ output + tetex-url empty$ + { "" } + { new.block "" output.nonnull + before.all 'output.state := + newline$ % Dat: bibtex breaks lines -- let it be longer + "\bibUrll{te\TeX} >" tetex-url * split.url ">" * } + if$ output +} + +% ****pts**** +STRINGS { nfmt0 nfmt1 nfmt2 nfmt3 } +STRINGS {firstname.fmt0 lastname.fmt0} +FUNCTION {init.nfmt0} { + "ff" 'firstname.fmt0 := + "ll" 'lastname.fmt0 := + % "f." 'firstname.fmt0 := % similar to abbrev.bst +} +FUNCTION {init.nfmts} { + "{" firstname.fmt0 "~}{vv~}{" lastname.fmt0 "}{, jj}" * * * * 'nfmt0 :=% 0: English order + "{jj~}{vv~}{" lastname.fmt0 "}{~" firstname.fmt0 "}" * * * * 'nfmt1 := % 1: Hungarian name in Hungarian bib + "{vv~}{" lastname.fmt0 "}{, " firstname.fmt0 "}{, jj}" * * * * 'nfmt2 := % 2: English name in Hungarian bib + "{jj~}{vv~}{ll}{~f.}" 'nfmt3 := % 3: Hungarian name in Hungarian bib, abbreviated name +} + +FUNCTION {format.names} +{ rmacc4 's := % ****pts**** + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } { + % ****pts**** + huname empty$ { s nameptr nfmt0 format.name$ 't := }{ % empty: English order + huname "0" = { s nameptr nfmt0 format.name$ 't := }{ % 0: English order + huname "1" = { s nameptr nfmt1 format.name$ 't := }{ % 1: Hungarian name in Hungarian bib + huname "2" = { s nameptr nfmt2 format.name$ 't := } % 2: English name in Hungarian bib + { s nameptr nfmt3 format.name$ 't := } % 3: Hungarian name in Hungarian bib, abbreviated name + if$ }if$ }if$ }if$ + % ^^^ Dat: important to have no space in {ll} for "others" + t rmbrace.accs 't := % ****pts**** + nameptr #1 > + { namesleft #1 > + { "\bibAnd 0" * t * } + { % numnames #2 > { "," * } 'skip$ if$ % ****pts**** + %% t ";;" * warning$ + t "others" = + { "\bibEtAl ." * } + { numnames #2 > { "\bibAnd 2" } { "\bibAnd 1"} if$ * t * } + if$ + } + if$ + } + 't + if$ + %% t warning$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > { "\bibEd 1" } { "\bibEd 0" } if$ * %****pts**** + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title rmacc4 "t" change.case$ rmbrace.accs } % Dat: ****pts**** get used to it in English... + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +% Dat: possible months formats in .bib: +% month = jun # "-" # aug, --> "j\'unius--\allowbreak augusztus" !! +% month = jun, --> "j\'unius" +% month = "8~" # feb, --> "februr 8." +% month = nov # ", " # dec, --> "november\nobreak\hskip--\allowbreak december" + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ".\ " * + month #1 "{ll}{~ff.}" format.name$ % convert "december" -> "december"; "5~december" -> "december~5." + % ^^^ !! convert "janu\'ar--febru\'ar" and "janu\'ar, febru\'ar" to "j--f"... + % ^^^ !! convert . to \hbox{.} at end, to have frenchspacing... + * } % !! date + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title rmbrace.accs emphasize +} + +%** tie.or.space.connect "" +%** is ~ if is long (>=3 normal letters) +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {numpages.output} { % ****pts**** + numpages empty$ 'skip$ { + numpages "p." tie.or.space.connect output + } if$ +} + +FUNCTION {note.output} { % ****pts**** + note empty$ 'skip$ { note rmbrace.accs output.nonnull } if$ +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.series} { % ****pts**** + series empty$ { "" } { + series + type$ "inproceedings" = type$ "proceedings" = or + { " kon\-fe\-ren\-cia\-so\-ro\-zat" } { " sorozat" } if$ + * + } if$ +} + +% Dat: INCOLLECTION: number = 23, series = "Fast Computers", +FUNCTION {format.bvolume} { % ****pts**** + volume empty$ number empty$ and { + series empty$ 'skip$ { format.series output new.block } if$ + % ^^^ Dat: don't emphasize {Osiris kziknyvek sorozat}, because it's after the book title. + numvolumes empty$ { "" } + { "\bibNumVolumes {" numvolumes "}." * * } if$ % ****pts**** + } { + "numvolumes and volume/number" numvolumes either.or.check + series empty$ 'skip$ { format.series output } if$ % Dat: no new.block + number empty$ + { volume } + { "volume and number" volume either.or.check number } if$ + n.dashify + duplicate$ #-1 #1 substring$ "-" = 'skip$ 'add.period$ if$ + "\bibVolume {" swap$ * "}." * + } if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition rmacc4 "l" change.case$ } + { edition rmacc4 "t" change.case$ } + if$ + add.period$ + " kiad." * % Dat: " kiad.": Gyurgyk Jnos: Szerkesztk s szerzk kziknyve, 533. oldal, 2. sor. + } + if$ +} + +% Dat: `FUNCTION {multi.page.check}' not needed + +%** Used by type$ {inbook} and {incollection} +%** English typography has: +%** pages 23--45 (pages={23--45}) +%** pp. 23--45. (pages={23--45}) +%** p. 23. (pages=={23}: on page 23) +%** p. 234 (numpages=234: the book has 234 pages) +%** Hungarian typography has: +%** 234 p. (numpages=234) +%** 23--45. p (pages={23--45}) +%** 23. p. (pages=23) +FUNCTION {format.pages} { % ****pts**** + pages empty$ + { "" } + { pages add.period$ n.dashify "p." tie.or.space.connect } + if$ +} + +FUNCTION {volume.caption} { % ****pts**** + volumeisyearly empty$ { "1" } { volumeisyearly } if$ % default is "1" + "0" = { "k\" quote$ "otet" * * } { "\'evf." } if$ +} + +FUNCTION {format.vol.num.pages} { % ****pts**** + volume duplicate$ empty$ { pop$ "" } { + add.period$ + volume.caption % "\'evf." + tie.or.space.connect } if$ + year empty$ { + nocheck empty$ { "empty year in " cite$ * warning$ } 'skip$ if$ + } { + duplicate$ empty$ + { pop$ format.date add.period$ } + { " (" * format.date * ")" * } if$ + } if$ + number empty$ 'skip$ { + duplicate$ empty$ 'skip$ { " " * } if$ + volume empty$ nocheck empty$ and { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ + number add.period$ "sz." tie.or.space.connect * + } if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } % 'format.pages + { chapter + type empty$ { "fejezet" } { + type "subsection" = { "alszakasz" } { + type "subsubsection" = { "alalszakasz" } { + type "chapter" = { "fejezet" } { + type "section" = { "szakasz" } { + type "part" = { "r{\'e}sz" } { + type "appendix" = { "f{\" quote$ "u}ggel{\'e}k" * * } { + type rmacc4 "l" change.case$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ + tie.or.space.connect + % Dat: no format.pages here % ****pts**** + } + if$ +} + +FUNCTION {format.in.edited} { % ****pts**** + editor "self" = % ****pts**** + { "\bibInSelf0" } + { "In " format.editors * ": " * } if$ + booktitle rmbrace.accs emphasize * +} + +FUNCTION {format.in.ed.booktitle} { + booktitle empty$ + { "" } + { editor empty$ + % vvv "In ": Gyurgyk Jnos: Szerkesztk s szerzk kziknyve, 130. oldal, 12. sor. + { "In " booktitle rmbrace.accs emphasize * } + 'format.in.edited if$ + } if$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + + +%* @param #1 a string beginning with a possibly accented letter +%* @return "" or "z", corresponding to the Hungarian definite article "a" and "az" +FUNCTION {article.az} { + rmacc4 % remove accents smartly + purify$ + "l" change.case$ + #1 #1 substring$ + duplicate$ " " = {"z"} { % hack + duplicate$ "a" = {"z"} { + duplicate$ "e" = {"z"} { + duplicate$ "i" = {"z"} { + duplicate$ "o" = {"z"} { + duplicate$ "u" = {"z"} { + ""} if$ }if$ }if$ }if$ }if$ }if$ + swap$ pop$ +} + +%** by pts@fazekas.hu at Thu Nov 9 17:03:00 CET 2006 +%** @example "foo}" split.last.brace "foo" "}" +%** @example "food" split.last.brace "food" "" +FUNCTION {split.last.brace} { + duplicate$ #-1 #1 substring$ "}" = + { duplicate$ string.length #1 - #1 swap$ substring$ "}" } + { "" } if$ +} + +%** by pts@fazekas.hu at Thu Nov 9 17:03:00 CET 2006 +%** Clobbers 'rs and 'ls +%** @example "foobar" "bar" replace.at.end "foo" 1 +%** @example "foobar!" "bar" replace.at.end "foobar!" 0 +FUNCTION {remove.at.end} { + 'rs := % save pattern string % Dat: string.length destroys 'ls + duplicate$ rs string.length #-1 swap$ + substring$ rs = + { duplicate$ string.length rs string.length - #1 swap$ substring$ #1 } + { #0 } if$ +} + +FUNCTION {format.in.talked.booktitle} { + booktitle empty$ + { "" } + { editor empty$ + { + booktitle duplicate$ 's := + "A " swap$ #2 swap$ chop.word + "Az " swap$ #3 swap$ chop.word + %% duplicate$ warning$ + s = { + "a" booktitle article.az * + booktitle rmbrace.accs emphasize + tie.or.space.connect + } { booktitle rmbrace.accs emphasize } if$ + % Dat: now: "a~{\em Foo Konferencia}" + split.last.brace + swap$ + % Dat: now "}" "a~{\em Foo Konferencia" + % vvv Imp: maybe we don't need \- here, because it + % prevents hyphenation in earlier parts of the word + "Conference" remove.at.end { "Con\-fe\-ren\-ce-en" * swap$ * } { + "conference" remove.at.end { "con\-fe\-ren\-ce-en" * swap$ * } { + "Konferencia" remove.at.end { "Kon\-fe\-ren\-ci\'an" * swap$ * } { + "konferencia" remove.at.end { "kon\-fe\-ren\-ci\'an" * swap$ * } { + swap$ * " c{\'i}m{\H u} konferenci{\'a}n" * + } if$ } if$ } if$ } if$ + %% duplicate$ warning$ + % Dat: now "a~{\em Foo Konferencin}" + % or "a~{\em Foo} cm konferencin" + %% "alma" string.length warning$ + "Elhangzott " swap$ * + } 'format.in.edited if$ + } if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +%** @param #1 default value for `type' +FUNCTION {format.thesis.type} { % ****pts**** + type empty$ 'skip$ { pop$ type } if$ + rmacc4 "t" change.case$ rmbrace.accs +} + +FUNCTION {format.tr.number} % ****pts**** +{ type empty$ + { "{\bibTechRep 0}" } % Dat: `{'..`}' to avoid "t" change.case$ + 'type + if$ + number empty$ + { rmacc4 "t" change.case$ } + { number add.period$ swap$ tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " \bibEtAl ." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \bibEtAl ." * } + { " \'es " * editor #2 "{vv~}{ll}" format.name$ * } % !! + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} %*type* ****pts**** +{ output.bibitem + format.authors "author" output.check + new.block.authors + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output % format.date is inside this + } + { format.article.crossref output.nonnull + } if$ + format.pages output + format.issn output + output.url + new.block numpages.output note.output + fin.entry +} + +% copied from KOMA-Script +% by pts at Thu Oct 30 09:56:33 CET 2003 + +% !! how does it work and why? +FUNCTION {print.adrchr} +{ adr.char empty$ 'skip$ { % ****pts**** Dat: default + adr.char chr.to.int$ cur.adr.char > + { newline$ "\adrchar{" adr.char "}" * * write$ newline$ + adr.char chr.to.int$ 'cur.adr.char := + } + 'skip$ + if$ + } if$ % !! +} + +FUNCTION {get.names} +{ name empty$ + { organization empty$ + { "{}{}" } + { organization "{}" * } + if$ + } + { "{" name #1 "{ll}" format.name$ "}" * * + "{" name #1 "{ff}{ vv}" format.name$ "}" * * * + } + if$ +} + +%** Dat: deliberately with `sss', to avoid conflict +FUNCTION {addresss} { %*type* + % !! many improvements + output.bibitem pop$ + print.adrchr % !! + "\adrentry" write$ + get.names write$ newline$ + "{" + street empty$ + { "" } + { street " \\ " *} + if$ + * + zip empty$ + { "" } + { zip } + if$ + " " * * + city empty$ + { "" } + { city } + if$ + "}{" * * + phone empty$ + { + mobile empty$ + { "" } + { mobile } + if$ + }{ + mobile empty$ + { phone } + { phone "\\" mobile * * } + if$ + } + if$ + "}{}{}{}{" * * + key empty$ + { "" } + { key } + if$ + "}" * * write$ newline$ +} + + +% --- + +%** Used by type$ {book}, {inbook} and {incollection} +FUNCTION {books.tail} { % ****pts**** + crossref missing$ { + format.bvolume output % includes functionality of format.number.series + new.block % no comma in `1--4. kt., 7. kiad.' + } 'skip$ if$ + type$ "book" = { + chapter empty$ 'skip$ + { "can't use chapter for @book; try @inbook or @incollection" warning$ } if$ + } { + format.chapter.pages + pages empty$ { "chapter and pages" output.check } {output} if$ + new.block % new.sentence? -- for incollection + } if$ + author2 empty$ 'skip$ { author2 output.nonnull new.block } if$ + format.edition output new.block + crossref missing$ { + % format.bvolume output + % new.block + % format.number.series output % ****pts**** + % new.sentence + address output + format.date "year" output.check + publisher "publisher" output.check + } { + format.date "year" output.check + new.block + format.book.crossref output.nonnull + } if$ + format.pages output + format.isbn output + format.issn output % Dat: most books don't have this + output.url + new.block numpages.output note.output fin.entry +} + +FUNCTION {book} { %*type* + output.bibitem + author empty$ + { editor empty$ key missing$ { "" } { key } if$ "." = and + 'skip$ + { format.editors "author and editor" output.check } if$ + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block.authors + format.btitle "title" output.check + new.block + books.tail +} + +FUNCTION {booklet} { %*type* ****pts**** + output.bibitem + format.authors output + new.block.authors + format.title "title" output.check + new.block + format.bvolume output new.block + author2 output.nonnull new.block + format.edition output new.block + % howpublished address new.block.checkb + howpublished output + address output + % Dat: no publisher= + format.date output + format.isbn output + format.issn output % Dat: most books don't have this + output.url + new.block numpages.output note.output fin.entry +} + +FUNCTION {inbook} %*type* +{ book % ****pts**** +} + +FUNCTION {incollection} %*type* +{ output.bibitem + format.authors "author" output.check + new.block.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check new.block } + { format.incoll.inproc.crossref output.nonnull } if$ + books.tail +} + +%** @param #1 thesis type +FUNCTION {thesises.tail} { % ****pts**** + format.thesis.type output.nonnull + school empty$ { nocheck empty$ { "empty school in " * cite$ * warning$ } 'skip$ if$ } 'skip$ if$ + school empty$ address empty$ and 'skip$ { + write$ before.all 'output.state := " (" + % school output address ")" * output + school ")" * output + new.block + } if$ + author2 empty$ 'skip$ { author2 output new.block } if$ + new.block + address output + format.date "year" output.check + output.url + new.block numpages.output note.output fin.entry +} + +%** Emits a decapitalized title. +FUNCTION {mastersthesis} { %*type* + output.bibitem + format.authors "author" output.check + new.block.authors + format.title "title" output.check + new.block + "{Diplomaterv}" % "{Doktori} {{\'e}rtekez{\'e}s} " % "Master's thesis" + thesises.tail +} + +%** Emits an \emph-asized title. +FUNCTION {phdthesis} { %*type* + output.bibitem + format.authors "author" output.check + new.block.authors + format.btitle "title" output.check + new.block + "{PhD} {\'e}rtekez{\'e}s " % "PhD thesis" + thesises.tail +} + +FUNCTION {misc} %*type* % ****pts**** +{ output.bibitem + format.authors output + title empty$ howpublished empty$ and 'skip$ { + new.block.authors % Dat: emits ":" + % title howpublished new.block.checkb % Dat: emits "." + format.title output + howpublished new.block.checka + howpublished output + } if$ + format.date output + format.isbn output + format.issn output % Dat: most books don't have this + output.url + new.block numpages.output note.output fin.entry + empty.misc.check +} + +FUNCTION {manual} %*type* ****pts**** +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull } if$ + new.block + } + { format.authors output.nonnull new.block.authors } + if$ + format.btitle "title" output.check + author2 empty$ 'skip$ { author2 output new.block } if$ + format.edition output new.block + + publisher empty$ 'skip$ { "can't use publisher for @manual; try @book" warning$ } if$ + author empty$ + { address output } + { % organization address new.block.checkb + organization output + address output + } if$ + format.edition output + format.date output + publisher output + output.url + new.block numpages.output note.output fin.entry +} + + +FUNCTION {techreport} %*type* +{ output.bibitem + format.authors "author" output.check + new.block.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + author2 empty$ 'skip$ { author2 output new.block } if$ + address output + format.date "year" output.check + institution "institution" output.check + output.url + new.block numpages.output note.output fin.entry +} + +FUNCTION {unpublished} %*type* % ****pts**** +{ output.bibitem + format.authors "author" output.check + new.block.authors + format.title "title" output.check new.block + format.date output + output.url + new.block + note "note" output.check + fin.entry +} + +FUNCTION {inproceedings} %*type* +{ output.bibitem + format.authors "author" output.check + new.block.authors + format.title + talked empty$ 'skip$ 'emphasize if$ % at Thu Nov 9 16:19:53 CET 2006 + "title" output.check + new.block + crossref missing$ + { talked empty$ 'format.in.ed.booktitle 'format.in.talked.booktitle if$ + duplicate$ #1 #1 substring$ "I" = { % Dat: don't append to `Elhangzott' or empty booktitle + series empty$ { duplicate$ empty$ 'skip$ { " (kon\-fe\-ren\-cia\-anyag)" * } if$ } 'skip$ if$ + } 'skip$ if$ + "booktitle" output.check + format.bvolume output % includes functionality of format.number.series + author2 empty$ 'skip$ { author2 output.nonnull new.block } if$ + new.block + address output % ****pts**** + format.date "year" output.check + % new.sentence + organization output + publisher output + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + format.isbn output + format.issn output % Dat: most books don't have this + output.url + new.block numpages.output note.output fin.entry +} + +FUNCTION {proceedings} %*type* +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + series empty$ { " (konferenciaanyag)" * } 'skip$ if$ + format.bvolume output % includes functionality of format.number.series + author2 empty$ 'skip$ { author2 output.nonnull new.block } if$ + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + % new.sentence % ****pts**** + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn output + format.issn output % Dat: most books don't have this + output.url + new.block numpages.output note.output fin.entry +} + +FUNCTION {conference} %*type* % ****pts**** +{ inproceedings } + +FUNCTION {default.type} { misc } + +FUNCTION {fmts} { %*type* % ****pts**** + % Emulation of \bibtem without typesetting anything. + newline$ + "\immediate\write\@auxout{\string\bibcite{" write$ + cite$ write$ + "}{0}}" write$ newline$ +} +FUNCTION {fmts2} { + firstname.fmt empty$ 'skip$ { firstname.fmt 'firstname.fmt0 := } if$ + lastname.fmt empty$ 'skip$ { lastname.fmt 'lastname.fmt0 := } if$ + init.nfmts +} + +%****pts**** +% Dat: {\-} is needed for format.name$ +MACRO {jan} {"ja{\-}nu{\-}\'ar"} +MACRO {feb} {"feb{\-}ru\'ar"} +MACRO {mar} {"m\'ar{\-}cius"} +MACRO {apr} {"\'ap{\-}ri{\-}lis"} +MACRO {may} {"m\'a{\-}jus"} +MACRO {jun} {"j\'u{\-}ni{\-}us"} +MACRO {jul} {"j\'u{\-}li{\-}us"} +MACRO {aug} {"au{\-}gusz{\-}tus"} +MACRO {sep} {"szep{\-}tem{\-}ber"} +MACRO {oct} {"ok{\-}t\'o{\-}ber"} +MACRO {nov} {"no{\-}vem{\-}ber"} +MACRO {dec} {"de{\-}cem{\-}ber"} + +% Dat: see also in mrabbrev.bib +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +%** @param #1 string +%FUNCTION {reverse} { % +% 't := "" 's := +% #1 +% { duplicate$ t swap$ #1 substring$ "" = not } { +% duplicate$ t swap$ #1 substring$ +% s * 's := +% #1 + +% } while$ +% pop$ s +%} + +%** by pts@fazekas.hu at Mon May 17 16:50:26 CEST 2004 +%** @param 1: TeX string +%** @return {\th}, {\TH} {\dh} {\DH} {\dj} {\DJ} {\ng} {\NG} {\SS} changed to +%** th TH dh DH dj DJ ng NG SS +FUNCTION {rmbrace.extrat1} { + % Dat: #4 #1 substring$ is substr($_,3,1) + 'ss := + "" 'tt := + #1 'len := + #5 + { duplicate$ ss swap$ #1 substring$ "" = not } { + % Stack: index-value (#5, #6 ...) + duplicate$ ss swap$ #1 substring$ "}" = { + duplicate$ ss swap$ #4 - #5 substring$ + %% duplicate$ warning$ + duplicate$ "{\th}" = {#1} { + duplicate$ "{\TH}" = {#1} { + duplicate$ "{\dh}" = {#1} { + duplicate$ "{\DH}" = {#1} { + duplicate$ "{\dj}" = {#1} { + duplicate$ "{\DJ}" = {#1} { + duplicate$ "{\ng}" = {#1} { + duplicate$ "{\NG}" = {#1} { + duplicate$ "{\SS}" = {#1} { + #0 }if$ }if$ }if$ }if$ }if$ }if$ }if$ }if$ }if$ + } {#42 #0} if$ + #1 = { + swap$ + % Stack: 5-char-substring index-value + duplicate$ tt swap$ ss swap$ len swap$ len - #4 - substring$ * 'tt := + swap$ tt swap$ #3 #2 substring$ * 'tt := + #1 + + duplicate$ 'len := + } { pop$ #1 + } if$ + } while$ + pop$ % index value + tt ss len global.max$ substring$ * +} + + +FUNCTION {sortify} +{ rmacc4 % remove accents smartly, so purify$ will remove the accent + % rmbrace.accs + duplicate$ % ****pts**** + rmbrace.extrat1 % ****pts**** + purify$ + % Dat: purify$ removes from "vrom", keeps `varom' in "v\'arom","v{\'a}rom" + % Dat: purify$ changes {\ss} to ss, but {\dj} to empty + "l" change.case$ + " " * + swap$ * +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify % Dat: calls rmacc4 and purify$ + %% duplicate$ warning$ + * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ rmacc4 't := + "A " #2 + "An " #3 + "The " #4 + "Egy " #4 + "Der " #4 + "Die " #4 + "Das " #4 + "Un " #3 + "Une " #4 + "Az " #3 t chop.word + chop.word chop.word chop.word chop.word chop.word % ***pts**** + chop.word + chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ name empty$ + { author empty$ + { key empty$ + { "to sort, need author/key/name in " cite$ * warning$ + title empty$ { "" } { title sort.format.title } if$ % ****pts**** + }{ key sortify } + if$ + }{ author sort.format.names } + if$ + }{ name sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key missing$ + { title empty$ nocheck empty$ or + { "to sort, need author, editor, or key in " cite$ * warning$ } 'skip$ if$ + title empty$ { "" } { title sort.format.title } if$ % ****pts**** + } + { key "." = % ****pts**** + { " " title sort.format.title * } % duplicate$ warning$ + % ^^^ Dat: " " is here to put them in front of other books + { key sortify } if$ + } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = type$ "inbook" = or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + { type$ "fmts" = + { fmts2 "" } % ****pts**** + 'author.sort + if$ + } + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +EXECUTE {init.accs4} +EXECUTE {init.nfmt0} +EXECUTE {init.nfmts} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {bibIE.a} { + "\makeatletter" write$ newline$ + "\global\def\bibIE@lowc{%" write$ newline$ + " \expandafter\ifx\csname inputencoding\endcsname\relax" write$ newline$ + " \def\NeedsTeXFormat##1]{}%" write$ newline$ + " \def\ProvidesPackage##1]{}%" write$ newline$ + " \def\DeclareOption##1##2{}%" write$ newline$ + " \def\ProcessOptions{\@ifstar\@gobble\@empty}%" write$ newline$ + " \input inputenc.sty" write$ newline$ + " \let\NeedsTeXFormat \@notprerr" write$ newline$ + " \let\ProvidesPackage\@notprerr" write$ newline$ + " \let\DeclareOption \@notprerr" write$ newline$ + " \let\ProcessOptions \@notprerr" write$ newline$ + " \fi" write$ newline$ + " \global\let\bibIE@lowc\relax}" write$ newline$ + "\def\bibIE@lowa#1#2{%" write$ newline$ + " \global\def\bibResetInputEncoding{\bibIE@lowb{ascii}}% anti-warning" write$ newline$ + " \ifx#1\relax\else" write$ newline$ + " \ifx#1\@inpenc@undefined@\@empty" write$ newline$ + " \global\def\bibResetInputEncoding{\bibIE@lowb{#2}}%" write$ newline$ + " \ifx\bibResetInputEncoding\reserved@a% keep old encoding" write$ newline$ + " \global\let\bibResetInputEncoding\@empty \let\reserved@a\@empty \fi" write$ newline$ + " \fi\fi}" write$ newline$ +} +FUNCTION {bibIE.b} { + "\let\bibIE@input\input" write$ newline$ + "\def\bibIE@ascii{ascii}" write$ newline$ + "\def\bibIE@lowb#1{%" write$ newline$ + " \def\reserved@a{#1}\ifx\reserved@a\bibIE@ascii" write$ newline$ + " \gdef\@inpenc@test{\global\let\@inpenc@test\relax}%" write$ newline$ + " \edef\@inpenc@undefined{\noexpand\@inpenc@undefined@{ascii}}%" write$ newline$ + " \@inpenc@loop\^^A\^^H\@inpenc@loop\^^K\^^K%" write$ newline$ + " \@inpenc@loop\^^N\^^_\@inpenc@loop\^^?\^^ff%" write$ newline$ + "\else\def\input{\global\let\@inpenc@test\relax \bibIE@input}% no {ascii} warn" write$ newline$ + " \inputencoding{#1}\fi}%" write$ newline$ + "\def\bibInputEncoding#1{%" write$ newline$ + " \bibIE@lowc" write$ newline$ + " \def\reserved@a{\bibIE@lowb{#1}}%" write$ newline$ + " % vvv \@inpenc@undefined -> `\@inpenc@undefined@{latin2}' or undefined" write$ newline$ + " \expandafter\expandafter\expandafter\bibIE@lowa\csname" write$ newline$ + " @inpenc@undefined\endcsname\relax" write$ newline$ + " \reserved@a}" write$ newline$ newline$ +} + +%** Usage: insert `\let\bibEarlyBegin\hfuzz \InputIfFileExists{\jobname.bbl}{}{}' +%** into the LaTeX document preamble to avoid running latex(1) twice after +%** bibtex(1) has been run. +FUNCTION {bibIE.c} { + "\makeatletter \ifx\bibEarlyBegin\hfuzz" write$ newline$ + " \def\bibEarlyBegin{\begingroup\everypar{}\sloppy\hbadness10000 " write$ newline$ + " \def\Hy@colorlink##1{\begingroup}" write$ newline$ % for hyperref.sty + " \def\Hy@endcolorlink{\endgroup}" write$ newline$ % for hyperref.sty + " \def\@inpenc@loop##1##2{}" write$ newline$ + " \def\thebibliography##1{}" write$ newline$ + " \def\endthebibliography{\skip@egroup\aftergroup\bibEarlyEnd}%" write$ newline$ + " \def\inputencoding##1{}\c@enumi\z@" write$ newline$ + " \def\bibitem{\skip@egroup \let\skip@egroup\egroup" write$ newline$ + " \advance\c@enumi\@ne\@ifnextchar[\@lbibitem\@bibitem}%" write$ newline$ + " \def\@lbibitem[##1]##2{\bibcite{##2}{##1}%" write$ newline$ + " \setbox0\vbox\bgroup}% avoid emitting boxes" write$ newline$ + " \def\@bibitem##1{\expandafter\skip@bibcite\expandafter" write$ newline$ + " {\the\c@enumi}{##1}\setbox0\vbox\bgroup}% avoid emitting boxes" write$ newline$ + " \def\skip@bibcite##1##2{\bibcite{##2}{##1}}%" write$ newline$ + " \catcode11=9 % ignored" write$ newline$ + " \@tempcnta 1 \loop\catcode\@tempcnta=9" write$ newline$ + " \ifnum\@tempcnta< 8 \advance\@tempcnta\@ne\repeat" write$ newline$ + " \@tempcnta 14 \loop\catcode\@tempcnta=9" write$ newline$ + " \ifnum\@tempcnta< 31 \advance\@tempcnta\@ne\repeat" write$ newline$ + " \@tempcnta127 \loop\catcode\@tempcnta=9" write$ newline$ + " \ifnum\@tempcnta<255 \advance\@tempcnta\@ne\repeat" write$ newline$ + " \let\skip@egroup\relax}" write$ newline$ + " \def\bibEarlyEnd{\endgroup \let\bibcite\@gobbletwo" write$ newline$ + " \global\let\bibEarlyRead\relax}" write$ newline$ + " \bibEarlyBegin" write$ newline$ + "\else \let\bibEarlyEnd\relax \fi" write$ newline$ + newline$ +} + +FUNCTION {begin.bib} +{ bibIE.c + % Dat: bibTeX breaks long lines (>78 chars), so we wouldn't emit such lines + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ + % ****pts**** Dat: put preamble$ after \begin{thebibliography} + "\frenchspacing" write$ newline$ % !! optional + bibIE.a + bibIE.b + "\def\leftflushbreak{\ifx\\\@centercr\penalty100 \else" write$ newline$ % Dat: \\ is \@centercr for \raggedright + " \unpenalty\unpenalty{\@tempdima\lastskip\unskip\nobreak" write$ newline$ + " \hskip\@tempdima plus1fil}\null\penalty100 \hskip0pt plus-1fil\relax\fi}" write$ newline$ + % "\def\leftflushbreak{\nobreak\hskip0pt plus1fil\null\penalty100 \hskip0pt plus-1fil\relax}" write$ newline$ + + % Ignoring newline + spaces in a \verb (usually called in \bibUrll). + % This doesn't apply for \usepackage{url} -- please use that to have + % line breaks in the URLs. + % Example .bbl excerpt (to be converted to \bibUrll{URL} >http://foobarbaz>.) + % \bibUrll{URL} >http:// + % foobar + % baz<, + "\begingroup\lccode\string`~=\string`\^^M" write$ newline$ + " \lowercase{\endgroup\def\verb@eol@error{\obeylines\def~{\bibVerbNoSp}}}" write$ newline$ + "\begingroup\lccode\string`~=\string`\ \relax" write$ newline$ + " \lowercase{\endgroup\def\bibVerbNoSp#1{\ifx#1~\expandafter\bibVerbNoSp" write$ newline$ + " \else\expandafter#1\fi}}" write$ newline$ + + "\expandafter\ifx\csname bibUrll\endcsname\relax" write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" write$ newline$ + " \def\bibUrll#1>{\leavevmode\leftflushbreak #1~\verb>}" write$ newline$ % Imp: line breaks etc., \PVerb + "\else\def\bibUrll#1>{\leavevmode\leftflushbreak#1~\begingroup" write$ newline$ + " \catcode\string`\%=12 \catcode\string`\#=12 \bibUrlll}" write$ newline$ + " \def\bibUrlll#1>{\url{#1}\endgroup}\fi" write$ newline$ + % ^^^ "\else\def\bibUrll#1>#2>{\leftflushbreak #1~\url{#2}}\fi" write$ newline$ + % ^^^ Imp: do these parens work? Includes field URL for Internet addresses (best used with with the url.sty package of Donald Arseneau) + "\fi" write$ newline$ + % vvv Dat: so user can specify `{\empty Maf}fia' and still have the `ffi' ligature -- undocumented. + % vvv Dat: doesn't work with hyperref.sty, and has marginal benefits -- commented out + % "\def\empty{\egroup\expandafter\@firstofone\expandafter{\iffalse}\fi}" write$ newline$ + "\def\bibHU@mix#1{\egroup#1}" write$ newline$ + %"\def\empty{\expandafter\bibHU@mix\expandafter{\iffalse}\fi}" write$ newline$ + %"\def\bibHU@mix#1{\egroup#1}" write$ newline$ + % vvv Dat: Hungarian typgrphy dictates 1/3 non-stretchable space, which + % might look ugly, because the space between f+l names stretches more. + "\def\bibAnd#1{\nobreak\,\nobreak\hbox{--}\,}" write$ newline$ + % "\def\bibAnd#1{\ifcase#1 , \or\space and \or, and \fi}" write$ newline$ + % "\def\bibAnd#1{\ifcase#1 , \else\space\'es \fi}" write$ newline$ + % "\def\bibEtAl#1{ et~al.}" write$ newline$ % Dat: or `et al.' (meaning: et alii) + "\def\bibEtAl#1{ \'es m\'asok}" write$ newline$ + % ^^^ Dat: botht \bibEtAl confirmed by Gyurgyk (p. 137) + "\def\bibEd#1{ (szerk.)}" write$ newline$ + % "\def\bibEd#1{ (szerk\ifcase#1 .\else eszt\H{o}k\fi)}" write$ newline$ % (szerk.) or (szerkesztk) + % "\let\bibNewBlock\newblock" write$ newline$ + "\def\bibNewBlock{\unskip\space}" write$ newline$ + % "\def\bibVolume#1{k\" quote$ "otet}" * * write$ newline$ + "\def\bibVolume#1#2{#1 k\" quote$ "ot.} \let\bibNumVolumes\bibVolume" * * write$ newline$ + % "\def\bibTechRep#1{Technical Report}" write$ newline$ + "\def\bibTechRep#1{Jelent\'{e}s}" write$ newline$ % Dat: `.' utn van => nagybet + "\def\bibInSelf#1{In u\H{o}: }" write$ newline$ + "\csname bibOverride\endcsname" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +% #****pts**** !! +FUNCTION {what} { + % "dr. Kpeczi, Bla and Jules Verne and Kossuth, Lajos and grf Szchenyi, Istvn and John von Neumann and Donald E. Knuth and Strunk, Jr., William and Knzy, ifj., Jen and L. R. McColvin and Tindi Lantos, Sebestyn and Molnr-Sska, Balzs and Claude Lvi-Strauss and Kis, Pter Pl and Mary-Claire van Leunen and Paul Gerhard Hoel and G. Bernard Godfrey and II., Jnos-Pl and {Szerencsejtk Rt.} and {\empty Earl of} Traquair and Horace [pseud.] Hunt and Verne, {\empty Gy}ula" 's := + % init.nfmts s #1 nfmt0 format.name$ warning$ + % ss #385 #1 substring$ warning$ + % "fo{\'o}\oe{\H u}s{\HON}{\HANT}" rmbrace.accs warning$ % to "fo\'o\oe\H us{\HON}{\HANT}" + % "fr\'e ncia" purify$ warning$ + % "bar" #-1 #1 substring$ warning$ + % "5~janu\'ar" #1 "{ll~~}{ff{}}" format.name$ warning$ + % "janu\'ar" #1 "{ll}{~ff.}" format.name$ warning$ + % "{\null Gy}urgyk" #1 "{l}/" format.name$ warning$ + % "AzBrvztr~tkrfrgp" rmacc.latin2 warning$ + % "fogbar" #3 #1 substring$ warning$ + % "Az rvztr tkrfrgp" sortify warning$ + % "Marjai, Imre and Pataky, Dnes" rmacc.latin2 warning$ + % "{\empty\'\i}purify" purify$ warning$ + % "grof Szechenyi, Istvan" #1 "{ll}/{ff}/{jj}/{vv}" format.name$ warning$ + % "John von Neumann" #1 "{ll}/{ff}/{jj}/{vv}" format.name$ warning$ + % "Tindi Lantos, Sebestyn" #1 "{ll}/{ff}/{jj}/{vv}" format.name$ warning$ + % "II., Janos., Pal" #1 "{ll}/{ff}/{jj}/{vv}" format.name$ warning$ + % "lom" "u" change.case$ warning$ % "LOM" + % "{\'a}lom" "u" change.case$ warning$ % "{\'A}LOM" + %"alma{\ss}t" purify$ warning$ % alma{\ss}t + %"alma{\dj}t" purify$ warning$ % almat (!) + % "egykor{\th}Alma korte" rmbrace.extrat1 warning$ +} +EXECUTE {what} diff --git a/docs/thesis/ideas.txt b/docs/thesis/ideas.txt new file mode 100644 index 0000000..107397f --- /dev/null +++ b/docs/thesis/ideas.txt @@ -0,0 +1,61 @@ +Forma + +- Kivonat +- Abstract +- Bevezetés + - Az alaphelyzet + - A probléma + - A megoldás + - Diplomaterv felépítésének bemutatása +- Az alaphelyzet részletes bemutatása + - mikroszolgáltatás alapú rendszerek alapelvei + - a tanszéken fejlesztett elosztott madárhang azonosító megoldás + teljeskörű bemutatása +- A megoldás tervezete + - mikroszolgáltatások működését vizualizáló alternatívák + - használati tervek + - design terverk +- A használt technológiák + - fejlesztési folyamat + - fejlesztő környezet(ek) + - agilis módszertan + - trello + - verziókezelés git + - Backend + - ASP.NET Core 5 + - SignalR + - EFCore 5 + - Frontend + - React.js + - Apexcharts + - google-map-react + - Tesztkörnyezet + - WinForms .NET 5 (githubról) + - Kubenetes +- Backend + - Felépítés architektúra + - ábra + - konfigurálás + - startup mindenhol + - ... + - DAL + - EFCore + - Entitások + - Seed + - ... + - BLL + - servicek + - API + - controllerek + - servicek + - mqtt + - signalR +- Frontend + - felépítés architektúra + - App and navigation + - Components and services +- Tesztkörnyezet +- Kubenetes +- Összefoglaló + - Értékelés, eredmények, tapasztalatok. + - Továbbfejlesztési lehetőségek diff --git a/docs/thesis/include/declaration.aux b/docs/thesis/include/declaration.aux new file mode 100644 index 0000000..7d7fd29 --- /dev/null +++ b/docs/thesis/include/declaration.aux @@ -0,0 +1,44 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@setckpt{include/declaration}{ +\setcounter{page}{2} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{0} +\setcounter{section}{0} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote@add}{0} +\setcounter{footnote@ch}{0} +\setcounter{parentequation}{0} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{0} +\setcounter{lstnumber}{1} +\setcounter{endNonectr}{2} +\setcounter{currNonectr}{0} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{NAT@ctr}{0} +\setcounter{currexamplectr}{0} +\setcounter{endexamplectr}{0} +\setcounter{example}{0} +\setcounter{currdefinitionctr}{0} +\setcounter{enddefinitionctr}{0} +\setcounter{definition}{0} +\setcounter{currtheoremctr}{0} +\setcounter{endtheoremctr}{0} +\setcounter{theorem}{0} +\setcounter{section@level}{0} +\setcounter{lstlisting}{0} +} diff --git a/docs/thesis/include/declaration.tex b/docs/thesis/include/declaration.tex new file mode 100644 index 0000000..d8522be --- /dev/null +++ b/docs/thesis/include/declaration.tex @@ -0,0 +1,32 @@ +\selectlanguage{magyar} +\pagenumbering{gobble} +%-------------------------------------------------------------------------------------- +% Nyilatkozat +%-------------------------------------------------------------------------------------- +\begin{center} +\large +\textbf{HALLGATÓI NYILATKOZAT}\\ +\end{center} + +Alulírott \emph{\vikszerzoVezeteknev{} \vikszerzoKeresztnev}, szigorló hallgató kijelentem, hogy ezt a \vikmunkatipusat{} meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen, a forrás megadásával megjelöltem. + +Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső hálózatán keresztül (vagy autentikált felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhetővé. + +\begin{flushleft} +\vspace*{1cm} +Budapest, \today +\end{flushleft} + +\begin{flushright} + \vspace*{1cm} + \makebox[7cm]{\rule{6cm}{.4pt}}\\ + \makebox[7cm]{\emph{\vikszerzoVezeteknev{} \vikszerzoKeresztnev}}\\ + \makebox[7cm]{hallgató} +\end{flushright} +\thispagestyle{empty} + +\vfill +\clearpage +\thispagestyle{empty} % an empty page + +\selectthesislanguage diff --git a/docs/thesis/include/guideline.tex b/docs/thesis/include/guideline.tex new file mode 100644 index 0000000..86e3f94 --- /dev/null +++ b/docs/thesis/include/guideline.tex @@ -0,0 +1,54 @@ +\selecthungarian +%-------------------------------------------------------------------------------------- +% Rovid formai es tartalmi tajekoztato +%-------------------------------------------------------------------------------------- + +\footnotesize +\begin{center} +\large +\textbf{\Large Általános információk, a diplomaterv szerkezete}\\ +\end{center} + +A diplomaterv szerkezete a BME Villamosmérnöki és Informatikai Karán: +\begin{enumerate} +\item Diplomaterv feladatkiírás +\item Címoldal +\item Tartalomjegyzék +\item A diplomatervező nyilatkozata az önálló munkáról és az elektronikus adatok kezeléséről +\item Tartalmi összefoglaló magyarul és angolul +\item Bevezetés: a feladat értelmezése, a tervezés célja, a feladat indokoltsága, a diplomaterv felépítésének rövid összefoglalása +\item A feladatkiírás pontosítása és részletes elemzése +\item Előzmények (irodalomkutatás, hasonló alkotások), az ezekből levonható következtetések +\item A tervezés részletes leírása, a döntési lehetőségek értékelése és a választott megoldások indoklása +\item A megtervezett műszaki alkotás értékelése, kritikai elemzése, továbbfejlesztési lehetőségek +\item Esetleges köszönetnyilvánítások +\item Részletes és pontos irodalomjegyzék +\item Függelék(ek) +\end{enumerate} + +Felhasználható a következő oldaltól kezdődő \LaTeX diplomatervsablon dokumentum tartalma. + +A diplomaterv szabványos méretű A4-es lapokra kerüljön. Az oldalak tükörmargóval készüljenek (mindenhol 2,5~cm, baloldalon 1~cm-es kötéssel). Az alapértelmezett betűkészlet a 12 pontos Times New Roman, másfeles sorközzel, de ettől kismértékben el lehet térni, ill. más betűtípus használata is megengedett. + +Minden oldalon -- az első négy szerkezeti elem kivételével -- szerepelnie kell az oldalszámnak. + +A fejezeteket decimális beosztással kell ellátni. Az ábrákat a megfelelő helyre be kell illeszteni, fejezetenként decimális számmal és kifejező címmel kell ellátni. A fejezeteket decimális aláosztással számozzuk, maximálisan 3 aláosztás mélységben (pl. 2.3.4.1.). Az ábrákat, táblázatokat és képleteket célszerű fejezetenként külön számozni (pl. 2.4. ábra, 4.2. táblázat vagy képletnél (3.2)). A fejezetcímeket igazítsuk balra, a normál szövegnél viszont használjunk sorkiegyenlítést. Az ábrákat, táblázatokat és a hozzájuk tartozó címet igazítsuk középre. A cím a jelölt rész alatt helyezkedjen el. + +A képeket lehetőleg rajzoló programmal készítsék el, az egyenleteket egyenlet-szerkesztő segítségével írják le (A \LaTeX~ehhez kézenfekvő megoldásokat nyújt). + +Az irodalomjegyzék szövegközi hivatkozása történhet sorszámozva (ez a preferált megoldás) vagy a Harvard-rendszerben (a szerző és az évszám megadásával). A teljes lista névsor szerinti sorrendben a szöveg végén szerepeljen (sorszámozott irodalmi hivatkozások esetén hivatkozási sorrendben). A szakirodalmi források címeit azonban mindig az eredeti nyelven kell megadni, esetleg zárójelben a fordítással. A listában szereplő valamennyi publikációra hivatkozni kell a szövegben (a \LaTeX-sablon a Bib\TeX~segítségével mindezt automatikusan kezeli). Minden publikáció a szerzők után a következő adatok szerepelnek: folyóirat cikkeknél a pontos cím, a folyóirat címe, évfolyam, szám, oldalszám tól-ig. A folyóiratok címét csak akkor rövidítsük, ha azok nagyon közismertek vagy nagyon hosszúak. Internetes hivatkozások megadásakor fontos, hogy az elérési út előtt megadjuk az oldal tulajdonosát és tartalmát (mivel a link egy idő után akár elérhetetlenné is válhat), valamint az elérés időpontját. + +\vspace{5mm} +Fontos: +\begin{itemize} + \item A szakdolgozatkészítő / diplomatervező nyilatkozata (a jelen sablonban szereplő szövegtartalommal) kötelező előírás, Karunkon ennek hiányában a szakdolgozat/diplomaterv nem bírálható és nem védhető! + \item Mind a dolgozat, mind a melléklet maximálisan 15~MB méretű lehet! +\end{itemize} + +\vspace{5mm} +\begin{center} +Jó munkát, sikeres szakdolgozatkészítést, ill. diplomatervezést kívánunk! +\end{center} + +\normalsize +\selectthesislanguage diff --git a/docs/thesis/include/packages.tex b/docs/thesis/include/packages.tex new file mode 100644 index 0000000..5b89a30 --- /dev/null +++ b/docs/thesis/include/packages.tex @@ -0,0 +1,64 @@ +% thanks to http://tex.stackexchange.com/a/47579/71109 +\usepackage{ifxetex} +\usepackage{ifluatex} +\newif\ifxetexorluatex % a new conditional starts as false +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi>0 + \xetexorluatextrue +\fi + +\ifxetexorluatex + \usepackage{fontspec} +\else + \usepackage[T1]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage[lighttt]{lmodern} +\fi + +\usepackage[english,magyar]{babel} % Alapértelmezés szerint utoljára definiált nyelv lesz aktív, de később külön beállítjuk az aktív nyelvet. + +%\usepackage{cmap} +\usepackage{amsfonts,amsmath,amssymb} % Mathematical symbols. +%\usepackage[ruled,boxed,resetcount,linesnumbered]{algorithm2e} % For pseudocodes. % beware: this is not compatible with LuaLaTeX, see http://tex.stackexchange.com/questions/34814/lualatex-and-algorithm2e +\usepackage{booktabs} % For publication quality tables for LaTeX +\usepackage{graphicx} + +%\usepackage{fancyhdr} +%\usepackage{lastpage} + +\usepackage{anysize} +%\usepackage{sectsty} +\usepackage{setspace} % For setting line spacing + +\usepackage[unicode]{hyperref} % For hyperlinks in the generated document. +\usepackage{xcolor} +\usepackage{listings} % For source code snippets. + +\usepackage[amsmath,thmmarks]{ntheorem} % Theorem-like environments. + +\usepackage[hang]{caption} + +\singlespacing + +\newcommand{\selecthungarian}{ + \selectlanguage{magyar} + \setlength{\parindent}{2em} + \setlength{\parskip}{0em} + \frenchspacing +} + +\newcommand{\selectenglish}{ + \selectlanguage{english} + \setlength{\parindent}{0em} + \setlength{\parskip}{0.5em} + \nonfrenchspacing + \renewcommand{\figureautorefname}{Figure} + \renewcommand{\tableautorefname}{Table} + \renewcommand{\partautorefname}{Part} + \renewcommand{\chapterautorefname}{Chapter} + \renewcommand{\sectionautorefname}{Section} + \renewcommand{\subsectionautorefname}{Section} + \renewcommand{\subsubsectionautorefname}{Section} +} + +\usepackage[numbers]{natbib} +\usepackage{xspace} diff --git a/docs/thesis/include/preamble.tex b/docs/thesis/include/preamble.tex new file mode 100644 index 0000000..9fbb215 --- /dev/null +++ b/docs/thesis/include/preamble.tex @@ -0,0 +1,122 @@ +%-------------------------------------------------------------------------------------- +% Page layout setup +%-------------------------------------------------------------------------------------- +% we need to redefine the pagestyle plain +% another possibility is to use the body of this command without \fancypagestyle +% and use \pagestyle{fancy} but in that case the special pages +% (like the ToC, the References, and the Chapter pages)remain in plane style + +\pagestyle{plain} +\marginsize{35mm}{25mm}{15mm}{15mm} + +\setcounter{tocdepth}{3} +%\sectionfont{\large\upshape\bfseries} +\setcounter{secnumdepth}{3} + +\sloppy % Margón túllógó sorok tiltása. +\widowpenalty=10000 \clubpenalty=10000 %A fattyú- és árvasorok elkerülése +\def\hyph{-\penalty0\hskip0pt\relax} % Kötőjeles szavak elválasztásának engedélyezése + + +%-------------------------------------------------------------------------------------- +% Setup hyperref package +%-------------------------------------------------------------------------------------- +\hypersetup{ + % bookmarks=true, % show bookmarks bar? + unicode=true, % non-Latin characters in Acrobat's bookmarks + pdftitle={\vikcim}, % title + pdfauthor={\szerzoMeta}, % author + pdfsubject={\vikdoktipus}, % subject of the document + pdfcreator={\szerzoMeta}, % creator of the document + pdfproducer={}, % producer of the document + pdfkeywords={}, % list of keywords (separate then by comma) + pdfnewwindow=true, % links in new window + colorlinks=true, % false: boxed links; true: colored links + linkcolor=black, % color of internal links + citecolor=black, % color of links to bibliography + filecolor=black, % color of file links + urlcolor=black % color of external links +} + + +%-------------------------------------------------------------------------------------- +% Set up listings +%-------------------------------------------------------------------------------------- +\definecolor{lightgray}{rgb}{0.95,0.95,0.95} +\lstset{ + basicstyle=\scriptsize\ttfamily, % print whole listing small + keywordstyle=\color{black}\bfseries, % bold black keywords + identifierstyle=, % nothing happens + % default behavior: comments in italic, to change use + % commentstyle=\color{green}, % for e.g. green comments + stringstyle=\scriptsize, + showstringspaces=false, % no special string spaces + aboveskip=3pt, + belowskip=3pt, + backgroundcolor=\color{lightgray}, + columns=flexible, + keepspaces=true, + escapeinside={(*@}{@*)}, + captionpos=b, + breaklines=true, + frame=single, + float=!ht, + tabsize=2, + literate=* + {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ö}{{\"o}}1 {ő}{{\H{o}}}1 {ú}{{\'u}}1 {ü}{{\"u}}1 {ű}{{\H{u}}}1 + {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ö}{{\"O}}1 {Ő}{{\H{O}}}1 {Ú}{{\'U}}1 {Ü}{{\"U}}1 {Ű}{{\H{U}}}1 +} + + +%-------------------------------------------------------------------------------------- +% Set up theorem-like environments +%-------------------------------------------------------------------------------------- +% Using ntheorem package -- see http://www.math.washington.edu/tex-archive/macros/latex/contrib/ntheorem/ntheorem.pdf + +\theoremstyle{plain} +\theoremseparator{.} +\newtheorem{example}{\pelda} + +\theoremseparator{.} +%\theoremprework{\bigskip\hrule\medskip} +%\theorempostwork{\hrule\bigskip} +\theorembodyfont{\upshape} +\theoremsymbol{{\large \ensuremath{\centerdot}}} +\newtheorem{definition}{\definicio} + +\theoremseparator{.} +%\theoremprework{\bigskip\hrule\medskip} +%\theorempostwork{\hrule\bigskip} +\newtheorem{theorem}{\tetel} + + +%-------------------------------------------------------------------------------------- +% Some new commands and declarations +%-------------------------------------------------------------------------------------- +\newcommand{\code}[1]{{\upshape\ttfamily\scriptsize\indent #1}} +\newcommand{\doi}[1]{DOI: \href{http://dx.doi.org/\detokenize{#1}}{\raggedright{\texttt{\detokenize{#1}}}}} % A hivatkozások közt így könnyebb DOI-t megadni. + +\DeclareMathOperator*{\argmax}{arg\,max} +%\DeclareMathOperator*[1]{\floor}{arg\,max} +\DeclareMathOperator{\sign}{sgn} +\DeclareMathOperator{\rot}{rot} + + +%-------------------------------------------------------------------------------------- +% Setup captions +%-------------------------------------------------------------------------------------- +\captionsetup[figure]{ + width=.75\textwidth, + aboveskip=10pt} + +\renewcommand{\captionlabelfont}{\bf} +%\renewcommand{\captionfont}{\footnotesize\it} + +%-------------------------------------------------------------------------------------- +% Hyphenation exceptions +%-------------------------------------------------------------------------------------- +\hyphenation{Shakes-peare Mar-seilles ár-víz-tű-rő tü-kör-fú-ró-gép} + + +\author{\vikszerzo} +\title{\viktitle} \ No newline at end of file diff --git a/docs/thesis/include/project.tex b/docs/thesis/include/project.tex new file mode 100644 index 0000000..313cc4e --- /dev/null +++ b/docs/thesis/include/project.tex @@ -0,0 +1,10 @@ +%-------------------------------------------------------------------------------------- +% Feladatkiiras (a tanszeken atveheto, kinyomtatott valtozat) +%-------------------------------------------------------------------------------------- +\clearpage +\begin{center} +\large +\textbf{FELADATKIÍRÁS}\\ +\end{center} + +A feladatkiírást a tanszéki adminisztrációban lehet átvenni, és a leadott munkába eredeti, tanszéki pecséttel ellátott és a tanszékvezető által aláírt lapot kell belefűzni (ezen oldal \emph{helyett}, ez az oldal csak útmutatás). Az elektronikusan feltöltött dolgozatban már nem kell beleszerkeszteni ezt a feladatkiírást. diff --git a/docs/thesis/include/tdk-variables.tex b/docs/thesis/include/tdk-variables.tex new file mode 100644 index 0000000..3408e12 --- /dev/null +++ b/docs/thesis/include/tdk-variables.tex @@ -0,0 +1,11 @@ +%-------------------------------------------------------------------------------------- +% TDK-specifikus változók +%-------------------------------------------------------------------------------------- +\newcommand{\tdkszerzoB}{Második Szerző} % Második szerző neve; hagyd üresen, ha egyedül írtad a TDK-t. +\newcommand{\tdkev}{2014} % A dolgozat írásának éve (pl. "2014") (Ez OTDK-nál eltérhet az aktuális évtől.) + +% További adatok az OTDK címlaphoz (BME-s TDK-hoz nem kell kitölteni) +\newcommand{\tdkevfolyamA}{IV} % Első szerző évfolyama, római számmal (pl. IV). +\newcommand{\tdkevfolyamB}{III} % Második szerző évfolyama, római számmal (pl. III). +\newcommand{\tdkkonzulensbeosztasA}{egyetemi tanár} % Első konzulens beosztása (pl. egyetemi docens) +\newcommand{\tdkkonzulensbeosztasB}{doktorandusz} % Második konzulens beosztása (pl. egyetemi docens) diff --git a/docs/thesis/include/thesis-en.tex b/docs/thesis/include/thesis-en.tex new file mode 100644 index 0000000..c61650e --- /dev/null +++ b/docs/thesis/include/thesis-en.tex @@ -0,0 +1,56 @@ +%-------------------------------------------------------------------------------------- +% Elnevezések +%-------------------------------------------------------------------------------------- +\newcommand{\bme}{Budapest University of Technology and Economics} +\newcommand{\vik}{Faculty of Electrical Engineering and Informatics} + +\newcommand{\bmemit}{Department of Measurement and Information Systems} + +\newcommand{\keszitette}{Author} +\newcommand{\konzulens}{Advisor} + +\newcommand{\bsc}{Bachelor's Thesis} +\newcommand{\msc}{Master's Thesis} +\newcommand{\tdk}{Scientific Students' Association Report} +\newcommand{\bsconlab}{BSc Project Laboratory} +\newcommand{\msconlabi}{MSc Project Laboratory 1} +\newcommand{\msconlabii}{MSc Project Laboratory 2} + +\newcommand{\pelda}{Example} +\newcommand{\definicio}{Definition} +\newcommand{\tetel}{Theorem} + +\newcommand{\bevezetes}{Introduction} +\newcommand{\koszonetnyilvanitas}{Acknowledgements} +\newcommand{\fuggelek}{Appendix} + +% Optional custom titles +%\addto\captionsenglish{% +%\renewcommand*{\listfigurename}{Your list of figures title} +%\renewcommand*{\listtablename}{Your list of tables title} +%\renewcommand*{\bibname}{Your bibliography title} +%} + +\newcommand{\szerzo}{\vikszerzoKeresztnev{} \vikszerzoVezeteknev} +\newcommand{\vikkonzulensA}{\vikkonzulensAMegszolitas\vikkonzulensAKeresztnev{} \vikkonzulensAVezeteknev} +\newcommand{\vikkonzulensB}{\vikkonzulensBMegszolitas\vikkonzulensBKeresztnev{} \vikkonzulensBVezeteknev} +\newcommand{\vikkonzulensC}{\vikkonzulensCMegszolitas\vikkonzulensCKeresztnev{} \vikkonzulensCVezeteknev} + +\newcommand{\selectthesislanguage}{\selectenglish} + +\bibliographystyle{plainnat} + +\newcommand{\ie}{i.e.\@\xspace} +\newcommand{\Ie}{I.e.\@\xspace} +\newcommand{\eg}{e.g.\@\xspace} +\newcommand{\Eg}{E.g.\@\xspace} +\newcommand{\etal}{et al.\@\xspace} +\newcommand{\etc}{etc.\@\xspace} +\newcommand{\vs}{vs.\@\xspace} +\newcommand{\viz}{viz.\@\xspace} % videlicet +\newcommand{\cf}{cf.\@\xspace} % confer +\newcommand{\Cf}{Cf.\@\xspace} +\newcommand{\wrt}{w.r.t.\@\xspace} % with respect to +\newcommand{\approximately}{approx.\@\xspace} + +\newcommand{\appendixnumber}{1} % a fofejezet-szamlalo az angol ABC 1. betuje (A) lesz diff --git a/docs/thesis/include/thesis-hu.tex b/docs/thesis/include/thesis-hu.tex new file mode 100644 index 0000000..c6b728a --- /dev/null +++ b/docs/thesis/include/thesis-hu.tex @@ -0,0 +1,45 @@ +%-------------------------------------------------------------------------------------- +% Elnevezések +%-------------------------------------------------------------------------------------- +\newcommand{\bme}{Budapesti Műszaki és Gazdaságtudományi Egyetem} +\newcommand{\vik}{Villamosmérnöki és Informatikai Kar} + +\newcommand{\bmemit}{Méréstechnika és Információs Rendszerek Tanszék} + +\newcommand{\keszitette}{Készítette} +\newcommand{\konzulens}{Konzulens} + +\newcommand{\bsc}{Szakdolgozat} +\newcommand{\msc}{Diplomaterv} +\newcommand{\tdk}{TDK dolgozat} +\newcommand{\bsconlab}{BSc Önálló laboratórium} +\newcommand{\msconlabi}{MSc Önálló laboratórium 1.} +\newcommand{\msconlabii}{MSc Önálló laboratórium 2.} + +\newcommand{\pelda}{Példa} +\newcommand{\definicio}{Definíció} +\newcommand{\tetel}{Tétel} + +\newcommand{\bevezetes}{Bevezetés} +\newcommand{\koszonetnyilvanitas}{Köszönetnyilvánítás} +\newcommand{\fuggelek}{Függelék} + +% Opcionálisan átnevezhető címek +%\addto\captionsmagyar{% +%\renewcommand{\listfigurename}{Saját ábrajegyzék cím} +%\renewcommand{\listtablename}{Saját táblázatjegyzék cím} +%\renewcommand{\bibname}{Saját irodalomjegyzék név} +%} + +\newcommand{\szerzo}{\vikszerzoVezeteknev{} \vikszerzoKeresztnev} +\newcommand{\vikkonzulensA}{\vikkonzulensAMegszolitas\vikkonzulensAVezeteknev{} \vikkonzulensAKeresztnev} +\newcommand{\vikkonzulensB}{\vikkonzulensBMegszolitas\vikkonzulensBVezeteknev{} \vikkonzulensBKeresztnev} +\newcommand{\vikkonzulensC}{\vikkonzulensCMegszolitas\vikkonzulensCVezeteknev{} \vikkonzulensCKeresztnev} + +\newcommand{\selectthesislanguage}{\selecthungarian} + +\bibliographystyle{huplain} + +\def\lstlistingname{lista} + +\newcommand{\appendixnumber}{6} % a fofejezet-szamlalo az angol ABC 6. betuje (F) lesz diff --git a/docs/thesis/include/titlepage-otdk.tex b/docs/thesis/include/titlepage-otdk.tex new file mode 100644 index 0000000..54ecb05 --- /dev/null +++ b/docs/thesis/include/titlepage-otdk.tex @@ -0,0 +1,58 @@ +%% OTDK külső címlap +\begin{titlepage} + $\;$ + \vspace{5cm} + + \begin{center} + \Huge + \textbf{TDK-dolgozat}\let\thefootnote\relax\footnote{A dolgozat bemutatását a XXXXXXXXX ``Lorem ipsum dolor sit amet'' című program támogatta.} + \end{center} + + \vspace{13cm} + + \Large + \hspace{8cm} \szerzo + + \hspace{8cm} \tdkszerzoB + + \hspace{8cm} \tdkev. +\end{titlepage} + +\newpage +\thispagestyle{empty} + + +%% OTDK belső címlap +\begin{titlepage} + \begin{center} + \includegraphics[width=7cm]{./figures/bme_logo.pdf} + \vspace{0.3cm} + + \bme \\ + \vik \\ + \viktanszek \\ + \vspace{3.5cm} + + \huge {\vikcim} + \vspace{1.5cm} + + \large {\textbf{\vikdoktipus}} + \vfill + + {\Large + {\large \keszitette:} \\ \vspace{0.2cm} + \szerzo \\ \tdkevfolyamA. évfolyam \\ + \vspace{0.5cm} + \tdkszerzoB \\ \tdkevfolyamB. évfolyam \\ + \vspace{1.5cm} + {\large \konzulens:} \\ \vspace{0.2cm} + \vikkonzulensA,\\ \tdkkonzulensbeosztasA \\ + \vspace{0.5cm} + \vikkonzulensB,\\ \tdkkonzulensbeosztasB \\ + } + + \vspace{2cm} + \large {\tdkev.} + + \end{center} +\end{titlepage} \ No newline at end of file diff --git a/docs/thesis/include/titlepage-tdk.tex b/docs/thesis/include/titlepage-tdk.tex new file mode 100644 index 0000000..fdd3bb3 --- /dev/null +++ b/docs/thesis/include/titlepage-tdk.tex @@ -0,0 +1,32 @@ +%% TDK címlap +\begin{titlepage} + \begin{center} + \includegraphics[width=7cm]{./figures/bme_logo.pdf} + \vspace{0.3cm} + + \bme \\ + \vik \\ + \viktanszek \\ + \vspace{5cm} + + \huge {\vikcim} + \vspace{1.5cm} + + \large {\textbf{\tdk}} + \vfill + + {\Large + \keszitette: \\ \vspace{0.3cm} + \szerzo \\ + \tdkszerzoB \\ + \vspace{1.5cm} + \konzulens: \\ \vspace{0.3cm} + \vikkonzulensA \\ + \vikkonzulensB \\ + } + + \vspace{2cm} + \large {\tdkev} + \end{center} +\end{titlepage} +%% Címlap vége diff --git a/docs/thesis/include/titlepage.aux b/docs/thesis/include/titlepage.aux new file mode 100644 index 0000000..cfbd9bd --- /dev/null +++ b/docs/thesis/include/titlepage.aux @@ -0,0 +1,44 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\@setckpt{include/titlepage}{ +\setcounter{page}{1} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{0} +\setcounter{section}{0} +\setcounter{subsection}{0} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote@add}{0} +\setcounter{footnote@ch}{0} +\setcounter{parentequation}{0} +\setcounter{Item}{0} +\setcounter{Hfootnote}{0} +\setcounter{bookmark@seq@number}{0} +\setcounter{lstnumber}{1} +\setcounter{endNonectr}{1} +\setcounter{currNonectr}{0} +\setcounter{caption@flags}{0} +\setcounter{continuedfloat}{0} +\setcounter{NAT@ctr}{0} +\setcounter{currexamplectr}{0} +\setcounter{endexamplectr}{0} +\setcounter{example}{0} +\setcounter{currdefinitionctr}{0} +\setcounter{enddefinitionctr}{0} +\setcounter{definition}{0} +\setcounter{currtheoremctr}{0} +\setcounter{endtheoremctr}{0} +\setcounter{theorem}{0} +\setcounter{section@level}{0} +\setcounter{lstlisting}{0} +} diff --git a/docs/thesis/include/titlepage.tex b/docs/thesis/include/titlepage.tex new file mode 100644 index 0000000..b7835dd --- /dev/null +++ b/docs/thesis/include/titlepage.tex @@ -0,0 +1,33 @@ +\hypersetup{pageanchor=false} +%-------------------------------------------------------------------------------------- +% The title page +%-------------------------------------------------------------------------------------- +\begin{titlepage} +\begin{center} +\includegraphics[width=60mm,keepaspectratio]{figures/bme_logo.pdf}\\ +\vspace{0.3cm} +\textbf{\bme}\\ +\textmd{\vik}\\ +\textmd{\viktanszek}\\[5cm] + +\vspace{0.4cm} +{\huge \bfseries \vikcim}\\[0.8cm] +\vspace{0.5cm} +\textsc{\Large \vikdoktipus}\\[4cm] + +{ + \renewcommand{\arraystretch}{0.85} + \begin{tabular}{cc} + \makebox[7cm]{\emph{\keszitette}} & \makebox[7cm]{\emph{\konzulens}} \\ \noalign{\smallskip} + \makebox[7cm]{\szerzo} & \makebox[7cm]{\vikkonzulensA} \\ + & \makebox[7cm]{\vikkonzulensB} \\ + & \makebox[7cm]{\vikkonzulensC} \\ + \end{tabular} +} + +\vfill +{\large \today} +\end{center} +\end{titlepage} +\hypersetup{pageanchor=false} + diff --git a/docs/thesis/lua/language.dat.lua b/docs/thesis/lua/language.dat.lua new file mode 100644 index 0000000..cd0d9e4 --- /dev/null +++ b/docs/thesis/lua/language.dat.lua @@ -0,0 +1,731 @@ +-- Generated by ./install-tl on Sun Feb 12 19:17:26 2017 +-- $Id: language.us.lua 18737 2010-06-04 17:09:02Z karl $ +--[[ +language.us.dat (and the start of language.dat.lua), used by: +- a special luatex version of hyphen.cfg (derived from the babel system); +- a special luatex version of etex.src (from the e-TeX distributon). + +See luatex-hyphen.pdf (currently part of the hyph-utf8 package) for details. + +DO NOT EDIT THIS FILE (language.dat.lua)! It is generated by tlmgr. +See language.dat (or language.us) for more information. + +Warning: formats using this file also use one of language.dat or +language.def. Update them accordingly. The interaction between these +files is documented in luatex-hyphen.pdf, but here is a summary: +- a language must be mentioned in language.dat or language.def to be +available; if, in addition, it is: + - not mentioned in language.dat.lua, then it is dumped in the format; + - mentioned in language.dat.lua with a key special="disabled:", + then it is not available at all; + - mentioned in language.dat.lua with a normal entry, then it will not + be dumped in the format, but loaded at runtime when activated. +]] + +return { + ["english"]={ + loader="hyphen.tex", + special="language0", -- should be dumped in the format + lefthyphenmin=2, + righthyphenmin=3, + synonyms={"usenglish","USenglish","american"}, + }, + -- dumylang and zerohyph are dumped in the format, + -- since they contain either very few or no patterns at all +-- END of language.us.lua (missing '}' appended after all entries) +-- from dehyph-exptl: + ['german-x-2014-05-21'] = { + loader = 'dehypht-x-2014-05-21.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'german-x-latest' }, + patterns = 'hyph-de-1901.pat.txt', + hyphenation = 'hyph-de-1901.hyp.txt', + }, + ['ngerman-x-2014-05-21'] = { + loader = 'dehyphn-x-2014-05-21.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'ngerman-x-latest' }, + patterns = 'hyph-de-1996.pat.txt', + hyphenation = 'hyph-de-1996.hyp.txt', + }, +-- from hyphen-afrikaans: + ['afrikaans'] = { + loader = 'loadhyph-af.tex', + lefthyphenmin = 1, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-af.pat.txt', + hyphenation = 'hyph-af.hyp.txt', + }, +-- from hyphen-ancientgreek: + ['ancientgreek'] = { + loader = 'loadhyph-grc.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-grc.pat.txt', + hyphenation = '', + }, + ['ibycus'] = { + loader = 'ibyhyph.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + special = 'disabled:8-bit only', + }, +-- from hyphen-arabic: + ['arabic'] = { + loader = 'zerohyph.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = '', + }, +-- from hyphen-armenian: + ['armenian'] = { + loader = 'loadhyph-hy.tex', + lefthyphenmin = 1, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-hy.pat.txt', + hyphenation = '', + }, +-- from hyphen-basque: + ['basque'] = { + loader = 'loadhyph-eu.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-eu.pat.txt', + hyphenation = '', + }, +-- from hyphen-bulgarian: + ['bulgarian'] = { + loader = 'loadhyph-bg.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-bg.pat.txt', + hyphenation = '', + }, +-- from hyphen-catalan: + ['catalan'] = { + loader = 'loadhyph-ca.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-ca.pat.txt', + hyphenation = 'hyph-ca.hyp.txt', + }, +-- from hyphen-chinese: + ['pinyin'] = { + loader = 'loadhyph-zh-latn-pinyin.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-zh-latn-pinyin.pat.txt', + hyphenation = '', + }, +-- from hyphen-churchslavonic: + ['churchslavonic'] = { + loader = 'loadhyph-cu.tex', + lefthyphenmin = 1, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-cu.pat.txt', + hyphenation = 'hyph-cu.hyp.txt', + }, +-- from hyphen-coptic: + ['coptic'] = { + loader = 'loadhyph-cop.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-cop.pat.txt', + hyphenation = '', + }, +-- from hyphen-croatian: + ['croatian'] = { + loader = 'loadhyph-hr.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-hr.pat.txt', + hyphenation = '', + }, +-- from hyphen-czech: + ['czech'] = { + loader = 'loadhyph-cs.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-cs.pat.txt', + hyphenation = 'hyph-cs.hyp.txt', + }, +-- from hyphen-danish: + ['danish'] = { + loader = 'loadhyph-da.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-da.pat.txt', + hyphenation = '', + }, +-- from hyphen-dutch: + ['dutch'] = { + loader = 'loadhyph-nl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-nl.pat.txt', + hyphenation = 'hyph-nl.hyp.txt', + }, +-- from hyphen-english: + ['ukenglish'] = { + loader = 'loadhyph-en-gb.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { 'british', 'UKenglish' }, + patterns = 'hyph-en-gb.pat.txt', + hyphenation = 'hyph-en-gb.hyp.txt', + }, + ['usenglishmax'] = { + loader = 'loadhyph-en-us.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-en-us.pat.txt', + hyphenation = 'hyph-en-us.hyp.txt', + }, +-- from hyphen-esperanto: + ['esperanto'] = { + loader = 'loadhyph-eo.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-eo.pat.txt', + hyphenation = '', + }, +-- from hyphen-estonian: + ['estonian'] = { + loader = 'loadhyph-et.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-et.pat.txt', + hyphenation = '', + }, +-- from hyphen-ethiopic: + ['ethiopic'] = { + loader = 'loadhyph-mul-ethi.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { 'amharic', 'geez' }, + patterns = 'hyph-mul-ethi.pat.txt', + hyphenation = '', + }, +-- from hyphen-farsi: + ['farsi'] = { + loader = 'zerohyph.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { 'persian' }, + patterns = '', + }, +-- from hyphen-finnish: + ['finnish'] = { + loader = 'loadhyph-fi.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-fi.pat.txt', + hyphenation = '', + }, +-- from hyphen-french: + ['french'] = { + loader = 'loadhyph-fr.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'patois', 'francais' }, + patterns = 'hyph-fr.pat.txt', + hyphenation = '', + }, +-- from hyphen-friulan: + ['friulan'] = { + loader = 'loadhyph-fur.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-fur.pat.txt', + hyphenation = '', + }, +-- from hyphen-galician: + ['galician'] = { + loader = 'loadhyph-gl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-gl.pat.txt', + hyphenation = '', + }, +-- from hyphen-georgian: + ['georgian'] = { + loader = 'loadhyph-ka.tex', + lefthyphenmin = 1, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-ka.pat.txt', + hyphenation = '', + }, +-- from hyphen-german: + ['german'] = { + loader = 'loadhyph-de-1901.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-de-1901.pat.txt', + hyphenation = '', + }, + ['ngerman'] = { + loader = 'loadhyph-de-1996.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-de-1996.pat.txt', + hyphenation = '', + }, + ['swissgerman'] = { + loader = 'loadhyph-de-ch-1901.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-de-ch-1901.pat.txt', + hyphenation = '', + }, +-- from hyphen-greek: + ['monogreek'] = { + loader = 'loadhyph-el-monoton.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-el-monoton.pat.txt', + hyphenation = '', + }, + ['greek'] = { + loader = 'loadhyph-el-polyton.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { 'polygreek' }, + patterns = 'hyph-el-polyton.pat.txt', + hyphenation = '', + }, +-- from hyphen-hungarian: + ['hungarian'] = { + loader = 'loadhyph-hu.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'hungarian', 'magyar' }, + patterns = 'hyph-hu.pat.txt', + hyphenation = '', + }, +-- from hyphen-icelandic: + ['icelandic'] = { + loader = 'loadhyph-is.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-is.pat.txt', + hyphenation = '', + }, +-- from hyphen-indic: + ['assamese'] = { + loader = 'loadhyph-as.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-as.pat.txt', + hyphenation = '', + }, + ['bengali'] = { + loader = 'loadhyph-bn.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-bn.pat.txt', + hyphenation = '', + }, + ['gujarati'] = { + loader = 'loadhyph-gu.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-gu.pat.txt', + hyphenation = '', + }, + ['hindi'] = { + loader = 'loadhyph-hi.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-hi.pat.txt', + hyphenation = '', + }, + ['kannada'] = { + loader = 'loadhyph-kn.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-kn.pat.txt', + hyphenation = '', + }, + ['malayalam'] = { + loader = 'loadhyph-ml.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-ml.pat.txt', + hyphenation = '', + }, + ['marathi'] = { + loader = 'loadhyph-mr.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-mr.pat.txt', + hyphenation = '', + }, + ['oriya'] = { + loader = 'loadhyph-or.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-or.pat.txt', + hyphenation = '', + }, + ['panjabi'] = { + loader = 'loadhyph-pa.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-pa.pat.txt', + hyphenation = '', + }, + ['tamil'] = { + loader = 'loadhyph-ta.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-ta.pat.txt', + hyphenation = '', + }, + ['telugu'] = { + loader = 'loadhyph-te.tex', + lefthyphenmin = 1, + righthyphenmin = 1, + synonyms = { }, + patterns = 'hyph-te.pat.txt', + hyphenation = '', + }, +-- from hyphen-indonesian: + ['indonesian'] = { + loader = 'loadhyph-id.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-id.pat.txt', + hyphenation = 'hyph-id.hyp.txt', + }, +-- from hyphen-interlingua: + ['interlingua'] = { + loader = 'loadhyph-ia.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-ia.pat.txt', + hyphenation = 'hyph-ia.hyp.txt', + }, +-- from hyphen-irish: + ['irish'] = { + loader = 'loadhyph-ga.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-ga.pat.txt', + hyphenation = 'hyph-ga.hyp.txt', + }, +-- from hyphen-italian: + ['italian'] = { + loader = 'loadhyph-it.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-it.pat.txt', + hyphenation = '', + }, +-- from hyphen-kurmanji: + ['kurmanji'] = { + loader = 'loadhyph-kmr.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-kmr.pat.txt', + hyphenation = '', + }, +-- from hyphen-latin: + ['latin'] = { + loader = 'loadhyph-la.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-la.pat.txt', + hyphenation = '', + }, + ['classiclatin'] = { + loader = 'loadhyph-la-x-classic.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-la-x-classic.pat.txt', + hyphenation = '', + }, + ['liturgicallatin'] = { + loader = 'loadhyph-la-x-liturgic.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-la-x-liturgic.pat.txt', + hyphenation = '', + }, +-- from hyphen-latvian: + ['latvian'] = { + loader = 'loadhyph-lv.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-lv.pat.txt', + hyphenation = '', + }, +-- from hyphen-lithuanian: + ['lithuanian'] = { + loader = 'loadhyph-lt.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-lt.pat.txt', + hyphenation = '', + }, +-- from hyphen-mongolian: + ['mongolian'] = { + loader = 'loadhyph-mn-cyrl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-mn-cyrl.pat.txt', + hyphenation = '', + }, + ['mongolianlmc'] = { + loader = 'loadhyph-mn-cyrl-x-lmc.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + special = 'disabled:only for 8bit montex with lmc encoding', + }, +-- from hyphen-norwegian: + ['bokmal'] = { + loader = 'loadhyph-nb.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'norwegian', 'norsk' }, + patterns = 'hyph-nb.pat.txt', + hyphenation = 'hyph-nb.hyp.txt', + }, + ['nynorsk'] = { + loader = 'loadhyph-nn.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-nn.pat.txt', + hyphenation = 'hyph-nn.hyp.txt', + }, +-- from hyphen-occitan: + ['occitan'] = { + loader = 'loadhyph-oc.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-oc.pat.txt', + hyphenation = '', + }, +-- from hyphen-piedmontese: + ['piedmontese'] = { + loader = 'loadhyph-pms.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-pms.pat.txt', + hyphenation = '', + }, +-- from hyphen-polish: + ['polish'] = { + loader = 'loadhyph-pl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-pl.pat.txt', + hyphenation = 'hyph-pl.hyp.txt', + }, +-- from hyphen-portuguese: + ['portuguese'] = { + loader = 'loadhyph-pt.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { 'portuges' }, + patterns = 'hyph-pt.pat.txt', + hyphenation = 'hyph-pt.hyp.txt', + }, +-- from hyphen-romanian: + ['romanian'] = { + loader = 'loadhyph-ro.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-ro.pat.txt', + hyphenation = '', + }, +-- from hyphen-romansh: + ['romansh'] = { + loader = 'loadhyph-rm.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-rm.pat.txt', + hyphenation = '', + }, +-- from hyphen-russian: + ['russian'] = { + loader = 'loadhyph-ru.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-ru.pat.txt', + hyphenation = 'hyph-ru.hyp.txt', + }, +-- from hyphen-sanskrit: + ['sanskrit'] = { + loader = 'loadhyph-sa.tex', + lefthyphenmin = 1, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-sa.pat.txt', + hyphenation = '', + }, +-- from hyphen-serbian: + ['serbian'] = { + loader = 'loadhyph-sr-latn.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt', + hyphenation = 'hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt', + }, + ['serbianc'] = { + loader = 'loadhyph-sr-cyrl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt', + hyphenation = 'hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt', + }, +-- from hyphen-slovak: + ['slovak'] = { + loader = 'loadhyph-sk.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-sk.pat.txt', + hyphenation = 'hyph-sk.hyp.txt', + }, +-- from hyphen-slovenian: + ['slovenian'] = { + loader = 'loadhyph-sl.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'slovene' }, + patterns = 'hyph-sl.pat.txt', + hyphenation = '', + }, +-- from hyphen-spanish: + ['spanish'] = { + loader = 'loadhyph-es.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { 'espanol' }, + patterns = 'hyph-es.pat.txt', + hyphenation = '', + }, +-- from hyphen-swedish: + ['swedish'] = { + loader = 'loadhyph-sv.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-sv.pat.txt', + hyphenation = '', + }, +-- from hyphen-thai: + ['thai'] = { + loader = 'loadhyph-th.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-th.pat.txt', + hyphenation = '', + }, +-- from hyphen-turkish: + ['turkish'] = { + loader = 'loadhyph-tr.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-tr.pat.txt', + hyphenation = '', + }, +-- from hyphen-turkmen: + ['turkmen'] = { + loader = 'loadhyph-tk.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-tk.pat.txt', + hyphenation = '', + }, +-- from hyphen-ukrainian: + ['ukrainian'] = { + loader = 'loadhyph-uk.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-uk.pat.txt', + hyphenation = '', + }, +-- from hyphen-uppersorbian: + ['uppersorbian'] = { + loader = 'loadhyph-hsb.tex', + lefthyphenmin = 2, + righthyphenmin = 2, + synonyms = { }, + patterns = 'hyph-hsb.pat.txt', + hyphenation = 'hyph-hsb.hyp.txt', + }, +-- from hyphen-welsh: + ['welsh'] = { + loader = 'loadhyph-cy.tex', + lefthyphenmin = 2, + righthyphenmin = 3, + synonyms = { }, + patterns = 'hyph-cy.pat.txt', + hyphenation = '', + }, +} diff --git a/docs/thesis/manual_build.bat b/docs/thesis/manual_build.bat new file mode 100644 index 0000000..0fe4164 --- /dev/null +++ b/docs/thesis/manual_build.bat @@ -0,0 +1,10 @@ +set DOCUMENT=thesis + +pdflatex --quiet %DOCUMENT% +bibtex -quiet %DOCUMENT% +pdflatex --quiet %DOCUMENT% +pdflatex --quiet %DOCUMENT% + +@REM move %DOCUMENT%.pdf ../pdf/%DOCUMENT%.pdf + +@del *.aux *.dvi *.thm *.lof *.log *.lot *.fls *.out *.toc *.bbl *.blg diff --git a/docs/thesis/thesis.pdf b/docs/thesis/thesis.pdf new file mode 100644 index 0000000..ca5440a Binary files /dev/null and b/docs/thesis/thesis.pdf differ diff --git a/docs/thesis/thesis.tex b/docs/thesis/thesis.tex new file mode 100644 index 0000000..05436ce --- /dev/null +++ b/docs/thesis/thesis.tex @@ -0,0 +1,105 @@ +% !TeX spellcheck = hu_HU +% !TeX encoding = UTF-8 +% !TeX program = xelatex +% TODO Change language to en_GB (recommended) or en_US for English documents +\documentclass[11pt,a4paper,oneside]{report} % Single-side +%\documentclass[11pt,a4paper,twoside,openright]{report} % Duplex + +\input{include/packages} + +%TODO Set the main variables +\newcommand{\vikszerzoVezeteknev}{Kunkli} +\newcommand{\vikszerzoKeresztnev}{Richárd} + +\newcommand{\vikkonzulensAMegszolitas}{dr.~} +\newcommand{\vikkonzulensAVezeteknev}{Simon} +\newcommand{\vikkonzulensAKeresztnev}{Csaba} + +\newcommand{\vikkonzulensBMegszolitas}{} +\newcommand{\vikkonzulensBVezeteknev}{Konzulens} +\newcommand{\vikkonzulensBKeresztnev}{Kettő} + +\newcommand{\vikkonzulensCMegszolitas}{} +\newcommand{\vikkonzulensCVezeteknev}{} +\newcommand{\vikkonzulensCKeresztnev}{} + +\newcommand{\vikcim}{Vizualizációs megoldás IoT adat elemző rendszerhez} % Cím +\newcommand{\viktanszek}{\bmetmit} % Tanszék +\newcommand{\vikdoktipus}{\bsc} % Dokumentum típusa (\bsc vagy \msc) +\newcommand{\vikmunkatipusat}{szakdolgozatot} % a "hallgató nyilatkozat" részhez: szakdolgozatot vagy diplomatervet + +\input{include/tdk-variables} +\newcommand{\szerzoMeta}{\vikszerzoVezeteknev{} \vikszerzoKeresztnev} % egy szerző esetén +%\newcommand{\szerzoMeta}{\vikszerzoVezeteknev{} \vikszerzoKeresztnev, \tdkszerzoB} % két szerző esetén + +%TODO Language configuration -- choose one +% Beállítások magyar nyelvű dolgozathoz +\input{include/thesis-hu} +% Settings for English documents +%\input{include/thesis-en} + +\input{include/preamble} + +%-------------------------------------------------------------------------------------- +% Table of contents and the main text +%-------------------------------------------------------------------------------------- +\begin{document} + +\pagenumbering{gobble} + +%TODO These includes define guidelines -- remove these +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\include{include/guideline} +%\include{include/project} + +\selectthesislanguage + +%TODO Titlepage -- choose one from below +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\include{include/titlepage} % Szakdolgozat/Diplomaterv címlap +%\include{include/titlepage-tdk} % TDK címlap +%\include{include/titlepage-otdk} % OTDK címlap + + +% Table of Contents +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\tableofcontents\vfill + + +% Declaration and Abstract +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\include{include/declaration} %TODO Hallgatói nyilatkozat -- TDK és OTDK esetén törlendő! +\include{content/abstract} %TODO Összefoglaló -- TDK és OTDK esetén nem kötelező + + +% The main part of the thesis +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\pagenumbering{arabic} + +%TODO import your own content +\include{content/introduction} + + +% Acknowledgements +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\include{content/acknowledgement} + + +% List of Figures, Tables +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%\listoffigures\addcontentsline{toc}{chapter}{\listfigurename} +%\listoftables\addcontentsline{toc}{chapter}{\listtablename} + + +% Bibliography +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\addcontentsline{toc}{chapter}{\bibname} +\bibliography{bib/mybib} + + +% Appendix +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\include{content/appendices} + +%\label{page:last} +\end{document}