diff --git a/html/annotated.html b/annotated.html
similarity index 100%
rename from html/annotated.html
rename to annotated.html
diff --git a/html/annotated_dup.js b/annotated_dup.js
similarity index 100%
rename from html/annotated_dup.js
rename to annotated_dup.js
diff --git a/html/api_8h.html b/api_8h.html
similarity index 100%
rename from html/api_8h.html
rename to api_8h.html
diff --git a/html/api_8h.js b/api_8h.js
similarity index 100%
rename from html/api_8h.js
rename to api_8h.js
diff --git a/html/api_8h_source.html b/api_8h_source.html
similarity index 100%
rename from html/api_8h_source.html
rename to api_8h_source.html
diff --git a/html/apix_8h.html b/apix_8h.html
similarity index 100%
rename from html/apix_8h.html
rename to apix_8h.html
diff --git a/html/apix_8h_source.html b/apix_8h_source.html
similarity index 100%
rename from html/apix_8h_source.html
rename to apix_8h_source.html
diff --git a/html/assets_8h.html b/assets_8h.html
similarity index 100%
rename from html/assets_8h.html
rename to assets_8h.html
diff --git a/html/assets_8h.js b/assets_8h.js
similarity index 100%
rename from html/assets_8h.js
rename to assets_8h.js
diff --git a/html/assets_8h_source.html b/assets_8h_source.html
similarity index 100%
rename from html/assets_8h_source.html
rename to assets_8h_source.html
diff --git a/html/bc_s.png b/bc_s.png
similarity index 100%
rename from html/bc_s.png
rename to bc_s.png
diff --git a/html/bdwn.png b/bdwn.png
similarity index 100%
rename from html/bdwn.png
rename to bdwn.png
diff --git a/html/bug.html b/bug.html
similarity index 100%
rename from html/bug.html
rename to bug.html
diff --git a/html/classes.html b/classes.html
similarity index 100%
rename from html/classes.html
rename to classes.html
diff --git a/html/classrd_1_1Console-members.html b/classrd_1_1Console-members.html
similarity index 100%
rename from html/classrd_1_1Console-members.html
rename to classrd_1_1Console-members.html
diff --git a/html/classrd_1_1Console.html b/classrd_1_1Console.html
similarity index 100%
rename from html/classrd_1_1Console.html
rename to classrd_1_1Console.html
diff --git a/html/classrd_1_1Console.js b/classrd_1_1Console.js
similarity index 100%
rename from html/classrd_1_1Console.js
rename to classrd_1_1Console.js
diff --git a/html/classrd_1_1Image-members.html b/classrd_1_1Image-members.html
similarity index 100%
rename from html/classrd_1_1Image-members.html
rename to classrd_1_1Image-members.html
diff --git a/html/classrd_1_1Image.html b/classrd_1_1Image.html
similarity index 100%
rename from html/classrd_1_1Image.html
rename to classrd_1_1Image.html
diff --git a/html/classrd_1_1Image.js b/classrd_1_1Image.js
similarity index 100%
rename from html/classrd_1_1Image.js
rename to classrd_1_1Image.js
diff --git a/html/classrd_1_1Selector-members.html b/classrd_1_1Selector-members.html
similarity index 100%
rename from html/classrd_1_1Selector-members.html
rename to classrd_1_1Selector-members.html
diff --git a/html/classrd_1_1Selector.html b/classrd_1_1Selector.html
similarity index 100%
rename from html/classrd_1_1Selector.html
rename to classrd_1_1Selector.html
diff --git a/html/classrd_1_1Selector.js b/classrd_1_1Selector.js
similarity index 100%
rename from html/classrd_1_1Selector.js
rename to classrd_1_1Selector.js
diff --git a/html/closed.png b/closed.png
similarity index 100%
rename from html/closed.png
rename to closed.png
diff --git a/html/console.png b/console.png
similarity index 100%
rename from html/console.png
rename to console.png
diff --git a/html/console_8hpp.html b/console_8hpp.html
similarity index 100%
rename from html/console_8hpp.html
rename to console_8hpp.html
diff --git a/html/console_8hpp_source.html b/console_8hpp_source.html
similarity index 100%
rename from html/console_8hpp_source.html
rename to console_8hpp_source.html
diff --git a/html/core_8h.html b/core_8h.html
similarity index 100%
rename from html/core_8h.html
rename to core_8h.html
diff --git a/html/core_8h.js b/core_8h.js
similarity index 100%
rename from html/core_8h.js
rename to core_8h.js
diff --git a/html/core_8h_source.html b/core_8h_source.html
similarity index 100%
rename from html/core_8h_source.html
rename to core_8h_source.html
diff --git a/html/custom.css b/custom.css
similarity index 100%
rename from html/custom.css
rename to custom.css
diff --git a/html/dir_810e6677597a758262d47477e73b118d.html b/dir_810e6677597a758262d47477e73b118d.html
similarity index 100%
rename from html/dir_810e6677597a758262d47477e73b118d.html
rename to dir_810e6677597a758262d47477e73b118d.html
diff --git a/html/dir_810e6677597a758262d47477e73b118d.js b/dir_810e6677597a758262d47477e73b118d.js
similarity index 100%
rename from html/dir_810e6677597a758262d47477e73b118d.js
rename to dir_810e6677597a758262d47477e73b118d.js
diff --git a/html/dir_fe06972e53893249adce5a50c45e9385.html b/dir_fe06972e53893249adce5a50c45e9385.html
similarity index 100%
rename from html/dir_fe06972e53893249adce5a50c45e9385.html
rename to dir_fe06972e53893249adce5a50c45e9385.html
diff --git a/html/dir_fe06972e53893249adce5a50c45e9385.js b/dir_fe06972e53893249adce5a50c45e9385.js
similarity index 100%
rename from html/dir_fe06972e53893249adce5a50c45e9385.js
rename to dir_fe06972e53893249adce5a50c45e9385.js
diff --git a/html/doc.png b/doc.png
similarity index 100%
rename from html/doc.png
rename to doc.png
diff --git a/html/doxygen-awesome-darkmode-toggle.js b/doxygen-awesome-darkmode-toggle.js
similarity index 100%
rename from html/doxygen-awesome-darkmode-toggle.js
rename to doxygen-awesome-darkmode-toggle.js
diff --git a/html/doxygen-awesome-paragraph-link.js b/doxygen-awesome-paragraph-link.js
similarity index 100%
rename from html/doxygen-awesome-paragraph-link.js
rename to doxygen-awesome-paragraph-link.js
diff --git a/html/doxygen-awesome-sidebar-only-darkmode-toggle.css b/doxygen-awesome-sidebar-only-darkmode-toggle.css
similarity index 100%
rename from html/doxygen-awesome-sidebar-only-darkmode-toggle.css
rename to doxygen-awesome-sidebar-only-darkmode-toggle.css
diff --git a/html/doxygen-awesome-sidebar-only.css b/doxygen-awesome-sidebar-only.css
similarity index 100%
rename from html/doxygen-awesome-sidebar-only.css
rename to doxygen-awesome-sidebar-only.css
diff --git a/html/doxygen-awesome.css b/doxygen-awesome.css
similarity index 100%
rename from html/doxygen-awesome.css
rename to doxygen-awesome.css
diff --git a/html/doxygen.css b/doxygen.css
similarity index 100%
rename from html/doxygen.css
rename to doxygen.css
diff --git a/html/doxygen.png b/doxygen.png
similarity index 100%
rename from html/doxygen.png
rename to doxygen.png
diff --git a/html/dynsections.js b/dynsections.js
similarity index 100%
rename from html/dynsections.js
rename to dynsections.js
diff --git a/html/files.html b/files.html
similarity index 100%
rename from html/files.html
rename to files.html
diff --git a/html/files_dup.js b/files_dup.js
similarity index 100%
rename from html/files_dup.js
rename to files_dup.js
diff --git a/html/filesystem_8h.html b/filesystem_8h.html
similarity index 100%
rename from html/filesystem_8h.html
rename to filesystem_8h.html
diff --git a/html/filesystem_8h.js b/filesystem_8h.js
similarity index 100%
rename from html/filesystem_8h.js
rename to filesystem_8h.js
diff --git a/html/filesystem_8h_source.html b/filesystem_8h_source.html
similarity index 100%
rename from html/filesystem_8h_source.html
rename to filesystem_8h_source.html
diff --git a/html/folderclosed.png b/folderclosed.png
similarity index 100%
rename from html/folderclosed.png
rename to folderclosed.png
diff --git a/html/folderopen.png b/folderopen.png
similarity index 100%
rename from html/folderopen.png
rename to folderopen.png
diff --git a/html/functions.html b/functions.html
similarity index 100%
rename from html/functions.html
rename to functions.html
diff --git a/html/functions_func.html b/functions_func.html
similarity index 100%
rename from html/functions_func.html
rename to functions_func.html
diff --git a/html/globals.html b/globals.html
similarity index 100%
rename from html/globals.html
rename to globals.html
diff --git a/html/globals_func.html b/globals_func.html
similarity index 100%
rename from html/globals_func.html
rename to globals_func.html
diff --git a/html/globals_type.html b/globals_type.html
similarity index 100%
rename from html/globals_type.html
rename to globals_type.html
diff --git a/html/group__console.html b/group__console.html
similarity index 100%
rename from html/group__console.html
rename to group__console.html
diff --git a/html/group__console.js b/group__console.js
similarity index 100%
rename from html/group__console.js
rename to group__console.js
diff --git a/html/group__core.html b/group__core.html
similarity index 100%
rename from html/group__core.html
rename to group__core.html
diff --git a/html/group__core.js b/group__core.js
similarity index 100%
rename from html/group__core.js
rename to group__core.js
diff --git a/html/group__image.html b/group__image.html
similarity index 100%
rename from html/group__image.html
rename to group__image.html
diff --git a/html/group__image.js b/group__image.js
similarity index 100%
rename from html/group__image.js
rename to group__image.js
diff --git a/html/group__selector.html b/group__selector.html
similarity index 100%
rename from html/group__selector.html
rename to group__selector.html
diff --git a/html/group__selector.js b/group__selector.js
similarity index 100%
rename from html/group__selector.js
rename to group__selector.js
diff --git a/html/image.png b/image.png
similarity index 100%
rename from html/image.png
rename to image.png
diff --git a/html/image_8hpp.html b/image_8hpp.html
similarity index 100%
rename from html/image_8hpp.html
rename to image_8hpp.html
diff --git a/html/image_8hpp_source.html b/image_8hpp_source.html
similarity index 100%
rename from html/image_8hpp_source.html
rename to image_8hpp_source.html
diff --git a/html/index.html b/index.html
similarity index 100%
rename from html/index.html
rename to index.html
diff --git a/html/installing.html b/installing.html
similarity index 100%
rename from html/installing.html
rename to installing.html
diff --git a/html/jquery.js b/jquery.js
similarity index 100%
rename from html/jquery.js
rename to jquery.js
diff --git a/latex/Makefile b/latex/Makefile
deleted file mode 100644
index 877c9cc..0000000
--- a/latex/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-LATEX_CMD=pdflatex
-
-all: refman.pdf
-
-pdf: refman.pdf
-
-refman.pdf: clean refman.tex
- $(LATEX_CMD) refman
- makeindex refman.idx
- $(LATEX_CMD) refman
- latex_count=8 ; \
- while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
- do \
- echo "Rerunning latex...." ;\
- $(LATEX_CMD) refman ;\
- latex_count=`expr $$latex_count - 1` ;\
- done
- makeindex refman.idx
- $(LATEX_CMD) refman
-
-
-clean:
- rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/latex/annotated.tex b/latex/annotated.tex
deleted file mode 100644
index d7ea914..0000000
--- a/latex/annotated.tex
+++ /dev/null
@@ -1,7 +0,0 @@
-\doxysection{Class List}
-Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
-\item\contentsline{section}{\mbox{\hyperlink{classrd_1_1Console}{rd\+::\+Console}} \\*\mbox{\hyperlink{classrd_1_1Console}{Console}} class }{\pageref{classrd_1_1Console}}{}
-\item\contentsline{section}{\mbox{\hyperlink{classrd_1_1Image}{rd\+::\+Image}} \\*\mbox{\hyperlink{classrd_1_1Image}{Image}} class }{\pageref{classrd_1_1Image}}{}
-\item\contentsline{section}{\mbox{\hyperlink{structrd__view}{rd\+\_\+view}} \\*Robodash view structure }{\pageref{structrd__view}}{}
-\item\contentsline{section}{\mbox{\hyperlink{classrd_1_1Selector}{rd\+::\+Selector}} \\*\mbox{\hyperlink{classrd_1_1Selector}{Selector}} class }{\pageref{classrd_1_1Selector}}{}
-\end{DoxyCompactList}
diff --git a/latex/api_8h.tex b/latex/api_8h.tex
deleted file mode 100644
index cd73abf..0000000
--- a/latex/api_8h.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-\hypertarget{api_8h}{}\doxysection{api.\+h File Reference}
-\label{api_8h}\index{api.h@{api.h}}
-
-
-A\+PI entrypoint for robodash.
-
-
-{\ttfamily \#include \char`\"{}liblvgl/lvgl.\+h\char`\"{}}\newline
-{\ttfamily \#include \char`\"{}core.\+h\char`\"{}}\newline
-\doxysubsection*{Macros}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{api_8h_a87ce5b4a0b3d2ebea41e7cc46880f74f}\label{api_8h_a87ce5b4a0b3d2ebea41e7cc46880f74f}}
-\#define {\bfseries R\+D\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+A\+J\+OR}~2
-\item
-\mbox{\Hypertarget{api_8h_a410261c76ef1d1a3c3205c9daadbc777}\label{api_8h_a410261c76ef1d1a3c3205c9daadbc777}}
-\#define {\bfseries R\+D\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+N\+OR}~0
-\item
-\mbox{\Hypertarget{api_8h_a4547edf49acea265ba61c2c615da23be}\label{api_8h_a4547edf49acea265ba61c2c615da23be}}
-\#define {\bfseries R\+D\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+P\+A\+T\+CH}~0
-\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-A\+PI entrypoint for robodash.
-
-Includes all necessary functions to use robodash.
\ No newline at end of file
diff --git a/latex/apix_8h.tex b/latex/apix_8h.tex
deleted file mode 100644
index dacd611..0000000
--- a/latex/apix_8h.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-\hypertarget{apix_8h}{}\doxysection{apix.\+h File Reference}
-\label{apix_8h}\index{apix.h@{apix.h}}
-{\ttfamily \#include \char`\"{}api.\+h\char`\"{}}\newline
-{\ttfamily \#include \char`\"{}impl/assets.\+h\char`\"{}}\newline
-{\ttfamily \#include \char`\"{}impl/filesystem.\+h\char`\"{}}\newline
-{\ttfamily \#include \char`\"{}impl/styles.\+h\char`\"{}}\newline
diff --git a/latex/assets_8h.tex b/latex/assets_8h.tex
deleted file mode 100644
index 537790a..0000000
--- a/latex/assets_8h.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-\hypertarget{assets_8h}{}\doxysection{impl/assets.h File Reference}
-\label{assets_8h}\index{impl/assets.h@{impl/assets.h}}
-
-
-Images and fonts used by robodash.
-
-
-{\ttfamily \#include \char`\"{}robodash/apix.\+h\char`\"{}}\newline
-\doxysubsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{assets_8h_a7bc262e9d006b87f86a8f6c2d95a3bfc}\label{assets_8h_a7bc262e9d006b87f86a8f6c2d95a3bfc}}
-lv\+\_\+font\+\_\+t {\bfseries source\+\_\+code\+\_\+pro\+\_\+16}
-\item
-\mbox{\Hypertarget{assets_8h_ac09fd045a57ccd1efc6d2191e00cba74}\label{assets_8h_ac09fd045a57ccd1efc6d2191e00cba74}}
-lv\+\_\+font\+\_\+t {\bfseries montserrat\+\_\+12}
-\item
-\mbox{\Hypertarget{assets_8h_aa0f8f1e7a9a268dd68498a6471e90a72}\label{assets_8h_aa0f8f1e7a9a268dd68498a6471e90a72}}
-lv\+\_\+font\+\_\+t {\bfseries montserrat\+\_\+16}
-\item
-\mbox{\Hypertarget{assets_8h_a00b1419eae7c8da7faf87ff6b92978dc}\label{assets_8h_a00b1419eae7c8da7faf87ff6b92978dc}}
-lv\+\_\+img\+\_\+t {\bfseries stack}
-\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Images and fonts used by robodash.
-
diff --git a/latex/bug.tex b/latex/bug.tex
deleted file mode 100644
index a706491..0000000
--- a/latex/bug.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-
-\begin{DoxyRefList}
-\item[Module \mbox{\hyperlink{group__image}{image}} ]\label{bug__bug000001}%
-\Hypertarget{bug__bug000001}%
-The sidebar animations are very choppy when viewing an image. A fix for this will be implemented for release.
-\end{DoxyRefList}
\ No newline at end of file
diff --git a/latex/classrd_1_1Console.tex b/latex/classrd_1_1Console.tex
deleted file mode 100644
index 477a123..0000000
--- a/latex/classrd_1_1Console.tex
+++ /dev/null
@@ -1,34 +0,0 @@
-\hypertarget{classrd_1_1Console}{}\doxysection{rd\+::Console Class Reference}
-\label{classrd_1_1Console}\index{rd::Console@{rd::Console}}
-
-
-\mbox{\hyperlink{classrd_1_1Console}{Console}} class.
-
-
-
-
-{\ttfamily \#include $<$console.\+hpp$>$}
-
-\doxysubsection*{Console Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__console_ga8caebc6c99af499b1ddd5bd40581eba1}{Console}} (std\+::string name=\char`\"{}Console\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Console}{Console}}. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_ga5daa22a4ed2cc2a4d02c99c1324d6e63}{clear}} ()
-\begin{DoxyCompactList}\small\item\em Clear all console lines. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_ga901c1b576599ae46096c7b4d90e757dc}{print}} (std\+::string str)
-\begin{DoxyCompactList}\small\item\em Print to the console. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}{println}} (std\+::string str)
-\begin{DoxyCompactList}\small\item\em Print to the console with a newline. \end{DoxyCompactList}\item
-{\footnotesize template$<$typename... Params$>$ }\\void \mbox{\hyperlink{group__console_gac6d23173b88223b1f5ab365192e8ef89}{printf}} (std\+::string fmt, Params... args)
-\begin{DoxyCompactList}\small\item\em Print a formatted string to the console. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_gabe06174e217c0391d488168839073581}{focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-\mbox{\hyperlink{classrd_1_1Console}{Console}} class.
-
-The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-views/\mbox{\hyperlink{console_8hpp}{console.\+hpp}}\end{DoxyCompactItemize}
diff --git a/latex/classrd_1_1Image.tex b/latex/classrd_1_1Image.tex
deleted file mode 100644
index d9dcb3c..0000000
--- a/latex/classrd_1_1Image.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-\hypertarget{classrd_1_1Image}{}\doxysection{rd\+::Image Class Reference}
-\label{classrd_1_1Image}\index{rd::Image@{rd::Image}}
-
-
-\mbox{\hyperlink{classrd_1_1Image}{Image}} class.
-
-
-
-
-{\ttfamily \#include $<$image.\+hpp$>$}
-
-\doxysubsection*{Image Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__image_ga4f1a26e44ab7ea69641e04946cf3f6bd}{Image}} (std\+::string path, std\+::string name=\char`\"{}Image\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}. \end{DoxyCompactList}\item
-\mbox{\hyperlink{group__image_gab91ac9ff8889a5a8b52887c507ebbba2}{Image}} (lv\+\_\+img\+\_\+dsc\+\_\+t image\+\_\+dsc, std\+::string name=\char`\"{}Image\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__image_ga317205da14ca86b86f2d1bd1bb310101}{focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-\mbox{\hyperlink{classrd_1_1Image}{Image}} class.
-
-The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-views/\mbox{\hyperlink{image_8hpp}{image.\+hpp}}\end{DoxyCompactItemize}
diff --git a/latex/classrd_1_1Selector.tex b/latex/classrd_1_1Selector.tex
deleted file mode 100644
index 57649f8..0000000
--- a/latex/classrd_1_1Selector.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-\hypertarget{classrd_1_1Selector}{}\doxysection{rd\+::Selector Class Reference}
-\label{classrd_1_1Selector}\index{rd::Selector@{rd::Selector}}
-
-
-\mbox{\hyperlink{classrd_1_1Selector}{Selector}} class.
-
-
-
-
-{\ttfamily \#include $<$selector.\+hpp$>$}
-
-\doxysubsection*{Public Types}
-\begin{Indent}\textbf{ Selector Typedefs}\par
-\begin{DoxyCompactItemize}
-\item
-typedef std\+::function$<$ void()$>$ {\bfseries routine\+\_\+action\+\_\+t}
-\item
-typedef std\+::pair$<$ std\+::string, routine\+\_\+action\+\_\+t $>$ {\bfseries routine\+\_\+t}
-\end{DoxyCompactItemize}
-\end{Indent}
-\doxysubsection*{Public Member Functions}
-\begin{Indent}\textbf{ Selector Functions}\par
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__selector_gac4d8a51008aa3f6bcc215ebbc7a18064}{Selector}} ()
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Selector}{Selector}}. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__selector_ga42f5b1858122618d6bc02d2fbf745e3a}{add\+\_\+autons}} (std\+::vector$<$ routine\+\_\+t $>$ autons)
-\begin{DoxyCompactList}\small\item\em Initialize autonomous manager. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__selector_ga5e7eda63d566b56e6ae5cd0db643b2c0}{do\+\_\+auton}} ()
-\begin{DoxyCompactList}\small\item\em Run selected auton. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__selector_ga8f824c347f67daf37463314b2cd5303c}{focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\end{Indent}
-
-
-\doxysubsection{Detailed Description}
-\mbox{\hyperlink{classrd_1_1Selector}{Selector}} class.
-
-The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-views/\mbox{\hyperlink{selector_8hpp}{selector.\+hpp}}\end{DoxyCompactItemize}
diff --git a/latex/console_8hpp.tex b/latex/console_8hpp.tex
deleted file mode 100644
index 0007068..0000000
--- a/latex/console_8hpp.tex
+++ /dev/null
@@ -1,19 +0,0 @@
-\hypertarget{console_8hpp}{}\doxysection{views/console.hpp File Reference}
-\label{console_8hpp}\index{views/console.hpp@{views/console.hpp}}
-
-
-Robodash Console.
-
-
-{\ttfamily \#include \char`\"{}robodash/api.\+h\char`\"{}}\newline
-{\ttfamily \#include $<$string$>$}\newline
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Console}{rd\+::\+Console}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Console}{Console}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Robodash Console.
-
diff --git a/latex/core_8h.tex b/latex/core_8h.tex
deleted file mode 100644
index fb4a287..0000000
--- a/latex/core_8h.tex
+++ /dev/null
@@ -1,34 +0,0 @@
-\hypertarget{core_8h}{}\doxysection{core.\+h File Reference}
-\label{core_8h}\index{core.h@{core.h}}
-
-
-Robodash core header.
-
-
-{\ttfamily \#include \char`\"{}liblvgl/lvgl.\+h\char`\"{}}\newline
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-struct \mbox{\hyperlink{structrd__view}{rd\+\_\+view}}
-\begin{DoxyCompactList}\small\item\em Robodash view structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Typedefs}
-\begin{DoxyCompactItemize}
-\item
-typedef struct \mbox{\hyperlink{structrd__view}{rd\+\_\+view}} \mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}}
-\begin{DoxyCompactList}\small\item\em Robodash view structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$ \mbox{\hyperlink{group__core_gab0b848e6484ca68e2337b687ce74e753}{rd\+\_\+view\+\_\+create}} (const char $\ast$name)
-\begin{DoxyCompactList}\small\item\em Create a view. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__core_ga06317955ba1241ad37d3fbd50ae75254}{rd\+\_\+view\+\_\+focus}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Set a view to the currently active view. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__core_ga19bc42fd864f9c14e4710b9ec2dd5631}{rd\+\_\+view\+\_\+del}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Delete a view. \end{DoxyCompactList}\item
-lv\+\_\+obj\+\_\+t $\ast$ \mbox{\hyperlink{group__core_ga933ac4a5b4e9e14e3aefecff5066ec35}{rd\+\_\+view\+\_\+obj}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Get the view\textquotesingle{}s lvgl object. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Robodash core header.
-
diff --git a/latex/doxygen.sty b/latex/doxygen.sty
deleted file mode 100644
index 78a5254..0000000
--- a/latex/doxygen.sty
+++ /dev/null
@@ -1,576 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{doxygen}
-
-% Packages used by this style file
-\RequirePackage{alltt}
-%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
-\RequirePackage{calc}
-\RequirePackage{float}
-%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
-\RequirePackage{verbatim}
-\RequirePackage[table]{xcolor}
-\RequirePackage{longtable_doxygen}
-\RequirePackage{tabu_doxygen}
-\RequirePackage{fancyvrb}
-\RequirePackage{tabularx}
-\RequirePackage{multirow}
-\RequirePackage{hanging}
-\RequirePackage{ifpdf}
-\RequirePackage{adjustbox}
-\RequirePackage{amssymb}
-\RequirePackage{stackengine}
-\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
-
-%---------- Internal commands used in this style file ----------------
-
-\newcommand{\ensurespace}[1]{%
- \begingroup%
- \setlength{\dimen@}{#1}%
- \vskip\z@\@plus\dimen@%
- \penalty -100\vskip\z@\@plus -\dimen@%
- \vskip\dimen@%
- \penalty 9999%
- \vskip -\dimen@%
- \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
- \endgroup%
-}
-
-\newcommand{\DoxyHorRuler}[1]{%
- \setlength{\parskip}{0ex plus 0ex minus 0ex}%
- \ifthenelse{#1=0}%
- {%
- \hrule%
- }%
- {%
- \hrulefilll%
- }%
-}
-\newcommand{\DoxyLabelFont}{}
-\newcommand{\entrylabel}[1]{%
- {%
- \parbox[b]{\labelwidth-4pt}{%
- \makebox[0pt][l]{\DoxyLabelFont#1}%
- \vspace{1.5\baselineskip}%
- }%
- }%
-}
-
-\newenvironment{DoxyDesc}[1]{%
- \ensurespace{4\baselineskip}%
- \begin{list}{}{%
- \settowidth{\labelwidth}{20pt}%
- %\setlength{\parsep}{0pt}%
- \setlength{\itemsep}{0pt}%
- \setlength{\leftmargin}{\labelwidth+\labelsep}%
- \renewcommand{\makelabel}{\entrylabel}%
- }%
- \item[#1]%
-}{%
- \end{list}%
-}
-
-\newsavebox{\xrefbox}
-\newlength{\xreflength}
-\newcommand{\xreflabel}[1]{%
- \sbox{\xrefbox}{#1}%
- \setlength{\xreflength}{\wd\xrefbox}%
- \ifthenelse{\xreflength>\labelwidth}{%
- \begin{minipage}{\textwidth}%
- \setlength{\parindent}{0pt}%
- \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
- \end{minipage}%
- }{%
- \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
- }%
-}
-
-%---------- Commands used by doxygen LaTeX output generator ----------
-
-% Used by
...
-\newenvironment{DoxyPre}{%
- \small%
- \begin{alltt}%
-}{%
- \end{alltt}%
- \normalsize%
-}
-% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
-\newlength{\CodeWidthChar}
-\newlength{\CodeHeightChar}
-\settowidth{\CodeWidthChar}{?}
-\settoheight{\CodeHeightChar}{?}
-% Necessary for hanging indent
-\newlength{\DoxyCodeWidth}
-
-\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
-
-\newcommand\NiceSpace{%
- \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
-}
-
-% Used by @code ... @endcode
-\newenvironment{DoxyCode}[1]{%
- \par%
- \scriptsize%
- \normalfont\ttfamily%
- \rightskip0pt plus 1fil%
- \settowidth{\DoxyCodeWidth}{000000}%
- \settowidth{\CodeWidthChar}{?}%
- \settoheight{\CodeHeightChar}{?}%
- \setlength{\parskip}{0ex plus 0ex minus 0ex}%
- \ifthenelse{\equal{#1}{0}}
- {
- {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
- }
- {
- {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
- }
-
-}{%
- \normalfont%
- \normalsize%
- \settowidth{\CodeWidthChar}{?}%
- \settoheight{\CodeHeightChar}{?}%
-}
-
-% Redefining not defined characters, i.e. "Replacement Character" in tex output.
-\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
- \textcolor{white}{\sffamily\bfseries\small ?}}{%
- \rotatebox{45}{$\blacksquare$}}}}
-
-% Used by @example, @include, @includelineno and @dontinclude
-\newenvironment{DoxyCodeInclude}[1]{%
- \DoxyCode{#1}%
-}{%
- \endDoxyCode%
-}
-
-% Used by @verbatim ... @endverbatim
-\newenvironment{DoxyVerb}{%
- \footnotesize%
- \verbatim%
-}{%
- \endverbatim%
- \normalsize%
-}
-
-% Used by @verbinclude
-\newenvironment{DoxyVerbInclude}{%
- \DoxyVerb%
-}{%
- \endDoxyVerb%
-}
-
-% Used by numbered lists (using '-#' or ...
)
-\newenvironment{DoxyEnumerate}{%
- \enumerate%
-}{%
- \endenumerate%
-}
-
-% Used by bullet lists (using '-', @li, @arg, or )
-\newenvironment{DoxyItemize}{%
- \itemize%
-}{%
- \enditemize%
-}
-
-% Used by description lists (using ...
)
-\newenvironment{DoxyDescription}{%
- \description%
-}{%
- \enddescription%
-}
-
-% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
-% (only if caption is specified)
-\newenvironment{DoxyImage}{%
- \begin{figure}[H]%
- \begin{center}%
-}{%
- \end{center}%
- \end{figure}%
-}
-
-% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
-% (only if no caption is specified)
-\newenvironment{DoxyImageNoCaption}{%
- \begin{center}%
-}{%
- \end{center}%
-}
-
-% Used by @image
-% (only if inline is specified)
-\newenvironment{DoxyInlineImage}{%
-}{%
-}
-
-% Used by @attention
-\newenvironment{DoxyAttention}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @author and @authors
-\newenvironment{DoxyAuthor}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @date
-\newenvironment{DoxyDate}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @invariant
-\newenvironment{DoxyInvariant}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @note
-\newenvironment{DoxyNote}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @post
-\newenvironment{DoxyPostcond}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @pre
-\newenvironment{DoxyPrecond}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @copyright
-\newenvironment{DoxyCopyright}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @remark
-\newenvironment{DoxyRemark}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @return and @returns
-\newenvironment{DoxyReturn}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @since
-\newenvironment{DoxySince}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @see
-\newenvironment{DoxySeeAlso}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @version
-\newenvironment{DoxyVersion}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @warning
-\newenvironment{DoxyWarning}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by @internal
-\newenvironment{DoxyInternal}[1]{%
- \paragraph*{#1}%
-}{%
-}
-
-% Used by @par and @paragraph
-\newenvironment{DoxyParagraph}[1]{%
- \begin{DoxyDesc}{#1}%
-}{%
- \end{DoxyDesc}%
-}
-
-% Used by parameter lists
-\newenvironment{DoxyParams}[2][]{%
- \tabulinesep=1mm%
- \par%
- \ifthenelse{\equal{#1}{}}%
- {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
- {\ifthenelse{\equal{#1}{1}}%
- {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
- {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
- }
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used for fields of simple structs
-\newenvironment{DoxyFields}[1]{%
- \tabulinesep=1mm%
- \par%
- \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
- \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used for fields simple class style enums
-\newenvironment{DoxyEnumFields}[1]{%
- \tabulinesep=1mm%
- \par%
- \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used for parameters within a detailed function description
-\newenvironment{DoxyParamCaption}{%
- \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
-}{%
-}
-
-% Used by return value lists
-\newenvironment{DoxyRetVals}[1]{%
- \tabulinesep=1mm%
- \par%
- \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used by exception lists
-\newenvironment{DoxyExceptions}[1]{%
- \tabulinesep=1mm%
- \par%
- \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used by template parameter lists
-\newenvironment{DoxyTemplParams}[1]{%
- \tabulinesep=1mm%
- \par%
- \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endfirsthead%
- \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
- \hline%
- \endhead%
-}{%
- \end{longtabu*}%
- \vspace{6pt}%
-}
-
-% Used for member lists
-\newenvironment{DoxyCompactItemize}{%
- \begin{itemize}%
- \setlength{\itemsep}{-3pt}%
- \setlength{\parsep}{0pt}%
- \setlength{\topsep}{0pt}%
- \setlength{\partopsep}{0pt}%
-}{%
- \end{itemize}%
-}
-
-% Used for member descriptions
-\newenvironment{DoxyCompactList}{%
- \begin{list}{}{%
- \setlength{\leftmargin}{0.5cm}%
- \setlength{\itemsep}{0pt}%
- \setlength{\parsep}{0pt}%
- \setlength{\topsep}{0pt}%
- \renewcommand{\makelabel}{\hfill}%
- }%
-}{%
- \end{list}%
-}
-
-% Used for reference lists (@bug, @deprecated, @todo, etc.)
-\newenvironment{DoxyRefList}{%
- \begin{list}{}{%
- \setlength{\labelwidth}{10pt}%
- \setlength{\leftmargin}{\labelwidth}%
- \addtolength{\leftmargin}{\labelsep}%
- \renewcommand{\makelabel}{\xreflabel}%
- }%
-}{%
- \end{list}%
-}
-
-% Used by @bug, @deprecated, @todo, etc.
-\newenvironment{DoxyRefDesc}[1]{%
- \begin{list}{}{%
- \renewcommand\makelabel[1]{\textbf{##1}}%
- \settowidth\labelwidth{\makelabel{#1}}%
- \setlength\leftmargin{\labelwidth+\labelsep}%
- }%
-}{%
- \end{list}%
-}
-
-% Used by parameter lists and simple sections
-\newenvironment{Desc}
-{\begin{list}{}{%
- \settowidth{\labelwidth}{20pt}%
- \setlength{\parsep}{0pt}%
- \setlength{\itemsep}{0pt}%
- \setlength{\leftmargin}{\labelwidth+\labelsep}%
- \renewcommand{\makelabel}{\entrylabel}%
- }
-}{%
- \end{list}%
-}
-
-% Used by tables
-\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
-\newenvironment{TabularC}[1]%
-{\tabulinesep=1mm
-\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
-{\end{longtabu*}\par}%
-
-\newenvironment{TabularNC}[1]%
-{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
-{\end{tabu}\par}%
-
-% Used for member group headers
-\newenvironment{Indent}{%
- \begin{list}{}{%
- \setlength{\leftmargin}{0.5cm}%
- }%
- \item[]\ignorespaces%
-}{%
- \unskip%
- \end{list}%
-}
-
-% Used when hyperlinks are turned off
-\newcommand{\doxyref}[3]{%
- \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
-}
-
-% Used to link to a table when hyperlinks are turned on
-\newcommand{\doxytablelink}[2]{%
- \ref{#1}%
-}
-
-% Used to link to a table when hyperlinks are turned off
-\newcommand{\doxytableref}[3]{%
- \ref{#3}%
-}
-
-% Used by @addindex
-\newcommand{\lcurly}{\{}
-\newcommand{\rcurly}{\}}
-
-% Colors used for syntax highlighting
-\definecolor{comment}{rgb}{0.5,0.0,0.0}
-\definecolor{keyword}{rgb}{0.0,0.5,0.0}
-\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
-\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
-\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
-\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
-\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
-\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
-\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
-\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
-\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
-
-% Color used for table heading
-\newcommand{\tableheadbgcolor}{lightgray}%
-
-% Version of hypertarget with correct landing location
-\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
-
-% possibility to have sections etc. be within the margins
-% unfortunately had to copy part of book.cls and add \raggedright
-\makeatletter
-\newcommand\doxysection{\@startsection {section}{1}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\raggedright\normalfont\Large\bfseries}}
-\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\raggedright\normalfont\large\bfseries}}
-\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\raggedright\normalfont\normalsize\bfseries}}
-\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
- {3.25ex \@plus1ex \@minus.2ex}%
- {-1em}%
- {\raggedright\normalfont\normalsize\bfseries}}
-\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
- {3.25ex \@plus1ex \@minus .2ex}%
- {-1em}%
- {\raggedright\normalfont\normalsize\bfseries}}
-\makeatother
-% Define caption that is also suitable in a table
-\makeatletter
-\def\doxyfigcaption{%
-\refstepcounter{figure}%
-\@dblarg{\@caption{figure}}}
-\makeatother
diff --git a/latex/files.tex b/latex/files.tex
deleted file mode 100644
index aa08ce3..0000000
--- a/latex/files.tex
+++ /dev/null
@@ -1,12 +0,0 @@
-\doxysection{File List}
-Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
-\item\contentsline{section}{\mbox{\hyperlink{api_8h}{api.\+h}} \\*A\+PI entrypoint for robodash }{\pageref{api_8h}}{}
-\item\contentsline{section}{\mbox{\hyperlink{apix_8h}{apix.\+h}} }{\pageref{apix_8h}}{}
-\item\contentsline{section}{\mbox{\hyperlink{core_8h}{core.\+h}} \\*Robodash core header }{\pageref{core_8h}}{}
-\item\contentsline{section}{impl/\mbox{\hyperlink{assets_8h}{assets.\+h}} \\*Images and fonts used by robodash }{\pageref{assets_8h}}{}
-\item\contentsline{section}{impl/\mbox{\hyperlink{filesystem_8h}{filesystem.\+h}} \\*L\+V\+GL filesystem driver for images }{\pageref{filesystem_8h}}{}
-\item\contentsline{section}{impl/\mbox{\hyperlink{styles_8h}{styles.\+h}} \\*Styles used by robodash }{\pageref{styles_8h}}{}
-\item\contentsline{section}{views/\mbox{\hyperlink{console_8hpp}{console.\+hpp}} \\*Robodash Console }{\pageref{console_8hpp}}{}
-\item\contentsline{section}{views/\mbox{\hyperlink{image_8hpp}{image.\+hpp}} \\*Robodash Image }{\pageref{image_8hpp}}{}
-\item\contentsline{section}{views/\mbox{\hyperlink{selector_8hpp}{selector.\+hpp}} \\*Robodash Selector }{\pageref{selector_8hpp}}{}
-\end{DoxyCompactList}
diff --git a/latex/filesystem_8h.tex b/latex/filesystem_8h.tex
deleted file mode 100644
index 8686f92..0000000
--- a/latex/filesystem_8h.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-\hypertarget{filesystem_8h}{}\doxysection{impl/filesystem.h File Reference}
-\label{filesystem_8h}\index{impl/filesystem.h@{impl/filesystem.h}}
-
-
-L\+V\+GL filesystem driver for images.
-
-
-\doxysubsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{filesystem_8h_afe6023ef8e69cbafdfb14637cdd87e71}\label{filesystem_8h_afe6023ef8e69cbafdfb14637cdd87e71}}
-void {\bfseries \+\_\+init\+\_\+fs} ()
-\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-L\+V\+GL filesystem driver for images.
-
diff --git a/latex/group__console.tex b/latex/group__console.tex
deleted file mode 100644
index ee229de..0000000
--- a/latex/group__console.tex
+++ /dev/null
@@ -1,112 +0,0 @@
-\hypertarget{group__console}{}\doxysection{Console}
-\label{group__console}\index{Console@{Console}}
-
-
-A console for debugging.
-
-
-\doxysubsection*{Files}
-\begin{DoxyCompactItemize}
-\item
-file \mbox{\hyperlink{console_8hpp}{console.\+hpp}}
-\begin{DoxyCompactList}\small\item\em Robodash Console. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Console}{rd\+::\+Console}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Console}{Console}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Console Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__console_ga8caebc6c99af499b1ddd5bd40581eba1}{rd\+::\+Console\+::\+Console}} (std\+::string name=\char`\"{}Console\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Console}{Console}}. \end{DoxyCompactList}\item
-\mbox{\Hypertarget{group__console_ga5daa22a4ed2cc2a4d02c99c1324d6e63}\label{group__console_ga5daa22a4ed2cc2a4d02c99c1324d6e63}}
-void \mbox{\hyperlink{group__console_ga5daa22a4ed2cc2a4d02c99c1324d6e63}{rd\+::\+Console\+::clear}} ()
-\begin{DoxyCompactList}\small\item\em Clear all console lines. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_ga901c1b576599ae46096c7b4d90e757dc}{rd\+::\+Console\+::print}} (std\+::string str)
-\begin{DoxyCompactList}\small\item\em Print to the console. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}{rd\+::\+Console\+::println}} (std\+::string str)
-\begin{DoxyCompactList}\small\item\em Print to the console with a newline. \end{DoxyCompactList}\item
-{\footnotesize template$<$typename... Params$>$ }\\void \mbox{\hyperlink{group__console_gac6d23173b88223b1f5ab365192e8ef89}{rd\+::\+Console\+::printf}} (std\+::string fmt, Params... args)
-\begin{DoxyCompactList}\small\item\em Print a formatted string to the console. \end{DoxyCompactList}\item
-\mbox{\Hypertarget{group__console_gabe06174e217c0391d488168839073581}\label{group__console_gabe06174e217c0391d488168839073581}}
-void \mbox{\hyperlink{group__console_gabe06174e217c0391d488168839073581}{rd\+::\+Console\+::focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-A console for debugging.
-
-
-
-A G\+UI console for debugging. Emulates a standard console output.
-
-\doxysubsection{Function Documentation}
-\mbox{\Hypertarget{group__console_ga8caebc6c99af499b1ddd5bd40581eba1}\label{group__console_ga8caebc6c99af499b1ddd5bd40581eba1}}
-\index{Console@{Console}!Console@{Console}}
-\index{Console@{Console}!Console@{Console}}
-\doxysubsubsection{\texorpdfstring{Console()}{Console()}}
-{\footnotesize\ttfamily rd\+::\+Console\+::\+Console (\begin{DoxyParamCaption}\item[{std\+::string}]{name = {\ttfamily \char`\"{}Console\char`\"{}} }\end{DoxyParamCaption})}
-
-
-
-Create a new \mbox{\hyperlink{classrd_1_1Console}{Console}}.
-
-
-\begin{DoxyParams}{Parameters}
-{\em name} & Name to display on screen \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__console_ga901c1b576599ae46096c7b4d90e757dc}\label{group__console_ga901c1b576599ae46096c7b4d90e757dc}}
-\index{Console@{Console}!print@{print}}
-\index{print@{print}!Console@{Console}}
-\doxysubsubsection{\texorpdfstring{print()}{print()}}
-{\footnotesize\ttfamily void rd\+::\+Console\+::print (\begin{DoxyParamCaption}\item[{std\+::string}]{str }\end{DoxyParamCaption})}
-
-
-
-Print to the console.
-
-
-\begin{DoxyParams}{Parameters}
-{\em str} & String to print to console \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__console_gac6d23173b88223b1f5ab365192e8ef89}\label{group__console_gac6d23173b88223b1f5ab365192e8ef89}}
-\index{Console@{Console}!printf@{printf}}
-\index{printf@{printf}!Console@{Console}}
-\doxysubsubsection{\texorpdfstring{printf()}{printf()}}
-{\footnotesize\ttfamily template$<$typename... Params$>$ \\
-void rd\+::\+Console\+::printf (\begin{DoxyParamCaption}\item[{std\+::string}]{fmt, }\item[{Params...}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
-
-
-
-Print a formatted string to the console.
-
-
-\begin{DoxyTemplParams}{Template Parameters}
-{\em Params} & \\
-\hline
-\end{DoxyTemplParams}
-
-\begin{DoxyParams}{Parameters}
-{\em fmt} & Format string \\
-\hline
-{\em args} & Args for format string \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}\label{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}}
-\index{Console@{Console}!println@{println}}
-\index{println@{println}!Console@{Console}}
-\doxysubsubsection{\texorpdfstring{println()}{println()}}
-{\footnotesize\ttfamily void rd\+::\+Console\+::println (\begin{DoxyParamCaption}\item[{std\+::string}]{str }\end{DoxyParamCaption})}
-
-
-
-Print to the console with a newline.
-
-
-\begin{DoxyParams}{Parameters}
-{\em str} & String to print to console \\
-\hline
-\end{DoxyParams}
diff --git a/latex/group__core.tex b/latex/group__core.tex
deleted file mode 100644
index efa01a7..0000000
--- a/latex/group__core.tex
+++ /dev/null
@@ -1,108 +0,0 @@
-\hypertarget{group__core}{}\doxysection{Core}
-\label{group__core}\index{Core@{Core}}
-
-
-The view management system.
-
-
-\doxysubsection*{Files}
-\begin{DoxyCompactItemize}
-\item
-file \mbox{\hyperlink{core_8h}{core.\+h}}
-\begin{DoxyCompactList}\small\item\em Robodash core header. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-struct \mbox{\hyperlink{structrd__view}{rd\+\_\+view}}
-\begin{DoxyCompactList}\small\item\em Robodash view structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Typedefs}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{group__core_gaac30b45d648de30e2c32b1d8cac99d75}\label{group__core_gaac30b45d648de30e2c32b1d8cac99d75}}
-typedef struct \mbox{\hyperlink{structrd__view}{rd\+\_\+view}} \mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}}
-\begin{DoxyCompactList}\small\item\em Robodash view structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$ \mbox{\hyperlink{group__core_gab0b848e6484ca68e2337b687ce74e753}{rd\+\_\+view\+\_\+create}} (const char $\ast$name)
-\begin{DoxyCompactList}\small\item\em Create a view. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__core_ga06317955ba1241ad37d3fbd50ae75254}{rd\+\_\+view\+\_\+focus}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Set a view to the currently active view. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__core_ga19bc42fd864f9c14e4710b9ec2dd5631}{rd\+\_\+view\+\_\+del}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Delete a view. \end{DoxyCompactList}\item
-lv\+\_\+obj\+\_\+t $\ast$ \mbox{\hyperlink{group__core_ga933ac4a5b4e9e14e3aefecff5066ec35}{rd\+\_\+view\+\_\+obj}} (\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$view)
-\begin{DoxyCompactList}\small\item\em Get the view\textquotesingle{}s lvgl object. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-The view management system.
-
-Knowledge of L\+V\+GL is required if you wish to create a view.
-
-\doxysubsection{Function Documentation}
-\mbox{\Hypertarget{group__core_gab0b848e6484ca68e2337b687ce74e753}\label{group__core_gab0b848e6484ca68e2337b687ce74e753}}
-\index{Core@{Core}!rd\_view\_create@{rd\_view\_create}}
-\index{rd\_view\_create@{rd\_view\_create}!Core@{Core}}
-\doxysubsubsection{\texorpdfstring{rd\_view\_create()}{rd\_view\_create()}}
-{\footnotesize\ttfamily \mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}}$\ast$ rd\+\_\+view\+\_\+create (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}
-
-
-
-Create a view.
-
-
-\begin{DoxyParams}{Parameters}
-{\em name} & Name of the view \\
-\hline
-\end{DoxyParams}
-\begin{DoxyReturn}{Returns}
-rd\+\_\+view\+\_\+t
-\end{DoxyReturn}
-\mbox{\Hypertarget{group__core_ga19bc42fd864f9c14e4710b9ec2dd5631}\label{group__core_ga19bc42fd864f9c14e4710b9ec2dd5631}}
-\index{Core@{Core}!rd\_view\_del@{rd\_view\_del}}
-\index{rd\_view\_del@{rd\_view\_del}!Core@{Core}}
-\doxysubsubsection{\texorpdfstring{rd\_view\_del()}{rd\_view\_del()}}
-{\footnotesize\ttfamily void rd\+\_\+view\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$}]{view }\end{DoxyParamCaption})}
-
-
-
-Delete a view.
-
-\begin{DoxyWarning}{Warning}
-Deleting a view will free the memory the view occupied, but will not set any variables pointing to said view {\ttfamily N\+U\+LL}.
-\end{DoxyWarning}
-
-\begin{DoxyParams}{Parameters}
-{\em view} & View to delete \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__core_ga06317955ba1241ad37d3fbd50ae75254}\label{group__core_ga06317955ba1241ad37d3fbd50ae75254}}
-\index{Core@{Core}!rd\_view\_focus@{rd\_view\_focus}}
-\index{rd\_view\_focus@{rd\_view\_focus}!Core@{Core}}
-\doxysubsubsection{\texorpdfstring{rd\_view\_focus()}{rd\_view\_focus()}}
-{\footnotesize\ttfamily void rd\+\_\+view\+\_\+focus (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$}]{view }\end{DoxyParamCaption})}
-
-
-
-Set a view to the currently active view.
-
-
-\begin{DoxyParams}{Parameters}
-{\em view} & View to focus \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__core_ga933ac4a5b4e9e14e3aefecff5066ec35}\label{group__core_ga933ac4a5b4e9e14e3aefecff5066ec35}}
-\index{Core@{Core}!rd\_view\_obj@{rd\_view\_obj}}
-\index{rd\_view\_obj@{rd\_view\_obj}!Core@{Core}}
-\doxysubsubsection{\texorpdfstring{rd\_view\_obj()}{rd\_view\_obj()}}
-{\footnotesize\ttfamily lv\+\_\+obj\+\_\+t$\ast$ rd\+\_\+view\+\_\+obj (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__core_gaac30b45d648de30e2c32b1d8cac99d75}{rd\+\_\+view\+\_\+t}} $\ast$}]{view }\end{DoxyParamCaption})}
-
-
-
-Get the view\textquotesingle{}s lvgl object.
-
-
-\begin{DoxyParams}{Parameters}
-{\em view} & View \\
-\hline
-\end{DoxyParams}
diff --git a/latex/group__image.tex b/latex/group__image.tex
deleted file mode 100644
index d5e048f..0000000
--- a/latex/group__image.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-\hypertarget{group__image}{}\doxysection{Image}
-\label{group__image}\index{Image@{Image}}
-
-
-An image display.
-
-
-\doxysubsection*{Files}
-\begin{DoxyCompactItemize}
-\item
-file \mbox{\hyperlink{image_8hpp}{image.\+hpp}}
-\begin{DoxyCompactList}\small\item\em Robodash Image. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Image}{rd\+::\+Image}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Image}{Image}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Image Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{group__image_ga4f1a26e44ab7ea69641e04946cf3f6bd}{rd\+::\+Image\+::\+Image}} (std\+::string path, std\+::string name=\char`\"{}Image\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}. \end{DoxyCompactList}\item
-\mbox{\hyperlink{group__image_gab91ac9ff8889a5a8b52887c507ebbba2}{rd\+::\+Image\+::\+Image}} (lv\+\_\+img\+\_\+dsc\+\_\+t image\+\_\+dsc, std\+::string name=\char`\"{}Image\char`\"{})
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}. \end{DoxyCompactList}\item
-\mbox{\Hypertarget{group__image_ga317205da14ca86b86f2d1bd1bb310101}\label{group__image_ga317205da14ca86b86f2d1bd1bb310101}}
-void \mbox{\hyperlink{group__image_ga317205da14ca86b86f2d1bd1bb310101}{rd\+::\+Image\+::focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-An image display.
-
-\begin{DoxyNote}{Note}
-All images must be converted using L\+V\+GL\textquotesingle{}s online image converter tool. (\href{https://lvgl.io/tools/imageconverter}{\texttt{ https\+://lvgl.\+io/tools/imageconverter}})
-\end{DoxyNote}
-\begin{DoxyWarning}{Warning}
-Images should be converted into an indexed color format for performance. C\+F\+\_\+\+I\+N\+D\+E\+X\+E\+D\+\_\+4\+\_\+\+B\+IT or C\+F\+\_\+\+I\+N\+D\+E\+X\+E\+D\+\_\+8\+\_\+\+B\+IT is reccomended for color images.
-\end{DoxyWarning}
- \begin{DoxyRefDesc}{Bug}
-\item[\mbox{\hyperlink{bug__bug000001}{Bug}}]The sidebar animations are very choppy when viewing an image. A fix for this will be implemented for release.\end{DoxyRefDesc}
-
-
-Displays still images from an SD card or a C array.
-
-\doxysubsection{Function Documentation}
-\mbox{\Hypertarget{group__image_gab91ac9ff8889a5a8b52887c507ebbba2}\label{group__image_gab91ac9ff8889a5a8b52887c507ebbba2}}
-\index{Image@{Image}!Image@{Image}}
-\index{Image@{Image}!Image@{Image}}
-\doxysubsubsection{\texorpdfstring{Image()}{Image()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
-{\footnotesize\ttfamily rd\+::\+Image\+::\+Image (\begin{DoxyParamCaption}\item[{lv\+\_\+img\+\_\+dsc\+\_\+t}]{image\+\_\+dsc, }\item[{std\+::string}]{name = {\ttfamily \char`\"{}Image\char`\"{}} }\end{DoxyParamCaption})}
-
-
-
-Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}.
-
-
-\begin{DoxyParams}{Parameters}
-{\em image\+\_\+dsc} & L\+V\+GL image descriptor object \\
-\hline
-{\em name} & Name to display on screen \\
-\hline
-\end{DoxyParams}
-\mbox{\Hypertarget{group__image_ga4f1a26e44ab7ea69641e04946cf3f6bd}\label{group__image_ga4f1a26e44ab7ea69641e04946cf3f6bd}}
-\index{Image@{Image}!Image@{Image}}
-\index{Image@{Image}!Image@{Image}}
-\doxysubsubsection{\texorpdfstring{Image()}{Image()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
-{\footnotesize\ttfamily rd\+::\+Image\+::\+Image (\begin{DoxyParamCaption}\item[{std\+::string}]{path, }\item[{std\+::string}]{name = {\ttfamily \char`\"{}Image\char`\"{}} }\end{DoxyParamCaption})}
-
-
-
-Create a new \mbox{\hyperlink{classrd_1_1Image}{Image}}.
-
-
-\begin{DoxyParams}{Parameters}
-{\em name} & File path to the binary-\/formatted image on SD card \\
-\hline
-{\em path} & Name to display on screen \\
-\hline
-\end{DoxyParams}
diff --git a/latex/group__selector.tex b/latex/group__selector.tex
deleted file mode 100644
index 833e49f..0000000
--- a/latex/group__selector.tex
+++ /dev/null
@@ -1,65 +0,0 @@
-\hypertarget{group__selector}{}\doxysection{Selector}
-\label{group__selector}\index{Selector@{Selector}}
-
-
-A function selector.
-
-
-\doxysubsection*{Files}
-\begin{DoxyCompactItemize}
-\item
-file \mbox{\hyperlink{selector_8hpp}{selector.\+hpp}}
-\begin{DoxyCompactList}\small\item\em Robodash Selector. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Selector}{rd\+::\+Selector}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Selector}{Selector}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-\doxysubsection*{Selector Typedefs}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{group__selector_ga9d3fce51aabf28e2de016dbbdaf0e979}\label{group__selector_ga9d3fce51aabf28e2de016dbbdaf0e979}}
-typedef std\+::function$<$ void()$>$ {\bfseries rd\+::\+Selector\+::routine\+\_\+action\+\_\+t}
-\item
-\mbox{\Hypertarget{group__selector_ga55a46abfd53dfac821b42bf7a9bd6a2e}\label{group__selector_ga55a46abfd53dfac821b42bf7a9bd6a2e}}
-typedef std\+::pair$<$ std\+::string, routine\+\_\+action\+\_\+t $>$ {\bfseries rd\+::\+Selector\+::routine\+\_\+t}
-\end{DoxyCompactItemize}
-\doxysubsection*{Selector Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{group__selector_gac4d8a51008aa3f6bcc215ebbc7a18064}\label{group__selector_gac4d8a51008aa3f6bcc215ebbc7a18064}}
-\mbox{\hyperlink{group__selector_gac4d8a51008aa3f6bcc215ebbc7a18064}{rd\+::\+Selector\+::\+Selector}} ()
-\begin{DoxyCompactList}\small\item\em Create a new \mbox{\hyperlink{classrd_1_1Selector}{Selector}}. \end{DoxyCompactList}\item
-void \mbox{\hyperlink{group__selector_ga42f5b1858122618d6bc02d2fbf745e3a}{rd\+::\+Selector\+::add\+\_\+autons}} (std\+::vector$<$ routine\+\_\+t $>$ autons)
-\begin{DoxyCompactList}\small\item\em Initialize autonomous manager. \end{DoxyCompactList}\item
-\mbox{\Hypertarget{group__selector_ga5e7eda63d566b56e6ae5cd0db643b2c0}\label{group__selector_ga5e7eda63d566b56e6ae5cd0db643b2c0}}
-void \mbox{\hyperlink{group__selector_ga5e7eda63d566b56e6ae5cd0db643b2c0}{rd\+::\+Selector\+::do\+\_\+auton}} ()
-\begin{DoxyCompactList}\small\item\em Run selected auton. \end{DoxyCompactList}\item
-\mbox{\Hypertarget{group__selector_ga8f824c347f67daf37463314b2cd5303c}\label{group__selector_ga8f824c347f67daf37463314b2cd5303c}}
-void \mbox{\hyperlink{group__selector_ga8f824c347f67daf37463314b2cd5303c}{rd\+::\+Selector\+::focus}} ()
-\begin{DoxyCompactList}\small\item\em Set this view to the active view. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-A function selector.
-
-
-
-A function selector for easily managing autonomous routines. Supports saving a configuration to an SD card, and automatically loading it on the next run.
-
-\doxysubsection{Function Documentation}
-\mbox{\Hypertarget{group__selector_ga42f5b1858122618d6bc02d2fbf745e3a}\label{group__selector_ga42f5b1858122618d6bc02d2fbf745e3a}}
-\index{Selector@{Selector}!add\_autons@{add\_autons}}
-\index{add\_autons@{add\_autons}!Selector@{Selector}}
-\doxysubsubsection{\texorpdfstring{add\_autons()}{add\_autons()}}
-{\footnotesize\ttfamily void rd\+::\+Selector\+::add\+\_\+autons (\begin{DoxyParamCaption}\item[{std\+::vector$<$ routine\+\_\+t $>$}]{autons }\end{DoxyParamCaption})}
-
-
-
-Initialize autonomous manager.
-
-
-\begin{DoxyParams}{Parameters}
-{\em autons} & Vector of Routines \\
-\hline
-\end{DoxyParams}
diff --git a/latex/image_8hpp.tex b/latex/image_8hpp.tex
deleted file mode 100644
index 04d391d..0000000
--- a/latex/image_8hpp.tex
+++ /dev/null
@@ -1,19 +0,0 @@
-\hypertarget{image_8hpp}{}\doxysection{views/image.hpp File Reference}
-\label{image_8hpp}\index{views/image.hpp@{views/image.hpp}}
-
-
-Robodash Image.
-
-
-{\ttfamily \#include \char`\"{}robodash/api.\+h\char`\"{}}\newline
-{\ttfamily \#include $<$string$>$}\newline
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Image}{rd\+::\+Image}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Image}{Image}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Robodash Image.
-
diff --git a/latex/index.tex b/latex/index.tex
deleted file mode 100644
index 220e57a..0000000
--- a/latex/index.tex
+++ /dev/null
@@ -1 +0,0 @@
-Robodash is a flexible G\+UI toolkit for the V\+EX V5 brain. It is built to provide useful tools that take full advantage of the V5 brain\textquotesingle{}s L\+CD display, as well as provide a foundation to improve compatibility with templates that provide L\+V\+G\+L-\/powered G\+U\+Is.
\ No newline at end of file
diff --git a/latex/installing.tex b/latex/installing.tex
deleted file mode 100644
index cb7bd94..0000000
--- a/latex/installing.tex
+++ /dev/null
@@ -1,17 +0,0 @@
-\hypertarget{installing_autotoc_md0}{}\doxysubsection{Prerequisites}\label{installing_autotoc_md0}
-
-\begin{DoxyItemize}
-\item An installation of the P\+R\+OS C\+LI or V\+S\+Code extension.
-\item A P\+R\+OS 4 project. Robodash does not support P\+R\+OS 3 due to the bundled L\+V\+GL version.
-\item \href{https://github.com/purduesigbots/liblvgl}{\texttt{ liblvgl 8}}. L\+V\+GL 5.\+3 is not supported.
-\end{DoxyItemize}\hypertarget{installing_autotoc_md1}{}\doxysubsection{Installing the template}\label{installing_autotoc_md1}
-\begin{DoxyNote}{Note}
-If you only have the P\+R\+OS V\+S\+Code extension installed, you must run the commands below in the Integrated Terminal.
-\end{DoxyNote}
-
-\begin{DoxyEnumerate}
-\item Download the latest template from the \href{https://github.com/unwieldycat/robodash/releases}{\texttt{ releases tab}} on Git\+Hub
-\item Open the download location and fetch the template with {\ttfamily pros c fetch robodash@x.\+x.\+x.\+zip}. This registers the template with P\+R\+OS Conductor, the P\+R\+OS project management tools.
-\item Open the project you wish to use the library in and install the template with {\ttfamily pros c apply robodash@x.\+x.\+x}.
-\item {\ttfamily \#include \char`\"{}robodash/api.\+hpp\char`\"{}} in your project\textquotesingle{}s {\ttfamily main.\+h} file
-\end{DoxyEnumerate}
\ No newline at end of file
diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty
deleted file mode 100644
index a0eb314..0000000
--- a/latex/longtable_doxygen.sty
+++ /dev/null
@@ -1,448 +0,0 @@
-%%
-%% This is file `longtable.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% longtable.dtx (with options: `package')
-%%
-%% This is a generated file.
-%%
-%% The source is maintained by the LaTeX Project team and bug
-%% reports for it can be opened at http://latex-project.org/bugs.html
-%% (but please observe conditions on bug reports sent to that address!)
-%%
-%% Copyright 1993-2016
-%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
-%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
-%% --------------------------------------------------------------------------
-%%
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3c
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This file may only be distributed together with a copy of the LaTeX
-%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
-%% without such generated files.
-%%
-%% The list of all files belonging to the LaTeX `Tools Bundle' is
-%% given in the file `manifest.txt'.
-%%
-%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
-\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-\ProvidesPackage{longtable_doxygen}
- [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
-\def\LT@err{\PackageError{longtable}}
-\def\LT@warn{\PackageWarning{longtable}}
-\def\LT@final@warn{%
- \AtEndDocument{%
- \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
- \global\let\LT@final@warn\relax}
-\DeclareOption{errorshow}{%
- \def\LT@warn{\PackageInfo{longtable}}}
-\DeclareOption{pausing}{%
- \def\LT@warn#1{%
- \LT@err{#1}{This is not really an error}}}
-\DeclareOption{set}{}
-\DeclareOption{final}{}
-\ProcessOptions
-\newskip\LTleft \LTleft=\fill
-\newskip\LTright \LTright=\fill
-\newskip\LTpre \LTpre=\bigskipamount
-\newskip\LTpost \LTpost=\bigskipamount
-\newcount\LTchunksize \LTchunksize=20
-\let\c@LTchunksize\LTchunksize
-\newdimen\LTcapwidth \LTcapwidth=4in
-\newbox\LT@head
-\newbox\LT@firsthead
-\newbox\LT@foot
-\newbox\LT@lastfoot
-\newcount\LT@cols
-\newcount\LT@rows
-\newcounter{LT@tables}
-\newcounter{LT@chunks}[LT@tables]
-\ifx\c@table\undefined
- \newcounter{table}
- \def\fnum@table{\tablename~\thetable}
-\fi
-\ifx\tablename\undefined
- \def\tablename{Table}
-\fi
-\newtoks\LT@p@ftn
-\mathchardef\LT@end@pen=30000
-\def\longtable{%
- \par
- \ifx\multicols\@undefined
- \else
- \ifnum\col@number>\@ne
- \@twocolumntrue
- \fi
- \fi
- \if@twocolumn
- \LT@err{longtable not in 1-column mode}\@ehc
- \fi
- \begingroup
- \@ifnextchar[\LT@array{\LT@array[x]}}
-\def\LT@array[#1]#2{%
- \refstepcounter{table}\stepcounter{LT@tables}%
- \if l#1%
- \LTleft\z@ \LTright\fill
- \else\if r#1%
- \LTleft\fill \LTright\z@
- \else\if c#1%
- \LTleft\fill \LTright\fill
- \fi\fi\fi
- \let\LT@mcol\multicolumn
- \let\LT@@tabarray\@tabarray
- \let\LT@@hl\hline
- \def\@tabarray{%
- \let\hline\LT@@hl
- \LT@@tabarray}%
- \let\\\LT@tabularcr\let\tabularnewline\\%
- \def\newpage{\noalign{\break}}%
- \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
- \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
- \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
- \@tempdima\ht\strutbox
- \let\@endpbox\LT@endpbox
- \ifx\extrarowheight\@undefined
- \let\@acol\@tabacol
- \let\@classz\@tabclassz \let\@classiv\@tabclassiv
- \def\@startpbox{\vtop\LT@startpbox}%
- \let\@@startpbox\@startpbox
- \let\@@endpbox\@endpbox
- \let\LT@LL@FM@cr\@tabularcr
- \else
- \advance\@tempdima\extrarowheight
- \col@sep\tabcolsep
- \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
- \fi
- \setbox\@arstrutbox\hbox{\vrule
- \@height \arraystretch \@tempdima
- \@depth \arraystretch \dp \strutbox
- \@width \z@}%
- \let\@sharp##\let\protect\relax
- \begingroup
- \@mkpream{#2}%
- \xdef\LT@bchunk{%
- \global\advance\c@LT@chunks\@ne
- \global\LT@rows\z@\setbox\z@\vbox\bgroup
- \LT@setprevdepth
- \tabskip\LTleft \noexpand\halign to\hsize\bgroup
- \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
- \endgroup
- \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
- \LT@make@row
- \m@th\let\par\@empty
- \everycr{}\lineskip\z@\baselineskip\z@
- \LT@bchunk}
-\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
-\def\LT@start{%
- \let\LT@start\endgraf
- \endgraf\penalty\z@\vskip\LTpre
- \dimen@\pagetotal
- \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
- \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
- \advance\dimen@ \ht\LT@foot
- \dimen@ii\vfuzz
- \vfuzz\maxdimen
- \setbox\tw@\copy\z@
- \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
- \setbox\tw@\vbox{\unvbox\tw@}%
- \vfuzz\dimen@ii
- \advance\dimen@ \ht
- \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
- \advance\dimen@\dp
- \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
- \advance\dimen@ -\pagegoal
- \ifdim \dimen@>\z@\vfil\break\fi
- \global\@colroom\@colht
- \ifvoid\LT@foot\else
- \advance\vsize-\ht\LT@foot
- \global\advance\@colroom-\ht\LT@foot
- \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
- \maxdepth\z@
- \fi
- \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
- \output{\LT@output}}
-\def\endlongtable{%
- \crcr
- \noalign{%
- \let\LT@entry\LT@entry@chop
- \xdef\LT@save@row{\LT@save@row}}%
- \LT@echunk
- \LT@start
- \unvbox\z@
- \LT@get@widths
- \if@filesw
- {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
- \gdef\expandafter\noexpand
- \csname LT@\romannumeral\c@LT@tables\endcsname
- {\LT@save@row}}}%
- \fi
- \ifx\LT@save@row\LT@@save@row
- \else
- \LT@warn{Column \@width s have changed\MessageBreak
- in table \thetable}%
- \LT@final@warn
- \fi
- \endgraf\penalty -\LT@end@pen
- \endgroup
- \global\@mparbottom\z@
- \pagegoal\vsize
- \endgraf\penalty\z@\addvspace\LTpost
- \ifvoid\footins\else\insert\footins{}\fi}
-\def\LT@nofcols#1&{%
- \futurelet\@let@token\LT@n@fcols}
-\def\LT@n@fcols{%
- \advance\LT@cols\@ne
- \ifx\@let@token\LT@nofcols
- \expandafter\@gobble
- \else
- \expandafter\LT@nofcols
- \fi}
-\def\LT@tabularcr{%
- \relax\iffalse{\fi\ifnum0=`}\fi
- \@ifstar
- {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
- \LT@t@bularcr}%
- {\LT@t@bularcr}}
-\let\LT@crcr\crcr
-\let\LT@setprevdepth\relax
-\def\LT@t@bularcr{%
- \global\advance\LT@rows\@ne
- \ifnum\LT@rows=\LTchunksize
- \gdef\LT@setprevdepth{%
- \prevdepth\z@\global
- \global\let\LT@setprevdepth\relax}%
- \expandafter\LT@xtabularcr
- \else
- \ifnum0=`{}\fi
- \expandafter\LT@LL@FM@cr
- \fi}
-\def\LT@xtabularcr{%
- \@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
-\def\LT@ntabularcr{%
- \ifnum0=`{}\fi
- \LT@echunk
- \LT@start
- \unvbox\z@
- \LT@get@widths
- \LT@bchunk}
-\def\LT@argtabularcr[#1]{%
- \ifnum0=`{}\fi
- \ifdim #1>\z@
- \unskip\@xargarraycr{#1}%
- \else
- \@yargarraycr{#1}%
- \fi
- \LT@echunk
- \LT@start
- \unvbox\z@
- \LT@get@widths
- \LT@bchunk}
-\def\LT@echunk{%
- \crcr\LT@save@row\cr\egroup
- \global\setbox\@ne\lastbox
- \unskip
- \egroup}
-\def\LT@entry#1#2{%
- \ifhmode\@firstofone{&}\fi\omit
- \ifnum#1=\c@LT@chunks
- \else
- \kern#2\relax
- \fi}
-\def\LT@entry@chop#1#2{%
- \noexpand\LT@entry
- {\ifnum#1>\c@LT@chunks
- 1}{0pt%
- \else
- #1}{#2%
- \fi}}
-\def\LT@entry@write{%
- \noexpand\LT@entry^^J%
- \@spaces}
-\def\LT@kill{%
- \LT@echunk
- \LT@get@widths
- \expandafter\LT@rebox\LT@bchunk}
-\def\LT@rebox#1\bgroup{%
- #1\bgroup
- \unvbox\z@
- \unskip
- \setbox\z@\lastbox}
-\def\LT@blank@row{%
- \xdef\LT@save@row{\expandafter\LT@build@blank
- \romannumeral\number\LT@cols 001 }}
-\def\LT@build@blank#1{%
- \if#1m%
- \noexpand\LT@entry{1}{0pt}%
- \expandafter\LT@build@blank
- \fi}
-\def\LT@make@row{%
- \global\expandafter\let\expandafter\LT@save@row
- \csname LT@\romannumeral\c@LT@tables\endcsname
- \ifx\LT@save@row\relax
- \LT@blank@row
- \else
- {\let\LT@entry\or
- \if!%
- \ifcase\expandafter\expandafter\expandafter\LT@cols
- \expandafter\@gobble\LT@save@row
- \or
- \else
- \relax
- \fi
- !%
- \else
- \aftergroup\LT@blank@row
- \fi}%
- \fi}
-\let\setlongtables\relax
-\def\LT@get@widths{%
- \setbox\tw@\hbox{%
- \unhbox\@ne
- \let\LT@old@row\LT@save@row
- \global\let\LT@save@row\@empty
- \count@\LT@cols
- \loop
- \unskip
- \setbox\tw@\lastbox
- \ifhbox\tw@
- \LT@def@row
- \advance\count@\m@ne
- \repeat}%
- \ifx\LT@@save@row\@undefined
- \let\LT@@save@row\LT@save@row
- \fi}
-\def\LT@def@row{%
- \let\LT@entry\or
- \edef\@tempa{%
- \ifcase\expandafter\count@\LT@old@row
- \else
- {1}{0pt}%
- \fi}%
- \let\LT@entry\relax
- \xdef\LT@save@row{%
- \LT@entry
- \expandafter\LT@max@sel\@tempa
- \LT@save@row}}
-\def\LT@max@sel#1#2{%
- {\ifdim#2=\wd\tw@
- #1%
- \else
- \number\c@LT@chunks
- \fi}%
- {\the\wd\tw@}}
-\def\LT@hline{%
- \noalign{\ifnum0=`}\fi
- \penalty\@M
- \futurelet\@let@token\LT@@hline}
-\def\LT@@hline{%
- \ifx\@let@token\hline
- \global\let\@gtempa\@gobble
- \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
- \else
- \global\let\@gtempa\@empty
- \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
- \fi
- \ifnum0=`{\fi}%
- \multispan\LT@cols
- \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
- \noalign{\LT@sep}%
- \multispan\LT@cols
- \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
- \noalign{\penalty\@M}%
- \@gtempa}
-\def\LT@caption{%
- \noalign\bgroup
- \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
-\def\LT@c@ption#1[#2]#3{%
- \LT@makecaption#1\fnum@table{#3}%
- \def\@tempa{#2}%
- \ifx\@tempa\@empty\else
- {\let\\\space
- \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
- \fi}
-\def\LT@capti@n{%
- \@ifstar
- {\egroup\LT@c@ption\@gobble[]}%
- {\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
-\def\LT@makecaption#1#2#3{%
- \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
- \sbox\@tempboxa{#1{#2: }#3}%
- \ifdim\wd\@tempboxa>\hsize
- #1{#2: }#3%
- \else
- \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \endgraf\vskip\baselineskip}%
- \hss}}}
-\def\LT@output{%
- \ifnum\outputpenalty <-\@Mi
- \ifnum\outputpenalty > -\LT@end@pen
- \LT@err{floats and marginpars not allowed in a longtable}\@ehc
- \else
- \setbox\z@\vbox{\unvbox\@cclv}%
- \ifdim \ht\LT@lastfoot>\ht\LT@foot
- \dimen@\pagegoal
- \advance\dimen@-\ht\LT@lastfoot
- \ifdim\dimen@<\ht\z@
- \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
- \@makecol
- \@outputpage
- \setbox\z@\vbox{\box\LT@head}%
- \fi
- \fi
- \global\@colroom\@colht
- \global\vsize\@colht
- \vbox
- {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
- \fi
- \else
- \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
- \@makecol
- \@outputpage
- \global\vsize\@colroom
- \copy\LT@head\nobreak
- \fi}
-\def\LT@end@hd@ft#1{%
- \LT@echunk
- \ifx\LT@start\endgraf
- \LT@err
- {Longtable head or foot not at start of table}%
- {Increase LTchunksize}%
- \fi
- \setbox#1\box\z@
- \LT@get@widths
- \LT@bchunk}
-\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
-\def\endhead{\LT@end@hd@ft\LT@head}
-\def\endfoot{\LT@end@hd@ft\LT@foot}
-\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
-\def\LT@startpbox#1{%
- \bgroup
- \let\@footnotetext\LT@p@ftntext
- \setlength\hsize{#1}%
- \@arrayparboxrestore
- \vrule \@height \ht\@arstrutbox \@width \z@}
-\def\LT@endpbox{%
- \@finalstrut\@arstrutbox
- \egroup
- \the\LT@p@ftn
- \global\LT@p@ftn{}%
- \hfil}
-\def\LT@p@ftntext#1{%
- \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
- \global\LT@p@ftn\expandafter{\@tempa{#1}}}%
-
-\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
-\endinput
-%%
-%% End of file `longtable.sty'.
diff --git a/latex/modules.tex b/latex/modules.tex
deleted file mode 100644
index f728097..0000000
--- a/latex/modules.tex
+++ /dev/null
@@ -1,7 +0,0 @@
-\doxysection{Modules}
-Here is a list of all modules\+:\begin{DoxyCompactList}
-\item \contentsline{section}{Core}{\pageref{group__core}}{}
-\item \contentsline{section}{Console}{\pageref{group__console}}{}
-\item \contentsline{section}{Image}{\pageref{group__image}}{}
-\item \contentsline{section}{Selector}{\pageref{group__selector}}{}
-\end{DoxyCompactList}
diff --git a/latex/refman.tex b/latex/refman.tex
deleted file mode 100644
index 5e4bd96..0000000
--- a/latex/refman.tex
+++ /dev/null
@@ -1,224 +0,0 @@
-\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book}
-
-%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
-\usepackage{ifthen}
-\ifx\requestedLaTeXdate\undefined
-\usepackage{array}
-\else
-\usepackage{array}[=2016-10-06]
-\fi
-%%
-% Packages required by doxygen
-\usepackage{fixltx2e}
-\usepackage{calc}
-\usepackage{doxygen}
-\usepackage{graphicx}
-\usepackage[utf8]{inputenc}
-\usepackage{makeidx}
-\usepackage{multicol}
-\usepackage{multirow}
-\PassOptionsToPackage{warn}{textcomp}
-\usepackage{textcomp}
-\usepackage[nointegrals]{wasysym}
-\usepackage[table]{xcolor}
-\usepackage{ifpdf,ifxetex}
-
-% Font selection
-\usepackage[T1]{fontenc}
-\usepackage[scaled=.90]{helvet}
-\usepackage{courier}
-\usepackage{amssymb}
-\usepackage{sectsty}
-\renewcommand{\familydefault}{\sfdefault}
-\allsectionsfont{%
- \fontseries{bc}\selectfont%
- \color{darkgray}%
-}
-\renewcommand{\DoxyLabelFont}{%
- \fontseries{bc}\selectfont%
- \color{darkgray}%
-}
-\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
-
-% Arguments of doxygenemoji:
-% 1) '::' form of the emoji, already "LaTeX"-escaped
-% 2) file with the name of the emoji without the .png extension
-% in case image exist use this otherwise use the '::' form
-\newcommand{\doxygenemoji}[2]{%
- \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
-}
-% Page & text layout
-\usepackage{geometry}
-\geometry{%
- a4paper,%
- top=2.5cm,%
- bottom=2.5cm,%
- left=2.5cm,%
- right=2.5cm%
-}
-\tolerance=750
-\hfuzz=15pt
-\hbadness=750
-\setlength{\emergencystretch}{15pt}
-\setlength{\parindent}{0cm}
-\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
-\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
-\doxynormalparskip
-\makeatletter
-\renewcommand{\paragraph}{%
- \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
- \normalfont\normalsize\bfseries\SS@parafont%
- }%
-}
-\renewcommand{\subparagraph}{%
- \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
- \normalfont\normalsize\bfseries\SS@subparafont%
- }%
-}
-\makeatother
-
-\makeatletter
-\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
-\makeatother
-
-% Headers & footers
-\usepackage{fancyhdr}
-\pagestyle{fancyplain}
-\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
-\fancyhead[CE]{\fancyplain{}{}}
-\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
-\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
-\fancyhead[CO]{\fancyplain{}{}}
-\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
-\fancyfoot[LE]{\fancyplain{}{}}
-\fancyfoot[CE]{\fancyplain{}{}}
-\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
-\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
-\fancyfoot[CO]{\fancyplain{}{}}
-\fancyfoot[RO]{\fancyplain{}{}}
-\renewcommand{\footrulewidth}{0.4pt}
-\renewcommand{\chaptermark}[1]{%
- \markboth{#1}{}%
-}
-\renewcommand{\sectionmark}[1]{%
- \markright{\thesection\ #1}%
-}
-
-% Indices & bibliography
-\usepackage{natbib}
-\usepackage[titles]{tocloft}
-\setcounter{tocdepth}{3}
-\setcounter{secnumdepth}{5}
-\makeindex
-
-\usepackage{newunicodechar}
- \newunicodechar{⁻}{${}^{-}$}% Superscript minus
- \newunicodechar{²}{${}^{2}$}% Superscript two
- \newunicodechar{³}{${}^{3}$}% Superscript three
-
-% Hyperlinks (required, but should be loaded last)
-\ifpdf
- \usepackage[pdftex,pagebackref=true]{hyperref}
-\else
- \ifxetex
- \usepackage[pagebackref=true]{hyperref}
- \else
- \usepackage[ps2pdf,pagebackref=true]{hyperref}
- \fi
-\fi
-
-\hypersetup{%
- colorlinks=true,%
- linkcolor=blue,%
- citecolor=blue,%
- unicode%
-}
-
-% Custom commands
-\newcommand{\clearemptydoublepage}{%
- \newpage{\pagestyle{empty}\cleardoublepage}%
-}
-
-\usepackage{caption}
-\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
-
-\usepackage{etoc}
-\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
-\renewcommand{\numberline}[1]{#1~}
-%===== C O N T E N T S =====
-
-\begin{document}
-
-% Titlepage & ToC
-\hypersetup{pageanchor=false,
- bookmarksnumbered=true,
- pdfencoding=unicode
- }
-\pagenumbering{alph}
-\begin{titlepage}
-\vspace*{7cm}
-\begin{center}%
-{\Large Robodash \\[1ex]\large 2.\+0.\+0 }\\
-\vspace*{1cm}
-{\large Generated by Doxygen 1.8.17}\\
-\end{center}
-\end{titlepage}
-\clearemptydoublepage
-\pagenumbering{roman}
-\tableofcontents
-\clearemptydoublepage
-\pagenumbering{arabic}
-\hypersetup{pageanchor=true}
-
-%--- Begin generated contents ---
-\chapter{robodash}
-\label{index}\hypertarget{index}{}\input{index}
-\chapter{Installation}
-\label{installing}
-\Hypertarget{installing}
-\input{installing}
-\chapter{Usage}
-\label{usage}
-\Hypertarget{usage}
-\input{usage}
-\chapter{Bug List}
-\label{bug}
-\Hypertarget{bug}
-\input{bug}
-\chapter{Module Index}
-\input{modules}
-\chapter{Class Index}
-\input{annotated}
-\chapter{File Index}
-\input{files}
-\chapter{Module Documentation}
-\input{group__core}
-\include{group__console}
-\include{group__image}
-\include{group__selector}
-\chapter{Class Documentation}
-\input{classrd_1_1Console}
-\input{classrd_1_1Image}
-\input{structrd__view}
-\input{classrd_1_1Selector}
-\chapter{File Documentation}
-\input{api_8h}
-\input{apix_8h}
-\input{core_8h}
-\input{assets_8h}
-\input{filesystem_8h}
-\input{styles_8h}
-\input{console_8hpp}
-\input{image_8hpp}
-\input{selector_8hpp}
-%--- End generated contents ---
-
-% Index
-\backmatter
-\newpage
-\phantomsection
-\clearemptydoublepage
-\addcontentsline{toc}{chapter}{\indexname}
-\printindex
-
-\end{document}
diff --git a/latex/selector_8hpp.tex b/latex/selector_8hpp.tex
deleted file mode 100644
index 0e2faf1..0000000
--- a/latex/selector_8hpp.tex
+++ /dev/null
@@ -1,21 +0,0 @@
-\hypertarget{selector_8hpp}{}\doxysection{views/selector.hpp File Reference}
-\label{selector_8hpp}\index{views/selector.hpp@{views/selector.hpp}}
-
-
-Robodash Selector.
-
-
-{\ttfamily \#include \char`\"{}robodash/api.\+h\char`\"{}}\newline
-{\ttfamily \#include $<$functional$>$}\newline
-{\ttfamily \#include $<$string$>$}\newline
-{\ttfamily \#include $<$vector$>$}\newline
-\doxysubsection*{Classes}
-\begin{DoxyCompactItemize}
-\item
-class \mbox{\hyperlink{classrd_1_1Selector}{rd\+::\+Selector}}
-\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classrd_1_1Selector}{Selector}} class. \end{DoxyCompactList}\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Robodash Selector.
-
diff --git a/latex/structrd__view.tex b/latex/structrd__view.tex
deleted file mode 100644
index 5171baf..0000000
--- a/latex/structrd__view.tex
+++ /dev/null
@@ -1,31 +0,0 @@
-\hypertarget{structrd__view}{}\doxysection{rd\+\_\+view Struct Reference}
-\label{structrd__view}\index{rd\_view@{rd\_view}}
-
-
-Robodash view structure.
-
-
-
-
-{\ttfamily \#include $<$core.\+h$>$}
-
-\doxysubsection*{Public Attributes}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{structrd__view_aa4418d538572e85a5c2eedcb10d7a66e}\label{structrd__view_aa4418d538572e85a5c2eedcb10d7a66e}}
-const char $\ast$ {\bfseries name}
-\item
-\mbox{\Hypertarget{structrd__view_aa5d7fb7649a33677c97071b0a0bf7459}\label{structrd__view_aa5d7fb7649a33677c97071b0a0bf7459}}
-lv\+\_\+obj\+\_\+t $\ast$ {\bfseries obj}
-\item
-\mbox{\Hypertarget{structrd__view_ad67cd14787deaed144e2563e339e146e}\label{structrd__view_ad67cd14787deaed144e2563e339e146e}}
-lv\+\_\+obj\+\_\+t $\ast$ {\bfseries \+\_\+btn}
-\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Robodash view structure.
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item
-\mbox{\hyperlink{core_8h}{core.\+h}}\end{DoxyCompactItemize}
diff --git a/latex/styles_8h.tex b/latex/styles_8h.tex
deleted file mode 100644
index 7b416e0..0000000
--- a/latex/styles_8h.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-\hypertarget{styles_8h}{}\doxysection{impl/styles.h File Reference}
-\label{styles_8h}\index{impl/styles.h@{impl/styles.h}}
-
-
-Styles used by robodash.
-
-
-{\ttfamily \#include \char`\"{}robodash/apix.\+h\char`\"{}}\newline
-\doxysubsection*{Functions}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{styles_8h_a525669db8a90e32fa433a979b8669135}\label{styles_8h_a525669db8a90e32fa433a979b8669135}}
-void {\bfseries \+\_\+init\+\_\+styles} ()
-\item
-\mbox{\Hypertarget{styles_8h_a32ae806f3d85368729f930c357a873af}\label{styles_8h_a32ae806f3d85368729f930c357a873af}}
-void {\bfseries anim\+\_\+x\+\_\+cb} (void $\ast$obj, int32\+\_\+t x)
-\item
-\mbox{\Hypertarget{styles_8h_a5f669303ffb3a57a4a571c82eceac4fc}\label{styles_8h_a5f669303ffb3a57a4a571c82eceac4fc}}
-void {\bfseries anim\+\_\+opa\+\_\+cb} (void $\ast$obj, int32\+\_\+t opa)
-\item
-\mbox{\Hypertarget{styles_8h_a117918316565ccd02292e30e3a17de0a}\label{styles_8h_a117918316565ccd02292e30e3a17de0a}}
-void {\bfseries anim\+\_\+text\+\_\+opa\+\_\+cb} (void $\ast$obj, int32\+\_\+t opa)
-\item
-\mbox{\Hypertarget{styles_8h_a0a63c404f5208e49f94b0f1a6bfb38ef}\label{styles_8h_a0a63c404f5208e49f94b0f1a6bfb38ef}}
-void {\bfseries anim\+\_\+del\+\_\+cb} (lv\+\_\+anim\+\_\+t $\ast$anim)
-\item
-\mbox{\Hypertarget{styles_8h_acb258458846bdf631512065b574d2f2a}\label{styles_8h_acb258458846bdf631512065b574d2f2a}}
-void {\bfseries \+\_\+init\+\_\+colors} ()
-\item
-\mbox{\Hypertarget{styles_8h_a01c957391c4bff758d874a1452b8f381}\label{styles_8h_a01c957391c4bff758d874a1452b8f381}}
-void {\bfseries \+\_\+init\+\_\+style\+\_\+misc} ()
-\item
-\mbox{\Hypertarget{styles_8h_aed42a5e22f14414d2d05d4aada2f4c27}\label{styles_8h_aed42a5e22f14414d2d05d4aada2f4c27}}
-void {\bfseries \+\_\+init\+\_\+style\+\_\+list} ()
-\item
-\mbox{\Hypertarget{styles_8h_aee1a725b4ea59157073b3e9d3f41f7e1}\label{styles_8h_aee1a725b4ea59157073b3e9d3f41f7e1}}
-void {\bfseries \+\_\+init\+\_\+style\+\_\+btn} ()
-\item
-\mbox{\Hypertarget{styles_8h_ac19ee8c3f7aab4db12cc13fb67618e16}\label{styles_8h_ac19ee8c3f7aab4db12cc13fb67618e16}}
-void {\bfseries \+\_\+init\+\_\+style\+\_\+text} ()
-\item
-\mbox{\Hypertarget{styles_8h_a96f8e55543d1dd5947d0c6e913abf36d}\label{styles_8h_a96f8e55543d1dd5947d0c6e913abf36d}}
-void {\bfseries \+\_\+init\+\_\+style\+\_\+bar} ()
-\end{DoxyCompactItemize}
-\doxysubsection*{Variables}
-\begin{DoxyCompactItemize}
-\item
-\mbox{\Hypertarget{styles_8h_aa4ce510cafaf4b1caad7f55eb5522594}\label{styles_8h_aa4ce510cafaf4b1caad7f55eb5522594}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+bg}
-\item
-\mbox{\Hypertarget{styles_8h_af26db0f5effa5d01c617fcd1c143df9a}\label{styles_8h_af26db0f5effa5d01c617fcd1c143df9a}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+border}
-\item
-\mbox{\Hypertarget{styles_8h_aea6ad3a4a7db5894409261844cd0209a}\label{styles_8h_aea6ad3a4a7db5894409261844cd0209a}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+shade}
-\item
-\mbox{\Hypertarget{styles_8h_a3f9f7307ab9292c9acad6bad2204e213}\label{styles_8h_a3f9f7307ab9292c9acad6bad2204e213}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+primary}
-\item
-\mbox{\Hypertarget{styles_8h_a335387f502c4b89d94db0dbbcca88447}\label{styles_8h_a335387f502c4b89d94db0dbbcca88447}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+primary\+\_\+dark}
-\item
-\mbox{\Hypertarget{styles_8h_a0363d4524c3b0de34e1f0f0bd5f205fb}\label{styles_8h_a0363d4524c3b0de34e1f0f0bd5f205fb}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+text}
-\item
-\mbox{\Hypertarget{styles_8h_ac51a08197e29aad1299d1e9a4aa3d9d2}\label{styles_8h_ac51a08197e29aad1299d1e9a4aa3d9d2}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+bar}
-\item
-\mbox{\Hypertarget{styles_8h_a2eaab14874d6201e4d4071b44944d931}\label{styles_8h_a2eaab14874d6201e4d4071b44944d931}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+bar\+\_\+dark}
-\item
-\mbox{\Hypertarget{styles_8h_ac9ff5b8eecb7faafcaf61105aa169af3}\label{styles_8h_ac9ff5b8eecb7faafcaf61105aa169af3}}
-lv\+\_\+color\+\_\+t {\bfseries color\+\_\+bar\+\_\+outline}
-\item
-\mbox{\Hypertarget{styles_8h_ad423ca11b1c7dcc0eee69247abfbba89}\label{styles_8h_ad423ca11b1c7dcc0eee69247abfbba89}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bg}
-\item
-\mbox{\Hypertarget{styles_8h_a6f9c59681ff4af37b89188a953ac67bb}\label{styles_8h_a6f9c59681ff4af37b89188a953ac67bb}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+transp}
-\item
-\mbox{\Hypertarget{styles_8h_a49e3311301756ee8ee008b18ef084912}\label{styles_8h_a49e3311301756ee8ee008b18ef084912}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+list}
-\item
-\mbox{\Hypertarget{styles_8h_a55aa8f1df68090ecd4212698f34daf2a}\label{styles_8h_a55aa8f1df68090ecd4212698f34daf2a}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+list\+\_\+btn}
-\item
-\mbox{\Hypertarget{styles_8h_a0efa09e3a5e07ec826a17adb4f6428a2}\label{styles_8h_a0efa09e3a5e07ec826a17adb4f6428a2}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+list\+\_\+btn\+\_\+pr}
-\item
-\mbox{\Hypertarget{styles_8h_afa0f527b836d1c2049a69be3264ab367}\label{styles_8h_afa0f527b836d1c2049a69be3264ab367}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+btn}
-\item
-\mbox{\Hypertarget{styles_8h_a4a0620721328f5a640bb631f80f07e1c}\label{styles_8h_a4a0620721328f5a640bb631f80f07e1c}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+btn\+\_\+primary}
-\item
-\mbox{\Hypertarget{styles_8h_ace700c191d092163b076c1deac611394}\label{styles_8h_ace700c191d092163b076c1deac611394}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+btn\+\_\+primary\+\_\+pr}
-\item
-\mbox{\Hypertarget{styles_8h_ad406a6f7c5c63bc8cf27eeed4874af8e}\label{styles_8h_ad406a6f7c5c63bc8cf27eeed4874af8e}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+btn\+\_\+outline}
-\item
-\mbox{\Hypertarget{styles_8h_a16ead6159cbfcc69701f607603b44862}\label{styles_8h_a16ead6159cbfcc69701f607603b44862}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+btn\+\_\+outline\+\_\+pr}
-\item
-\mbox{\Hypertarget{styles_8h_a8baca2f921d201dd749e7d6b5f04a307}\label{styles_8h_a8baca2f921d201dd749e7d6b5f04a307}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+text\+\_\+mono}
-\item
-\mbox{\Hypertarget{styles_8h_a35a2ee613eaeb4d84ba1729bcd15f545}\label{styles_8h_a35a2ee613eaeb4d84ba1729bcd15f545}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+text\+\_\+small}
-\item
-\mbox{\Hypertarget{styles_8h_a09af78cfeba4db1172298beb76962135}\label{styles_8h_a09af78cfeba4db1172298beb76962135}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+text\+\_\+medium}
-\item
-\mbox{\Hypertarget{styles_8h_af04e13a7d82f7aa3f7f67ef136ba7971}\label{styles_8h_af04e13a7d82f7aa3f7f67ef136ba7971}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+text\+\_\+large}
-\item
-\mbox{\Hypertarget{styles_8h_a57d08a3e1cd52803ee71306e851455ad}\label{styles_8h_a57d08a3e1cd52803ee71306e851455ad}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+text\+\_\+centered}
-\item
-\mbox{\Hypertarget{styles_8h_aa57acd6e81b6b4bfca66fee72f70b840}\label{styles_8h_aa57acd6e81b6b4bfca66fee72f70b840}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+button}
-\item
-\mbox{\Hypertarget{styles_8h_ae6433108d4fc9ca9e3145fba5ba0c42f}\label{styles_8h_ae6433108d4fc9ca9e3145fba5ba0c42f}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+button\+\_\+pr}
-\item
-\mbox{\Hypertarget{styles_8h_aac727ebfe87278adf2373822ef60011f}\label{styles_8h_aac727ebfe87278adf2373822ef60011f}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+list}
-\item
-\mbox{\Hypertarget{styles_8h_a7bb8c5767cd2de266e70634d0e0557a8}\label{styles_8h_a7bb8c5767cd2de266e70634d0e0557a8}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+list\+\_\+btn}
-\item
-\mbox{\Hypertarget{styles_8h_a2348ba4af704908586e408a15dc81992}\label{styles_8h_a2348ba4af704908586e408a15dc81992}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+bg}
-\item
-\mbox{\Hypertarget{styles_8h_a88d238aed99f3de222e082cfcc0c6db5}\label{styles_8h_a88d238aed99f3de222e082cfcc0c6db5}}
-lv\+\_\+style\+\_\+t {\bfseries style\+\_\+bar\+\_\+modal}
-\end{DoxyCompactItemize}
-
-
-\doxysubsection{Detailed Description}
-Styles used by robodash.
-
diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty
deleted file mode 100644
index 60fd7e8..0000000
--- a/latex/tabu_doxygen.sty
+++ /dev/null
@@ -1,2557 +0,0 @@
-%%
-%% This is file `tabu.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% tabu.dtx (with options: `package')
-%%
-%% This is a generated file.
-%% Copyright (FC) 2010-2011 - lppl
-%%
-%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars
-%%
-%% **********************************************************************************************
-%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal
-%% \begin{tabu} to { preamble } => target specified
-%% \begin{tabu} spread { preamble } => target relative to the ``natural width''
-%%
-%% tabu works in text and in math modes.
-%%
-%% X columns: automatic width adjustment + horizontal and vertical alignment
-%% \begin{tabu} { X[4c] X[1c] X[-2ml] }
-%%
-%% Horizontal lines and / or leaders:
-%% \hline\hline => double horizontal line
-%% \firsthline\hline => for nested tabulars
-%% \lasthline\hline => for nested tabulars
-%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader)
-%% Automatic lines / leaders :
-%% \everyrow{\hline\hline}
-%%
-%% Vertical lines and / or leaders:
-%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }
-%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }
-%%
-%% Fixed vertical spacing adjustment:
-%% \extrarowheight= \extrarowdepth=
-%% or: \extrarowsep= => may be prefixed by \global
-%%
-%% Dynamic vertical spacing adjustment:
-%% \abovetabulinesep= \belowtabulinesep=
-%% or: \tabulinesep= => may be prefixed by \global
-%%
-%% delarray.sty shortcuts: in math and text modes
-%% \begin{tabu} .... \({ preamble }\)
-%%
-%% Algorithms reports:
-%% \tracingtabu=1 \tracingtabu=2
-%%
-%% **********************************************************************************************
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3 of this license or (at your option) any later
-%% version. The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This work consists of the main source file tabu.dtx
-%% and the derived files
-%% tabu.sty, tabu.pdf, tabu.ins
-%%
-%% tabu : Flexible LaTeX tabulars
-%% lppl copyright 2010-2011 by FC
-%%
-
-\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]
-\RequirePackage{array}[2008/09/09]
-\RequirePackage{varwidth}[2009/03/30]
-\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
-\let\tabu@AtEnd\@empty
-\def\TMP@EnsureCode#1={%
- \edef\tabu@AtEnd{\tabu@AtEnd
- \catcode#1 \the\catcode#1}%
- \catcode#1=%
-}% \TMP@EnsureCode
-\TMP@EnsureCode 33 = 12 % !
-\TMP@EnsureCode 58 = 12 % : (for siunitx)
-\TMP@EnsureCode124 = 12 % |
-\TMP@EnsureCode 36 = 3 % $ = math shift
-\TMP@EnsureCode 38 = 4 % & = tab alignment character
-\TMP@EnsureCode 32 = 10 % space
-\TMP@EnsureCode 94 = 7 % ^
-\TMP@EnsureCode 95 = 8 % _
-%% Constants --------------------------------------------------------
-\newcount \c@taburow \def\thetaburow {\number\c@taburow}
-\newcount \tabu@nbcols
-\newcount \tabu@cnt
-\newcount \tabu@Xcol
-\let\tabu@start \@tempcnta
-\let\tabu@stop \@tempcntb
-\newcount \tabu@alloc \tabu@alloc=\m@ne
-\newcount \tabu@nested
-\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc}
-\newdimen \tabu@target
-\newdimen \tabu@spreadtarget
-\newdimen \tabu@naturalX
-\newdimen \tabucolX
-\let\tabu@DELTA \@tempdimc
-\let\tabu@thick \@tempdima
-\let\tabu@on \@tempdimb
-\let\tabu@off \@tempdimc
-\newdimen \tabu@Xsum
-\newdimen \extrarowdepth
-\newdimen \abovetabulinesep
-\newdimen \belowtabulinesep
-\newdimen \tabustrutrule \tabustrutrule \z@
-\newtoks \tabu@thebody
-\newtoks \tabu@footnotes
-\newsavebox \tabu@box
-\newsavebox \tabu@arstrutbox
-\newsavebox \tabu@hleads
-\newsavebox \tabu@vleads
-\newif \iftabu@colortbl
-\newif \iftabu@siunitx
-\newif \iftabu@measuring
-\newif \iftabu@spread
-\newif \iftabu@negcoef
-\newif \iftabu@everyrow
-\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue}
-\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse}
-\newif \iftabu@long
-\newif \iftabuscantokens
-\def\tabu@rescan {\tabu@verbatim \scantokens }
-%% Utilities (for internal usage) -----------------------------------
-\def\tabu@gobblespace #1 {#1}
-\def\tabu@gobbletoken #1#2{#1}
-\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex}
-\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble
- \else\ifx \@sptoken\@let@token
- \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX
- \fi\fi
-}% \tabu@gobblex
-\def\tabu@X{^^J}
-{\obeyspaces
-\global\let\tabu@spxiii= % saves an active space (for \ifx)
-\gdef\tabu@@spxiii{ }}
-\def\tabu@ifenvir {% only for \multicolumn
- \expandafter\tabu@if@nvir\csname\@currenvir\endcsname
-}% \tabu@ifenvir
-\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else
- \ifx\longtabu#1first\else
- second\fi\fi oftwo\endcsname
-}% \tabu@ifenvir
-\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi}
-{\catcode`\&=3
-\gdef\tabu@strtrim #1{% #1 = control sequence to trim
- \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi
- \let\tabu@c@l@r \@empty \let#1\@empty
- \else \expandafter \tabu@trimspaces #1\@nnil
- \fi
-}% \tabu@strtrim
-\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }%
-\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&}
-\gdef\tabu@lastspace #1{\def #3{#1}%
- \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi
- \tabu@trimspaces #1\@nnil}
-}% \catcode
-\def\tabu@sanitizearg #1#2{{%
- \csname \ifcsname if@safe@actives\endcsname %
- @safe@activestrue\else
- relax\fi \endcsname
- \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2%
- \expandafter}\expandafter\def\expandafter#2\expandafter{#2}%
-}% \tabu@sanitizearg
-\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}%
- \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!!
-}% \tabu@textbar
-\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi}
-\def\tabu@everyrow@egroup{%
- \iftabu@everyrow \expandafter \endgroup \the\toks@
- \else \ifnum0=`{\fi}%
- \fi
-}% \tabu@everyrow@egroup
-\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule
- height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
- depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
- width \z@}%
-}% \tabu@arstrut
-\def\tabu@rearstrut {%
- \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax
- \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax
- \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima
- \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi
- \tabu@mkarstrut
- \fi
-}% \tabu@rearstrut
-\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi}
-\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox
- \hbox to\z@{\hbox to\z@{\hss
- {\tabu@DBG{cyan}\vrule
- height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
- depth \z@
- width \tabustrutrule}\kern-\tabustrutrule
- {\tabu@DBG{pink}\vrule
- height \z@
- depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
- width \tabustrutrule}}}%
-}% \tabu@DBG@arstrut
-\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
- \@nextchar}}%
-\def\tabu@savedecl{\ifcat$\d@llarend\else
- \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode
-}% \tabu@savedecl
-\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@}
-\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k }
-\let\tabu@trialh@@k \@empty
-\def\tabu@nowrite #1#{{\afterassignment}\toks@}
-\let\tabu@write\write
-\let\tabu@immediate\immediate
-\def\tabu@WRITE{\begingroup
- \def\immediate\write{\aftergroup\endgroup
- \tabu@immediate\tabu@write}%
-}% \tabu@WRITE
-\expandafter\def\expandafter\tabu@GenericError\expandafter{%
- \expandafter\tabu@WRITE\GenericError}
-\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}}
-\def\tabu@noxfootnote [#1]{\@gobble}
-\def\tabu@nocolor #1#{\@gobble}
-\newcommand*\tabu@norowcolor[2][]{}
-\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
- \futurelet\@let@token \tabu@m@ybesiunitx}
-\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {%
- \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi
- \tabu@temp}% \tabu@m@ybesiunitx
-}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname
-\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}%
-%% Fixed vertical spacing adjustment: \extrarowsep ------------------
-\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}%
- \iftabu@everyrow \aftergroup\tabu@Gextra
- \else \aftergroup\tabu@n@Gextra
- \fi
- \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra
-}% \extrarowsep
-\def\tabu@extra {\@ifnextchar_%
- {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}
- {\ifx ^\@let@token \def\tabu@temp{%
- \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}%
- \else \let\tabu@temp \@empty
- \afterassignment \tabu@setextrasep \extrarowdepth
- \fi \tabu@temp}%
-}% \tabu@extra
-\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2}
-\def\tabu@extr@ #1#2{\@ifnextchar^%
- {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}
- {\ifx _\@let@token \def\tabu@temp{%
- \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}%
- \else \let\tabu@temp \@empty
- \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
- \fi \tabu@temp}%
-}% \tabu@extr@
-\def\tabu@setextrasep {\extrarowheight=\extrarowdepth
- \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
-}% \tabu@setextrasep
-\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi}
-\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi}
-\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra}
-\let\tabu@C@extra \z@
-\let\tabu@G@extra \@empty
-%% Dynamic vertical spacing adjustment: \tabulinesep ----------------
-\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}%
- \iftabu@everyrow \aftergroup\tabu@Glinesep
- \else \aftergroup\tabu@n@Glinesep
- \fi
- \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep
-}% \tabulinesep
-\def\tabu@linesep {\@ifnextchar_%
- {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}
- {\ifx ^\@let@token \def\tabu@temp{%
- \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}%
- \else \let\tabu@temp \@empty
- \afterassignment \tabu@setlinesep \abovetabulinesep
- \fi \tabu@temp}%
-}% \tabu@linesep
-\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2}
-\def\tabu@sets@p #1#2{\@ifnextchar^%
- {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}
- {\ifx _\@let@token \def\tabu@temp{%
- \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}%
- \else \let\tabu@temp \@empty
- \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
- \fi \tabu@temp}%
-}% \tabu@sets@p
-\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep
- \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
-}% \tabu@setlinesep
-\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi}
-\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi}
-\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep}
-\let\tabu@C@linesep \z@
-\let\tabu@G@linesep \@empty
-%% \global\extrarowsep and \global\tabulinesep -------------------
-\def\tabu@Gsave #1#2#3#4{\xdef#1{#1%
- \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}%
-}% \tabu@Gsave
-\def\tabu@Grestore#1#2{%
- \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax
- \ifcat$\the\toks\currentgrouplevel$\else
- \global\let#1\@empty \global\let#2\z@
- \the\toks\currentgrouplevel
- \fi
-}% \tabu@Grestore
-%% Setting code for every row ---------------------------------------
-\newcommand*\everyrow{\tabu@everyrow@bgroup
- \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop
-}% \everyrow
-\def\tabu@evrstartstop {\@ifnextchar^%
- {\afterassignment \tabu@evrstartstop \tabu@stop=}%
- {\ifx ^\@let@token
- \afterassignment\tabu@evrstartstop \tabu@start=%
- \else \afterassignment\tabu@everyr@w \toks@
- \fi}%
-}% \tabu@evrstartstop
-\def\tabu@everyr@w {%
- \xdef\tabu@everyrow{%
- \noexpand\tabu@everyrowfalse
- \let\noalign \relax
- \noexpand\tabu@rowfontreset
- \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors
- \let\noexpand\tabu@docline \noexpand\tabu@docline@evr
- \the\toks@
- \noexpand\tabu@evrh@@k
- \noexpand\tabu@rearstrut
- \global\advance\c@taburow \@ne}%
- \iftabu@everyrow \toks@\expandafter
- {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}%
- \else \xdef\tabu@evr@G{\the\toks@}%
- \fi
- \tabu@everyrow@egroup
-}% \tabu@everyr@w
-\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only
-\tabu@evr{}
-%% line style and leaders -------------------------------------------
-\newcommand*\newtabulinestyle [1]{%
- {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}%
-}% \newtabulinestyle
-\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}%
- \tabu@sanitizearg {#1}\@tempa
- \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi
- \global\expandafter\let
- \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi
-}% \tabu@newlinestyle
-\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}%
- \iftabu@everyrow
- \toks@\expandafter{\expandafter \def \expandafter
- \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}%
- \gdef\tabu@ls@{\tabu@ls@L}%
- \else
- \global\let\tabu@ls@G \tabu@thestyle
- \gdef\tabu@ls@{\tabu@ls@G}%
- \fi
- \tabu@everyrow@egroup
-}% \tabulinestyle
-\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor}
-\def\tabu@rulecolor #1{\toks@{}%
- \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1%
- \tabu@temp
- \tabu@rulearc
-}% \tabu@rulecolor
-\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp
- \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}%
- \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}%
- \fi
- \tabu@temp
-}% \tabu@ruledrsc@
-\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}}
-\def\tabu@rule@drsc@ #1#2{%
- \iftabu@everyrow
- \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}%
- \else \toks@{\def\CT@drsc@{\color #1{#2}}}%
- \fi
- \else
- \ifx \\#1#2\\\global\let\CT@drsc@ \relax
- \else \gdef\CT@drsc@{\color #1{#2}}%
- \fi
- \fi
- \tabu@rulearc
-}% \tabu@rule@drsc@
-\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}}
-\def\tabu@rule@arc@ #1#2{%
- \iftabu@everyrow
- \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}%
- \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}%
- \fi
- \toks@\expandafter{\the\toks@
- \let\tabu@arc@L \CT@arc@
- \let\tabu@drsc@L \CT@drsc@
- \ignorespaces}%
- \else
- \ifx \\#1#2\\\gdef\CT@arc@{}%
- \else \gdef\CT@arc@{\color #1{#2}}%
- \fi
- \global\let\tabu@arc@G \CT@arc@
- \global\let\tabu@drsc@G \CT@drsc@
- \fi
- \tabu@everyrow@egroup
-}% \tabu@rule@arc@
-\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1}
-\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}}
-\def\tabu@rowc@lors #1#2#3{%
- \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil
- \@defaultunits \tabu@start =\number0#1\relax \@nnil
- \ifnum \count@<\tw@ \count@=\tw@ \fi
- \advance\tabu@start \m@ne
- \ifnum \tabu@start<\z@ \tabu@start \z@ \fi
- \tabu@rowcolorseries #3\in@..\in@ \@nnil
-}% \tabu@rowcolors
-\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {%
- \ifx \in@#1\relax
- \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}%
- \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@
- \fi
- \else
- \ifx \\#2\\\tabu@rowcolorserieserror \fi
- \tabu@sanitizearg{#1}\tabu@temp
- \tabu@sanitizearg{#2}\@tempa
- \advance\count@ \m@ne
- \iftabu@everyrow
- \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{%
- \ifnum ##2=\c@taburow
- \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi
- \ifnum \c@taburow<##2 \else
- \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@
- \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
- \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
- \rowcolor{tabu@rc@\the\tabu@nested}\fi}%
- }\edef\x{\noexpand\tabu@rc@ {\the\count@}
- {\the\tabu@start}
- {\tabu@temp}
- {\@tempa}%
- }\x
- \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}%
- \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}%
- \else % inside \noalign
- \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}%
- \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}%
- \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
- \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}%
- \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{%
- \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne
- \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
- \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
- \rowcolor{tabu@rc@\the\tabu@nested}}%
- }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x
- \global\let\tabu@rc@G \tabu@rc@
- \fi
- \fi
- \tabu@everyrow@egroup
-}% \tabu@rowcolorseries
-\tabuDisableCommands {\let\tabu@rc@ \@empty }
-\def\tabu@rowcolorserieserror {\PackageError{tabu}
- {Invalid syntax for \string\taburowcolors
- \MessageBreak Please look at the documentation!}\@ehd
-}% \tabu@rowcolorserieserror
-\newcommand*\tabureset {%
- \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@
- \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}%
-}% \tabureset
-%% Parsing the line styles ------------------------------------------
-\def\tabu@getline #1{\begingroup
- \csname \ifcsname if@safe@actives\endcsname %
- @safe@activestrue\else
- relax\fi \endcsname
- \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa
- \let\tabu@thestyle \relax
- \ifcsname tabu@linestyle@\@tempa \endcsname
- \edef\tabu@thestyle{\endgroup
- \def\tabu@thestyle{\expandafter\noexpand
- \csname tabu@linestyle@\@tempa\endcsname}%
- }\tabu@thestyle
- \else \expandafter\tabu@definestyle \tabu@temp \@nil
- \fi
-}% \tabu@getline
-\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter
- \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen
- \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined
- \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs
- \def\tabu@temp{\tabu@getparam{thick}}%
- \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}%
- \fi
- {%
- \let\tabu@ \relax
- \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-))
- \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}%
- \expandafter}\expandafter
- \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-)
- \def\;{\def\:}%
- \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10)
- \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-)
- \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi
- \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi
- \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi
- \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen
- \tabu@on \tabulineon \fi\fi
- \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen
- \tabu@off \tabulineoff \fi\fi
- \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi
- \in@true %
- \else \in@false %
- \fi
- \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}%
- \else \edef\tabu@thick{\the\tabu@thick}%
- \fi
- \edef \tabu@thestyle ##1##2{\endgroup
- \def\tabu@thestyle{%
- \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick}
- {\the\tabu@on}{##1}
- {\the\tabu@off}{##2}%
- \else \noexpand\tabu@rulesstyle
- {##1\vrule width \tabu@thick}%
- {##1\leaders \hrule height \tabu@thick \hfil}%
- \fi}%
- }\expandafter \expandafter
- \expandafter \tabu@thestyle \expandafter
- \expandafter \expandafter
- {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}%
-}% \tabu@definestyle
-{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active
- \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}}
- \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space}
-}% \catcode
-\def\tabu@oxiii #1{%
- \ifcase \ifx n#1\z@ \else
- \ifx f#1\@ne\else
- \tw@ \fi\fi
- \expandafter\tabu@onxiii
- \or \expandafter\tabu@ofxiii
- \else o%
- \fi#1}%
-\def\tabu@onxiii #1#2{%
- \ifcase \ifx !#2\tw@ \else
- \ifcat.\noexpand#2\z@ \else
- \ifx \tabu@spxiii#2\@ne\else
- \tw@ \fi\fi\fi
- \tabu@getparam{on}#2\expandafter\@gobble
- \or \expandafter\tabu@onxiii % (space is active)
- \else o\expandafter\@firstofone
- \fi{#1#2}}%
-\def\tabu@ofxiii #1#2{%
- \ifx #2f\expandafter\tabu@offxiii
- \else o\expandafter\@firstofone
- \fi{#1#2}}
-\def\tabu@offxiii #1#2{%
- \ifcase \ifx !#2\tw@ \else
- \ifcat.\noexpand#2\z@ \else
- \ifx\tabu@spxiii#2\@ne \else
- \tw@ \fi\fi\fi
- \tabu@getparam{off}#2\expandafter\@gobble
- \or \expandafter\tabu@offxiii % (space is active)
- \else o\expandafter\@firstofone
- \fi{#1#2}}
-\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=}
-\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef
- \ifx \tabu@#1\else % no more spec
- \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi
-}% \tabu@getcolor
-\def\tabu@getc@l@r #1\tabu@ {%
- \def\tabu@temp{#1}\tabu@strtrim \tabu@temp
- \ifx \tabu@temp\@empty
- \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists
- \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r
- \else \let\tabu@c@lon \tabu@c@l@r
- \fi
- %\else \tabu@warncolour{\tabu@temp}%
- \fi%\fi
- \tabu@ % next spec
-}% \tabu@getc@l@r
-\def\tabu@warncolour #1{\PackageWarning{tabu}
- {Color #1 is not defined. Default color used}%
-}% \tabu@warncolour
-\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%
- \ifx \tabu@leaders\tabu@leaders@G \else
- \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi
-}% \tabu@leadersstyle
-\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined
- \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}%
-}% \tabu@rulesstyle
-%% The leaders boxes ------------------------------------------------
-\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color
- {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor
- {% % but the leaders boxes should have colors !
- \def\@therule{\vrule}\def\@thick{height}\def\@length{width}%
- \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}%
- \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}%
- \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
- \global\let\tabu@thehleaders \tabu@theleaders
- }%
- {%
- \def\@therule{\hrule}\def\@thick{width}\def\@length{height}%
- \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}%
- \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}%
- \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
- \global\let\tabu@thevleaders \tabu@theleaders
- }%
- \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%
- }%
-}% \tabu@LEADERS
-\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@}
-\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color
- \global\setbox \tabu@leads=\@box{%
- {#3\tabu@therule{#1}{#2}}%
- \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi
- {#3\tabu@therule{#1}{#2}}}%
- \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss
- {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}%
- \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {%
- {##1\tabu@therule{#1}{#2}}%
- \xleaders \copy\tabu@leads \@ss
- \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}%
- }\tabu@theleaders{#3}%
-}% \tabu@l@@d@rs
-%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
-\newcommand*\tabu {\tabu@longfalse
- \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
- \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
- \expandafter\let\csname tabu*\endcsname \tabu
- \expandafter\def\csname endtabu*\endcsname{\endtabu}%
- \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
-}% {tabu}
-\let\tabu@tabular \tabular %
-\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu}
-\newcommand*\longtabu {\tabu@longtrue
- \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
- \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
- \LTchunksize=\@M
- \expandafter\let\csname tabu*\endcsname \tabu
- \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}%
- \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
- \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
-}% {longtabu}
-\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu}
-\def\tabu@nolongtabu{\PackageError{tabu}
- {longtabu requires the longtable package}\@ehd}
-%% Read the target and then : \tabular or \@array ------------------
-\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
-\def\tabu@sett@rget {\tabu@target \z@
- \ifcase \ifx \bgroup\@let@token \z@ \else
- \ifx \@sptoken\@let@token \@ne \else
- \if t\@let@token \tw@ \else
- \if s\@let@token \thr@@\else
- \z@\fi\fi\fi\fi
- \expandafter\tabu@begin
- \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget
- \or \expandafter\tabu@to
- \or \expandafter\tabu@spread
- \fi
-}% \tabu@sett@rget
-\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget}
-\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget}
-\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target }
-\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget }
-\def\tabu@linegoalt@rget {%
- \ifx \tabu@temp\LNGL@setlinegoal
- \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal
- \tabu@begin
-}% \tabu@linegoalt@rget
-\def\tabu@begin #1#{%
- \iftabu@measuring \expandafter\tabu@nestedmeasure \fi
- \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty
- \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}%
- \fi
- \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil
-}% \tabu@begin
-\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup
- \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}%
- \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }%
-}% \tabu@tabu@
-\def\tabu@nestedmeasure {%
- \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax
- \tabu@spreadtrue
- \else \begingroup \iffalse{\fi \ifnum0=`}\fi
- \toks@{}\def\tabu@stack{b}%
- \expandafter\tabu@collectbody\expandafter\tabu@quickrule
- \expandafter\endgroup
- \fi
-}% \tabu@nestedmeasure
-\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target}
-%% \tabu@setup \tabu@init \tabu@indent
-\def\tabu@setup{\tabu@alloc@
- \ifcase \tabu@nested
- \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@
- \let\tabu@afterendpar \par
- \fi\fi\fi
- \def\tabu@aligndefault{c}\tabu@init \tabu@indent
- \else %
- \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth
- \fi
- \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined
- \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}%
- \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu...
- \let\@endpbox \tabu@endpbox % idem " " " " " "
- \let\@tabarray \tabu@tabarray % idem " " " " " "
- \tabu@setcleanup \tabu@setreset
-}% \tabu@setup
-\def\tabu@init{\tabu@starttimer \tabu@measuringfalse
- \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}%
- \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline
- \let\firstline \tabu@firstline \let\lastline \tabu@lastline
- \let\hline \tabu@hline \let\@xhline \tabu@xhline
- \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox
- \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi
- \tabu@trivlist %
- \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext
- \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering
- \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft
- \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering
- \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft
- \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont
- \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x
- \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar
- \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok
- \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn
- \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!!
- \let\tabu@endpbox \@endpbox % idem " " " " " " "
- \let\tabu@tabarray \@tabarray % idem " " " " " " "
- \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray)
- \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi
-}% \tabu@init
-\def\tabu@indent{% correction for indentation
- \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget
- \everypar\expandafter{%
- \the\everypar\everypar\expandafter{\the\everypar}%
- \setbox\z@=\lastbox
- \ifdim\wd\z@>\z@ \edef\tabu@thetarget
- {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi
- \box\z@}%
- \fi\fi
-}% \tabu@indent
-\def\tabu@setcleanup {% saves last global assignments
- \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax
- \def\tabu@aftergroupcleanup{%
- \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}%
- \else
- \def\tabu@aftergroupcleanup{%
- \aftergroup\aftergroup\aftergroup\tabu@cleanup
- \let\tabu@aftergroupcleanup \relax}%
- \fi
- \let\tabu@arc@Gsave \tabu@arc@G
- \let\tabu@arc@G \tabu@arc@L %
- \let\tabu@drsc@Gsave \tabu@drsc@G
- \let\tabu@drsc@G \tabu@drsc@L %
- \let\tabu@ls@Gsave \tabu@ls@G
- \let\tabu@ls@G \tabu@ls@L %
- \let\tabu@rc@Gsave \tabu@rc@G
- \let\tabu@rc@G \tabu@rc@L %
- \let\tabu@evr@Gsave \tabu@evr@G
- \let\tabu@evr@G \tabu@evr@L %
- \let\tabu@celllalign@save \tabu@celllalign
- \let\tabu@cellralign@save \tabu@cellralign
- \let\tabu@cellleft@save \tabu@cellleft
- \let\tabu@cellright@save \tabu@cellright
- \let\tabu@@celllalign@save \tabu@@celllalign
- \let\tabu@@cellralign@save \tabu@@cellralign
- \let\tabu@@cellleft@save \tabu@@cellleft
- \let\tabu@@cellright@save \tabu@@cellright
- \let\tabu@rowfontreset@save \tabu@rowfontreset
- \let\tabu@@rowfontreset@save\tabu@@rowfontreset
- \let\tabu@rowfontreset \@empty
- \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset
- \edef\c@taburow@save {\the\c@taburow}%
- \edef\tabu@naturalX@save {\the\tabu@naturalX}%
- \let\tabu@naturalXmin@save \tabu@naturalXmin
- \let\tabu@naturalXmax@save \tabu@naturalXmax
- \let\tabu@mkarstrut@save \tabu@mkarstrut
- \edef\tabu@clarstrut{%
- \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax
- \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax
- \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}%
-}% \tabu@setcleanup
-\def\tabu@cleanup {\begingroup
- \globaldefs\@ne \tabu@everyrowtrue
- \let\tabu@arc@G \tabu@arc@Gsave
- \let\CT@arc@ \tabu@arc@G
- \let\tabu@drsc@G \tabu@drsc@Gsave
- \let\CT@drsc@ \tabu@drsc@G
- \let\tabu@ls@G \tabu@ls@Gsave
- \let\tabu@ls@ \tabu@ls@G
- \let\tabu@rc@G \tabu@rc@Gsave
- \let\tabu@rc@ \tabu@rc@G
- \let\CT@do@color \relax
- \let\tabu@evr@G \tabu@evr@Gsave
- \let\tabu@celllalign \tabu@celllalign@save
- \let\tabu@cellralign \tabu@cellralign@save
- \let\tabu@cellleft \tabu@cellleft@save
- \let\tabu@cellright \tabu@cellright@save
- \let\tabu@@celllalign \tabu@@celllalign@save
- \let\tabu@@cellralign \tabu@@cellralign@save
- \let\tabu@@cellleft \tabu@@cellleft@save
- \let\tabu@@cellright \tabu@@cellright@save
- \let\tabu@rowfontreset \tabu@rowfontreset@save
- \let\tabu@@rowfontreset \tabu@@rowfontreset@save
- \tabu@naturalX =\tabu@naturalX@save
- \let\tabu@naturalXmax \tabu@naturalXmax@save
- \let\tabu@naturalXmin \tabu@naturalXmin@save
- \let\tabu@mkarstrut \tabu@mkarstrut@save
- \c@taburow =\c@taburow@save
- \ifcase \tabu@nested \tabu@alloc \m@ne\fi
- \endgroup %
- \ifcase \tabu@nested
- \the\tabu@footnotes \global\tabu@footnotes{}%
- \tabu@afterendpar \tabu@elapsedtime
- \fi
- \tabu@clarstrut
- \everyrow\expandafter {\tabu@evr@G}%
-}% \tabu@cleanup
-\let\tabu@afterendpar \relax
-\def\tabu@setreset {%
- \edef\tabu@savedparams {% \relax for \tabu@message@save
- \ifmmode \col@sep \the\arraycolsep
- \else \col@sep \the\tabcolsep \fi \relax
- \arrayrulewidth \the\arrayrulewidth \relax
- \doublerulesep \the\doublerulesep \relax
- \extratabsurround \the\extratabsurround \relax
- \extrarowheight \the\extrarowheight \relax
- \extrarowdepth \the\extrarowdepth \relax
- \abovetabulinesep \the\abovetabulinesep \relax
- \belowtabulinesep \the\belowtabulinesep \relax
- \def\noexpand\arraystretch{\arraystretch}%
- \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}%
- \begingroup
- \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu
- \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi
- \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi
- \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L
- \expandafter \endgroup \expandafter
- \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena
- \let\tabu@arc@G \tabu@arc@L
- \let\tabu@drsc@G \tabu@drsc@L
- \let\tabu@ls@G \tabu@ls@L
- \let\tabu@rc@G \tabu@rc@L
- \let\tabu@evr@G \tabu@evr@L}%
- \def\tabu@reset{\tabu@savedparams
- \tabu@everyrowtrue \c@taburow \z@
- \let\CT@arc@ \tabu@arc@L
- \let\CT@drsc@ \tabu@drsc@L
- \let\tabu@ls@ \tabu@ls@L
- \let\tabu@rc@ \tabu@rc@L
- \global\tabu@alloc \tabu@alloc@save
- \everyrow\expandafter{\tabu@evr@L}}%
-}% \tabu@reset
-\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}}
-\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}}
-%% The Rewriting Process -------------------------------------------
-\def\tabu@newcolumntype #1{%
- \expandafter\tabu@new@columntype
- \csname NC@find@\string#1\expandafter\endcsname
- \csname NC@rewrite@\string#1\endcsname
- {#1}%
-}% \tabu@newcolumntype
-\def\tabu@new@columntype #1#2#3{%
- \def#1##1#3{\NC@{##1}}%
- \let#2\relax \newcommand*#2%
-}% \tabu@new@columntype
-\def\tabu@privatecolumntype #1{%
- \expandafter\tabu@private@columntype
- \csname NC@find@\string#1\expandafter\endcsname
- \csname NC@rewrite@\string#1\expandafter\endcsname
- \csname tabu@NC@find@\string#1\expandafter\endcsname
- \csname tabu@NC@rewrite@\string#1\endcsname
- {#1}%
-}% \tabu@privatecolumntype
-\def\tabu@private@columntype#1#2#3#4{%
- \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}%
- \tabu@new@columntype#3#4%
-}% \tabu@private@columntype
-\let\tabu@privatecolumns \@empty
-\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
- \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
- \NC@do #1}}%
-\let\tabu@highprioritycolumns \@empty
-%% The | ``column'' : rewriting process --------------------------
-\tabu@privatecolumntype |{\tabu@rewritevline}
-\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
- \expandafter \NC@find \tabu@rewritten}
-\def\tabu@lines #1{%
- \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi
- \NC@list\expandafter{\the\NC@list \NC@do #1}%
-}% \tabu@lines@
-\def\tabu@vlinearg #1{%
- \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}%
- \else\tabu@getline {#1}%
- \fi
- \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}%
- }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}%
- \expandafter \tabu@keepls \tabu@thestyle \@nil
-}% \tabu@vlinearg
-\def\tabu@keepls #1\@nil{%
- \ifcat $\@cdr #1\@nil $%
- \ifx \relax#1\else
- \ifx \tabu@ls@#1\else
- \let#1\relax
- \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
- \tabu@savels\noexpand#1}\fi\fi\fi
-}% \tabu@keepls
-\def\tabu@thevline {\begingroup
- \ifdefined\tabu@leaders
- \setbox\@tempboxa=\vtop to\dimexpr
- \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}%
- \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox
- \box\@tempboxa
- \else
- \tabu@thevrule
- \fi \endgroup
-}% \tabu@thevline
-\def\tabu@savels #1{%
- \expandafter\let\csname\string#1\endcsname #1%
- \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset
- \tabu@resetls#1}}%
-\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}%
-%% \multicolumn inside tabu environment -----------------------------
-\tabu@newcolumntype \tabu@rewritemulticolumn{%
- \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group
- \NC@list{\NC@do *}\tabu@textbar \tabu@lines
- \tabu@savedecl
- \tabu@privatecolumns
- \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}%
- \let\tabu@savels \relax
- \NC@find
-}% \tabu@rewritemulticolumn
-\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup}
-\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI}
-\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup
- \tabu@everyrowtrue
- \NC@list{\NC@do \tabu@rewritemulticolumn}%
- \expandafter\@gobbletwo % gobbles \multispan{#1}
- \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}%
- {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
- {#3}}%
-}% \tabu@multic@lumn
-%% The X column(s): rewriting process -----------------------------
-\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
-\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
-\def\tabu@siunitx #1{\@ifnextchar \bgroup
- {\tabu@rewriteX@Ss{#1}}
- {\tabu@nosiunitx{#1}}}
-\def\tabu@rewriteX@Ss #1#2{\@temptokena{}%
- \@defaultunits \let\tabu@temp =#2\relax\@nnil
- \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi
- \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}%
- }\expandafter\NC@find \the\@temptokena \relax
- }\expandafter\NC@rewrite@S \@gobble #2\relax
- \else \tabu@siunitxerror
- \fi
- \expandafter \NC@find \tabu@rewritten
-}% \tabu@rewriteX@Ss
-\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column !
- \MessageBreak X column can only embed siunitx S or s columns}\@ehd
-}% \tabu@siunitxerror
-\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}%
- \iftabu@measuring
- \else \tabu@measuringtrue % first X column found in the preamble
- \let\@halignto \relax \let\tabu@halignto \relax
- \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@
- \else \tabu@spreadtarget \z@ \fi
- \ifdim \tabu@target=\z@
- \setlength\tabu@target \tabu@thetarget
- \tabu@message{\tabu@message@defaulttarget}%
- \else \tabu@message{\tabu@message@target}\fi
- \fi
-}% \tabu@rewriteX
-\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax
- \def\tabu@rewritten{l}}
-\def\tabu@Xarg #1#2#3{%
- \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty
- \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty
- \ifx\\#1\\%
- \def\tabu@rewritten{p}\tabucolX \p@ %
- \else
- \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@
- \tabu@Xparse {}#1\relax
- \fi
- \tabu@Xrewritten{#2}{#3}%
-}% \tabu@Xarg
-\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest}
-\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}}
-\def\tabu@Xtest{%
- \ifcase \ifx \relax\@let@token \z@ \else
- \if ,\@let@token \m@ne\else
- \if p\@let@token 1\else
- \if m\@let@token 2\else
- \if b\@let@token 3\else
- \if l\@let@token 4\else
- \if c\@let@token 5\else
- \if r\@let@token 6\else
- \if j\@let@token 7\else
- \if L\@let@token 8\else
- \if C\@let@token 9\else
- \if R\@let@token 10\else
- \if J\@let@token 11\else
- \ifx \@sptoken\@let@token 12\else
- \if .\@let@token 13\else
- \if -\@let@token 13\else
- \ifcat $\@let@token 14\else
- 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
- \or \tabu@Xtype {p}%
- \or \tabu@Xtype {m}%
- \or \tabu@Xtype {b}%
- \or \tabu@Xalign \raggedright\relax
- \or \tabu@Xalign \centering\relax
- \or \tabu@Xalign \raggedleft\relax
- \or \tabu@Xalign \tabu@justify\relax
- \or \tabu@Xalign \RaggedRight\raggedright
- \or \tabu@Xalign \Centering\centering
- \or \tabu@Xalign \RaggedLeft\raggedleft
- \or \tabu@Xalign \justifying\tabu@justify
- \or \expandafter \tabu@Xparsespace
- \or \expandafter \tabu@Xcoef
- \or \expandafter \tabu@Xm@th
- \or \tabu@Xcoef{}%
- \else\expandafter \tabu@Xparse
- \fi
-}% \tabu@Xtest
-\def\tabu@Xalign #1#2{%
- \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu}
- {Duplicate horizontal alignment specification}\fi
- \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax
- \else \def\tabu@Xlcr{#2}\let#2\relax\fi
- \expandafter\tabu@Xparse
-}% \tabu@Xalign
-\def\tabu@Xtype #1{%
- \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu}
- {Duplicate vertical alignment specification}\fi
- \def\tabu@rewritten{#1}\expandafter\tabu@Xparse
-}% \tabu@Xtype
-\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}%
- \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi
-}% \tabu@Xcoef
-\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@
- \tabu@Xparse{}%
-}% \tabu@Xc@ef
-\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp}
-\def\tabu@Xd@sp{\let\tabu@Xmath=$%
- \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}%
- \expandafter\tabu@Xparse
- \else \expandafter\tabu@Xparse\expandafter{\expandafter}%
- \fi
-}% \tabu@Xd@sp
-\def\tabu@Xrewritten {%
- \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi
- \ifdim \tabucolX<\z@ \tabu@negcoeftrue
- \else\ifdim \tabucolX=\z@ \tabucolX \p@
- \fi\fi
- \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}%
- \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}%
- \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{%
- >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}%
- \tabu@rewritten {\tabu@hsize \tabu@temp}%
- <{##2\ifx$\tabu@Xmath$\fi}}%
- }\tabu@rewritten
-}% \tabu@Xrewritten
-\def\tabu@hsize #1#2{%
- \ifdim #2\p@<\z@
- \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else
- \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi
- \fi
- \else #2\tabucolX
- \fi
-}% \tabu@hsize
-%% \usetabu and \preamble: rewriting process ---------------------
-\tabu@privatecolumntype \usetabu [1]{%
- \ifx\\#1\\\tabu@saveerr{}\else
- \@ifundefined{tabu@saved@\string#1}
- {\tabu@saveerr{#1}}
- {\let\tabu@rewriteX \tabu@rewriteXrestore
- \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}%
- \fi
-}% \NC@rewrite@\usetabu
-\tabu@privatecolumntype \preamble [1]{%
- \ifx\\#1\\\tabu@saveerr{}\else
- \@ifundefined{tabu@saved@\string#1}
- {\tabu@saveerr{#1}}
- {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}%
- \fi
-}% \NC@rewrite@\preamble
-%% Controlling the rewriting process -------------------------------
-\tabu@newcolumntype \tabu@rewritefirst{%
- \iftabu@long \aftergroup \tabu@longpream %
- \else \aftergroup \tabu@pream
- \fi
- \let\tabu@ \relax \let\tabu@hsize \relax
- \let\tabu@Xcoefs \@empty \let\tabu@savels \relax
- \tabu@Xcol \z@ \tabu@cnt \tw@
- \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse
- \global\setbox\@arstrutbox \box\@arstrutbox
- \NC@list{\NC@do *}\tabu@textbar \tabu@lines
- \NC@list\expandafter{\the\NC@list \NC@do X}%
- \iftabu@siunitx %
- \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi
- \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}%
- \expandafter\def\expandafter\tabu@NC@list\expandafter{%
- \the\expandafter\NC@list \tabu@NC@list}% % * | X S
- \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu
- \expandafter \NC@do \expandafter\preamble
- \the\NC@list \NC@do \tabu@rewritemiddle
- \NC@do \tabu@rewritelast}%
- \tabu@savedecl
- \tabu@privatecolumns
- \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle
-}% NC@rewrite@\tabu@rewritefirst
-\tabu@newcolumntype \tabu@rewritemiddle{%
- \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast
-}% \NC@rewrite@\tabu@rewritemiddle
-\tabu@newcolumntype \tabu@rewritelast{%
- \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne
- \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle
- \NC@do \tabu@rewritelast}%
- \else \let\tabu@prev\tabu@temp
- \fi
- \ifcase \tabu@cnt \expandafter\tabu@endrewrite
- \else \expandafter\NC@find \expandafter\tabu@rewritemiddle
- \fi
-}% \NC@rewrite@\tabu@rewritelast
-%% Choosing the strategy --------------------------------------------
-\def\tabu@endrewrite {%
- \let\tabu@temp \NC@find
- \ifx \@arrayright\relax \let\@arrayright \@empty \fi
- \count@=%
- \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print
- \iftabu@measuring
- \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
- \tabu@target \csname tabu@\the\tabu@nested.T\endcsname
- \tabucolX \csname tabu@\the\tabu@nested.X\endcsname
- \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}%
- \fi
- \else\iftabu@measuring 4 % X columns
- \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer
- \tabu@target \the\tabu@target
- \tabu@spreadtarget \the\tabu@spreadtarget}%
- \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}%
- \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}%
- \let\tabu@Xcoefs \relax
- \else\ifcase\tabu@nested \thr@@ % outer, no X
- \global\let\tabu@afterendpar \relax
- \else \@ne % inner, no X, outer in mode 1 or 2
- \fi
- \ifdefined\tabu@usetabu
- \else \ifdim\tabu@target=\z@
- \else \let\tabu@temp \tabu@extracolsep
- \fi\fi
- \fi
- \fi
- \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}%
- \tabu@temp
-}% \tabu@endrewrite
-\def\tabu@extracolsep{\@defaultunits \expandafter\let
- \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil
- \ifx \tabu@temp\@sptoken
- \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep
- \else
- \edef\tabu@temp{\noexpand\NC@find
- \if |\noexpand\tabu@temp @%
- \else\if !\noexpand\tabu@temp @%
- \else !%
- \fi\fi
- {\noexpand\extracolsep\noexpand\@flushglue}}%
- \fi
- \tabu@temp
-}% \tabu@extrac@lsep
-%% Implementing the strategy ----------------------------------------
-\long\def\tabu@pream #1\@preamble {%
- \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup
- \NC@list\expandafter {\tabu@NC@list}% in case of nesting...
- \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi
- \let\tabu@savedpreamble \@preamble
- \global\let\tabu@elapsedtime \relax
- \tabu@thebody ={#1\tabu@aftergroupcleanup}%
- \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody
- \@preamble}%
- \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
- \tabu@select
-}% \tabu@pream
-\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{%
- \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup
- \NC@list\expandafter {\tabu@NC@list}% in case of nesting...
- \let\tabu@savedpreamble \@preamble
- \global\let\tabu@elapsedtime \relax
- \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}%
- \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
- \tabu@select
-}% \tabu@longpream
-\def\tabu@select {%
- \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi
- \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi
- \ifcase \count@
- \global\let\tabu@elapsedtime \relax
- \tabu@seteverycr
- \expandafter \tabuthepreamble % vertical adjustment (inherited from outer)
- \or % exit in vertical measure + struts per cell because no X and outer in mode 3
- \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
- \def\tabu@cellralign{\tabu@verticalspacing}%
- \tabu@seteverycr
- \expandafter \tabuthepreamble
- \or % exit without measure because no X and outer in mode 4
- \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
- \tabu@seteverycr
- \expandafter \tabuthepreamble
- \else % needs trials
- \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
- \tabu@savecounters
- \expandafter \tabu@setstrategy
- \fi
-}% \tabu@select
-\def\tabu@@ {\gdef\tabu@mkpreambuffer}
-%% Protections to set up before trials ------------------------------
-\def\tabu@setstrategy {\begingroup %
- \tabu@trialh@@k \tabu@cnt \z@ % number of trials
- \hbadness \@M \let\hbadness \@tempcnta
- \hfuzz \maxdimen \let\hfuzz \@tempdima
- \let\write \tabu@nowrite\let\GenericError \tabu@GenericError
- \let\savetabu \@gobble \let\tabudefaulttarget \linewidth
- \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote
- \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor
- \let\tabu@aftergroupcleanup \relax % only after the last trial
- \tabu@mkpreambuffer
- \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init
- \def\tabu@lasttry{\m@ne\p@}\fi
- \begingroup \iffalse{\fi \ifnum0=`}\fi
- \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi %
- \tabu@collectbody \tabu@strategy %
-}% \tabu@setstrategy
-\def\tabu@savecounters{%
- \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}%
- \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax
-}% \tabu@savecounters
-\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0)
- \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs
- \ifdim \dimen@>\z@
- \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax
- \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
- \fi
-}% \tabucolX@init
-\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum
- \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@
- \else -#2\p@ \tabu@negcoeftrue
- \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax
- \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
- \tabu@wddef{#1}{0pt}%
- \fi
-}% \tabu@Xinit
-%% Collecting the environment body ----------------------------------
-\long\def\tabu@collectbody #1#2\end #3{%
- \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
- \ifx \tabu@stack\@empty
- \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
- \def\tabu@end@envir{\end{#3}}%
- \iftabuscantokens
- \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}%
- \else \def\tabu@endenvir {\let\endarray \@empty
- \end{#3}\tabu@gobbleX}%
- \fi
- \else \def\tabu@endenvir {\end{#3}}\fi}%
- \let\tabu@collectbody \tabu@endofcollect
- \else\def\tabu@temp{#3}%
- \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }%
- \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}%
- \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}%
- \else \toks@\expandafter{\the\toks@ #2\end{#3}}%
- \fi\fi\fi
- \fi
- \tabu@collectbody{#1}%
-}% \tabu@collectbody
-\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}%
-\def\tabu@endofcollect #1{\ifnum0=`{}\fi
- \expandafter\endgroup \the\toks@ #1%
-}% \tabu@endofcollect
-%% The trials: switching between strategies -------------------------
-\def\tabu@strategy {\relax % stops \count@ assignment !
- \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished)
- \expandafter \tabu@endoftrials
- \or % case 1 = exit in vertical measure (outer in mode 3)
- \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}%
- \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}%
- \expandafter \tabu@endoftrials
- \or % case 2 = exit with a rule replacing the table (outer in mode 4)
- \expandafter \tabu@quickend
- \or % case 3 = outer is in mode 3 because of no X
- \begingroup
- \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
- \def\tabu@cellralign{\tabu@verticalspacing}%
- \expandafter \tabu@measuring
- \else % case 4 = horizontal measure
- \begingroup
- \global\let\tabu@elapsedtime \tabu@message@etime
- \long\def\multicolumn##1##2##3{\multispan{##1}}%
- \let\tabu@startpboxORI \@startpbox
- \iftabu@spread
- \def\tabu@naturalXmax {\z@}%
- \let\tabu@naturalXmin \tabu@naturalXmax
- \tabu@evr{\global\tabu@naturalX \z@}%
- \let\@startpbox \tabu@startpboxmeasure
- \else\iftabu@negcoef
- \let\@startpbox \tabu@startpboxmeasure
- \else \let\@startpbox \tabu@startpboxquick
- \fi\fi
- \expandafter \tabu@measuring
- \fi
-}% \tabu@strategy
-\def\tabu@measuring{\expandafter \tabu@trial \expandafter
- \count@ \the\count@ \tabu@endtrial
-}% \tabu@measuring
-\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi}
-\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
- \ifx \tabu@savecounters\relax \else
- \let\tabu@savecounters \relax \tabu@clckpt \fi
- $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
- \expandafter{\expandafter \tabuthepreamble
- \the\tabu@thebody
- \csname tabu@adl@endtrial\endcsname
- \endarray}$\egroup % got \tabu@box
-}% \tabu@shorttrial
-\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
- \ifx \tabu@savecounters\relax \else
- \let\tabu@savecounters \relax \tabu@clckpt \fi
- \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
- \expandafter{\expandafter \tabuthepreamble
- \the\tabu@thebody
- \tabuendlongtrial}\egroup % got \tabu@box
-}% \tabu@longtrial
-\def\tabuendlongtrial{% no @ allowed for \scantokens
- \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne
- \LT@get@widths
-}% \tabuendlongtrial
-\def\tabu@adl@endtrial{%
- \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails !
-\def\tabu@seteverycr {\tabu@reset
- \everycr \expandafter{\the\everycr \tabu@everycr}%
- \let\everycr \tabu@noeverycr %
-}% \tabu@seteverycr
-\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@}
-\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr}
-\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi}
-\def\tabu@endoftrials {%
- \iftabuscantokens \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo
- \fi
- {\expandafter \tabu@closetrialsgroup \expandafter
- \tabu@rescan \expandafter{%
- \expandafter\tabuthepreamble
- \the\expandafter\tabu@thebody
- \iftabu@long \else \endarray \fi}}
- {\expandafter\tabu@closetrialsgroup \expandafter
- \tabuthepreamble
- \the\tabu@thebody}%
- \tabu@endenvir % Finish !
-}% \tabu@endoftrials
-\def\tabu@closetrialsgroup {%
- \toks@\expandafter{\tabu@endenvir}%
- \edef\tabu@bufferX{\endgroup
- \tabucolX \the\tabucolX
- \tabu@target \the\tabu@target
- \tabu@cnt \the\tabu@cnt
- \def\noexpand\tabu@endenvir{\the\toks@}%
- %Quid de \@halignto = \tabu@halignto ??
- }% \tabu@bufferX
- \tabu@bufferX
- \ifcase\tabu@nested % print out (outer in mode 0)
- \global\tabu@cnt \tabu@cnt
- \tabu@evr{\tabu@verticaldynamicadjustment}%
- \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty
- \let\@finalstrut \tabu@finalstrut
- \else % vertical measure of nested tabu
- \tabu@evr{\tabu@verticalinit}%
- \tabu@celllalign@def{\tabu@verticalmeasure}%
- \def\tabu@cellralign{\tabu@verticalspacing}%
- \fi
- \tabu@clckpt \let\@halignto \tabu@halignto
- \let\@halignto \@empty
- \tabu@seteverycr
- \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@
- \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts)
- \fi\fi
-}% \tabu@closetrialsgroup
-\def\tabu@quickend {\expandafter \endgroup \expandafter
- \tabu@target \the\tabu@target \tabu@quickrule
- \let\endarray \relax \tabu@endenvir
-}% \tabu@quickend
-\def\tabu@endtrial {\relax % stops \count@ assignment !
- \ifcase \count@ \tabu@err % case 0 = impossible here
- \or \tabu@err % case 1 = impossible here
- \or \tabu@err % case 2 = impossible here
- \or % case 3 = outer goes into mode 0
- \def\tabu@bufferX{\endgroup}\count@ \z@
- \else % case 4 = outer goes into mode 3
- \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3)
- \else \tabu@arith % or 2 (outer in mode 4)
- \fi
- \count@=%
- \ifcase\tabu@nested \thr@@ % outer goes into mode 3
- \else\iftabu@measuring \tw@ % outer is in mode 4
- \else \@ne % outer is in mode 3
- \fi\fi
- \edef\tabu@bufferX{\endgroup
- \tabucolX \the\tabucolX
- \tabu@target \the\tabu@target}%
- \fi
- \expandafter \tabu@bufferX \expandafter
- \count@ \the\count@ \tabu@strategy
-}% \tabu@endtrial
-\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}}
-%% The algorithms: compute the widths / stop or go on ---------------
-\def\tabu@arithnegcoef {%
- \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs
-}% \tabu@arithnegcoef
-\def\tabu@arith@negcoef #1#2{%
- \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition
- \advance\@tempdima #2\tabucolX
- \else
- \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated
- \advance\dimen@ -#2\p@
- \advance\@tempdima -#2\tabucolX
- \else
- \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised
- \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised
- \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target)
- \fi
- \fi
- \fi
-}% \tabu@arith@negcoef
-\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
- \ifdim \@tempdima=\z@
- \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}%
- \else
- \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2}
- *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}%
- \fi
-}% \tabu@givespace
-\def\tabu@arith {\advance\tabu@cnt \@ne
- \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi
- \tabu@arithnegcoef
- \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax %
- \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax
- \tabu@message{\tabu@message@arith}%
- \ifdim \tabu@DELTA <\tabu@hfuzz
- \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ?
- \let\tabu@ \tabu@givespace \tabu@Xcoefs
- \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message
- \else % already converged: nothing to do but nearly impossible...
- \fi
- \tabucolX \maxdimen
- \tabu@measuringfalse
- \else % need for narrower X columns
- \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax
- \tabu@measuringtrue
- \@whilesw \iftabu@measuring\fi {%
- \advance\tabu@cnt \@ne
- \tabu@arithnegcoef
- \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here
- \tabu@message{\tabu@header
- \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
- \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@
- \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
- \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
- \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else
- \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@
- \fi}%
- \ifdim -\tabu@DELTA<\tabu@hfuzz
- \advance\@tempdima \@tempdimb % for message
- \tabu@measuringfalse
- \else
- \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax
- \fi
- }%
- \fi
- \tabu@message{\tabu@message@reached}%
- \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt
- \tabucolX \the\tabucolX
- \tabu@target \the\tabu@target}%
-}% \tabu@arith
-\def\tabu@spreadarith {%
- \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs
- \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}%
- \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax
- \iftabu@measuring
- \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
- \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}%
- \else
- \tabu@message{\tabu@message@spreadarith}%
- \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target
- \tabu@message{(tabu) spread
- \ifdim \@tempdimc>\tabu@target useless here: default target used%
- \else too large: reduced to fit default target\fi.}%
- \else
- \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
- \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}%
- \fi
- \begingroup \let\tabu@wddef \@gobbletwo
- \@tempdimb \@tempdima
- \tabucolX@init
- \tabu@arithnegcoef
- \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax
- \expandafter\endgroup \expandafter\tabucolX \the\tabucolX
- \tabu@arith
- \fi
-}% \tabu@spreadarith
-\def\tabu@spread@arith #1#2{%
- \ifdim #2\p@>\z@ \advance\dimen@ #2\p@
- \else \advance\@tempdima \tabu@wd{#1}\relax
- \fi
-}% \tabu@spread@arith
-%% Reporting in the .log file ---------------------------------------
-\def\tabu@message@defaulttarget{%
- \ifnum\tabu@nested=\z@^^J(tabu) Default target:
- \ifx\tabudefaulttarget\linewidth \string\linewidth
- \ifdim \tabu@thetarget=\linewidth \else
- -\the\dimexpr\linewidth-\tabu@thetarget\fi =
- \else\ifx\tabudefaulttarget\linegoal\string\linegoal=
- \fi\fi
- \else (tabu) Default target (nested): \fi
- \the\tabu@target \on@line
- \ifnum\tabu@nested=\z@ , page \the\c@page\fi}
-\def\tabu@message@target {^^J(tabu) Target specified:
- \the\tabu@target \on@line, page \the\c@page}
-\def\tabu@message@arith {\tabu@header
- \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
- \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@
- \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
- \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
- \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else
- \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@
- \fi
-}% \tabu@message@arith
-\def\tabu@message@spreadarith {\tabu@spreadheader
- \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@
- \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@
- \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@
- \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@
- \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target
- \else \@tempdimc+\tabu@spreadtarget \fi
- {}{}{}{}{}\@@}
-\def\tabu@message@negcoef #1#2{
- \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]:
- \space width = \tabu@wd {#1}
- \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname
- \ifdim -\tabu@pt#2\tabucolX<\tabu@target
- < \number-\rem@pt#2 X
- = \the\dimexpr -\tabu@pt#2\tabucolX \relax
- \else
- <= \the\tabu@target\space < \number-\rem@pt#2 X\fi}
-\def\tabu@message@reached{\tabu@header
- ******* Reached Target:
- hfuzz = \tabu@hfuzz\on@line\space *******}
-\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}%
- \tabu@message{(tabu)\tabu@spaces Time elapsed during measure:
- \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec
- \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime)
- -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax
- *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space
- cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}}
-\def\tabu@message@verticalsp {%
- \ifdim \@tempdima>\tabu@ht
- \ifdim \@tempdimb>\tabu@dp
- \expandafter\expandafter\expandafter\string\tabu@ht =
- \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@
- \expandafter\expandafter\expandafter\string\tabu@dp =
- \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J%
- \else
- \expandafter\expandafter\expandafter\string\tabu@ht =
- \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J%
- \fi
- \else\ifdim \@tempdimb>\tabu@dp
- \tabu@spaces\tabu@spaces\tabu@spaces
- \expandafter\expandafter\expandafter\string\tabu@dp =
- \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi
- \fi
-}% \tabu@message@verticalsp
-\edef\tabu@spaces{\@spaces}
-\def\tabu@strippt{\expandafter\tabu@pt\the}
-{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}}
-\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr}
-\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt}
-\def\do #1{%
- \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{%
- \ifnum##1<10 #1 #1\else
- \ifnum##1<100 #1 \else
- \ifnum##1<\@m #1\fi\fi\fi
- ##1.##2##3##4##5##6##7##8#1}%
- \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }%
- \def\tabu@titles{\ifnum \tabu@nested=\z@
- (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target
- #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}%
- \def\tabu@spreadheader{%
- (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.
- #1 New Target^^J%
- (tabu) sprd}
- \def\tabu@message@save {\begingroup
- \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@}
- \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt
- \dimexpr####1\p@{ }{ }}}%
- \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}%
- \let\CT@arc@ \relax \let\@preamble \@gobble
- \let\tabu@savedpream \@firstofone
- \let\tabu@savedparams \@firstofone
- \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}%
- \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}%
- \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}%
- \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}%
- \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}%
- \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}%
- \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}%
- \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}%
- \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}%
- \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}%
- \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }%
- \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}%
- \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}%
- \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}%
- \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%
- \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}%
- \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}%
- \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}%
- \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}%
- \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}%
- \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo
- \tabu@message{%
- (tabu) \string\savetabu{\tabu@temp}: \on@line^^J%
- \tabu@usetabu \@nil^^J}%
- \endgroup}
-}\do{ }
-%% Measuring the natural width (varwidth) - store the results -------
-\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop
- \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}%
- \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ?
- \iftabu@spread \else % if spread -> measure
- \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure
- \let\@startpbox \tabu@startpboxORI % restore immediately (nesting)
- \tabu@measuringtrue % for the quick option...
- \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi
- \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target
- \tabu@target=\tabu@temp\tabucolX \fi\fi
- \setbox\tabu@box \hbox \bgroup
- \begin{varwidth}\tabu@target
- \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width...
- \narrowragged \arraybackslash \parfillskip \@flushglue
- \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi
- \bgroup \aftergroup\tabu@endpboxmeasure
- \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi
- \else \expandafter\@gobble
- \tabu@startpboxquick{#1}% \@gobble \bgroup
- \fi
-}% \tabu@startpboxmeasure
-\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty
- \bgroup\color@begingroup}
-\def\tabu@endpboxmeasure {%
- \@finalstrut \@arstrutbox
- \end{varwidth}\egroup %
- \ifdim \tabu@temp\p@ <\z@ % neg coef
- \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box
- \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}%
- \tabu@debug{\tabu@message@endpboxmeasure}%
- \fi
- \else % spread coef>0
- \global\advance \tabu@naturalX \wd\tabu@box
- \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax
- \ifdim \tabu@naturalXmax <\tabu@naturalX
- \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi
- \ifdim \tabu@naturalXmin <\@tempdima
- \xdef\tabu@naturalXmin {\the\@tempdima}\fi
- \fi
- \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target
-}% \tabu@endpboxmeasure
-\def\tabu@wddef #1{\expandafter\xdef
- \csname tabu@\the\tabu@nested.W\number#1\endcsname}
-\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname}
-\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd
- \the\tabu@Xcol. X[\tabu@temp]:
- target = \the\tabucolX \space
- \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol
- =\tabu@wd\tabu@Xcol
-}% \tabu@message@endpboxmeasure
-\def\tabu@startpboxquick {\bgroup
- \let\@startpbox \tabu@startpboxORI % restore immediately
- \let\tabu \tabu@quick % \begin is expanded before...
- \expandafter\@gobble \@startpbox % gobbles \bgroup
-}% \tabu@startpboxquick
-\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
- \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
-}% \tabu@quick
-\def\tabu@endquick {%
- \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else
- \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
- \endgroup
- \else \let\endtabu \relax
- \tabu@end@envir
- \fi
-}% \tabu@quick
-\def\tabu@endtabu {\end{tabu}}
-\def\tabu@endtabus {\end{tabu*}}
-%% Measuring the heights and depths - store the results -------------
-\def\tabu@verticalmeasure{\everypar{}%
- \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group
- \setbox\tabu@box =\hbox\bgroup
- \let\tabu@verticalspacing \tabu@verticalsp@lcr
- \d@llarbegin % after \hbox ...
- \else
- \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop
- \else\ifnum\currentgrouptype=12\vcenter
- \else\vbox\fi\fi}%
- \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
- \let\tabu@verticalspacing \tabu@verticalsp@pmb
- \fi
-}% \tabu@verticalmeasure
-\def\tabu@verticalsp@lcr{%
- \d@llarend \egroup %
- \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
- \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
- \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
- \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi
- \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi
- \noindent\vrule height\@tempdima depth\@tempdimb
-}% \tabu@verticalsp@lcr
-\def\tabu@verticalsp@pmb{% inserts struts as needed
- \par \expandafter\egroup
- \expandafter$\expandafter
- \egroup \expandafter
- \@tempdimc \the\prevdepth
- \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
- \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
- \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
- \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi
- \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi
- \let\@finalstrut \@gobble
- \hrule height\@tempdima depth\@tempdimb width\hsize
-%% \box\tabu@box
-}% \tabu@verticalsp@pmb
-
-\def\tabu@verticalinit{%
- \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset !
- \advance\c@taburow \@ne
- \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}%
- \advance\c@taburow \m@ne
-}% \tabu@verticalinit
-\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
-\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
-\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
-\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
-\def\tabu@verticaldynamicadjustment {%
- \advance\c@taburow \@ne
- \extrarowheight \dimexpr\tabu@ht - \ht\strutbox
- \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox
- \let\arraystretch \@empty
- \advance\c@taburow \m@ne
-}% \tabu@verticaldynamicadjustment
-\def\tabuphantomline{\crcr \noalign{%
- {\globaldefs \@ne
- \setbox\@arstrutbox \box\voidb@x
- \let\tabu@@celllalign \tabu@celllalign
- \let\tabu@@cellralign \tabu@cellralign
- \let\tabu@@cellleft \tabu@cellleft
- \let\tabu@@cellright \tabu@cellright
- \let\tabu@@thevline \tabu@thevline
- \let\tabu@celllalign \@empty
- \let\tabu@cellralign \@empty
- \let\tabu@cellright \@empty
- \let\tabu@cellleft \@empty
- \let\tabu@thevline \relax}%
- \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}%
- \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr
- \noalign{\tabu@rearstrut
- {\globaldefs\@ne
- \let\tabu@celllalign \tabu@@celllalign
- \let\tabu@cellralign \tabu@@cellralign
- \let\tabu@cellleft \tabu@@cellleft
- \let\tabu@cellright \tabu@@cellright
- \let\tabu@thevline \tabu@@thevline}}}%
- \expandafter}\the\toks@
-}% \tabuphantomline
-%% \firsthline and \lasthline corrections ---------------------------
-\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}}
-\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline}
-\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}}
-\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline}
-\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument)
- \noalign{\ifnum0=`}\fi
- {\CT@arc@\hrule height\arrayrulewidth}%
- \futurelet \tabu@temp \tabu@xhline
-}% \tabu@hline
-\def\tabu@xhline{%
- \ifx \tabu@temp \hline
- {\ifx \CT@drsc@\relax \vskip
- \else\ifx \CT@drsc@\@empty \vskip
- \else \CT@drsc@\hrule height
- \fi\fi
- \doublerulesep}%
- \fi
- \ifnum0=`{\fi}%
-}% \tabu@xhline
-\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@
- \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}%
- \tabu@hlineAZsurround
-}% \tabu@hlineAZ
-\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{%
- \extratabsurround #1\let\tabucline \tabucline@scan
- \let\hline \tabu@hlinescan \let\firsthline \hline
- \let\cline \tabu@clinescan \let\lasthline \hline
- \expandafter \futurelet \expandafter \tabu@temp
- \expandafter \tabu@nexthlineAZ \tabu@temp
-}% \tabu@hlineAZsurround
-\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline}
-\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}}
-\def\tabucline@scan{\@testopt \tabucline@sc@n {}}
-\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}}
-\def\tabu@nexthlineAZ{%
- \ifx \tabu@temp\hline \else
- \ifx \tabu@temp\cline \else
- \ifx \tabu@temp\tabucline \else
- \tabu@hlinecorrection
- \fi\fi\fi
-}% \tabu@nexthlineAZ
-\def\tabu@xhlineAZ #1{%
- \toks@\expandafter{\the\toks@ #1}%
- \@tempdimc \tabu@thick % The last line width
- \ifcase\count@ \@tempdimb \tabu@thick % The first line width
- \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax
- \fi
- \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ
-}% \tabu@xhlineAZ
-\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1
- \@tempdima \dimexpr \ht\@arstrutbox+\dimen@
- \edef\firsthline{%
- \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
- height \the\dimexpr\@tempdima+\extratabsurround
- depth \dp\@arstrutbox
- width \tabustrutrule}\hss}\cr
- \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb
- +\dp\@arstrutbox \relax}%
- \the\toks@
- }\ifnum0=`{\fi
- \expandafter}\firsthline % we are then !
-}% \tabu@firsthlinecorrection
-\def\tabu@lasthlinecorrection{%
- \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc
- \edef\lasthline{%
- \the\toks@
- \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}%
- \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
- depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@
- +\extratabsurround-\@tempdimc
- height \z@
- width \tabustrutrule}\hss}\cr
- }\ifnum0=`{\fi
- \expandafter}\lasthline % we are then !
-}% \tabu@lasthlinecorrection
-\def\tabu@LT@@hline{%
- \ifx\LT@next\hline
- \global\let\LT@next \@gobble
- \ifx \CT@drsc@\relax
- \gdef\CT@LT@sep{%
- \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
- \else
- \gdef\CT@LT@sep{%
- \multispan\LT@cols{%
- \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
- \fi
- \else
- \global\let\LT@next\empty
- \gdef\CT@LT@sep{%
- \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
- \fi
- \ifnum0=`{\fi}%
- \multispan\LT@cols
- {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
- \CT@LT@sep
- \multispan\LT@cols
- {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
- \noalign{\penalty\@M}%
- \LT@next
-}% \tabu@LT@@hline
-%% Horizontal lines : \tabucline ------------------------------------
-\let\tabu@start \@tempcnta
-\let\tabu@stop \@tempcntb
-\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline}
-\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}%
- \ifnum \tabu@stop<\z@ \toks@{}%
- \else \tabu@clinearg{#1}\tabu@thestyle
- \edef\tabucline{\toks@{%
- \ifnum \tabu@start>\z@ \omit
- \tabu@multispan\tabu@start {\span\omit}&\fi
- \omit \tabu@multispan\tabu@stop {\span\omit}%
- \tabu@thehline\cr
- }}\tabucline
- \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}%
- \fi
- \futurelet \tabu@temp \tabu@xcline
-}% \tabu@cline
-\def\tabu@clinearg #1{%
- \ifx\\#1\\\let\tabu@thestyle \tabu@ls@
- \else \@defaultunits \expandafter\let\expandafter\@tempa
- \romannumeral-`\0#1\relax \@nnil
- \ifx \hbox\@tempa \tabu@clinebox{#1}%
- \else\ifx \box\@tempa \tabu@clinebox{#1}%
- \else\ifx \vbox\@tempa \tabu@clinebox{#1}%
- \else\ifx \vtop\@tempa \tabu@clinebox{#1}%
- \else\ifx \copy\@tempa \tabu@clinebox{#1}%
- \else\ifx \leaders\@tempa \tabu@clineleads{#1}%
- \else\ifx \cleaders\@tempa \tabu@clineleads{#1}%
- \else\ifx \xleaders\@tempa \tabu@clineleads{#1}%
- \else\tabu@getline {#1}%
- \fi\fi\fi\fi\fi\fi\fi\fi
- \fi
-}% \tabu@clinearg
-\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}}
-\def\tabu@clineleads #1{%
- \let\tabu@thestyle \relax \let\tabu@leaders \@undefined
- \gdef\tabu@thehrule{#1}}
-\def\tabu@thehline{\begingroup
- \ifdefined\tabu@leaders
- \noexpand\tabu@thehleaders
- \else \noexpand\tabu@thehrule
- \fi \endgroup
-}% \tabu@thehline
-\def\tabu@xcline{%
- \ifx \tabu@temp\tabucline
- \toks@\expandafter{\the\toks@ \noalign
- {\ifx\CT@drsc@\relax \vskip
- \else \CT@drsc@\hrule height
- \fi
- \doublerulesep}}%
- \fi
- \tabu@docline
-}% \tabu@xcline
-\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@}
-\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}%
- \ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
-\def\tabu@multispan #1#2{%
- \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan
- \else \expandafter\@gobbletwo
- \fi {#1-1}{#2}%
-}% \tabu@multispan
-\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
-\def\tabu@start@stop #1-#2\@nnil{%
- \@defaultunits \tabu@start\number 0#1\relax \@nnil
- \@defaultunits \tabu@stop \number 0#2\relax \@nnil
- \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne
- \else\ifnum \tabu@stop=\z@ \tabu@nbcols
- \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols
- \else \tabu@stop
- \fi\fi\fi
- \advance\tabu@start \m@ne
- \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi
-}% \tabu@start@stop
-%% Numbers: siunitx S columns (and \tabudecimal) -------------------
-\def\tabu@tabudecimal #1{%
- \def\tabu@decimal{#1}\@temptokena{}%
- \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces
- \tabu@scandecimal
-}% \tabu@tabudecimal
-\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@}
-\def\tabu@skipdecimal#1{#1\tabu@scandecimal}
-\def\tabu@getdecimal@ignorespaces{%
- \ifcase 0\ifx\tabu@temp\ignorespaces\else
- \ifx\tabu@temp\@sptoken1\else
- 2\fi\fi\relax
- \let\tabu@getdecimal@ \tabu@getdecimal
- \expandafter\tabu@skipdecimal
- \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal
- \else \expandafter\tabu@skipdecimal
- \fi
-}% \tabu@getdecimal@ignorespaces
-\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}%
- \tabu@scandecimal}
-\def\do#1{%
- \def\tabu@get@decimalspace#1{%
- \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}%
-}\do{ }
-\let\tabu@@tabudecimal \tabu@tabudecimal
-\def\tabu@getdecimal{%
- \ifcase 0\ifx 0\tabu@temp\else
- \ifx 1\tabu@temp\else
- \ifx 2\tabu@temp\else
- \ifx 3\tabu@temp\else
- \ifx 4\tabu@temp\else
- \ifx 5\tabu@temp\else
- \ifx 6\tabu@temp\else
- \ifx 7\tabu@temp\else
- \ifx 8\tabu@temp\else
- \ifx 9\tabu@temp\else
- \ifx .\tabu@temp\else
- \ifx ,\tabu@temp\else
- \ifx -\tabu@temp\else
- \ifx +\tabu@temp\else
- \ifx e\tabu@temp\else
- \ifx E\tabu@temp\else
- \ifx\tabu@cellleft\tabu@temp1\else
- \ifx\ignorespaces\tabu@temp1\else
- \ifx\@sptoken\tabu@temp2\else
- 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
- \expandafter\tabu@get@decimal
- \or \expandafter\tabu@skipdecimal
- \or \expandafter\tabu@get@decimalspace
- \else\expandafter\tabu@printdecimal
- \fi
-}% \tabu@getdecimal
-\def\tabu@printdecimal{%
- \edef\tabu@temp{\the\@temptokena}%
- \ifx\tabu@temp\@empty\else
- \ifx\tabu@temp\space\else
- \expandafter\tabu@decimal\expandafter{\the\@temptokena}%
- \fi\fi
-}% \tabu@printdecimal
-%% Verbatim inside X columns ----------------------------------------
-\def\tabu@verbatim{%
- \let\verb \tabu@verb
- \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd
-}% \tabu@verbatim
-\let\tabu@ltx@verb \verb
-\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb}
-\def\tabu@fancyvrb {%
- \def\tabu@FV@DefineCheckEnd ##1{%
- \def\tabu@FV@DefineCheckEnd{%
- ##1%
- \let\FV@CheckEnd \tabu@FV@CheckEnd
- \let\FV@@CheckEnd \tabu@FV@@CheckEnd
- \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd
- \edef\FV@EndScanning{%
- \def\noexpand\next{\noexpand\end{\FV@EnvironName}}%
- \global\let\noexpand\FV@EnvironName\relax
- \noexpand\next}%
- \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}%
- }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd}
-}% \tabu@fancyvrb
-\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil}
-\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}}
-\begingroup
-\catcode`\[1 \catcode`\]2
-\@makeother\{ \@makeother\}
- \edef\x[\endgroup
- \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3%
- ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}}
-\def\tabu@FV@ListProcessLine #1{%
- \hbox {%to \hsize{%
- \kern\leftmargin
- \hbox {%to \linewidth{%
- \FV@LeftListNumber
- \FV@LeftListFrame
- \FancyVerbFormatLine{#1}\hss
-%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
-%% \FV@RightListFrame}%
- \FV@RightListFrame
- \FV@RightListNumber}%
-%% DG/SR modification end
- \hss}}
-%% \savetabu --------------------------------------------------------
-\newcommand*\savetabu[1]{\noalign{%
- \tabu@sanitizearg{#1}\tabu@temp
- \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else
- \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}%
- \ifdefined\tabu@restored \expandafter\let
- \csname tabu@saved@\tabu@temp \endcsname \tabu@restored
- \else {\tabu@save}%
- \fi
- \fi}%
-}% \savetabu
-\def\tabu@save {%
- \toks0\expandafter{\tabu@saved@}%
- \iftabu@negcoef
- \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}%
- \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi
- \toks1\expandafter{\tabu@savedpream}%
- \toks2\expandafter{\tabu@savedpreamble}%
- \let\@preamble \relax
- \let\tabu@savedpream \relax \let\tabu@savedparams \relax
- \edef\tabu@preamble{%
- \def\noexpand\tabu@aligndefault{\tabu@align}%
- \def\tabu@savedparams {\noexpand\the\toks0}%
- \def\tabu@savedpream {\noexpand\the\toks1}}%
- \edef\tabu@usetabu{%
- \def\@preamble {\noexpand\the\toks2}%
- \tabu@target \the\tabu@target \relax
- \tabucolX \the\tabucolX \relax
- \tabu@nbcols \the\tabu@nbcols \relax
- \def\noexpand\tabu@aligndefault{\tabu@align}%
- \def\tabu@savedparams {\noexpand\the\toks0}%
- \def\tabu@savedpream {\noexpand\the\toks1}}%
- \let\tabu@aligndefault \relax \let\@sharp \relax
- \edef\@tempa{\noexpand\tabu@s@ved
- {\tabu@usetabu}
- {\tabu@preamble}
- {\the\toks1}}\@tempa
- \tabu@message@save
-}% \tabu@save
-\long\def\tabu@s@ved #1#2#3{%
- \def\tabu@usetabu{#1}%
- \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{%
- \ifodd ##1% \usetabu
- \tabu@measuringfalse \tabu@spreadfalse % Just in case...
- \gdef\tabu@usetabu {%
- \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi
- \global\let\tabu@usetabu \@undefined
- \def\@halignto {to\tabu@target}%
- #1%
- \ifx \tabu@align\tabu@aligndefault@text
- \ifnum \tabu@nested=\z@
- \let\tabu@align \tabu@aligndefault \fi\fi}%
- \else % \preamble
- \gdef\tabu@preamble {%
- \global\let\tabu@preamble \@undefined
- #2%
- \ifx \tabu@align\tabu@aligndefault@text
- \ifnum \tabu@nested=\z@
- \let\tabu@align \tabu@aligndefault \fi\fi}%
- \fi
- #3}%
-}% \tabu@s@ved
-\def\tabu@aligndefault@text {\tabu@aligndefault}%
-\def\tabu@warn@usetabu {\PackageWarning{tabu}
- {Specifying a target with \string\usetabu\space is useless
- \MessageBreak The target cannot be changed!}}
-\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi}
-\def\tabu@savewarn#1#2{\PackageInfo{tabu}
- {User-name `#1' already used for \string\savetabu
- \MessageBreak #2}}%
-\def\tabu@saveerr#1{\PackageError{tabu}
- {User-name `#1' is unknown for \string\usetabu
- \MessageBreak I cannot restore an unknown preamble!}\@ehd}
-%% \rowfont ---------------------------------------------------------
-\newskip \tabu@cellskip
-\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi
- {\ifnum0=`}\fi \tabu@row@font}
-\newcommand*\tabu@row@font[2][]{%
- \ifnum7=\currentgrouptype
- \global\let\tabu@@cellleft \tabu@cellleft
- \global\let\tabu@@cellright \tabu@cellright
- \global\let\tabu@@celllalign \tabu@celllalign
- \global\let\tabu@@cellralign \tabu@cellralign
- \global\let\tabu@@rowfontreset\tabu@rowfontreset
- \fi
- \global\let\tabu@rowfontreset \tabu@rowfont@reset
- \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}%
- \ifcsname tabu@cell@#1\endcsname % row alignment
- \csname tabu@cell@#1\endcsname \fi
- \ifnum0=`{\fi}% end of group / noalign group
-}% \rowfont
-\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}%
-\def\tabu@rowfont@reset{%
- \global\let\tabu@rowfontreset \tabu@@rowfontreset
- \global\let\tabu@cellleft \tabu@@cellleft
- \global\let\tabu@cellright \tabu@@cellright
- \global\let\tabu@cellfont \@empty
- \global\let\tabu@celllalign \tabu@@celllalign
- \global\let\tabu@cellralign \tabu@@cellralign
-}% \tabu@@rowfontreset
-\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl
-%% \tabu@prepnext@tok -----------------------------------------------
-\newif \iftabu@cellright
-\def\tabu@prepnext@tok{%
- \ifnum \count@<\z@ %
- \@tempcnta \@M %
- \tabu@nbcols\z@
- \let\tabu@fornoopORI \@fornoop
- \tabu@cellrightfalse
- \else
- \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left
- \advance \tabu@nbcols \@ne
- \iftabu@cellright % before-previous token is right and is finished
- \tabu@cellrightfalse %
- \tabu@righttok
- \fi
- \tabu@lefttok
- \or % (case 1) previous token is right
- \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop
- \else % special column: do not change the token
- \iftabu@cellright % before-previous token is right
- \tabu@cellrightfalse
- \tabu@righttok
- \fi
- \fi % \ifcase
- \fi
- \tabu@prepnext@tokORI
-}% \tabu@prepnext@tok
-\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@}
-\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{%
- \ifx \in@#2\else
- \let\@fornoop \tabu@fornoopORI
- \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}%
- \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}%
- \expandafter\prepnext@tok
- \fi
-}% \tabu@lastnoop
-\def\tabu@righttok{%
- \advance \count@ \m@ne
- \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}%
- \advance \count@ \@ne
-}% \tabu@righttok
-\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign
- \the\toks\count@ \tabu@cellleft}% after because of $
-}% \tabu@lefttok
-%% Neutralisation of glues ------------------------------------------
-\let\tabu@cellleft \@empty
-\let\tabu@cellright \@empty
-\tabu@celllalign@def{\tabu@cellleft}%
-\let\tabu@cellralign \@empty
-\def\tabu@cell@align #1#2#3{%
- \let\tabu@maybesiunitx \toks@ \tabu@celllalign
- \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}%
- \toks@\expandafter{\tabu@cellralign #2}%
- \xdef\tabu@cellralign{\the\toks@}%
- \toks@\expandafter{\tabu@cellleft #3}%
- \xdef\tabu@cellleft{\the\toks@}%
-}% \tabu@cell@align
-\def\tabu@cell@l{% force alignment to left
- \tabu@cell@align
- {\tabu@removehfil \raggedright \tabu@cellleft}% left
- {\tabu@flush1\tabu@ignorehfil}% right
- \raggedright
-}% \tabu@cell@l
-\def\tabu@cell@c{% force alignment to center
- \tabu@cell@align
- {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft}
- {\tabu@flush{.5}\tabu@ignorehfil}
- \centering
-}% \tabu@cell@c
-\def\tabu@cell@r{% force alignment to right
- \tabu@cell@align
- {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft}
- \tabu@ignorehfil
- \raggedleft
-}% \tabu@cell@r
-\def\tabu@cell@j{% force justification (for p, m, b columns)
- \tabu@cell@align
- {\tabu@justify\tabu@cellleft}
- {}
- \tabu@justify
-}% \tabu@cell@j
-\def\tabu@justify{%
- \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip
- \parfillskip\@flushglue
-}% \tabu@justify
-%% ragged2e settings
-\def\tabu@cell@L{% force alignment to left (ragged2e)
- \tabu@cell@align
- {\tabu@removehfil \RaggedRight \tabu@cellleft}
- {\tabu@flush 1\tabu@ignorehfil}
- \RaggedRight
-}% \tabu@cell@L
-\def\tabu@cell@C{% force alignment to center (ragged2e)
- \tabu@cell@align
- {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft}
- {\tabu@flush{.5}\tabu@ignorehfil}
- \Centering
-}% \tabu@cell@C
-\def\tabu@cell@R{% force alignment to right (ragged2e)
- \tabu@cell@align
- {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft}
- \tabu@ignorehfil
- \RaggedLeft
-}% \tabu@cell@R
-\def\tabu@cell@J{% force justification (ragged2e)
- \tabu@cell@align
- {\justifying \tabu@cellleft}
- {}
- \justifying
-}% \tabu@cell@J
-\def\tabu@flush#1{%
- \iftabu@colortbl % colortbl uses \hfill rather than \hfil
- \hskip \ifnum13<\currentgrouptype \stretch{#1}%
- \else \ifdim#1pt<\p@ \tabu@cellskip
- \else \stretch{#1}
- \fi\fi \relax
- \else % array.sty
- \ifnum 13<\currentgrouptype
- \hfil \hskip1sp \relax \fi
- \fi
-}% \tabu@flush
-\let\tabu@hfil \hfil
-\let\tabu@hfill \hfill
-\let\tabu@hskip \hskip
-\def\tabu@removehfil{%
- \iftabu@colortbl
- \unkern \tabu@cellskip =\lastskip
- \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip
- \else \tabu@cellskip \z@skip
- \fi
- \else
- \ifdim\lastskip=1sp\unskip\fi
- \ifnum\gluestretchorder\lastskip =\@ne
- \hfilneg % \hfilneg for array.sty but not for colortbl...
- \fi
- \fi
-}% \tabu@removehfil
-\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
-\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil
- \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group
-}% \tabu@nohfil
-\def\tabu@colortblalignments {% if colortbl
- \def\tabu@nohfil{%
- \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group
- \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff...
- \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local
-}% \tabu@colortblalignments
-%% Taking care of footnotes and hyperfootnotes ----------------------
-\long\def\tabu@footnotetext #1{%
- \edef\@tempa{\the\tabu@footnotes
- \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}%
- \global\tabu@footnotes\expandafter{\@tempa {#1}}}%
-\long\def\tabu@xfootnotetext [#1]#2{%
- \global\tabu@footnotes\expandafter{\the\tabu@footnotes
- \footnotetext [{#1}]{#2}}}
-\let\tabu@xfootnote \@xfootnote
-\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }}
-\long\def\tabu@Hy@xfootnote [#1]{%
- \begingroup
- \value\@mpfn #1\relax
- \protected@xdef \@thefnmark {\thempfn}%
- \endgroup
- \@footnotemark \tabu@Hy@ftntxt {#1}%
-}% \tabu@Hy@xfootnote
-\long\def\tabu@Hy@ftntxt #1#2{%
- \edef\@tempa{%
- \the\tabu@footnotes
- \begingroup
- \value\@mpfn #1\relax
- \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}%
- \expandafter \noexpand \expandafter
- \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}%
- }%
- \global\tabu@footnotes\expandafter{\@tempa {#2}%
- \endgroup}%
-}% \tabu@Hy@ftntxt
-\long\def\tabu@Hy@footnotetext #1#2{%
- \H@@footnotetext{%
- \ifHy@nesting
- \hyper@@anchor {#1}{#2}%
- \else
- \Hy@raisedlink{%
- \hyper@@anchor {#1}{\relax}%
- }%
- \def\@currentHref {#1}%
- \let\@currentlabelname \@empty
- #2%
- \fi
- }%
-}% \tabu@Hy@footnotetext
-%% No need for \arraybackslash ! ------------------------------------
-\def\tabu@latextwoe {%
-\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
-\tabu@temp \tabu@centering \centering \arraybackslash
-\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash
-\tabu@temp \tabu@raggedright \raggedright \arraybackslash
-}% \tabu@latextwoe
-\def\tabu@raggedtwoe {%
-\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
-\tabu@temp \tabu@Centering \Centering \arraybackslash
-\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash
-\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash
-\tabu@temp \tabu@justifying \justifying \arraybackslash
-}% \tabu@raggedtwoe
-\def\tabu@normalcrbackslash{\let\\\@normalcr}
-\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{%
- \expandafter\tabu@normalcrbackslash \@trivlist}}
-%% Utilities: \fbox \fcolorbox and \tabudecimal -------------------
-\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox}
-\def\tabu@beginfbox {\bgroup \kern\fboxsep
- \bgroup\aftergroup\tabu@endfbox}
-\def\tabu@endfbox {\kern\fboxsep\egroup\egroup
- \@frameb@x\relax}
-\def\tabu@color@b@x #1#2{\leavevmode \bgroup
- \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}%
- \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox
-}% \tabu@color@b@x
-\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup
- \aftergroup\tabu@endcolor@b@x \set@color}
-\def\tabu@endcolor@b@x {\kern\fboxsep \egroup
- \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@
- \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@
- \tabu@docolor@b@x \egroup
-}% \tabu@endcolor@b@x
-%% Corrections (arydshln, delarray, colortbl) -----------------------
-\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray
- \iftabu@colortbl
- \ifdefined\adl@array %
- \def\tabu@endarray{%
- \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup %
- \@arrayright %
- \gdef\@preamble{}}%
- \else %
- \def\tabu@endarray{%
- \crcr \egroup \egroup %
- \@arrayright %
- \gdef\@preamble{}\CT@end}%
- \fi
- \else
- \ifdefined\adl@array %
- \def\tabu@endarray{%
- \adl@endarray \egroup \adl@arrayrestore \egroup %
- \@arrayright %
- \gdef\@preamble{}}%
- \else %
- \PackageWarning{tabu}
- {\string\@arrayright\space is missing from the
- \MessageBreak definition of \string\endarray.
- \MessageBreak Compatibility with delarray.sty is broken.}%
- \fi\fi
-}% \tabu@fix@arrayright
-\def\tabu@adl@xarraydashrule #1#2#3{%
- \ifnum\@lastchclass=\adl@class@start\else
- \ifnum\@lastchclass=\@ne\else
- \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1)
- \adl@leftrulefalse \fi\fi % must be treated the same
- \fi
- \ifadl@zwvrule\else \ifadl@inactive\else
- \@addtopreamble{\vrule\@width\arrayrulewidth
- \@height\z@ \@depth\z@}\fi \fi
- \ifadl@leftrule
- \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
- {\number#1}#3}%
- \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
- {\number#2}#3}
- \fi
-}% \tabu@adl@xarraydashrule
-\def\tabu@adl@act@endpbox {%
- \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox
- \egroup \egroup
- \adl@colhtdp \box\adl@box \hfil
-}% \tabu@adl@act@endpbox
-\def\tabu@adl@fix {%
- \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln
- \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln
- \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln
- \let\@preamerror \@preamerr % arydshln
-}% \tabu@adl@fix
-%% Correction for longtable' \@startbox definition ------------------
-%% => \everypar is ``missing'' : TeX should be in vertical mode
-\def\tabu@LT@startpbox #1{%
- \bgroup
- \let\@footnotetext\LT@p@ftntext
- \setlength\hsize{#1}%
- \@arrayparboxrestore
- \everypar{%
- \vrule \@height \ht\@arstrutbox \@width \z@
- \everypar{}}%
-}% \tabu@LT@startpbox
-%% \tracingtabu and the package options ------------------
-\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}}
-\DeclareOption{linegoal}{%
- \AtEndOfPackage{%
- \RequirePackage{linegoal}[2010/12/07]%
- \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX
-}}
-\DeclareOption{scantokens}{\tabuscantokenstrue}
-\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}}
-\def\tracingtabu {\begingroup\@ifnextchar=%
- {\afterassignment\tabu@tracing\count@}
- {\afterassignment\tabu@tracing\count@1\relax}}
-\def\tabu@tracing{\expandafter\endgroup
- \expandafter\tabu@tr@cing \the\count@ \relax
-}% \tabu@tracing
-\def\tabu@tr@cing #1\relax {%
- \ifnum#1>\thr@@ \let\tabu@tracinglines\message
- \else \let\tabu@tracinglines\@gobble
- \fi
- \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG
- \def\tabu@mkarstrut {\tabu@DBG@arstrut}%
- \tabustrutrule 1.5\p@
- \else \let\tabu@DBG \@gobble
- \def\tabu@mkarstrut {\tabu@arstrut}%
- \tabustrutrule \z@
- \fi
- \ifnum#1>\@ne \let\tabu@debug \message
- \else \let\tabu@debug \@gobble
- \fi
- \ifnum#1>\z@
- \let\tabu@message \message
- \let\tabu@tracing@save \tabu@message@save
- \let\tabu@starttimer \tabu@pdftimer
- \else
- \let\tabu@message \@gobble
- \let\tabu@tracing@save \@gobble
- \let\tabu@starttimer \relax
- \fi
-}% \tabu@tr@cing
-%% Setup \AtBeginDocument
-\AtBeginDocument{\tabu@AtBeginDocument}
-\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined
- \ifdefined\arrayrulecolor \tabu@colortbltrue %
- \tabu@colortblalignments % different glues are used
- \else \tabu@colortblfalse \fi
- \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi
- \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi
- \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@
- \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname %
- \expandafter\ifx
- \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax
- \tabu@siunitxtrue
- \else \let\tabu@maybesiunitx \@firstofone %
- \let\tabu@siunitx \tabu@nosiunitx
- \tabu@siunitxfalse
- \fi
- \ifdefined\adl@array %
- \else \let\tabu@adl@fix \relax
- \let\tabu@adl@endtrial \@empty \fi
- \ifdefined\longtable %
- \else \let\longtabu \tabu@nolongtabu \fi
- \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi
- \csname\ifcsname ifHy@hyperfootnotes\endcsname %
- ifHy@hyperfootnotes\else iffalse\fi\endcsname
- \let\tabu@footnotetext \tabu@Hy@ftntext
- \let\tabu@xfootnote \tabu@Hy@xfootnote \fi
- \ifdefined\FV@DefineCheckEnd%
- \tabu@fancyvrb \fi
- \ifdefined\color %
- \let\tabu@color \color
- \def\tabu@leavevmodecolor ##1{%
- \def\tabu@leavevmodecolor {\leavevmode ##1}%
- }\expandafter\tabu@leavevmodecolor\expandafter{\color}%
- \else
- \let\tabu@color \tabu@nocolor
- \let\tabu@leavevmodecolor \@firstofone \fi
- \tabu@latextwoe
- \ifdefined\@raggedtwoe@everyselectfont %
- \tabu@raggedtwoe
- \else
- \let\tabu@cell@L \tabu@cell@l
- \let\tabu@cell@R \tabu@cell@r
- \let\tabu@cell@C \tabu@cell@c
- \let\tabu@cell@J \tabu@cell@j \fi
- \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}%
- \ifin@ \let\tabu@endarray \endarray
- \else \tabu@fix@arrayright \fi%
- \everyrow{}%
-}% \tabu@AtBeginDocument
-\def\tabu@warn@cellspace{%
- \PackageWarning{tabu}{%
- Package cellspace has some limitations
- \MessageBreak And redefines some macros of array.sty.
- \MessageBreak Please use \string\tabulinesep\space to control
- \MessageBreak vertical spacing of lines inside tabu environment}%
-}% \tabu@warn@cellspace
-%% tabu Package initialisation
-\tabuscantokensfalse
-\let\tabu@arc@G \relax
-\let\tabu@drsc@G \relax
-\let\tabu@evr@G \@empty
-\let\tabu@rc@G \@empty
-\def\tabu@ls@G {\tabu@linestyle@}%
-\let\tabu@@rowfontreset \@empty %
-\let\tabu@@celllalign \@empty
-\let\tabu@@cellralign \@empty
-\let\tabu@@cellleft \@empty
-\let\tabu@@cellright \@empty
-\def\tabu@naturalXmin {\z@}
-\def\tabu@naturalXmax {\z@}
-\let\tabu@rowfontreset \@empty
-\def\tabulineon {4pt}\let\tabulineoff \tabulineon
-\tabu@everyrowtrue
-\ifdefined\pdfelapsedtime %
- \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}%
-\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax
-\fi
-\tracingtabu=\z@
-\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@
-\tabulinestyle{}
-\taburowcolors{}
-\let\tabudefaulttarget \linewidth
-\ProcessOptions* % \ProcessOptions* is quicker !
-\endinput
-%%
-%% End of file `tabu.sty'.
diff --git a/latex/usage.tex b/latex/usage.tex
deleted file mode 100644
index 5ffe065..0000000
--- a/latex/usage.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-Robodash has two parts\+: the core, and the toolkit.
-
-
-\begin{DoxyItemize}
-\item The core library is the view management system and provides functions to create your own views. Creating your own views requires knowledge of L\+V\+GL. Compatible with C and C++.
-\item The toolkit is the set of provided class-\/based UI tools, like the autonomous selector or console. These require no knowledge of L\+V\+GL and require minimal configuration. Only compatible with C++.
-\end{DoxyItemize}\hypertarget{usage_autotoc_md2}{}\doxysubsection{Toolkit}\label{usage_autotoc_md2}
-All of the tools provided by Robodash are class-\/based, and are designed to be as simple as possible to use. The following snippet utilizes the autonomous selector and the screen console.
-
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{\mbox{\hyperlink{classrd_1_1Selector}{rd::Selector}} selector;}
-\DoxyCodeLine{\mbox{\hyperlink{classrd_1_1Console}{rd::Console}} console;}
-\DoxyCodeLine{}
-\DoxyCodeLine{\textcolor{keywordtype}{void} initialize() \{}
-\DoxyCodeLine{ console.\mbox{\hyperlink{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}{println}}(\textcolor{stringliteral}{"Adding autons..."});}
-\DoxyCodeLine{}
-\DoxyCodeLine{ selector.\mbox{\hyperlink{group__selector_ga42f5b1858122618d6bc02d2fbf745e3a}{add\_autons}}(\{}
-\DoxyCodeLine{ \{\textcolor{stringliteral}{"Auton 0"}, \&auton0\},}
-\DoxyCodeLine{ \{\textcolor{stringliteral}{"Auton 1"}, \&simple\_auton\},}
-\DoxyCodeLine{ \{\textcolor{stringliteral}{"Skills Run"}, \&skills\}}
-\DoxyCodeLine{ \});}
-\DoxyCodeLine{}
-\DoxyCodeLine{ console.\mbox{\hyperlink{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}{println}}(\textcolor{stringliteral}{"Registered auton routines!"});}
-\DoxyCodeLine{\}}
-\DoxyCodeLine{}
-\DoxyCodeLine{\textcolor{keywordtype}{void} autonomous() \{}
-\DoxyCodeLine{ console.\mbox{\hyperlink{group__console_ga50b7cc2b4c81e8ffb5e525fd24415569}{println}}(\textcolor{stringliteral}{"Running auton..."});}
-\DoxyCodeLine{ selector.\mbox{\hyperlink{group__selector_ga5e7eda63d566b56e6ae5cd0db643b2c0}{do\_auton}}();}
-\DoxyCodeLine{\}}
-\end{DoxyCode}
-
-
-You can learn more about each of the built-\/in tools at the topics page.\hypertarget{usage_autotoc_md3}{}\doxysubsection{Core}\label{usage_autotoc_md3}
-The core library is implemented in C, and is designed to be as familliar as possible to someone already familliar with L\+V\+GL. The following is an example of how to create a view.
-
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{\textcolor{keywordtype}{void} opcontrol() \{}
-\DoxyCodeLine{ \mbox{\hyperlink{structrd__view}{rd\_view\_t}} *view = \mbox{\hyperlink{group__core_gab0b848e6484ca68e2337b687ce74e753}{rd\_view\_create}}(\textcolor{stringliteral}{"custom view"});}
-\DoxyCodeLine{ lv\_label\_t *label = lv\_label\_create(\mbox{\hyperlink{group__core_ga933ac4a5b4e9e14e3aefecff5066ec35}{rd\_view\_obj}}(view));}
-\DoxyCodeLine{ lv\_label\_set\_text(label, \textcolor{stringliteral}{"example"});}
-\DoxyCodeLine{ lv\_obj\_align(label, LV\_ALIGN\_CENTER, 0, 0);}
-\DoxyCodeLine{\}}
-\end{DoxyCode}
-
-
-You can learn more about the core library at the \mbox{\hyperlink{group__core}{Core}} page.
\ No newline at end of file
diff --git a/html/menu.js b/menu.js
similarity index 100%
rename from html/menu.js
rename to menu.js
diff --git a/html/menudata.js b/menudata.js
similarity index 100%
rename from html/menudata.js
rename to menudata.js
diff --git a/html/modules.html b/modules.html
similarity index 100%
rename from html/modules.html
rename to modules.html
diff --git a/html/modules.js b/modules.js
similarity index 100%
rename from html/modules.js
rename to modules.js
diff --git a/html/nav_f.png b/nav_f.png
similarity index 100%
rename from html/nav_f.png
rename to nav_f.png
diff --git a/html/nav_g.png b/nav_g.png
similarity index 100%
rename from html/nav_g.png
rename to nav_g.png
diff --git a/html/nav_h.png b/nav_h.png
similarity index 100%
rename from html/nav_h.png
rename to nav_h.png
diff --git a/html/navtree.css b/navtree.css
similarity index 100%
rename from html/navtree.css
rename to navtree.css
diff --git a/html/navtree.js b/navtree.js
similarity index 100%
rename from html/navtree.js
rename to navtree.js
diff --git a/html/navtreedata.js b/navtreedata.js
similarity index 100%
rename from html/navtreedata.js
rename to navtreedata.js
diff --git a/html/navtreeindex0.js b/navtreeindex0.js
similarity index 100%
rename from html/navtreeindex0.js
rename to navtreeindex0.js
diff --git a/html/open.png b/open.png
similarity index 100%
rename from html/open.png
rename to open.png
diff --git a/html/pages.html b/pages.html
similarity index 100%
rename from html/pages.html
rename to pages.html
diff --git a/html/resize.js b/resize.js
similarity index 100%
rename from html/resize.js
rename to resize.js
diff --git a/html/search/all_0.html b/search/all_0.html
similarity index 100%
rename from html/search/all_0.html
rename to search/all_0.html
diff --git a/html/search/all_0.js b/search/all_0.js
similarity index 100%
rename from html/search/all_0.js
rename to search/all_0.js
diff --git a/html/search/all_1.html b/search/all_1.html
similarity index 100%
rename from html/search/all_1.html
rename to search/all_1.html
diff --git a/html/search/all_1.js b/search/all_1.js
similarity index 100%
rename from html/search/all_1.js
rename to search/all_1.js
diff --git a/html/search/all_2.html b/search/all_2.html
similarity index 100%
rename from html/search/all_2.html
rename to search/all_2.html
diff --git a/html/search/all_2.js b/search/all_2.js
similarity index 100%
rename from html/search/all_2.js
rename to search/all_2.js
diff --git a/html/search/all_3.html b/search/all_3.html
similarity index 100%
rename from html/search/all_3.html
rename to search/all_3.html
diff --git a/html/search/all_3.js b/search/all_3.js
similarity index 100%
rename from html/search/all_3.js
rename to search/all_3.js
diff --git a/html/search/all_4.html b/search/all_4.html
similarity index 100%
rename from html/search/all_4.html
rename to search/all_4.html
diff --git a/html/search/all_4.js b/search/all_4.js
similarity index 100%
rename from html/search/all_4.js
rename to search/all_4.js
diff --git a/html/search/all_5.html b/search/all_5.html
similarity index 100%
rename from html/search/all_5.html
rename to search/all_5.html
diff --git a/html/search/all_5.js b/search/all_5.js
similarity index 100%
rename from html/search/all_5.js
rename to search/all_5.js
diff --git a/html/search/all_6.html b/search/all_6.html
similarity index 100%
rename from html/search/all_6.html
rename to search/all_6.html
diff --git a/html/search/all_6.js b/search/all_6.js
similarity index 100%
rename from html/search/all_6.js
rename to search/all_6.js
diff --git a/html/search/all_7.html b/search/all_7.html
similarity index 100%
rename from html/search/all_7.html
rename to search/all_7.html
diff --git a/html/search/all_7.js b/search/all_7.js
similarity index 100%
rename from html/search/all_7.js
rename to search/all_7.js
diff --git a/html/search/all_8.html b/search/all_8.html
similarity index 100%
rename from html/search/all_8.html
rename to search/all_8.html
diff --git a/html/search/all_8.js b/search/all_8.js
similarity index 100%
rename from html/search/all_8.js
rename to search/all_8.js
diff --git a/html/search/all_9.html b/search/all_9.html
similarity index 100%
rename from html/search/all_9.html
rename to search/all_9.html
diff --git a/html/search/all_9.js b/search/all_9.js
similarity index 100%
rename from html/search/all_9.js
rename to search/all_9.js
diff --git a/html/search/classes_0.html b/search/classes_0.html
similarity index 100%
rename from html/search/classes_0.html
rename to search/classes_0.html
diff --git a/html/search/classes_0.js b/search/classes_0.js
similarity index 100%
rename from html/search/classes_0.js
rename to search/classes_0.js
diff --git a/html/search/classes_1.html b/search/classes_1.html
similarity index 100%
rename from html/search/classes_1.html
rename to search/classes_1.html
diff --git a/html/search/classes_1.js b/search/classes_1.js
similarity index 100%
rename from html/search/classes_1.js
rename to search/classes_1.js
diff --git a/html/search/classes_2.html b/search/classes_2.html
similarity index 100%
rename from html/search/classes_2.html
rename to search/classes_2.html
diff --git a/html/search/classes_2.js b/search/classes_2.js
similarity index 100%
rename from html/search/classes_2.js
rename to search/classes_2.js
diff --git a/html/search/classes_3.html b/search/classes_3.html
similarity index 100%
rename from html/search/classes_3.html
rename to search/classes_3.html
diff --git a/html/search/classes_3.js b/search/classes_3.js
similarity index 100%
rename from html/search/classes_3.js
rename to search/classes_3.js
diff --git a/html/search/close.png b/search/close.png
similarity index 100%
rename from html/search/close.png
rename to search/close.png
diff --git a/html/search/files_0.html b/search/files_0.html
similarity index 100%
rename from html/search/files_0.html
rename to search/files_0.html
diff --git a/html/search/files_0.js b/search/files_0.js
similarity index 100%
rename from html/search/files_0.js
rename to search/files_0.js
diff --git a/html/search/files_1.html b/search/files_1.html
similarity index 100%
rename from html/search/files_1.html
rename to search/files_1.html
diff --git a/html/search/files_1.js b/search/files_1.js
similarity index 100%
rename from html/search/files_1.js
rename to search/files_1.js
diff --git a/html/search/files_2.html b/search/files_2.html
similarity index 100%
rename from html/search/files_2.html
rename to search/files_2.html
diff --git a/html/search/files_2.js b/search/files_2.js
similarity index 100%
rename from html/search/files_2.js
rename to search/files_2.js
diff --git a/html/search/files_3.html b/search/files_3.html
similarity index 100%
rename from html/search/files_3.html
rename to search/files_3.html
diff --git a/html/search/files_3.js b/search/files_3.js
similarity index 100%
rename from html/search/files_3.js
rename to search/files_3.js
diff --git a/html/search/files_4.html b/search/files_4.html
similarity index 100%
rename from html/search/files_4.html
rename to search/files_4.html
diff --git a/html/search/files_4.js b/search/files_4.js
similarity index 100%
rename from html/search/files_4.js
rename to search/files_4.js
diff --git a/html/search/functions_0.html b/search/functions_0.html
similarity index 100%
rename from html/search/functions_0.html
rename to search/functions_0.html
diff --git a/html/search/functions_0.js b/search/functions_0.js
similarity index 100%
rename from html/search/functions_0.js
rename to search/functions_0.js
diff --git a/html/search/functions_1.html b/search/functions_1.html
similarity index 100%
rename from html/search/functions_1.html
rename to search/functions_1.html
diff --git a/html/search/functions_1.js b/search/functions_1.js
similarity index 100%
rename from html/search/functions_1.js
rename to search/functions_1.js
diff --git a/html/search/functions_2.html b/search/functions_2.html
similarity index 100%
rename from html/search/functions_2.html
rename to search/functions_2.html
diff --git a/html/search/functions_2.js b/search/functions_2.js
similarity index 100%
rename from html/search/functions_2.js
rename to search/functions_2.js
diff --git a/html/search/functions_3.html b/search/functions_3.html
similarity index 100%
rename from html/search/functions_3.html
rename to search/functions_3.html
diff --git a/html/search/functions_3.js b/search/functions_3.js
similarity index 100%
rename from html/search/functions_3.js
rename to search/functions_3.js
diff --git a/html/search/functions_4.html b/search/functions_4.html
similarity index 100%
rename from html/search/functions_4.html
rename to search/functions_4.html
diff --git a/html/search/functions_4.js b/search/functions_4.js
similarity index 100%
rename from html/search/functions_4.js
rename to search/functions_4.js
diff --git a/html/search/functions_5.html b/search/functions_5.html
similarity index 100%
rename from html/search/functions_5.html
rename to search/functions_5.html
diff --git a/html/search/functions_5.js b/search/functions_5.js
similarity index 100%
rename from html/search/functions_5.js
rename to search/functions_5.js
diff --git a/html/search/functions_6.html b/search/functions_6.html
similarity index 100%
rename from html/search/functions_6.html
rename to search/functions_6.html
diff --git a/html/search/functions_6.js b/search/functions_6.js
similarity index 100%
rename from html/search/functions_6.js
rename to search/functions_6.js
diff --git a/html/search/functions_7.html b/search/functions_7.html
similarity index 100%
rename from html/search/functions_7.html
rename to search/functions_7.html
diff --git a/html/search/functions_7.js b/search/functions_7.js
similarity index 100%
rename from html/search/functions_7.js
rename to search/functions_7.js
diff --git a/html/search/groups_0.html b/search/groups_0.html
similarity index 100%
rename from html/search/groups_0.html
rename to search/groups_0.html
diff --git a/html/search/groups_0.js b/search/groups_0.js
similarity index 100%
rename from html/search/groups_0.js
rename to search/groups_0.js
diff --git a/html/search/groups_1.html b/search/groups_1.html
similarity index 100%
rename from html/search/groups_1.html
rename to search/groups_1.html
diff --git a/html/search/groups_1.js b/search/groups_1.js
similarity index 100%
rename from html/search/groups_1.js
rename to search/groups_1.js
diff --git a/html/search/groups_2.html b/search/groups_2.html
similarity index 100%
rename from html/search/groups_2.html
rename to search/groups_2.html
diff --git a/html/search/groups_2.js b/search/groups_2.js
similarity index 100%
rename from html/search/groups_2.js
rename to search/groups_2.js
diff --git a/html/search/mag_sel.png b/search/mag_sel.png
similarity index 100%
rename from html/search/mag_sel.png
rename to search/mag_sel.png
diff --git a/html/search/nomatches.html b/search/nomatches.html
similarity index 100%
rename from html/search/nomatches.html
rename to search/nomatches.html
diff --git a/html/search/pages_0.html b/search/pages_0.html
similarity index 100%
rename from html/search/pages_0.html
rename to search/pages_0.html
diff --git a/html/search/pages_0.js b/search/pages_0.js
similarity index 100%
rename from html/search/pages_0.js
rename to search/pages_0.js
diff --git a/html/search/pages_1.html b/search/pages_1.html
similarity index 100%
rename from html/search/pages_1.html
rename to search/pages_1.html
diff --git a/html/search/pages_1.js b/search/pages_1.js
similarity index 100%
rename from html/search/pages_1.js
rename to search/pages_1.js
diff --git a/html/search/pages_2.html b/search/pages_2.html
similarity index 100%
rename from html/search/pages_2.html
rename to search/pages_2.html
diff --git a/html/search/pages_2.js b/search/pages_2.js
similarity index 100%
rename from html/search/pages_2.js
rename to search/pages_2.js
diff --git a/html/search/pages_3.html b/search/pages_3.html
similarity index 100%
rename from html/search/pages_3.html
rename to search/pages_3.html
diff --git a/html/search/pages_3.js b/search/pages_3.js
similarity index 100%
rename from html/search/pages_3.js
rename to search/pages_3.js
diff --git a/html/search/search.css b/search/search.css
similarity index 100%
rename from html/search/search.css
rename to search/search.css
diff --git a/html/search/search.js b/search/search.js
similarity index 100%
rename from html/search/search.js
rename to search/search.js
diff --git a/html/search/search_l.png b/search/search_l.png
similarity index 100%
rename from html/search/search_l.png
rename to search/search_l.png
diff --git a/html/search/search_m.png b/search/search_m.png
similarity index 100%
rename from html/search/search_m.png
rename to search/search_m.png
diff --git a/html/search/search_r.png b/search/search_r.png
similarity index 100%
rename from html/search/search_r.png
rename to search/search_r.png
diff --git a/html/search/searchdata.js b/search/searchdata.js
similarity index 100%
rename from html/search/searchdata.js
rename to search/searchdata.js
diff --git a/html/search/typedefs_0.html b/search/typedefs_0.html
similarity index 100%
rename from html/search/typedefs_0.html
rename to search/typedefs_0.html
diff --git a/html/search/typedefs_0.js b/search/typedefs_0.js
similarity index 100%
rename from html/search/typedefs_0.js
rename to search/typedefs_0.js
diff --git a/html/selector.png b/selector.png
similarity index 100%
rename from html/selector.png
rename to selector.png
diff --git a/html/selector_8hpp.html b/selector_8hpp.html
similarity index 100%
rename from html/selector_8hpp.html
rename to selector_8hpp.html
diff --git a/html/selector_8hpp_source.html b/selector_8hpp_source.html
similarity index 100%
rename from html/selector_8hpp_source.html
rename to selector_8hpp_source.html
diff --git a/html/splitbar.png b/splitbar.png
similarity index 100%
rename from html/splitbar.png
rename to splitbar.png
diff --git a/html/structrd__view-members.html b/structrd__view-members.html
similarity index 100%
rename from html/structrd__view-members.html
rename to structrd__view-members.html
diff --git a/html/structrd__view.html b/structrd__view.html
similarity index 100%
rename from html/structrd__view.html
rename to structrd__view.html
diff --git a/html/structrd__view.js b/structrd__view.js
similarity index 100%
rename from html/structrd__view.js
rename to structrd__view.js
diff --git a/html/styles_8h.html b/styles_8h.html
similarity index 100%
rename from html/styles_8h.html
rename to styles_8h.html
diff --git a/html/styles_8h.js b/styles_8h.js
similarity index 100%
rename from html/styles_8h.js
rename to styles_8h.js
diff --git a/html/styles_8h_source.html b/styles_8h_source.html
similarity index 100%
rename from html/styles_8h_source.html
rename to styles_8h_source.html
diff --git a/html/sync_off.png b/sync_off.png
similarity index 100%
rename from html/sync_off.png
rename to sync_off.png
diff --git a/html/sync_on.png b/sync_on.png
similarity index 100%
rename from html/sync_on.png
rename to sync_on.png
diff --git a/html/tab_a.png b/tab_a.png
similarity index 100%
rename from html/tab_a.png
rename to tab_a.png
diff --git a/html/tab_b.png b/tab_b.png
similarity index 100%
rename from html/tab_b.png
rename to tab_b.png
diff --git a/html/tab_h.png b/tab_h.png
similarity index 100%
rename from html/tab_h.png
rename to tab_h.png
diff --git a/html/tab_s.png b/tab_s.png
similarity index 100%
rename from html/tab_s.png
rename to tab_s.png
diff --git a/html/tabs.css b/tabs.css
similarity index 100%
rename from html/tabs.css
rename to tabs.css
diff --git a/html/usage.html b/usage.html
similarity index 100%
rename from html/usage.html
rename to usage.html