From ce1dc848dc1bcded8db14c3ca56554f6877166d4 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 11 Jan 2014 19:25:15 +0100 Subject: [PATCH] another bachelor proposal --- .../Makefile | 10 + ...lor-proposal-latex-writing-recognition.tex | 235 +++ .../figures/daum-editor.png | Bin 0 -> 51575 bytes .../figures/libreoffice-writer.png | Bin 0 -> 9363 bytes .../itmalpha.bst | 1325 +++++++++++++++++ .../literatur.bib | 64 + .../mystyle.sty | 65 + 7 files changed, 1699 insertions(+) create mode 100644 documents/bachelor-proposal-latex-writing-recognition/Makefile create mode 100644 documents/bachelor-proposal-latex-writing-recognition/bachelor-proposal-latex-writing-recognition.tex create mode 100644 documents/bachelor-proposal-latex-writing-recognition/figures/daum-editor.png create mode 100644 documents/bachelor-proposal-latex-writing-recognition/figures/libreoffice-writer.png create mode 100644 documents/bachelor-proposal-latex-writing-recognition/itmalpha.bst create mode 100644 documents/bachelor-proposal-latex-writing-recognition/literatur.bib create mode 100644 documents/bachelor-proposal-latex-writing-recognition/mystyle.sty diff --git a/documents/bachelor-proposal-latex-writing-recognition/Makefile b/documents/bachelor-proposal-latex-writing-recognition/Makefile new file mode 100644 index 0000000..e37ca2d --- /dev/null +++ b/documents/bachelor-proposal-latex-writing-recognition/Makefile @@ -0,0 +1,10 @@ +SOURCE = bachelor-proposal-latex-writing-recognition +make: + pdflatex $(SOURCE).tex -output-format=pdf + bibtex $(SOURCE) + pdflatex $(SOURCE).tex -output-format=pdf # Referenzen einbinden + pdflatex $(SOURCE).tex -output-format=pdf # Referenzen einbinden + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.bcf *.bbl *.blg diff --git a/documents/bachelor-proposal-latex-writing-recognition/bachelor-proposal-latex-writing-recognition.tex b/documents/bachelor-proposal-latex-writing-recognition/bachelor-proposal-latex-writing-recognition.tex new file mode 100644 index 0000000..bdb0896 --- /dev/null +++ b/documents/bachelor-proposal-latex-writing-recognition/bachelor-proposal-latex-writing-recognition.tex @@ -0,0 +1,235 @@ +\documentclass[a4paper]{scrartcl} +\usepackage{amssymb, amsmath} % needed for math +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[english]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +\usepackage[margin=2.5cm]{geometry} %layout +\usepackage{hyperref} % links im text +\usepackage{color} +\usepackage{framed} +\usepackage{enumerate} % for advanced numbering of lists +\usepackage{csquotes} +\usepackage{ifxetex,ifluatex} +\usepackage{etoolbox} +\usepackage[svgnames]{xcolor} +\usepackage{tikz} +\usepackage{framed} +\usepackage{parskip} +\usepackage{cite} +\usepackage{fancyref} +\usepackage{mystyle} +\clubpenalty = 10000 % Schusterjungen verhindern +\widowpenalty = 10000 % Hurenkinder verhindern + +\hypersetup{ + pdfauthor = {Martin Thoma}, + pdfkeywords = {Bachelor proposal, LaTeX, handwriting recognition}, + pdftitle = {Proposal for a Bachelor of Science Thesis:\\Interactive on-line handwriting recognition of mathematical formulae} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + \title{Proposal for a Bachelor of Science Thesis:\\Interactive on-line handwriting recognition of mathematical formulae} + \author{Martin Thoma} + \maketitle +\section{The problem backgound} + There are people who don't know how to write even + simple mathematical formulae with \LaTeX{} like + \[\pi/\alpha=\sum_{n=-\infty}^\infty \frac{\sin^2 (c+n)\alpha}{(c+n)^2}=\int_{-\infty}^\infty \frac{\sin^2 (c+n)\alpha}{(c+n)^2}\, \text{d}n\] + or who need much time to do so. Currently, there are several online + services, programms and apps that help to write mathematical + formulae, but all programms I know have serious disadvantages: + \begin{itemize} + \item \href{http://detexify.kirelabs.org/classify.html}{detexify.kirelabs.org} + recognizes \textbf{only symbols}, + \item the formel editor of LibreOffice Writer 3.6 as showen + in \Fref{fig:libre-office-3.6} offers some + guidiance by grouping common operations while showing + a WYSIWYG editor, but it has \textbf{no handwriting recognition}. + Another drawback is the fact that it is \textbf{not available + as an online service}, so you have to install LibreOffice + which might not be possible on all devices. + \item The \enquote{Daum Equation Editor} (see \Fref{fig:daum-editor}) is available online + and offers guidiance through the creation of equations, + but does not offer handwriting recognition. Although + it might be OpenSource, the \textbf{source code is difficult to + find}. This means if you want to improve the recognition, + it is not possible. It also makes use of Adobe Flash + which is not available on many smartphones and tablet + computers. + \item Maple seems to offer handwritten symbol recognition (\href{http://www.maplesoft.com/products/maple/features/handwritten.aspx}{source}), + but on the one hand I was not able to test that, because + it is \textbf{not available for free}. On the other hand you + have to install additional software, it seems not to be + available for tablet computers and it does only recognize + single symbols. + \item Wolfram Mathematica seems to be able to do complete + formula recognition at least for simple formulae (\href{http://reference.wolfram.com/mathematica/tutorial/HandwrittenMathRecognition.html}{source}) + by using Microsofts \href{http://windows.microsoft.com/en-ph/windows7/use-math-input-panel-to-write-and-correct-math-equations}{Math Input Panel}, + but this is neither OpenSource nor available as an + online service. Additionally it is not + available for Linux systems, so I can't test it. + \end{itemize} + + A more comprehensive list can be found at \href{https://en.wikipedia.org/wiki/Formula_editor}{https://en.wikipedia.org/wiki/Formula\_editor}. + A problem of some of the projects presented there is that they + require the client to execute Java Applets which is a security + risk. + + \begin{figure}[h] + \centering + \includegraphics*[width=5cm, keepaspectratio]{figures/libreoffice-writer.png} + \caption{LibreOffice Writer 3.6 - Formel Editor} + \label{fig:libre-office-3.6} + \end{figure} + + \begin{figure}[h] + \centering + \includegraphics*[width=15cm, keepaspectratio]{figures/daum-editor.png} + \caption{Daum Equation editor} + \label{fig:daum-editor} + \end{figure} +\break +\section{The problem statement} + What I would like to have is an interactive on-line handwriting + recognition service, that is available as a web service which makes + use of touchscreens. Additionally, it should be for free and + OpenSource, the source code should be easy to find and documented. + This means: + \begin{itemize} + \item \textbf{Service}: The program can be accessed over the web, so + that the user does only have to have a modern browser. + As a consequence, the software could be used with any + device that has a touch screen. + \item \textbf{On-line handwriting recognition}: The service + starts recognizing while the user enters a formula. + \item \textbf{Interactive}: The service offers symbols and constructs + to the user before the user starts typing. These suggestions + might chage depending on what the user has typed before. + \item \textbf{OpenSource}: Any license in this list: \href{http://opensource.org/licenses}{http://opensource.org/licenses} + \item \textbf{Easy to find}: Ideally, the project should have + an own domain that contains the source code, the service + and documentation. But it might be enough to provide + an email address to a developer within the top of + of the source code of the delivered HTML document. + \end{itemize} + +\section{Significance} +For me as a Linux user, there no software that I can test and which +offers on-line, interactive math handwriting recognition. But the +need of such a software is there. + +But there are more reasons why this bachelor's thesis matters: +Projects like \LaTeX{}, Linux, Apache or FireFox have shown that +OpenSoure software can enrich the develpment in specific areas. The +\enquote{Browser Wars} might be the most famous result of an active +OpenSource community. Internet Explorer 6 had +a market share of over 80\% in 2003. Prequels of Firefox and the Mozilla +foundation already existed, but Firefox 1.0 was released not until +November 2004. After that, Firefox and other open browsers added many +features that Internet Explorer had to compete with, like tabbed browsing, +HTML4 standard conformance, support of the \texttt{} tag and +speed of HTML rendering and JavaScript execution.\footnote{\href{http://www.evolutionoftheweb.com/}{www.evolutionoftheweb.com} offers a graphical overview. Although supporting standards like HTML4 or CSS~2 is not done with one version, but rather an incremental process.} Some of these +questions are interesting for science such as many problems related +to layouts and just-in-time compilation (JIT). With OpenSource software +that makes it easy to find its source and offers good documentation, +researchers can simply try their ideas without being blocked by +having to try to access the source code. + +Additionally, such a project might give researchers more time to +concentrate on the tasks they really want to do rather than spending +hours by learning \LaTeX{}. + +\section{Time schedule} +\begin{itemize} + \item[70h] Literature research about on-line handwriting recognition + techniques and gamification. + \item[5h] Defining browsers and devices that should get supported + and required client side software like HTML5, CSS 3 + and ECMAScript (better known as JavaScript). Also, + required input methods like touchscreens and stylus + should be mentioned. + \item[20h] Writing use cases. This is includes writing example + formula that the user shoud type and the system should + be able to recognize; finding people with different + knowledge of \LaTeX{} and from different fields who + want to participate in user tests. + \item[60h] Implementing the core of the application: Handwriting + recognition of digits and symbols by using only + HTML, CSS and on the client side. This includes implementing + a way for the user to enter new symbols and to correct the + symbol that was suggested by the recognition system. + \item[20h] Introduce testers that already know \LaTeX{} to the + current system. At this point, the system does only do + symbol recognition. The testers should train it, + insert symbols like $a-z, A-Z, 0-9, \alpha-\omega, A-\Omega, \cdot, \circ, \dots$ + \item[10h] Get feedback by the users. This feedback will not be included + in the thesis, but the improvements will get documented. + \item[60h] Finding structures and ways how to enter them. Examples + of structures that can be nested are sums: + \begin{verbatim}\sum_{}^{} \end{verbatim} + Implement the recognition of those strucutres. + \item[30h] Observe \enquote{fresh} testers while they try to use + the system. + \item[70h] Improving the software to fix problems that were found + with user tests + \item[50h] Fix bugs, improve code quality and readability as well + as documentation. + \item[45h] Usability testing: Try Hallway testing. The results + of these tests get documented and will be part of the + bachelor's thesis. If possible, I would like + to let the testers use their own devices. + \item[10h] Mentioning open questions and ideas how they could be + analyzed with the service that was created. +\end{itemize} + +\section{Outline} +I have described in which steps I would like to write the software, +but almost all points include writing the bachelor's thesis document. +A first draft of the outline could be like this: + +\begin{enumerate} + \item Introduction + \item Definitions + \begin{enumerate} + \item Hardware: What is available and what is the distribution? + \item Software: What is available and what is the distribution? + \item Support of standards like HTML, CSS, ECMA-Script, Flash, Cookies, ... + \item Choice of hardware, software and standards that should get supported as well as the choice of Libraries and the required server-side software + \item Application to the domain of math recognition + \end{enumerate} + \item On-line handwriting techniques + \begin{enumerate} + \item Description of techniques in general + \item Application to the domain of math recognition + \end{enumerate} + \item Gamification techniques + \begin{enumerate} + \item Description of techniques in general + \item Application to the domain of math recognition in the web + \end{enumerate} + \item Software Project + \begin{enumerate} + \item Structure of the code + \item Availability of documentation + \item Availability of the service + \end{enumerate} + \item Summary + \begin{enumerate} + \item Future Work + \end{enumerate} +\end{enumerate} +\break + +\renewcommand\refname{Related Literature} +\nocite{*} +\bibliographystyle{itmalpha} +\bibliography{literatur} + +This literature list is only a list that seems to make sense to me +by now. As I proceed I might find more usefull sources for the different +topics. So I might add, but also remove elements from this list. +Especially for gamification I might read documents from +\href{http://gamification-research.org/}{gamification-research.org}. +\end{document} diff --git a/documents/bachelor-proposal-latex-writing-recognition/figures/daum-editor.png b/documents/bachelor-proposal-latex-writing-recognition/figures/daum-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..90499d121a543bbc6bde193a221ccffaae94b01d GIT binary patch literal 51575 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 z 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 mgNUFvjV1msE~MtW3~0=>OCIEV8%t;?B6 } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { namesleft #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " und andere." * } + { " und " * t * } + if$ + } + if$ + } + 't + if$ + 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 > + { " (Hrsg.)" * } + { " (Hrsg.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + 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$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Band" volume tie.or.space.connect + series empty$ + 'skip$ + { " der " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "Nr." number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " der " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition ".~Auf\penalty10000\discretionary{-}{}{\kern.03em}\allowhyphens lage" * } % changed by bless + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "S.~" pages n.dashify * } % changed by bless + { "S.~" pages * } % changed by bless + if$ + } + if$ +} + +FUNCTION {format.vol.num} +{ number empty$ + { volume empty$ + { "" } + { "Band" volume tie.or.space.connect } + if$ + } + { volume field.or.null + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + 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$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type % "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "{T}echnischer {B}ericht" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number 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$ " und andere" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " und andere" * } + { " und " * 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 " + } + { "Band" volume tie.or.space.connect + " der " * + } + 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} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num output + format.date "year" output.check + format.pages output + new.block + note output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + new.block + note output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + new.block + note output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + new.block + note output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Diplomarbeit" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + author empty$ % added by R.Bless + { format.editors output.nonnull } % added by R.Bless + { format.authors "author" output.check } % added by R.Bless + if$ + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + organization output + institution output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Dissertation" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + format.bvolume output + format.number.series output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output + new.block + } + if$ + format.bvolume output + format.number.series output + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + editor empty$ % added by R.Bless + { format.authors "author" output.check } % added by R.Bless + { format.editors output.nonnull } % added by R.Bless + if$ + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Januar"} +MACRO {feb} {"Februar"} +MACRO {mar} {"März"} +MACRO {apr} {"April"} +MACRO {may} {"Mai"} +MACRO {jun} {"Juni"} +MACRO {jul} {"Juli"} +MACRO {aug} {"August"} +MACRO {sep} {"September"} +MACRO {oct} {"Oktober"} +MACRO {nov} {"November"} +MACRO {dec} {"Dezember"} + +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 Trans\-actions 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 + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +INTEGERS { charsleft } % added by bless + +% the following funtion was modified to produce Labels of width 4 +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + #4 'charsleft := + numnames #1 > + { numnames #4 > + { #4 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { charsleft #0 > } + { charsleft namesleft > + { + nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + charsleft #1 - 'charsleft := + } + { s nameptr "{v{}}{l{}}" format.name$ + text.length$ #2 < + { s nameptr "{ll{}}" format.name$ #2 text.prefix$ *} + { s nameptr "{v{}}{l{}}" format.name$ *} + if$ + charsleft #2 - 'charsleft := + } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ + text.length$ #2 < + { s nameptr "{ll{}}" format.name$ #2 text.prefix$ *} + { s nameptr "{v{}}{l{}}" format.name$ *} + if$ + charsleft #2 - 'charsleft := + } + if$ + } + { + s nameptr "{l{}}" format.name$ * + charsleft #1 - 'charsleft := + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + text.length$ #2 < + { s #1 "{ll}" format.name$ #4 text.prefix$ } + { s #1 "{v{}}{ll}" format.name$ #4 text.prefix$ } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #4 substring$ } + { key #4 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #4 substring$ } + { key #4 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #4 substring$ } + { "The " #4 organization chop.word #4 text.prefix$ } + if$ + } + { key #4 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #4 substring$ } + { "The " #4 organization chop.word #4 text.prefix$ } + if$ + } + { key #4 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + type$ "techreport" = + type$ "misc" = + or + or + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +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 + { "und andere" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + 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} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + type$ "techreport" = + or + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\def\etalchar#1{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/documents/bachelor-proposal-latex-writing-recognition/literatur.bib b/documents/bachelor-proposal-latex-writing-recognition/literatur.bib new file mode 100644 index 0000000..8506551 --- /dev/null +++ b/documents/bachelor-proposal-latex-writing-recognition/literatur.bib @@ -0,0 +1,64 @@ +@inproceedings{conf/icdar/StoffelTR09, + added-at = {2009-10-13T00:00:00.000+0200}, + author = {Stoffel, Andreas and Tapia, Ernesto and Rojas, Raúl}, + biburl = {http://www.bibsonomy.org/bibtex/2e97b8b08492190cf461f7b3dfad48d40/dblp}, + booktitle = {ICDAR}, + crossref = {conf/icdar/2009}, + date = {2009-10-13}, + description = {dblp}, + ee = {http://dx.doi.org/10.1109/ICDAR.2009.122}, + interhash = {2e6bf9ca0cdbadf7d4bbb1c8c84a1a11}, + intrahash = {e97b8b08492190cf461f7b3dfad48d40}, + keywords = {dblp}, + pages = {1211-1215}, + publisher = {IEEE Computer Society}, + timestamp = {2009-10-13T00:00:00.000+0200}, + title = {Recognition of On-Line Handwritten Commutative Diagrams.}, + url = {http://dblp.uni-trier.de/db/conf/icdar/icdar2009.html#StoffelTR09}, + year = 2009 +} + +@proceedings{conf/icdar/2009, + title = {10th International Conference on Document Analysis and Recognition, + ICDAR 2009, Barcelona, Spain, 26-29 July 2009}, + booktitle = {ICDAR}, + publisher = {IEEE Computer Society}, + year = {2009}, + bibsource = {DBLP, http://dblp.uni-trier.de} + } + +@misc{bworld, + author = {Sebastian Deterding}, + title = {{Meaningful Play - Getting "Gamificaiton" Right}\\}, + howpublished = "\url{http://www.slideshare.net/dings/meaningful-play-getting-gamification-right}", + year = {2011}, + note = "[Online; accessed 10-January-2014]" +} + +@BOOK{zichermann, +AUTHOR = {Gabe Zichermann}, +TITLE = {Gamification by Design}, +PUBLISHER = {O'Reilly Media}, +YEAR = {2011}, +Volume = {}, +Series = {}, +Address = {}, +Edition = {}, +Month = {}, +Note = {}, +Key = {} +} + +@BOOK{impedovo, +AUTHOR = {Sebastiano Impedovo}, +TITLE = {Fundamentals in handwriting recognition}, +PUBLISHER = {Springer-Verlag}, +YEAR = {1994}, +Volume = {}, +Series = {}, +Address = {}, +Edition = {}, +Month = {}, +Note = {}, +Key = {} +} diff --git a/documents/bachelor-proposal-latex-writing-recognition/mystyle.sty b/documents/bachelor-proposal-latex-writing-recognition/mystyle.sty new file mode 100644 index 0000000..adbc040 --- /dev/null +++ b/documents/bachelor-proposal-latex-writing-recognition/mystyle.sty @@ -0,0 +1,65 @@ + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% conditional for xetex or luatex +\newif\ifxetexorluatex +\ifxetex + \xetexorluatextrue +\else + \ifluatex + \xetexorluatextrue + \else + \xetexorluatexfalse + \fi +\fi +% +\ifxetexorluatex% + \usepackage{fontspec} + \usepackage{libertine} % or use \setmainfont to choose any font on your system + \newfontfamily\quotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font +\else + \usepackage[utf8]{inputenc} + \usepackage[T1]{fontenc} + \usepackage{libertine} % or any other font package + \newcommand*\quotefont{\fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font +\fi + +\newcommand*\quotesize{60} % if quote size changes, need a way to make shifts relative +% Make commands for the quotes +\newcommand*{\openquote} + {\tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex] + \node (OQ) {\quotefont\fontsize{\quotesize}{\quotesize}\selectfont``};\kern0pt} + +\newcommand*{\closequote}[1] + {\tikz[remember picture,overlay,xshift=4ex,yshift={#1}] + \node (CQ) {\quotefont\fontsize{\quotesize}{\quotesize}\selectfont''};} + +% select a colour for the shading +\colorlet{shadecolor}{white} + +\newcommand*\shadedauthorformat{\emph} % define format for the author argument + +% Now a command to allow left, right and centre alignment of the author +\newcommand*\authoralign[1]{% + \if#1l + \def\authorfill{}\def\quotefill{\hfill} + \else + \if#1r + \def\authorfill{\hfill}\def\quotefill{} + \else + \if#1c + \gdef\authorfill{\hfill}\def\quotefill{\hfill} + \else\typeout{Invalid option} + \fi + \fi + \fi} +% wrap everything in its own environment which takes one argument (author) and one optional argument +% specifying the alignment [l, r or c] +% +\newenvironment{shadequote}[2][l]% +{\authoralign{#1} +\ifblank{#2} + {\def\shadequoteauthor{}\def\yshift{-2ex}\def\quotefill{\hfill}} + {\def\shadequoteauthor{\par\authorfill\shadedauthorformat{#2}}\def\yshift{2ex}} +\begin{snugshade}\begin{quote}\openquote} +{\shadequoteauthor\quotefill\closequote{\yshift}\end{quote}\end{snugshade}}