  % Handle batch mode
  % to overcome problems with too many open files
  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
  \RequirePackage{iftex}
  \ifLuaTeX
    \directlua{pdf.setminorversion(7)}
  \fi
  \ifXeTeX
    \special{pdf:minorversion 7}
  \fi
  \ifPDFTeX
    \pdfminorversion=7
  \fi
  % Set document class depending on configuration
  \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
  \makeatletter
  \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
  % suppress package identification of infwarerr as it contains the word "warning"
  \let\@@protected@wlog\protected@wlog
  \def\protected@wlog#1{\wlog{package info suppressed}}
  \RequirePackage{infwarerr}
  \let\protected@wlog\@@protected@wlog
  \makeatother
  \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
  \ifPDFTeX
    \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
  \fi
  \usepackage{doxygen}
  \usepackage{graphicx}
  \iftutex
    \usepackage{fontspec}
    \defaultfontfeatures{Ligatures={TeX}}
    \usepackage{unicode-math}
  \else
    \usepackage[utf8]{inputenc}
  \fi
  \usepackage{makeidx}
  \PassOptionsToPackage{warn}{textcomp}
  \usepackage{textcomp}
  \usepackage[nointegrals]{wasysym}
  \usepackage{ifxetex}
  % NLS support packages
  % Define default fonts
  % Font selection
  \iftutex
  \else
    \usepackage[T1]{fontenc}
  \fi
  % set main and monospaced font
  \usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
  \doxyallsectionsfont{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \renewcommand{\DoxyLabelFont}{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
   % Arguments of doxygenemoji:
   % 1) ':<text>:' 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 ':<text>:' 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%
  }
  \usepackage{changepage}
  % Allow a bit of overflow to go unnoticed by other means
  \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
  % Redefine paragraph/subparagraph environments, using sectsty fonts
  \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}
  \renewcommand{\footrulewidth}{0.4pt}
  \fancypagestyle{fancyplain}{
    \fancyhf{}
    \fancyhead[LE, RO]{\bfseries\thepage}
    \fancyhead[LO]{\bfseries\rightmark}
    \fancyhead[RE]{\bfseries\leftmark}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
  }
  \fancypagestyle{plain}{
    \fancyhf{}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
    \renewcommand{\headrulewidth}{0pt}
  }
  \pagestyle{fancyplain}
  \renewcommand{\chaptermark}[1]{%
    \markboth{#1}{}%
  }
  \renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}%
  }
  % ToC, LoF, LoT, bibliography, and index
  % Indices & bibliography
  \usepackage[numbers]{natbib}
  \usepackage[titles]{tocloft}
  \setcounter{tocdepth}{3}
  \setcounter{secnumdepth}{5}
  % creating indexes
  \makeindex
  \ifPDFTeX
\usepackage{newunicodechar}
  \makeatletter
    \def\doxynewunicodechar#1#2{%
    \@tempswafalse
    \edef\nuc@tempa{\detokenize{#1}}%
    \if\relax\nuc@tempa\relax
      \nuc@emptyargerr
    \else
      \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}%
      \nuc@check
      \if@tempswa
        \@namedef{u8:\nuc@tempa}{#2}%
      \fi
    \fi
  }
  \makeatother
  \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus
  \doxynewunicodechar{²}{${}^{2}$}% Superscript two
  \doxynewunicodechar{³}{${}^{3}$}% Superscript three
\fi
  % Hyperlinks
    % Hyperlinks (required, but should be loaded last)
    \ifPDFTeX
      \usepackage[pdftex,pagebackref=true]{hyperref}
    \else
      \ifXeTeX
        \usepackage[xetex,pagebackref=true]{hyperref}
      \else
        \ifLuaTeX
          \usepackage[luatex,pagebackref=true]{hyperref}
        \else
          \usepackage[ps2pdf,pagebackref=true]{hyperref}
        \fi
      \fi
    \fi
    \hypersetup{%
      colorlinks=true,%
      linkcolor=blue,%
      citecolor=blue,%
      unicode,%
      pdftitle={Eyetracker},%
      pdfsubject={}%
    }
  % Custom commands used by the header
  % Custom commands
  \newcommand{\clearemptydoublepage}{%
    \newpage{\pagestyle{empty}\cleardoublepage}%
  }
  % caption style definition
  \usepackage{caption}
  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
  % in page table of contents
  \IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
  \etocsetlevel{subsubsubsection}{4}
  \etocsetlevel{subsubsubsubsection}{5}
  \etocsetlevel{subsubsubsubsubsection}{6}
  \etocsetlevel{subsubsubsubsubsubsection}{7}
  \etocsetlevel{paragraph}{8}
  \etocsetlevel{subparagraph}{9}
  % prevent numbers overlap the titles in toc
  \renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
  \raggedbottom
  % Titlepage & ToC
    % To avoid duplicate page anchors due to reuse of same numbers for
    % the index (be it as roman numbers)
    \hypersetup{pageanchor=false,
                bookmarksnumbered=true,
                pdfencoding=unicode
               }
  \pagenumbering{alph}
  \begin{titlepage}
  \vspace*{7cm}
  \begin{center}%
  {\Large Eyetracker}\\
  \vspace*{1cm}
  {\large Generated by Doxygen 1.13.2}\\
  \end{center}
  \end{titlepage}
  \clearemptydoublepage
  \pagenumbering{roman}
  \tableofcontents
  \clearemptydoublepage
  \pagenumbering{arabic}
  % re-enable anchors again
  \hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Namespace Index}
