From: Mart Lubbers Date: Thu, 1 Dec 2016 09:55:49 +0000 (+0100) Subject: update and frontpage used in presentation X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=a67a46e1817ed1a375cd5fa2147e376649f187a0;p=ri1617.git update and frontpage used in presentation --- diff --git a/.gitignore b/.gitignore index bf5c704..454d0cb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ *.blg *.pdf *.fmt -*.mlog *.out +*.dvi diff --git a/architecture/Makefile b/architecture/Makefile index 9ddd8ec..b396764 100644 --- a/architecture/Makefile +++ b/architecture/Makefile @@ -13,12 +13,14 @@ all: $(DOC).pdf %.fmt: preamble.tex $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump" -%.pdf: %.tex %.fmt %.bib $(TEXS) - $(LATEX) $(LATEXFLAGS) $< - grep -q '^\\bibdata{' $(basename $<).aux && $(BIBTEX) $(basename $<) || true - $(LATEX) $(LATEXFLAGS) $< | tee $(basename $<).mlog +%.pdf: %.mlog grep -qF 'Please rerun LaTeX.' $(basename $<).mlog &&\ $(LATEX) $(LATEXFLAGS) $< || true +%.mlog: %.tex %.fmt %.bib $(TEXS) + $(LATEX) $(LATEXFLAGS) $< + grep -q '^\\bibdata{' $(basename $<).aux && $(BIBTEX) $(basename $<) || true + $(LATEX) $(LATEXFLAGS) $< | tee $@ + clean: - $(RM) $(addprefix $(DOC).,aux log fmt toc bbl blg mlog run.xml out pdf) + $(RM) $(addprefix $(DOC).,aux log fmt toc bbl blg out pdf) diff --git a/architecture/a.tex b/architecture/a.tex index 2b5d4b6..2bb0570 100644 --- a/architecture/a.tex +++ b/architecture/a.tex @@ -6,27 +6,7 @@ righttext={P.W.M. Koopman\\M.J. Plasmeijers}] \section{Introduction} -In \emph{Task Oriented Programming} (TOP) a program is built out of pieces of -work called \emph{tasks}~\cite{achten_introduction_2015}. Tasks differ from -function in the way that they return a result. A task's return value can change -over time. Task exist in many forms and they can be composed sequentially and -in parallel. Some possible tasks are asking for user input via a web browser, -setting up a TCP connection to another server or combining several tasks. At -the moment there are several types of leaf tasks. A leaf task is a task that -does not consist of tasks itself. Examples of leaf tasks are the so called -editors. - -This paper describes the effort to add another type of leaf task that -focusses on microcontrollers. Microcontrollers are often not powerful -enough to run a full-fledged task server and therefore there is the need to -introduce special microcontroller tasks. Effort for this is already made by by -the department~\cite{koopman_tasks_2016}. However, communication between the -\emph{mTask} and the iTasks system is still lacking and exactly that will be the -goal of the project. This requires adding a new type of leaf task that allows -the user to run \emph{mTasks} on microcontrollers. The leaf task should -abstract away from communication techniques and it should be relatively easy to -add techniques. Techniques that are interesting to experiment with is Serial -communication, Bluetooth, \textsc{WiFi}, \textsc{GSM} and \textsc{LoRa}. +\input{intro.tex} \section{mTasks} The current implementation of \emph{mTask}s can be used to generate \emph{C} @@ -39,7 +19,8 @@ Every microcontroller will run the \emph{mTask-engine}. This engine is a program that has two jobs. The first job of the engine is to listen to the \iTasks{} server to which it is connected via one of the aforementioned methods. The \iTasks{} server can send task specifications and SDS -specifications to the engine to process. +specifications to the engine to process. Moreover the \iTasks{} server can send +requests for termination of tasks. The second job of the engine is to run the tasks in a round robin fashion. Every task has a frequency of execution and when the task want a turn he will @@ -54,30 +35,100 @@ communicating are unimportant, this can be TCP, Serial or any other communication method that sends data in a linear way. \subsection{\iTasks{} $\rightarrow$ microcontroller} +The \iTasks{} server can send two types of messages. The first and most +important type is sending a new task to the server. Tasks are dynamically sent +to the microcontroller, this means that the engine in itself does not do +anything without it getting a task first from the server. When a task is sent +the microcontroller acknowledges the message by sending the associated task +identification number back to the for the server to use in the future. +The second task is sending SDS specifications to the engine to tell the engine +what type of SDS will be used in the tasks so that it can be allocated. The +message structure for sending a task is shown in Table~\ref{tbl:tasksend} and +the message of sending an SDS specification is shown in +Table~\ref{tbl:sdsspec}. +\begin{table}[h] + \centering + \begin{tabular}{ll} + \toprule + Bytes & Description\\ + \midrule + \multicolumn{2}{c}{\textbf{Request}}\\ + $1$ & Task send code \verb#'t'#\\ + $2-3$ & Frequency in number of milliseconds as a 16-bit integer\\ + $4-5$ & Length of the bytecode 16-bit integer\\ + $n$ & Bytecode for the task\\ + \midrule + \multicolumn{2}{c}{\textbf{Response}}\\ + $1$ & Task numeric identification\\ + \bottomrule + \end{tabular} + \caption{Message format for sending a task}\label{tbl:tasksend} +\end{table} +\begin{table}[h] + \centering + \begin{tabular}{ll} + \toprule + Bytes & Description\\ + \midrule + \multicolumn{2}{c}{\textbf{Request}}\\ + $1$ & SDS send code \verb#'s'#\\ + $2-3$ & SDS length as a 16-bit integer\\ + $n$ & Value of the SDS identifier\\ + \midrule + \multicolumn{2}{c}{\textbf{Response}}\\ + $1$ & SDS numeric identification\\ + \bottomrule + \end{tabular} + \caption{Message format for sending an SDS specification}\label{tbl:sdssend} +\end{table} \subsection{Microcontroller $\rightarrow$ \iTasks{}} The only thing the microcontroller has to communicate back with the server is an update of the SDS and a request for an SDS value. -Since all SDS's have a numeric identifier the engine can just send a request +Since all SDSs have a numeric identifier the engine can just send a request message with the identifier to the server. A detailed description of the -message is described in Table~\ref{tbl:sdssend}. +message for sending and receiving SDSs is described in +Tables~\ref{tbl:sdssend},~\ref{tbl:sdsrecv}. + +As said before, publication of SDS values is not done automatically to save +bandwidth. Therefore the tasks need to have a way of requesting the latest SDS +value and a way of publishing an updated value. This is elaborated more upon in +the next section. -\begin{table}[H] +\begin{table}[h] \centering \begin{tabular}{ll} \toprule Bytes & Description\\ \midrule $1$ & SDS send code \verb#'s'#\\ - $2-5$ & SDS identifier as a 16-bit integer\\ - $2-5$ & Length of the message 16-bit integer\\ + $2-3$ & SDS identifier as a 16-bit integer\\ + $4-5$ & Length of the message 16-bit integer\\ $n$ & Value of the SDS identifier\\ \bottomrule \end{tabular} \caption{Message format for a SDS-send operation}\label{tbl:sdssend} \end{table} +\begin{table}[h] + \centering + \begin{tabular}{ll} + \toprule + Bytes & Description\\ + \midrule + \multicolumn{2}{c}{\textbf{Request}}\\ + $1$ & SDS send code \verb#'r'#\\ + $2-3$ & SDS identifier as a 16-bit integer\\ + \midrule + \multicolumn{2}{c}{\textbf{Response}}\\ + $1-2$ & Length of the message as a 16-bit integer\\ + $n$ & Value of the SDS\\ + \bottomrule + \end{tabular} + \caption{Message format for a SDS-receive operation}\label{tbl:sdsrecv} +\end{table} + \section{Improvements and future research} In the current implementation the number of possible tasks that can run simultaneously is fixed. A future project can implement dynamic task allocation diff --git a/architecture/intro.tex b/architecture/intro.tex new file mode 100644 index 0000000..bb727da --- /dev/null +++ b/architecture/intro.tex @@ -0,0 +1,21 @@ +In \emph{Task Oriented Programming} (TOP) a program is built out of pieces of +work called \emph{tasks}~\cite{achten_introduction_2015}. Tasks differ from +function in the way that they return a result. A task's return value can change +over time. Task exist in many forms and they can be composed sequentially and +in parallel. Some possible tasks are asking for user input via a web browser, +setting up a TCP connection to another server or combining several tasks. At +the moment there are several types of leaf tasks. A leaf task is a task that +does not consist of tasks itself. Examples of leaf tasks are the so called +editors. + +This paper describes the effort to add another type of leaf task that +focusses on microcontrollers. Microcontrollers are often not powerful +enough to run a full-fledged task server and therefore there is the need to +introduce special microcontroller tasks. Effort for this is already made by by +the department~\cite{koopman_tasks_2016}. However, communication between the +\emph{mTask} and the iTasks system is still lacking and exactly that will be the +goal of the project. This requires adding a new type of leaf task that allows +the user to run \emph{mTasks} on microcontrollers. The leaf task should +abstract away from communication techniques and it should be relatively easy to +add techniques. Techniques that are interesting to experiment with is Serial +communication, Bluetooth, \textsc{WiFi}, \textsc{GSM} and \textsc{LoRa}. diff --git a/architecture/preamble.tex b/architecture/preamble.tex index 1de91e7..8dcb249 100644 --- a/architecture/preamble.tex +++ b/architecture/preamble.tex @@ -2,7 +2,6 @@ \usepackage[british]{babel} \usepackage{geometry} -\usepackage{float} \usepackage{rutitlepage} \usepackage{booktabs} @@ -10,5 +9,5 @@ \author{Mart Lubbers\\\small{s4109503}} \date{\today} -\title{Connecting iTasks to the IoT by interpreting shallow embedded type safe +\title{Connecting \iTasks{} to the IoT by interpreting shallow embedded type safe DSL bytecode} diff --git a/frontpage/Makefile b/frontpage/Makefile new file mode 100644 index 0000000..66020a4 --- /dev/null +++ b/frontpage/Makefile @@ -0,0 +1,10 @@ +all: ex.pdf + +%.pdf: %.tex + pdflatex $< + +%.png: %.eps + convert -density 300 $< -resize x1000 $@ + +clean: + $(RM) logo.png $(addprefix ex.,log aux pdf dvi) diff --git a/frontpage/README.md b/frontpage/README.md new file mode 100644 index 0000000..8e75954 --- /dev/null +++ b/frontpage/README.md @@ -0,0 +1,36 @@ +# RU titlepage +## Prerequisites +- geometry +- graphicx +- ifpdf +- keyval +- iflang + +On a sensible system running texlive one can install this by typing: +```sh +tlmgr install geometry graphicx ifpdf keyval iflang +``` + +The titlepage works both with `latex` and `pdflatex`. Quite possibly it works +with other \*`TeX`s. + +## Usage +To prepare the files and compile the test document run `make`. + +For all available options see `ex.tex`. + +When you use `babel` to internationalize your document the titlepage will +change accordingly. + +## Todo +- Make the package CTAN ready + +## Author(s) +Author: + +- Mart Lubbers + +Contributors: + +- [camilstaps](https://github.com/camilstaps) +- [dsprenkels](https://github.com/dsprenkels) diff --git a/frontpage/ex.tex b/frontpage/ex.tex new file mode 100644 index 0000000..779400a --- /dev/null +++ b/frontpage/ex.tex @@ -0,0 +1,18 @@ +\documentclass[a4paper]{article} + +\usepackage{geometry} +\usepackage{rutitlepage} + +\author{Mart Lubbers} +\title{Add embedded devices to \emph{iTasks} through interpreting bytecode + generated from a shallow embedded type safe \emph{DSL}} +\date{\today} + +\begin{document} +% Utilizing all options +\maketitleru[ + course={Research Internship}, + institute={Radboud University Nijmegen}, + righttextheader={Supervisors:}, + righttext={P.W.M.\@ Koopman\\M.J.\@ Plasmeijers}] +\end{document} diff --git a/frontpage/logo.eps b/frontpage/logo.eps new file mode 100644 index 0000000..5b9683e --- /dev/null +++ b/frontpage/logo.eps @@ -0,0 +1,286 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.0 (http://cairographics.org) +%%CreationDate: Tue Jun 28 20:12:30 2016 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 0 -1 38 49 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 0 -1 38 49 +%%EndPageSetup +q 0 -1 38 50 rectclip q +Q q +0 48.189 37.527 -48.191 re W n +q +0 48.189 38 -49 re W n +[ 1 0 0 1 0 -0.810501 ] concat + q +0.137255 0.121569 0.12549 rg +3.074 19.461 m 2.996 19.07 2.512 18.539 1.938 18.48 c 1.133 18.461 0.461 + 19.121 0.422 19.676 c 0.391 20.199 0.43 20.336 0.43 20.336 c 3.133 20.246 + l 3.125 19.949 3.152 19.797 3.074 19.461 c h +3.438 21.258 m 3.336 21.023 l 0.391 21.102 l 0.195 21.348 l 0 21.344 l +0 19.539 l -0.043 18.715 0.797 17.715 1.922 17.719 c 2.977 17.777 3.488 +18.773 3.559 19.699 c 3.672 21.262 l 3.438 21.258 l f +1.238 12.719 m 1.812 11.57 l 1.938 11.645 l 1.871 11.945 l 4.57 13.141 +l 4.707 12.969 l 4.941 13.082 l 4.438 14.113 l 4.277 14.043 l 4.281 13.723 + l 1.633 12.566 l 1.402 12.742 l 1.238 12.719 l f +2.113 13.926 m 2.113 13.801 l 1.344 13.641 l 0.906 13.938 0.699 14.254 +0.57 14.77 c 0.32 15.773 0.57 16.703 1.883 17.07 c 3.262 17.5 3.832 16.605 + 4.129 15.562 c 4.215 15.254 4.219 15.031 4.273 14.695 c 3.543 14.492 l +3.441 14.641 l 3.73 14.898 3.82 15.285 3.723 15.656 c 3.582 16.223 2.93 +16.547 2.398 16.332 c 2.781 14.66 l 3.078 14.535 l 3.133 14.375 l 2.352 +14.176 l 2.301 14.336 l 2.414 14.512 l 1.992 16.191 l 1.34 16.156 0.859 +15.484 1 14.852 c 1.09 14.445 1.578 13.984 2.113 13.926 c f +1.539 22.031 m 1.445 22.234 1.539 22.48 1.75 22.574 c 1.953 22.656 2.195 + 22.602 2.277 22.426 c 2.387 22.215 2.277 21.977 2.086 21.828 c 1.883 21.734 + 1.637 21.828 1.539 22.031 c f +3.848 11.328 m 3.754 11.539 3.84 11.777 3.988 11.871 c 4.172 11.969 4.441 + 11.871 4.598 11.656 c 4.688 11.453 4.594 11.203 4.391 11.121 c 4.184 11.023 + 3.945 11.121 3.848 11.328 c f +24.27 3.441 m 24.176 3.652 24.277 3.891 24.492 3.984 c 24.707 4.078 24.949 + 3.984 25.035 3.781 c 25.113 3.574 25.035 3.332 24.824 3.23 c 24.621 3.137 + 24.379 3.234 24.27 3.441 c f +2.375 28.719 m 1.789 27.57 l 1.926 27.523 l 2.172 27.734 l 4.777 26.391 + l 4.723 26.176 l 4.957 26.082 l 5.43 27.09 l 5.262 27.168 l 5.023 26.996 + l 2.531 28.332 l 2.504 28.605 l 2.375 28.719 l f +3.996 23.676 m 3.832 23.723 l 3.68 23.605 l 1.73 24.023 l 4.52 25.086 l + 4.773 25.73 l 4.566 25.777 l 4.379 25.695 l 1.758 26.738 l 1.738 26.988 + l 1.547 27.047 l 1.219 26.145 l 1.461 26.055 l 1.684 26.172 l 3.547 25.445 + l 0.57 24.301 l 0.438 23.855 l 3.547 23.168 l 3.68 23.02 l 3.797 22.969 + l 3.996 23.676 l f +8.82 5.602 m 8.707 5.484 8.27 5.07 7.816 5.059 c 7.625 5.059 7.453 5.117 + 7.293 5.273 c 7.25 5.324 l 7.098 5.434 7.031 5.566 7.02 5.762 c 7.02 6.137 + 7.34 6.641 7.582 6.898 c 7.785 7.102 8.52 7.875 9.098 7.352 c 9.184 7.273 + l 9.746 6.727 8.988 5.773 8.82 5.602 c h +9.957 6.27 m 9.984 6.758 9.887 7.18 9.566 7.508 c 9.52 7.562 l 9.5 7.582 + l 9.477 7.598 l 9.461 7.613 l 9.414 7.648 l 9.066 7.953 8.645 8.051 8.152 + 7.996 c 7.629 7.945 7.137 7.668 6.816 7.203 c 6.254 6.496 6.262 5.582 6.926 + 4.922 c 6.945 4.906 l 6.941 4.906 l 6.934 4.914 l 6.945 4.906 l 7.656 4.312 + 8.578 4.344 9.27 4.918 c 9.676 5.258 9.926 5.754 9.957 6.27 c f +14.203 1.359 m 15.414 1.094 l 15.426 1.234 l 15.16 1.434 l 15.73 4.285 +l 16 4.297 l 16.016 4.547 l 14.906 4.746 l 14.859 4.555 l 15.137 4.352 l + 14.574 1.598 l 14.281 1.516 l 14.203 1.359 l f +23.434 2.672 m 23.559 2.664 l 23.805 1.91 l 23.48 1.492 23.18 1.293 22.652 + 1.18 c 21.637 0.961 20.715 1.188 20.414 2.465 c 19.973 3.855 20.867 4.41 + 21.91 4.715 c 22.23 4.805 22.445 4.805 22.789 4.852 c 22.98 4.098 l 22.828 + 4.004 l 22.578 4.305 22.195 4.402 21.812 4.32 c 21.254 4.172 20.902 3.508 + 21.098 2.961 c 22.777 3.344 l 22.914 3.648 l 23.078 3.691 l 23.262 2.91 + l 23.09 2.871 l 22.922 2.98 l 21.262 2.586 l 21.293 1.957 21.934 1.48 22.582 + 1.613 c 23 1.684 23.473 2.141 23.434 2.672 c f +7.273 9.59 m 7.137 9.48 l 7.16 9.281 l 5.727 7.824 l 6.363 10.73 l 5.961 + 11.285 l 5.82 11.148 l 5.781 10.941 l 3.441 9.316 l 3.219 9.434 l 3.074 + 9.309 l 3.68 8.527 l 3.883 8.691 l 3.906 8.941 l 5.52 10.098 l 4.859 7.008 + l 5.172 6.652 l 7.453 8.922 l 7.648 8.961 l 7.754 9.027 l 7.273 9.59 l f +18.84 4.266 m 18.828 4.094 l 19 3.977 l 19.199 1.973 l 17.316 4.383 l 16.664 + 4.449 l 16.684 4.25 l 16.809 4.082 l 16.582 1.227 l 16.344 1.117 l 16.34 + 0.926 l 17.285 0.914 l 17.301 1.18 l 17.137 1.355 l 17.266 3.324 l 19.242 + 0.809 l 19.707 0.812 l 19.453 3.965 l 19.559 4.141 l 19.57 4.27 l 18.84 + 4.266 l f +8.938 3.566 m 9.027 3.762 l 9.301 3.738 l 11.18 5.891 l 11.086 6.117 l +11.238 6.293 l 11.82 6.043 l 11.727 3.91 l 12.93 5.309 l 12.871 5.422 l +12.973 5.496 l 13.82 5.152 l 13.809 4.938 l 13.66 4.867 l 13.281 1.961 l + 13.488 1.723 l 13.43 1.551 l 12.438 1.992 l 12.496 2.199 l 12.676 2.242 + l 12.949 4.535 l 11.188 2.43 l 10.832 2.547 l 11.074 5.188 l 9.645 3.473 + l 9.773 3.23 l 9.719 3.105 l 8.938 3.566 l f +31.297 7.328 m 31.414 7.383 l 31.926 6.781 l 31.867 6.246 31.691 5.926 +31.289 5.562 c 30.504 4.824 29.57 4.605 28.641 5.59 c 27.66 6.641 28.168 + 7.566 28.961 8.316 c 29.191 8.543 29.383 8.656 29.664 8.859 c 30.195 8.297 + l 30.117 8.141 l 29.738 8.281 29.359 8.176 29.07 7.914 c 28.629 7.531 28.641 + 6.793 29.09 6.422 c 30.402 7.547 l 30.367 7.875 l 30.48 7.992 l 31.027 +7.449 l 30.902 7.332 l 30.695 7.336 l 29.375 6.109 l 29.703 5.551 30.52 +5.43 31.016 5.906 c 31.336 6.18 31.496 6.824 31.297 7.328 c f +35.426 25.012 m 35.426 25.141 l 36.203 25.309 l 36.641 24.984 36.832 24.688 + 36.949 24.168 c 37.203 23.156 36.926 22.223 35.645 21.875 c 34.297 21.457 + 33.684 22.348 33.406 23.395 c 33.316 23.703 33.309 23.926 33.258 24.27 +c 33.996 24.469 l 34.094 24.316 l 33.801 24.066 33.703 23.676 33.801 23.297 + c 33.934 22.727 34.578 22.398 35.129 22.609 c 34.754 24.289 l 34.441 24.418 + l 34.398 24.582 l 35.195 24.797 l 35.23 24.656 l 35.117 24.438 l 35.539 + 22.75 l 36.191 22.77 36.68 23.445 36.543 24.09 c 36.461 24.5 35.965 24.949 + 35.426 25.012 c f +32.906 25.68 m 32.574 26.371 32.387 27.391 33.293 27.621 c 34.043 27.824 + 34.492 27.105 34.594 26.531 c h +35.852 27.176 m 34.98 26.738 l 34.977 27.41 35.152 28.16 35.082 28.539 +c 34.953 29.086 34.785 29.23 34.348 29.594 c 34.219 29.492 l 34.348 29.273 + 34.398 29.273 34.484 28.945 c 34.598 28.48 34.586 28.184 34.473 27.719 +c 34.219 28.191 33.664 28.383 33.07 28.211 c 32.34 28.016 31.918 27.254 +32.246 26.559 c 32.977 24.863 l 33.223 24.973 l 33.285 25.133 l 35.902 26.477 + l 36.086 26.355 l 36.23 26.402 l 35.852 27.176 l f +33.953 18.195 m 33.965 20.906 l 33.742 21.645 l 34.672 21.055 l 34.578 +21.031 34.5 21 34.441 20.953 c 34.344 20.855 34.344 20.449 34.328 19.84 +c 37.312 19.883 l 37.367 20.012 l 37.523 20.004 l 37.527 18.938 l 37.441 + 18.938 l 37.309 19.191 l 34.352 19.141 l 34.355 18.816 34.309 18.34 34.398 + 18.266 c 34.43 18.234 34.492 18.199 34.57 18.172 c 33.789 17.656 l 33.953 + 18.195 l f +37.078 15.617 m 37.309 16.84 l 37.172 16.852 l 36.961 16.602 l 34.082 17.113 + l 34.055 17.324 l 33.812 17.344 l 33.66 16.223 l 33.84 16.203 l 34.02 16.426 + l 36.824 15.941 l 36.922 15.684 l 37.078 15.617 l f +35.809 14.984 m 35.934 15.117 l 36.609 14.805 l 36.75 14.254 36.727 13.859 + 36.488 13.352 c 36 12.406 35.293 11.773 33.953 12.324 c 32.648 12.914 32.793 + 13.988 33.23 14.996 c 33.367 15.305 33.496 15.477 33.664 15.766 c 34.41 + 15.48 l 34.355 15.281 l 33.961 15.262 33.68 15.082 33.512 14.734 c 33.23 + 14.176 33.664 13.676 34.18 13.27 c 34.695 12.883 35.816 13.051 36.109 13.629 + c 36.289 14.02 36.184 14.598 35.809 14.984 c f +34.82 9.828 m 35.441 10.922 l 35.301 10.926 l 35.043 10.773 l 32.383 12.23 + l 32.438 12.441 l 32.211 12.535 l 31.793 11.535 l 31.961 11.449 l 32.211 + 11.602 l 34.688 10.211 l 34.707 9.945 l 34.82 9.828 l f +32.762 7.07 m 34.492 9.051 l 34.121 10 l 33.875 9.754 l 33.875 9.754 33.961 + 9.355 33.926 9.117 c 33.852 8.637 33.195 8.062 33.195 8.062 c 30.953 9.922 + l 31.051 10.16 l 30.848 10.297 l 30.074 9.32 l 30.281 9.176 l 30.531 9.289 + l 32.711 7.465 l 32.668 7.211 l 32.762 7.07 l f +26.762 2.512 m 27.695 3.02 l 27.598 3.133 l 27.355 3.168 l 26.688 4.523 + l 26.688 4.523 27.242 4.922 27.598 4.996 c 27.773 5.039 28.055 5.035 28.055 + 5.035 c 27.715 5.719 l 27.715 5.719 27.555 5.512 27.434 5.398 c 27.168 +5.141 26.492 4.91 26.492 4.91 c 26.02 5.898 l 26.02 5.898 26.68 6.367 27.105 + 6.496 c 27.242 6.535 27.512 6.586 27.512 6.586 c 27.512 6.586 27.523 6.773 + 27.562 6.879 c 27.621 7.062 27.793 7.324 27.793 7.324 c 25.055 5.723 l +25.113 5.52 l 25.383 5.523 l 26.703 2.898 l 26.641 2.672 l 26.762 2.512 +l f +28.867 29.129 m 20.754 30.406 l 20.855 30.156 20.918 29.875 20.918 29.594 + c 20.918 28.43 19.984 27.492 18.812 27.492 c 18.797 27.492 18.766 27.496 + 18.742 27.496 c 18.738 27.496 l 18.715 27.496 18.699 27.492 18.676 27.492 + c 17.52 27.492 16.625 28.43 16.625 29.594 c 16.625 29.875 16.684 30.156 + 16.781 30.406 c 8.711 29.129 l 8.477 30.504 8.359 31.781 8.359 32.922 c + 8.359 33.332 8.379 33.715 8.41 34.102 c 13.234 34.102 l 14.562 34.102 14.672 + 33.965 14.734 33.902 c 14.824 33.82 14.844 33.598 14.723 33.512 c 14.434 + 33.332 13.992 33.117 13.992 32.465 c 13.992 32.43 l 13.992 31.91 14.453 + 31.715 15.551 31.277 c 15.867 31.156 16.977 30.719 16.977 30.719 c 17.207 + 30.848 l 17.594 31.047 18.418 31.602 18.418 32.547 c 18.418 32.668 18.402 + 32.766 18.387 32.852 c 18.355 32.977 18.305 33.09 18.25 33.184 c 18.25 +33.191 l 18.074 33.52 17.863 33.617 17.863 33.617 c 17.863 33.617 17.969 + 34.066 18.617 34.121 c 18.617 34.117 l 18.648 34.125 18.664 34.129 18.691 + 34.129 c 18.742 34.129 l 19.066 34.129 19.285 33.859 19.285 33.543 c 19.285 + 33.148 19.031 33.066 19.031 32.547 c 19.027 31.602 19.852 31.047 20.234 + 30.848 c 20.484 30.719 l 20.484 30.719 21.613 31.156 21.922 31.277 c 23.039 + 31.715 23.484 31.91 23.484 32.43 c 23.484 32.465 l 23.484 33.117 23.051 + 33.332 22.77 33.512 c 22.625 33.598 22.652 33.82 22.75 33.902 c 22.812 +33.965 22.93 34.102 24.234 34.102 c 29.176 34.102 l 29.207 33.715 29.23 +33.332 29.23 32.922 c 29.23 31.781 29.105 30.504 28.867 29.129 c h +28.141 25.898 m 21.289 29.031 l 23.699 28.656 27.195 28.105 28.621 27.883 + c 28.484 27.23 28.324 26.586 28.141 25.898 c h +20.637 27.941 m 24.973 25.898 l 21.992 25.898 l h +26.793 21.672 m 21.594 21.672 l 21.594 24.625 l 27.781 24.625 l 27.492 +23.676 27.164 22.684 26.793 21.672 c h +19.391 25.898 m 19.391 27.504 l 20.461 25.898 l h +17.043 25.898 m 18.109 27.504 l 18.109 25.898 l h +26.121 19.914 m 25.781 19.074 25.43 18.266 25.059 17.445 c 20.32 17.445 + l 20.32 8.629 l 19.852 7.949 19.438 7.406 19.094 7.031 c 19 6.93 18.844 + 6.773 18.742 6.699 c 18.652 6.773 18.512 6.93 18.406 7.031 c 18.062 7.406 + 17.645 7.949 17.176 8.629 c 17.176 17.445 l 12.496 17.445 l 12.129 18.266 + 11.773 19.074 11.449 19.914 c 11.383 20.078 11.316 20.238 11.254 20.398 + c 17.176 20.398 l 17.176 24.625 l 20.32 24.625 l 20.32 20.398 l 26.312 +20.398 l 26.254 20.238 26.188 20.078 26.121 19.914 c h +21.594 10.629 m 21.594 16.168 l 24.496 16.168 l 23.52 14.102 22.52 12.191 + 21.594 10.629 c h +15.949 10.629 m 15.02 12.191 14.012 14.102 13.043 16.168 c 15.949 16.168 + l h +9.805 24.625 m 15.949 24.625 l 15.949 21.672 l 10.777 21.672 l 10.402 22.684 + 10.094 23.676 9.805 24.625 c h +16.887 27.941 m 15.535 25.898 l 12.59 25.898 l h +9.441 25.898 m 9.254 26.586 9.094 27.23 8.957 27.883 c 10.367 28.105 13.832 + 28.656 16.25 29.031 c h +18.738 35.938 m 28.867 35.938 l 28.918 35.75 28.965 35.543 29 35.34 c 24.234 + 35.34 l 22.215 35.34 21.352 34.848 21.352 33.668 c 21.352 33.305 21.551 + 32.914 21.879 32.637 c 21.648 32.543 20.68 32.195 20.539 32.133 c 20.426 + 32.266 20.207 32.469 20.176 32.793 c 20.273 32.949 20.484 33.27 20.484 +33.734 c 20.484 34.461 19.984 35.195 18.715 35.23 c 18.129 35.207 17.758 + 35.035 17.461 34.801 c 17.441 34.777 17.43 34.762 17.41 34.742 c 16.883 + 34.598 16.551 34.23 16.551 33.762 c 16.551 33.258 l 16.551 33.258 16.781 + 33.234 16.914 33.184 c 17.086 33.109 17.152 33.02 17.203 32.949 c 17.348 + 32.742 17.227 32.281 16.934 32.133 c 16.797 32.195 15.828 32.543 15.59 +32.637 c 15.922 32.914 16.137 33.305 16.137 33.668 c 16.137 34.848 15.266 + 35.34 13.234 35.34 c 8.574 35.34 l 8.617 35.543 8.656 35.75 8.711 35.938 + c h +12.262 40.18 m 12.262 40.57 12.387 41.078 13.516 41.078 c 14.43 41.078 +14.801 40.941 14.957 40.824 c 15.035 40.777 15.137 40.699 15.137 40.312 +c 15.137 40.312 15.137 38.293 15.137 37.215 c 12.262 37.215 l h +17.375 43.703 m 17.375 43.277 l 16.625 43.051 15.996 42.594 15.566 41.945 + c 15.219 42.156 14.785 42.254 14.344 42.301 c 15.207 43.008 16.277 43.484 + 17.375 43.703 c h +16.555 46.188 m 18.371 46.188 l 18.371 48.004 l 19.133 48.004 l 19.133 +46.188 l 20.98 46.188 l 20.98 45.379 l 19.133 45.379 l 19.133 43.535 l 18.371 + 43.535 l 18.371 45.379 l 16.555 45.379 l h +21.129 40.312 m 21.129 37.215 l 16.406 37.215 l 16.406 40.312 l 16.406 +41.203 16.992 42.23 18.738 42.23 c 18.742 42.23 l 20.52 42.23 21.129 41.203 + 21.129 40.312 c h +23.191 42.301 m 22.746 42.254 22.324 42.156 21.965 41.945 c 21.547 42.594 + 20.918 43.051 20.117 43.277 c 20.117 43.703 l 21.262 43.484 22.332 43.008 + 23.191 42.301 c h +25.301 40.18 m 25.301 37.215 l 22.398 37.215 l 22.398 40.312 l 22.398 40.699 + 22.504 40.777 22.57 40.824 c 22.73 40.941 23.109 41.078 24.027 41.078 c + 25.168 41.078 25.301 40.57 25.301 40.18 c h +29.957 36.777 m 29.801 37.215 l 26.578 37.215 l 26.578 40.18 l 26.578 41 + 26.168 41.863 25.07 42.199 c 24.277 43.16 23.191 43.957 21.969 44.469 c + 21.969 47.176 l 20.117 47.176 l 20.117 49 l 17.375 49 l 17.375 47.176 l + 15.566 47.176 l 15.566 44.469 l 14.344 43.957 13.242 43.16 12.473 42.199 + c 11.398 41.863 10.98 41 10.98 40.18 c 10.98 37.215 l 7.77 37.215 l 7.629 + 36.777 l 7.242 35.598 7.07 34.301 7.07 32.891 c 7.07 28.523 8.684 23.418 + 10.262 19.438 c 12.66 13.418 15.828 7.969 17.477 6.156 c 17.867 5.762 18.184 + 5.418 18.707 5.395 c 18.715 5.391 18.73 5.395 18.738 5.395 c 18.742 5.395 + l 18.758 5.395 18.766 5.391 18.781 5.395 c 19.316 5.418 19.637 5.762 20.023 + 6.156 c 21.711 7.969 24.906 13.418 27.301 19.438 c 28.895 23.418 30.504 + 28.523 30.504 32.891 c 30.504 34.301 30.355 35.598 29.957 36.777 c f + Q +Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/frontpage/rutitlepage.sty b/frontpage/rutitlepage.sty new file mode 100644 index 0000000..6470fb9 --- /dev/null +++ b/frontpage/rutitlepage.sty @@ -0,0 +1,56 @@ +% Radboud University Nijmegen titlepage +% Author: Mart Lubbers +% Date: 2016-11-15 +\RequirePackage{geometry,graphicx,ifpdf,keyval,iflang} + +\def\@rutitleauthors{\@author} +\def\@rutitlepagenr{\thepage} +\define@key{maketitleru}{course}{\def\@rutitlecourse{#1}} +\define@key{maketitleru}{institute}{\def\@rutitleinst{#1}} +\define@key{maketitleru}{authorstext}{\def\@rutitleauthorstext{#1}} +\define@key{maketitleru}{authors}{\def\@rutitleauthors{#1}} +\define@key{maketitleru}{righttext}{\def\@rutitlerighttext{#1}} +\define@key{maketitleru}{righttextheader}{\def\@rutitlerighttextheader{#1}} +\define@key{maketitleru}{pagenr}{\def\@rutitlepagenr{#1}} +\setkeys{maketitleru}{% + course={}, + institute={Radboud Universit\IfLanguageName{dutch}{eit}{y} Nijmegen}, + authorstext={\IfLanguageName{dutch}{Auteurs: }{Authors:}}, + righttextheader={}, + righttext={} +} +\newcommand{\maketitleru}[1][]{ + \setkeys{maketitleru}{#1} + \newgeometry{hmarginratio=1:1} + \begin{titlepage} + \setcounter{page}{\@rutitlepagenr} + \begin{center} + \textsc{\LARGE\@rutitlecourse}\\[1.5cm] + \ifpdf\includegraphics[height=150pt]{logo.pdf}\\ + \else\includegraphics[height=150pt]{logo.eps}\\ + \fi + \vspace{0.4cm} + \textsc{\Large\@rutitleinst}\\[1cm] + \hrule + \vspace{0.4cm} + \textbf{\large\@title}\\[0.4cm] + \hrule + \vspace{2cm} + \begin{minipage}[t]{0.45\textwidth} + \begin{flushleft}\large + \textit{\@rutitleauthorstext}\\ + \@rutitleauthors{} + \end{flushleft} + \end{minipage} + \begin{minipage}[t]{0.45\textwidth} + \begin{flushright}\large + \textit{\@rutitlerighttextheader}\\ + \@rutitlerighttext% + \end{flushright} + \end{minipage} + \vfill + {\large\@date} + \end{center} + \end{titlepage} + \restoregeometry +}