\input{namespaces}
\chapter{Hierarchical Index}
\input{hierarchy}
\chapter{Class Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Namespace Documentation}
\input{namespacepygaze}
\input{namespacepygaze_1_1__display}
\input{namespacepygaze_1_1__display_1_1basedisplay}
\input{namespacepygaze_1_1__display_1_1osdisplay}
\input{namespacepygaze_1_1__display_1_1psychopydisplay}
\input{namespacepygaze_1_1__display_1_1pygamedisplay}
\input{namespacepygaze_1_1__eyetracker}
\input{namespacepygaze_1_1__eyetracker_1_1baseeyetracker}
\input{namespacepygaze_1_1__eyetracker_1_1eyelinkgraphics}
\input{namespacepygaze_1_1__eyetracker_1_1i_view_x_a_p_i}
\input{namespacepygaze_1_1__eyetracker_1_1libdumbdummy}
\input{namespacepygaze_1_1__eyetracker_1_1libdummytracker}
\input{namespacepygaze_1_1__eyetracker_1_1libeyelink}
\input{namespacepygaze_1_1__eyetracker_1_1libeyetribe}
\input{namespacepygaze_1_1__eyetracker_1_1libopengaze}
\input{namespacepygaze_1_1__eyetracker_1_1libsmi}
\input{namespacepygaze_1_1__eyetracker_1_1libtobii}
\input{namespacepygaze_1_1__eyetracker_1_1libtobiiglasses}
\input{namespacepygaze_1_1__eyetracker_1_1libtobiilegacy}
\input{namespacepygaze_1_1__eyetracker_1_1opengaze}
\input{namespacepygaze_1_1__eyetracker_1_1pytribe}
\input{namespacepygaze_1_1__eyetracker_1_1tobiiglasses}
\input{namespacepygaze_1_1__eyetracker_1_1tobiiglasses_1_1tobiiglassescontroller}
\input{namespacepygaze_1_1__joystick}
\input{namespacepygaze_1_1__joystick_1_1basejoystick}
\input{namespacepygaze_1_1__joystick_1_1pygamejoystick}
\input{namespacepygaze_1_1__keyboard}
\input{namespacepygaze_1_1__keyboard_1_1basekeyboard}
\input{namespacepygaze_1_1__keyboard_1_1oskeyboard}
\input{namespacepygaze_1_1__keyboard_1_1psychopykeyboard}
\input{namespacepygaze_1_1__keyboard_1_1pygamekeyboard}
\input{namespacepygaze_1_1__logfile}
\input{namespacepygaze_1_1__logfile_1_1baselogfile}
\input{namespacepygaze_1_1__logfile_1_1logfile}
\input{namespacepygaze_1_1__misc}
\input{namespacepygaze_1_1__misc_1_1misc}
\input{namespacepygaze_1_1__mouse}
\input{namespacepygaze_1_1__mouse_1_1basemouse}
\input{namespacepygaze_1_1__mouse_1_1osmouse}
\input{namespacepygaze_1_1__mouse_1_1psychopymouse}
\input{namespacepygaze_1_1__mouse_1_1pygamemouse}
\input{namespacepygaze_1_1__screen}
\input{namespacepygaze_1_1__screen_1_1basescreen}
\input{namespacepygaze_1_1__screen_1_1osscreen}
\input{namespacepygaze_1_1__screen_1_1psychopyscreen}
\input{namespacepygaze_1_1__screen_1_1pygamescreen}
\input{namespacepygaze_1_1__sound}
\input{namespacepygaze_1_1__sound_1_1basesound}
\input{namespacepygaze_1_1__sound_1_1pygamesound}
\input{namespacepygaze_1_1__time}
\input{namespacepygaze_1_1__time_1_1basetime}
\input{namespacepygaze_1_1__time_1_1ostime}
\input{namespacepygaze_1_1__time_1_1psychopytime}
\input{namespacepygaze_1_1__time_1_1pygametime}
\input{namespacepygaze_1_1defaults}
\input{namespacepygaze_1_1display}
\input{namespacepygaze_1_1eyetracker}
\input{namespacepygaze_1_1joystick}
\input{namespacepygaze_1_1keyboard}
\input{namespacepygaze_1_1libgazecon}
\input{namespacepygaze_1_1libinput}
\input{namespacepygaze_1_1liblog}
\input{namespacepygaze_1_1libscreen}
\input{namespacepygaze_1_1libsound}
\input{namespacepygaze_1_1libtime}
\input{namespacepygaze_1_1logfile}
\input{namespacepygaze_1_1mouse}
\input{namespacepygaze_1_1plugins}
\input{namespacepygaze_1_1plugins_1_1aoi}
\input{namespacepygaze_1_1plugins_1_1frl}
\input{namespacepygaze_1_1plugins_1_1gazecursor}
\input{namespacepygaze_1_1py3compat}
\input{namespacepygaze_1_1screen}
\input{namespacepygaze_1_1settings}
\input{namespacepygaze_1_1sound}
\input{namespacepygaze_1_1time}
\chapter{Class Documentation}
\input{classpygaze_1_1plugins_1_1aoi_1_1_a_o_i}
\input{classpygaze_1_1__display_1_1basedisplay_1_1_base_display}
\input{classpygaze_1_1__eyetracker_1_1baseeyetracker_1_1_base_eye_tracker}
\input{classpygaze_1_1__joystick_1_1basejoystick_1_1_base_joystick}
\input{classpygaze_1_1__keyboard_1_1basekeyboard_1_1_base_keyboard}
\input{classpygaze_1_1__logfile_1_1baselogfile_1_1_base_logfile}
\input{classpygaze_1_1__mouse_1_1basemouse_1_1_base_mouse}
\input{classpygaze_1_1__screen_1_1basescreen_1_1_base_screen}
\input{classpygaze_1_1__sound_1_1basesound_1_1_base_sound}
\input{classpygaze_1_1__time_1_1basetime_1_1_base_time}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_accuracy}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1calibration}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_calibration}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_event}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_eye}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1connection}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_sample}
\input{classpygaze_1_1__eyetracker_1_1i_view_x_a_p_i_1_1_c_system}
\input{classpygaze_1_1display_1_1_display}
\input{classpygaze_1_1__eyetracker_1_1libdumbdummy_1_1_dumb_dummy}
\input{classpygaze_1_1__eyetracker_1_1libdummytracker_1_1_dummy}
\input{classpygaze_1_1__eyetracker_1_1eyelinkgraphics_1_1_eyelink_graphics}
\input{classpygaze_1_1eyetracker_1_1_eye_tracker}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1_eye_tribe}
\input{classpygaze_1_1__eyetracker_1_1libeyetribe_1_1_eye_tribe_tracker}
\input{classpygaze_1_1plugins_1_1frl_1_1_f_r_l}
\input{classpygaze_1_1plugins_1_1gazecursor_1_1_gaze_cursor}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1heartbeat}
\input{classpygaze_1_1joystick_1_1_joystick}
\input{classpygaze_1_1keyboard_1_1_keyboard}
\input{classpygaze_1_1__eyetracker_1_1libeyelink_1_1libeyelink}
\input{classpygaze_1_1__logfile_1_1logfile_1_1_logfile}
\input{classpygaze_1_1logfile_1_1_logfile}
\input{classpygaze_1_1mouse_1_1_mouse}
\input{classpygaze_1_1__eyetracker_1_1libopengaze_1_1_open_gaze_tracker}
\input{classpygaze_1_1__eyetracker_1_1opengaze_1_1_open_gaze_tracker}
\input{classpygaze_1_1__display_1_1osdisplay_1_1_o_s_display}
\input{classpygaze_1_1__keyboard_1_1oskeyboard_1_1_o_s_keyboard}
\input{classpygaze_1_1__mouse_1_1osmouse_1_1_o_s_mouse}
\input{classpygaze_1_1__screen_1_1osscreen_1_1_o_s_screen}
\input{classpygaze_1_1__time_1_1ostime_1_1_o_s_time}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1_parallel_eye_tribe}
\input{classpygaze_1_1__display_1_1psychopydisplay_1_1_psycho_py_display}
\input{classpygaze_1_1plugins_1_1frl_1_1_psycho_py_f_r_l}
\input{classpygaze_1_1__keyboard_1_1psychopykeyboard_1_1_psycho_py_keyboard}
\input{classpygaze_1_1__mouse_1_1psychopymouse_1_1_psycho_py_mouse}
\input{classpygaze_1_1__screen_1_1psychopyscreen_1_1_psycho_py_screen}
\input{classpygaze_1_1__time_1_1psychopytime_1_1_psycho_py_time}
\input{classpygaze_1_1__display_1_1pygamedisplay_1_1_py_game_display}
\input{classpygaze_1_1plugins_1_1frl_1_1_py_game_f_r_l}
\input{classpygaze_1_1__joystick_1_1pygamejoystick_1_1_py_game_joystick}
\input{classpygaze_1_1__keyboard_1_1pygamekeyboard_1_1_py_game_keyboard}
\input{classpygaze_1_1__mouse_1_1pygamemouse_1_1_py_game_mouse}
\input{classpygaze_1_1__screen_1_1pygamescreen_1_1_py_game_screen}
\input{classpygaze_1_1__sound_1_1pygamesound_1_1_py_game_sound}
\input{classpygaze_1_1__time_1_1pygametime_1_1_py_game_time}
\input{classpygaze_1_1screen_1_1_screen}
\input{classpygaze_1_1settings_1_1_settings}
\input{classpygaze_1_1__eyetracker_1_1libsmi_1_1_s_m_itracker}
\input{classpygaze_1_1sound_1_1_sound}
\input{classpygaze_1_1time_1_1_time}
\input{classpygaze_1_1__eyetracker_1_1libtobiilegacy_1_1_tobii_controller}
\input{classpygaze_1_1__eyetracker_1_1tobiiglasses_1_1tobiiglassescontroller_1_1_tobii_glasses_controller}
\input{classpygaze_1_1__eyetracker_1_1libtobiiglasses_1_1_tobii_glasses_tracker}
\input{classpygaze_1_1__eyetracker_1_1libtobii_1_1_tobii_pro_tracker}
\input{classpygaze_1_1__eyetracker_1_1libtobiilegacy_1_1_tobii_tracker}
\input{classpygaze_1_1__eyetracker_1_1pytribe_1_1tracker}
\chapter{File Documentation}
\input{basedisplay_8py}
\input{osdisplay_8py}
\input{psychopydisplay_8py}
\input{pygamedisplay_8py}
\input{baseeyetracker_8py}
\input{eyelinkgraphics_8py}
\input{i_view_x_a_p_i_8py}
\input{libdumbdummy_8py}
\input{libdummytracker_8py}
\input{libeyelink_8py}
\input{libeyetribe_8py}
\input{libopengaze_8py}
\input{libsmi_8py}
\input{libtobii_8py}
\input{libtobiiglasses_8py}
\input{libtobiilegacy_8py}
\input{opengaze_8py}
\input{pytribe_8py}
\input{tobiiglassescontroller_8py}
\input{basejoystick_8py}
\input{pygamejoystick_8py}
\input{basekeyboard_8py}
\input{oskeyboard_8py}
\input{psychopykeyboard_8py}
\input{pygamekeyboard_8py}
\input{baselogfile_8py}
\input{misc_8py}
\input{basemouse_8py}
\input{osmouse_8py}
\input{psychopymouse_8py}
\input{pygamemouse_8py}
\input{basescreen_8py}
\input{osscreen_8py}
\input{psychopyscreen_8py}
\input{pygamescreen_8py}
\input{basesound_8py}
\input{pygamesound_8py}
\input{basetime_8py}
\input{ostime_8py}
\input{psychopytime_8py}
\input{pygametime_8py}
\input{defaults_8py}
\input{display_8py}
\input{eyetracker_8py}
\input{joystick_8py}
\input{keyboard_8py}
\input{libgazecon_8py}
\input{libinput_8py}
\input{liblog_8py}
\input{libscreen_8py}
\input{libsound_8py}
\input{libtime_8py}
\input{__logfile_2logfile_8py}
\input{logfile_8py}
\input{mouse_8py}
\input{____init_____8py}
\input{__display_2____init_____8py}
\input{__eyetracker_2____init_____8py}
\input{__eyetracker_2tobiiglasses_2____init_____8py}
\input{__joystick_2____init_____8py}
\input{__keyboard_2____init_____8py}
\input{__logfile_2____init_____8py}
\input{__misc_2____init_____8py}
\input{__mouse_2____init_____8py}
\input{__screen_2____init_____8py}
\input{__sound_2____init_____8py}
\input{__time_2____init_____8py}
\input{plugins_2____init_____8py}
\input{aoi_8py}
\input{frl_8py}
\input{gazecursor_8py}
\input{py3compat_8py}
\input{screen_8py}
\input{settings_8py}
\input{sound_8py}
\input{time_8py}
%--- End generated contents ---
% Index
  \backmatter
  \newpage
  \phantomsection
  \clearemptydoublepage
  \addcontentsline{toc}{chapter}{\indexname}
  \printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}
