%%
%% This is file `denisbdoc.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% denisbdoc.dtx  (with options: `package')
%% -----------------------------------------------------------------------------
%% denisbdoc --- A personal dirty package for documenting personal classes,
%%               version 0.9.1
%% 
%% Maintained by Denis Bitouzé
%% E-mail: denis.bitouze@univ-littoral.fr
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% -----------------------------------------------------------------------------
%% 
\RequirePackage{expl3,l3keys2e,xparse}
\ProvidesExplPackage {denisbdoc} {2020/10/14} {0.9.1}
  {A personal package for documenting packages}
\@ifpackagelater { expl3 } { 2012/11/21 }
  { }
  {
    \PackageError { denisbdoc } { Support~package~expl3~too~old }
      {
        You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
        'l3packages'.\MessageBreak
        Loading~denisbdoc~will~abort!
      }
    \tex_endinput:D
  }
\keys_define:nn { denisbdoc }
{
  yad .bool_gset:N = \g__denisbdoc_yad_bool,
  gzt .bool_gset:N = \g__denisbdoc_gzt_bool,
  nwejm .bool_gset:N = \g__denisbdoc_nwejm_bool,
  studentreport .bool_gset:N = \g__denisbdoc_studentreport_bool,
  lscape .bool_gset:N = \g__denisbdoc_lscape_bool,
}
\ProcessKeysOptions { denisbdoc }
\PassOptionsToPackage{obeyspaces}{url}
\sys_if_engine_pdftex:TF
{
  % \RequirePackage{cmap}
  \RequirePackage[T1]{fontenc}
  \RequirePackage[utf8]{inputenc}
  \pdfsuppresswarningpagegroup=1
}{
  \RequirePackage{fontspec}
}
\RequirePackage{xpatch}%
\AtEndPreamble{%
  \RequirePackage{mweights}%
}%
\RequirePackage{fixfoot}%
\newif\if@DBD@beamer@not@loaded@
\@DBD@beamer@not@loaded@true
\@ifclassloaded{beamer}{\@DBD@beamer@not@loaded@false}{\@DBD@beamer@not@loaded@true}
\if@DBD@beamer@not@loaded@
\RequirePackage{parskip}%
  \RequirePackage{marginnote}
  \RequirePackage{mparhack}
  \RequirePackage[inline]{enumitem}
\fi%
\RequirePackage{afterpage}%
\RequirePackage{calc}%
\RequirePackage{siunitx}%
\RequirePackage{booktabs}%
\RequirePackage{multirow}%
\RequirePackage[xr]{zref}%
\if@DBD@beamer@not@loaded@
  \RequirePackage[multiple]{footmisc}%
  \RequirePackage{rotating}%
\fi%
\bool_if:nTF {\g__denisbdoc_lscape_bool} {%
  \RequirePackage{lscape}%
}{%
  \RequirePackage{pdflscape}%
}
\RequirePackage{xspace}%
\RequirePackage{accsupp}
\RequirePackage{newunicodechar}
\RequirePackage{hologo}%
\RequirePackage{xifthen}%
\RequirePackage{refcount}%
\RequirePackage{etoolbox}%
\RequirePackage{iflang}%
\RequirePackage{ifpdf}%
\RequirePackage{amssymb}%
\if@DBD@beamer@not@loaded@
  \RequirePackage{tocvsec2}%
\fi
\RequirePackage{ltxcmds}%
\RequirePackage{csquotes}%
\RequirePackage{tikz}%
\RequirePackage{translator}%
\let\EUR\relax
\RequirePackage{comment}%
\RequirePackage{path}%
\RequirePackage{textcase}%
\RequirePackage{fontawesome}%
\@ifpackageloaded{biblatex}{%
\AtEndPreamble{%
  \bool_if:nT {\g__denisbdoc_yad_bool} {%
    % \defbibheading{bibintoc}[\bibname]{\chapter*{#1}}%
    % % \defbibheading{subbibintoc}[\bibname]{\section*{#1}}%
    % \defbibheading{YAD@localbibs@heading}[\translate{lbl-localbibname}]{%
    %   % \YAD@setsecnumdepth{none}%
    %   \section*{#1}%
    %   % \YAD@setsecnumdepth{\YAD@secnumdepth}%
    % }%
    \let\__denisbdoc_printbibliography_ORI\printbibliography%
    \renewcommand{\printbibliography}[1][]{%
      \@ifpackageloaded{setspace}{%
        \singlespacing%
      }{%
      }
      \chapter*{\bibname}%
      \__denisbdoc_printbibliography_ORI[heading=none,#1]%
    }%
  }%
}%
}{%
  \RequirePackage[%backend=biber%
  ,style=authortitle,dashed=false
  ,autopunct=false,useprefix=true,backref]{biblatex}%
}%
\RequirePackage{morewrites}%
\RequirePackage{babel}%
\RequirePackage[useregional]{datetime2}%
\RequirePackage{subcaption}%
\if@DBD@beamer@not@loaded@
  \RequirePackage{tocbibind}%
  \RequirePackage[xindy]{imakeidx}
\fi%
\RequirePackage{varioref}%
\@ifpackageloaded{tcolorbox}{%
}{%
  \RequirePackage{tcolorbox}%
}%
\@ifpackageloaded{hyperref}{%
}{%
  \RequirePackage[hyperfootnotes=false,hyperindex=false]{hyperref}%
}%
\RequirePackage{attachfile2}%
\@ifpackageloaded{nameref}{%
}{%
  \RequirePackage{nameref}%
}%
\@ifpackageloaded{hypcap}{%
}{%
  \if@DBD@beamer@not@loaded@
    \RequirePackage[all]{hypcap}%
  \fi%
}%
\@ifpackageloaded{bookmark}{%
}{%
  \RequirePackage[numbered]{bookmark}%
}%
\@ifpackageloaded{glossaries}{%
}{%
  \RequirePackage[xindy,hyperfirst=false,toc=false]{glossaries-extra}%
  \makeglossaries%
  \newglossaryentry{zip}{%
    name=zip,%
    category={format},%
    description={format~ de~ fichier~ permettant~ l'archivage~ (utilisation~
      d'un~ seul~ fichier~ pour~ stocker~ plusieurs~ fichiers)~ et~ la~
      compression~ de~ données~ (diminution~ de~ l'espace~ occupé~ sur~ le~
      support~ numérique)~ sans~ perte~ de~ qualité},%
    text={zip}%
  }%
  \setglossarystyle{indexhypergroup}%
  \setabbreviationstyle{long-short-sc}%
  \newcommand*{\formatfont}[1]{\textsc{#1}}%
  \glssetcategoryattribute{format}{glossnamefont}{formatfont}%
  \glssetcategoryattribute{format}{font}{formatfont}%
  \renewcommand*{\glsxtrregularfont}[1]{%
    \glshasattribute{\glslabel}{font}%
    {\csuse{\glsgetattribute{\glslabel}{font}}{#1}}%
    {#1}%
  }%
}%
\@ifpackageloaded{cleveref}{%
}{%
  \RequirePackage{cleveref}%
}%
\if@DBD@beamer@not@loaded@
  \def\hdpindex#1#2{%
    \csname\ifx\\#1\\relax\else#1\fi\endcsname{%
      \hyperpage{#2}%
    }%
  }
  \let\HDorg@wrglossary\@wrglossary
  \def\@wrglossary#1{%
    \let\HDorg@encapchar\encapchar
    \def\encapchar##1\encapchar##2\@nil{%
      \HDorg@encapchar
      hdpindex{##1}%
    }%
    \HDorg@wrglossary{#1\encapchar\encapchar\@nil}%
  }
\fi%
\@ifpackageloaded{glossaries-extra}{%
  \renewcommand*{\glsxtrabbrvpluralsuffix}{}
}{%
}
\ltx@iffilelater{french.ldf}{2016/03/20}{%
}{%
  \DeclareRobustCommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse%
    \ifFB@active@punct\noautospace@beforeFDP\shorthandoff{;:!?}\fi%
    \ifFB@xetex@punct\XeTeXinterchartokenstate=0 \fi%
    \ifFB@luatex@punct\FB@addDPspace=0 \FB@addGUILspace=0 \fi%
  }%
}
\ExplSyntaxOff
\ifpdf
\tcbuselibrary{listingsutf8}
\else
\tcbuselibrary{listings}
\fi
\tcbuselibrary{%
  documentation,theorems,breakable,skins,xparse%
}
\tcbset{%
  commandshell/.style={%
    colback=black,
    colupper=white,
    colframe=yellow!75!black,
    breakable,
    listing only,
    listing options={style=tcblatex,language=bash,escapeinside={(*@}{@*)}},
    every listing line={%
      \textcolor{red}{%
        \small\ttfamily\bfseries%
        \BeginAccSupp{method=plain,ActualText={}}
        \$
        \EndAccSupp{}%
      }
    },
  }
}
\tcbset{doc marginnote={if odd page or oneside={flushright upper}{flushright upper}}}
\reversemarginpar
\pretocmd{\tcbdocmarginnote}{%
  \patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
  \patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
  \reversemarginpar%
}{}{}
\@ifpackageloaded{geometry}{%
  \geometry{marginparwidth=.65in}%
}{}
\DeclareTotalTCBox{\commandshell}{ v }{ commandshell}{#1}
\newtcblisting{listingshell}[1][]{%
  % colback=black,
  % colupper=white,
  colback=white,
  colupper=black,
  colframe=yellow!75!black,
  breakable,
  listing only,
  listing options={%
    style=tcblatex,
    language=bash,
    escapeinside={(*@}{@*)},
    upquote=true,
    showstringspaces=false
  },
  every listing line={%
    \textcolor{red}{%
      \small\ttfamily\bfseries%
      \BeginAccSupp{method=plain,ActualText={}}
      \$
      \EndAccSupp{}%
    }
  },
  #1
}
\usetikzlibrary{trees,backgrounds,fit,calc,positioning}
\attachfilesetup{color=Hyperlink}
\if@DBD@beamer@not@loaded@
\newcommand{\indexmark}[1]{\hypertarget{index:#1}{#1}\markboth{#1}{#1}}
\newcommand{\targetindexentry}[1]{\indexmark{#1}}
\newcounter{targeti}
\newcommand{\targetindexentryi}[1]{\stepcounter{targeti}\hypertarget{\thetargeti:index:#1}{#1}}
\newcounter{targetii}
\newcommand{\targetindexentryii}[1]{\stepcounter{targetii}\hypertarget{\thetargetii:index:#1}{#1}}
\newcommand{\seelink}[1]{\see{\hyperlink{index:#1}{#1}}}
\newcommand{\indexdef}[1]{\index{#1|definition}}
\newcommand{\indexex}[1]{%
  \index{#1|example}%
  \index{exemple!#1|example}%
}
\newcommand{\indexsee}[2]{\index{#1|see{#2}}}
  \xpretocmd{\printindex}{\edef\DBD@index@symbolic@name{#1}}{}{\aaa}
  % \xpretocmd{\printindex}{\edef\DBD@index@symbolic@name{#1}}{}{\aaa}
\xpatchcmd{\indexprologue}{#2}{%
  #2
  \par\bigskip
  \csuse{DBD@indexnavigation@\csuse{DBD@index@symbolic@name}}%
}{}{\aaa}%
\newcommand*{\indexheading}[2]{%
  \hypertarget{#2:#1}{\textbf{#1}}%
  \protected@write\@auxout{}{\string\DBD@indexgroup{#1}{#2}}%
}
\newtoggle{@DBD@no@first@letter}
\newcommand*{\DBD@indexgroup}[2]{%
  \csgappto{DBD@indexnavigation@#2}{%
    \iftoggle{@DBD@no@first@letter}{%
      \,\textbar\,%
      % \\
    }{%
      \toggletrue{@DBD@no@first@letter}%
      \noindent%
    }%
    \hyperlink{#2:#1}{\textbf{#1}}%
  }%
}%
\fi
\DeclareUrlCommand\urldirectory{\urlstyle{tt}}
\ExplSyntaxOn
\tl_const:Nn \c__denisbdoc_examples_path_tl {../exemples}
\tl_const:Nn \c__denisbdoc_template_string_tl {\c__denisbdoc_examples_path_tl/canevas}
\tl_const:Nn \c__denisbdoc_sample_string_tl {\c__denisbdoc_examples_path_tl/specimen}
\tl_const:Nn \c__denisbdoc_flattemplate_string_tl {\c__denisbdoc_template_string_tl/a-plat}
\tl_const:Nn \c__denisbdoc_flatsample_string_tl {\c__denisbdoc_sample_string_tl/a-plat}
\tl_const:Nn \c__denisbdoc_treetemplate_string_tl {\c__denisbdoc_template_string_tl/en-arborescence}
\tl_const:Nn \c__denisbdoc_treesample_string_tl {\c__denisbdoc_sample_string_tl/en-arborescence}
\tl_const:Nn \c__denisbdoc_template_sample_zip_string_tl {canevas-specimen.zip}
\tl_const:Nn \c__denisbdoc_these_aux_string_tl {these.aux}
\tl_const:Nn \c__denisbdoc_these_snippets_directory_tl {extraits-these}
\tl_const:Nn \c__denisbdoc_unixtldirectory_string_tl {/usr/local/}
\tl_const:Nn \c__denisbdoc_tlversion_string_tl {2016}
\tl_const:Nn \c__denisbdoc_wintldirectory_string_tl {c:/}
\tl_const:Nn \c__denisbdoc_tldistdirectory_string_tl {texlive/\tlversion/texmf-dist/}
\tl_const:Nn \c__denisbdoc_miktexdistdirectory_string_tl {[TODO]}
\tl_const:Nn \c__denisbdoc_docdirectory_string_tl {doc/}
\tl_const:Nn \c__denisbdoc_texdirectory_string_tl {tex/}
\tl_const:Nn \c__denisbdoc_sourcedirectory_string_tl {source/}
\tl_const:Nn \c__denisbdoc_jobdirectory_string_tl {latex/\jobname}
\tl_const:Nn \c__denisbdoc_jobdocdirectory_string_tl {\docdirectory\jobdirectory}
\tl_const:Nn \c__denisbdoc_aside_string_tl {---}
\colorlet{specimens}{yellow!30}
\colorlet{canevas}{green!30}
\colorlet{doc}{specimens!50!canevas}
\colorlet{en-arborescence}{red!20}
\colorlet{a-plat}{blue!20}
\colorlet{texcs}{blue}
\colorlet{directive}{texcs}
\colorlet{mandatory-argument}{red}
\colorlet{environment}{teal}
\colorlet{key}{purple}
\colorlet{value}{violet}
\colorlet{keyword4}{key}
\colorlet{keyword5}{magenta}
\colorlet{comment}{gray}
\colorlet{string}{cyan}
\colorlet{math}{green!50!black}
\colorlet{meta}{brown}
\colorlet{preamble}{violet}
\skip_const:Nn \c__denisbdoc_listings_aboveskip_skip { \c_zero_dim plus 6pt }%
\skip_const:Nn \c__denisbdoc_listings_belowskip_skip { \c_zero_dim plus 6pt }%
\lstdefinelanguage[extLaTeX]{TeX}[LaTeX]{TeX}{%
  moretexcs={%
    footnotesize,huge,Huge,large,Large,LARGE,large,Large,scriptsize,tiny,%
    includegraphics,cite,ttwplink,cref,vref,LTXtable,tableofcontents,frontmatter,mainmatter,%
    part,chapter,section,subsection,subsubsection,paragraph,subparagraph,RequirePackage,%
    listoftables,listoffigures,lstlistingname,si,SI,ohm,num,space,shorthandon,shorthandoff,%
    abstractname,appendixname,contentsname,listfigurename,listtablename,indexname,%
    figurename,tablename,chaptername,pagename,seename,alsoname,proofname,bibname,glossaryname,%
    addto,captionsenglish,captionsfrench,lipsum,partname,refname,renewcommand*,%
    appendix,lstlistoflistings,graphicpath,loadglsentries,hypersetup,detect-all,SetWatermarkColor,%
    @pnumwidth,bookmarksetup,DeclareTextCommand,text,iiint,NewPairedDelimiter,%
    norm,lnorm,llnorm,lpnorm,supnorm,abs,prt,brk,brc,lrangle,leqgeq,%
    norm*,lnorm*,llnorm*,lpnorm*,supnorm*,abs*,prt*,brk*,brc*,lrangle*,leqgeq*,%
    pdfobjcompresslevel,chaptermark,PassOptionsToClass%
  },%
  morekeywords={[1]% Environments' names
    tabular,tabulary,math,document,minipage,eqnarray,eqnarray*,align,align*,%
    equation,gather,multline,flalign,equation*,gather*,multline*,flalign*,%
    itemize,itemize*,enumerate,enumerate*,description,description*,%
  },%
  morekeywords=[2]{% Keys of key-value lists and packages' names
    bookmarksdepth,see,babel,colorlinks,linktoc,width,left,right,subscript%
  },%
  morekeywords=[3]{% Values of key-value lists
    german,ngerman,french,english,spanish%
  }, alsoletter={-*@1234560}%
}%
\lstdefinelanguage[glossaries]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    makeglossaries,printglossaries,printglossary,newglossaryentry,gls,Gls,GLS,glspl,Glspl,%
    GLSpl,newacronym,%
    glsuseri,glsuserii,glsuseriii,glsuseriv,glsuserv,glsuservi,glsshortpluralkey,glslongpluralkey,%
    loadglsentries,%
    glsadd,glstextformat,glsnamefont,glossarypreamble,glossarypostamble,acrshort,acrshort*,%
    acrlong,acrfull,%
    Acrshort,ACRshort,Acrlong,ACRlong,Acrfull,ACRfull,acrshortpl,Acrshortpl,acrlongpl,Acrlongpl,%
    acrfullpl,Acrfullpl,%
    Acrlong*,acronymtype,printacronyms,printsymbols%
  },%
  % Mandatory arguments (other than environments' names)
  morekeywords={%
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    first,firstplural,plural,sort,nonumberlist,name,acronym,acronyms,symbols,%
    user1,user2,user3,user4,user5,user6,hyper,style,xindy,toc,title,%
    useri,userii,useriii,useriv,userv,uservi%
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    listgroup,listhypergroup,%
    % textrm,textit,textsf,textsl,texttt,textup,textbf,textsc,textmd,emph,%
    hyperrm,hyperit,hypersf,hypersl,hypertt,hyperup,hyperbf,hypersc,hypermd,hyperemph%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[biblatex]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    cite,Cite,parencite,Parencite,footcite,footcitetext,%
    smartcite,Smartcite,%
    textcite,Textcite,supercite,cites,Cites,parencites,%
    Parencites,footcitesfootcitetexts,textcites,Textcites,%
    supercites,autocite,Autocite,autocite*,Autocite*,autocites,%
    Autocites,citeauthor,Citeauthor,citetitle,citetitle*,%
    citeyear,citeurl,parentext,brackettext,nocite,fullcite,%
    footfullcite,volcite,Volcite,pvolcite,Pvolcite,fvolcite,%
    ftvolcite,tvolcite,Tvolcite,avolcite,Avolcite,notecite,%
    Notecite,pnotecite,Pnotecite,fnotecite,citename,citelist,%
    citefield,printbibliography,bibliography,citedate,%
    ExecuteBibliographyOptions,defbibnote,psq,psqq,addbibresource%
  },%
  % morekeywords={%
  %   @article,@book,@inbook,@bookinbook,@suppbook,@booklet,@collection,%
  %   @conference,@incollection,@suppcollection,@manual,@misc,@online,%
  %   @patent,@periodical,@suppperiodical,@proceedings,@inproceedings,%
  %   @reference,@inreference,@report,@thesis,@unpublished,@masterthesis,%
  %   @phdthesis,%
  %   @Article,@Book,@Inbook,@Bookinbook,@Suppbook,@Booklet,@Collection,%
  %   @conference,@Incollection,@Suppcollection,@Manual,@Misc,@Online,%
  %   @patent,@Periodical,@Suppperiodical,@Proceedings,@Inproceedings,%
  %   @reference,@Inreference,@Report,@Thesis,@Unpublished,@Masterthesis,%
  %   @Phdthesis,%
  %   @ARTICLE,@BOOK,@INBOOK,@BOOKINBOOK,@SUPPBOOK,@BOOKLET,@COLLECTION,%
  %   @CONFERENCE,@INCOLLECTION,@SUPPCOLLECTION,@MANUAL,@MISC,@ONLINE,%
  %   @PATENT,@PERIODICAL,@SUPPPERIODICAL,@PROCEEDINGS,@INPROCEEDINGS,%
  %   @REFERENCE,@INREFERENCE,@REPORT,@THESIS,@UNPUBLISHED,@MASTERTHESIS,%
  %   @PHDTHESIS,%
  %   @string,@String,@STRING,@comment%
  % },%
  % directives
  directives={%
    article,book,inbook,bookinbook,suppbook,booklet,collection,%
    conference,incollection,suppcollection,manual,misc,online,%
    patent,periodical,suppperiodical,proceedings,inproceedings,%
    reference,inreference,report,thesis,unpublished,masterthesis,%
    phdthesis,%
    Article,Book,Inbook,Bookinbook,Suppbook,Booklet,Collection,%
    conference,Incollection,Suppcollection,Manual,Misc,Online,%
    patent,Periodical,Suppperiodical,Proceedings,Inproceedings,%
    reference,Inreference,Report,Thesis,Unpublished,Masterthesis,%
    Phdthesis,%
    ARTICLE,BOOK,INBOOK,BOOKINBOOK,SUPPBOOK,BOOKLET,COLLECTION,%
    CONFERENCE,INCOLLECTION,SUPPCOLLECTION,MANUAL,MISC,ONLINE,%
    PATENT,PERIODICAL,SUPPPERIODICAL,PROCEEDINGS,INPROCEEDINGS,%
    REFERENCE,INREFERENCE,REPORT,THESIS,UNPUBLISHED,MASTERTHESIS,%
    PHDTHESIS,%
    string,String,STRING,comment%
  },%
  % Mots-clés de niveau 1 : attributs et options de biblatex
  morekeywords=[2]{%
    abstract,addendum,afterword,annotation,annotator,author,authortype,%
    bookauthor,bookpagination,booksubtitle,booktitle,booktitleaddon,%
    chapter,commentator,date,doi,edition,editor,editora,editorb,%
    editorc,editortype,editoratype,editorbtype,editorctype,eid,eprint,%
    eprintclass,eprinttype,eventdate,eventtitle,file,foreword,holder,%
    howpublished,indextitle,institution,introduction,isan,isbn,ismn,%
    isrn,issn,issue,issuesubtitle,issuetitle,iswc,journalsubtitle,%
    journaltitle,label,language,library,location,mainsubtitle,%
    maintitle,maintitleaddon,month,nameaddon,note,number,organization,%
    origdate,origlanguage,origlocation,origpublisher,origtitle,pages,%
    pagetotal,pagination,part,publisher,pubstate,reprinttitle,series,%
    shortauthor,shorteditor,shorthand,shorthandintro,shortjournal,%
    shortseries,shorttitle,subtitle,title,titleaddon,translator,type,%
    url,urldate,venue,version,volume,volumes,year,crossref,entryset,%
    entrysubtype,execute,gender,hyphenation,indexsorttitle,keywords,%
    options,presort,sortkey,sortname,sorttitle,sortyear,xref,annote,%
    archiveprefix,journal,key,pdf,primaryclass,school,address,%
    %
    backend,style,citestyle,bibstyle,sorting,maxnames,minnames,maxitems,minitems,%
    backref,abbreviate,firstinits,prenote,postnote,useprefix,autopunct%
  },%
  % Mots-clés de niveau 3 : valeurs des attributs identifiées
  morekeywords=[3]{%
    submitted,inpress,danish dutch,american,USenglish,english,%
    british,UKenglish,canadian,australian,newzealand,finnish,french,%
    francais,canadien,german,ngerman,austrian,naustrian,greek,%
    italian,norsk,nynorsk,brazil,portuges,spanish,swedish,%
    %
    biber,numeric,numeric-comp,numeric-verb,alphabetic,%
    alphabetic-verb,authoryear,authoryear-comp,authoryear-ibid,%
    authoryear-icomp,authortitle,authortitle-comp,authortitle-ibid,%
    authortitle-icomp,authortitle-terse,authortitle-tcomp,%
    authortitle-ticomp,verbose,verbose-ibid,verbose-note,%
    verbose-inote,verbose-trad1,verbose-trad2,verbose-trad3,%
    reading,draft,debug,%
    inline,footnote,superscript,plain,%
    nyt,ynt,none,false%
  },%
  alsoletter={-123},%
  sensitive,%
  delim=*[directive]@
  %
}[keywords,directives,tex,comments]%
\lstdefinelanguage[csquotes]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    enquote,textelp,textins,blockcquote,SetCiteCommand%
  },%
  % Mots-clés de niveau 1 : arguments optionnels
  morekeywords={%
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    % title,
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    skipbib%
  },%
  % Mots-clés de niveau 4 : arguments optionnels valeurs de clés dans clé=valeur
  morekeywords=[4]{%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[colophon]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    colophontitle,colophontitlestyle,colophontitlesize,colophonmidspace,%
    colophonpagestyle,colophontitlealign,colophonpretitlehook,colophonposttitlehook,%
    colophonparstyle,colophonparsize,colophonparlead,colophonnofirstindent,colophonpreparhook,%
    colophonpostparhook,colophonparalign,colophonnofullpage,colophonnoclrdblpg,colophonclrpg,%
    colophontopspace,colophonbotspace%
  },%
  % Mots-clés de niveau 1 : arguments optionnels
  morekeywords={%
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    colophon,
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    titlestyle,titlesize,aftertitle,pagestyle,titlealign,%
    parstyle,parsize,parlead,nofirstindent,nofullpage,noclrdblpg,%
    clrpg,topspace,botspace%
  },%
  % Mots-clés de niveau 4 : arguments optionnels valeurs de clés dans clé=valeur
  morekeywords=[4]{%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[tcolorbox]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    tcbset,tcbuselibrary,tcbsetforeverylayer%
  },%
  % Mots-clés de niveau 1 : arguments optionnels
  morekeywords={%
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    colback,beamer,skins,listing,only,options,and,text%
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    lightgray,red!50!white,autoparskip,beforeafter,skip,balanced%
  },%
  alsoletter={ \ },%
  sensitive,%
}[keywords,tex,comments]%
\lstdefinelanguage[listings]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    lstset,lstinline,lstinputlisting,lstMakeShortInline,lstDeleteShortInline,lstdefinestyle%
  },%
  % Environments' names
  morekeywords={%
    listing,listingutf8%
  },%
  % Environments' names
  morekeywords=[1]{%
    lstlisting,%
  },%
  % Keys of key-value lists
  morekeywords=[2]{%
    language,showtabs,escapeinside,mathescape,basicstyle,keywordstyle,commentstyle,%
    stringstyle,numbers,frame,framesep,escapechar,tab,aboveskip,belowskip,%
    linerange,backgroundcolor,rulecolor,framerule,inputencoding,stepnumber,numberstyle,%
    rulesepcolor,style%
  },%
  % Values of key-value lists
  morekeywords=[3]{%
    Ada,left,single,shadowbox,Python%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[xcolor]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    textcolor,fcolorbox,colorbox,color,rowcolors,arrayrulecolor,rownum%
  },%
  % Mots-clés de niveau 1 : arguments optionnels
  morekeywords={%
    %
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    lightgray,red,blue,brown,purple,magenta,green,black,cyan,yellow,%
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    %
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[hyperref]{TeX}[LaTeX]{TeX}%
{%
  % Séquences de contrôles (communément appelées commandes ou macros)
  moretexcs={%
    href,url,hypersetup,hypertarget,hyperlink,pdfstringdefDisableCommands,texorpdfstring%
  },%
  % Mots-clés de niveau 1 : arguments optionnels
  morekeywords={%
    %
  },%
  % Mots-clés de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    breaklinks,colorlinks,bookmarks,pdfborderstyle,pdfborder,all,pdfencoding,final,%
    hidelinks,linktoc,%
  },%
  % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
  morekeywords=[3]{%
    unicode%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[yad]{TeX}[LaTeX]{TeX}{%
  moretexcs={% Control sequences' names
    author,title,subtitle,academicfield,speciality,date,supervisor,cosupervisor,comonitor,%
    referee,guest,examiner,committeepresident,pres,institute,coinstitute,company,doctoralschool,%
    laboratory,dedication,frontepigraph,keywords,subject,expression,tableofcontents,submissiondate,%
    maketitle,makedisclaimer,makekeywords,makelaboratory,makeabstract,makededications,%
    makefrontepigraphs,makebackcover,ordernumber,chapter*,disclaimer,newglssymbol,yadsetup,%
    comue,newcorporation,NoCaseChange%
    % acknowledgements,frenchabstract,foreword,preface,caution,
  },%
  % Environments' names
  morekeywords={%
    yathesis%
  },%
  morekeywords=[1]{% Environments' names
    abstract,dedicationspage,epigraphspage,epigraphs,%
    glossaries,otherlanguage%
  },%
  morekeywords=[2]{% Keys of key-value lists
    professor,seniorresearcher,mcf,associateprofessor,juniorresearcher,mcf*,associateprofessor*,%
    juniorresearcher*,corporation,corps,male,female,%
    distinction,award,affiliation,sepcorpaffilfrench,affiliationsecondary,sepcorpaffilenglish,%
    logo,url,nologo,space,mainlanguage,secnumdepth,tocdepth,depth,version,output,logoheight,%
    address,telephone,fax,email,type,acronym,heading,nowarning,noerror,nofrontcover,role,%
    hyperfootnotes,hyperindex,plainpages,pdfpagemode,pdfpagelayout,locale,gray,frametitle,%
    graphicx,adjustbox,setspace,xcolor,datatool,titleps,draftwatermark,babel,datetime,%
    bookmark,fncychap,localtocs,localtocs/depth,localbibs,localbibs*%
  },%
  morekeywords=[3]{% Values of key-value lists
    single,onehalf,double,doctor,yadsymbolstyle,%
    part,chapter,section,subsection,subsubsection,paragraph,subparagraph,%
    none,true,false,UseOutlines,TwoPageRight,UK,FR,dvipsnames,table,%
    Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,%
    screen,draft,inprogress,inprogress*,submitted,submitted*,final,paper,paper*,%
    fbox,shadowbox,ovalbox,supervisor*,cosupervisor*,comonitor*%
  },%
  morekeywords=[4]{% Class and packages options
    warn,nodayofweek,unicode,nostamp,all,numbered,a4paper,leqno,fleqn,10pt,11pt,12pt,%
    detect-all,breaklinks,oneside%
  },%
  morekeywords=[5]{% Translation labels
    email,phone,fax,caution,draft,prepared-at,prepared-at-pl,juniorresearcher,juniorresearcher*,%
    committeemembers,estimateddefensedate,seniorresearcher,supervisors-in-committee,%
    supervisors-in-committee-pl,aim,aimand,examiners,examiners-pl,guests,guests-pl,mcf,mcf*,%
    professor,referees,referees-pl,website,defendedon,supervisedby,thesisdefendedby,thesistitle,%
    inprogress,universitydepartment,inprogressfoottext,submittedfoottext,%
    coinstitute,company,institute,cosupervisor,cosupervisor*,comonitor,%
    comonitor*,supervisor,supervisor*,academicfield,doctoralschool,keywords,%
    ordernumber,committeepresident,committeepresident*,speciality%
  },%
  alsoletter={!-*1234560/}%
}%
\lstdefinelanguage[gzt]{TeX}[LaTeX]{TeX}{%
  moretexcs={% Control sequences' names
    editorinchief,editor,president,classdesigner,classmaintainer,fontdesigner,%
    graphicdesigner,issuesetup,journalsetup,interviewee,academicsignature,%
    subtitle,editorial,gzttableofcontents,gztlocaltableofcontents,minitoc,presidentmessage,%
    acknowledgements,printminibios,aboutfrontcover,rubric,mathematics,%
    dossier,community,interview,teaching,parity,tellme,information,%
    rearviewmirror,tribute,books,email,question,smf,cad,Cad,gzt,%
    century,century*,aside,aside*,gztinput,gztnewtheorem,N,Z,D,Q,R,C,K,%
    printauthorsdetails,date,title,author,maketitle,item,printbibliography,%
    vec,surname,usetikzlibrary,arccos,arcsin,arctan,log,lg,le,leq,ge,geq,%
    gztverb,th,epigraph%
  },%
  % Mandatory arguments (other than environments' names)
  morekeywords={%
    gzt,gztarticle%
  },%
  morekeywords=[1]{% Environments' names
    abstract,minitoclist,bookreview,bookadvertisement,%
    gztfigure,gztfigure*,gzttable,gzttable*,gztscan,gztcode,%
    theorem,theoreme,corollary,corollaire,conjecture,proposition,%
    lemma,lemme,axiom,axiome,definition,remark,remarque,example,exemple,notation,%
    theorem*,theoreme*,corollary*,corollaire*,conjecture*,proposition*,proof,preuve,%
    lemma*,lemme*,axiom*,axiome*,definition*,remark*,remarque*,example*,exemple*,notation*%
  },%
  morekeywords=[2]{% Keys of key-value lists
    number,month,year,publisher,address,phone,fax,email,url,issn,isbn,short,minishort,notintoc,%
    abstract,frenchtitle,englishtitle,% title,label,%
    pictogram,list,help,diameter,textwidth,xshift,yshift,%
    affiliation,email,minibio,photo,webpage,frontcover,bibkey,copyright%
  },%
  morekeywords=[3]{% Values of key-value lists
    true,false,theorem,definition,proof%
  },%
  morekeywords=[4]{% Class and packages options
    pagegrid,forprinter,cover,forauthors,%
  },%
  alsoletter={!-*1234560}%
}%
\lstdefinelanguage[nwejm]{TeX}[LaTeX]{TeX}{%
  moretexcs={% Control sequences' names
    editorinchief,editor,president,classdesigner,classmaintainer,fontdesigner,%
    graphicdesigner,issuesetup,journalsetup,interviewee,academicsignature,%
    subtitle,editorial,nwejmtableofcontents,minitoc,presidentmessage,%
    acknowledgements,printminibios,aboutfrontcover,rubric,mathematics,%
    dossier,community,interview,teaching,parity,tellme,information,%
    rearviewmirror,tribute,books,email,question,smf,ie,Ie,nwejm,%
    century,century*,aside,aside*,nwejminput,nwejmnewtheorem,N,Z,D,Q,R,C,K,%
    printauthorsdetails,date,title,author,maketitle,item,printbibliography,%
    vec,surname,usetikzlibrary,arccos,arcsin,arctan,log,lg,le,leq,ge,geq,set,%
    nwejmverb,th,epigraph,keywords,msc,acknowledgments,E,I,grad,Div,curl,rot,supp,%
    DeclareMathOperator,BinaryOperators,dif,articlesetup,%
    bbN,bbZ,bbD,bbQ,bbR,bbC,bbK,%
    newenumeration%
  },%
  % Mandatory arguments (other than environments' names)
  morekeywords={%
    nwejm,nwejmart,%
  },%
  morekeywords=[1]{% Environments' names
    abstract,minitoclist,bookreview,bookadvertisement,%
    nwejmfigure,nwejmfigure*,nwejmtable,nwejmtable*,nwejmscan,nwejmcode,%
    theorem,theoreme,corollary,corollaire,conjecture,proposition,%
    lemma,lemme,axiom,axiome,definition,remark,remarque,example,exemple,notation,%
    theorem*,theoreme*,corollary*,corollaire*,conjecture*,proposition*,proof,preuve,%
    lemma*,lemme*,axiom*,axiome*,definition*,remark*,remarque*,example*,exemple*,notation*,%
    assertions,hypotheses%
  },%
  morekeywords=[2]{% Keys of key-value lists
    number,month,year,publisher,address,phone,fax,email,url,issn,isbn,short,minishort,notintoc,%
    abstract,frenchtitle,englishtitle,% title,label,%
    pictogram,list,help,diameter,textwidth,xshift,yshift,%
    affiliation,affiliationtagged,email,minibio,photo,webpage,frontcover,bibkey,copyright,%
    gradient,title/french,style,title,title-plural,singular,plural,label%
  },%
  morekeywords=[3]{% Values of key-value lists
    true,false,theorem,definition,proof%
  },%
  morekeywords=[4]{% Class and packages options
    pagegrid,forprinter,cover,forauthors,%
  },%
  alsoletter={!-*1234560/}%
}%
\lstdefinelanguage[studentreport]{TeX}[LaTeX]{TeX}{%
  moretexcs={% Control sequences' names
    reportsetup,daterange,companytutor,academictutor,companylogo%
  },%
  % Mandatory arguments (other than environments' names)
  morekeywords={%
  },%
  morekeywords=[1]{% Environments' names
  },%
  morekeywords=[2]{% Keys of key-value lists
    institute,subinstitute,subsubinstitute,year,10pt,11pt,12pt,internship,project,layout,%
    strings,pretitle,company,tutor,tutors,before~start~date,before~end~date,date,%
    logos,logosheights,keywords,subject,%
  },%
  morekeywords=[3]{% Values of key-value lists
    ulco,iutlco,gtelco,gimlco,%
  },%
  alsoletter={!-*1234560}%
}%
\lstdefinelanguage{bash}[]{sh}%
{%
  morekeywords={%
    ssh-keygen,rsa,mkdir,cp,chmod,git,clone,tree,pull,lgr,lga,commit,%
    ls,add,record,push%
  },%
  alsoletter={!-*}%
}%
\hypersetup{colorlinks}%
\presetkeys{todonotes}{fancyline, color=white}{}%
\setlength\bibinitsep{1.25\baselineskip}
\SetCiteCommand{\autocite}
\renewcommand{\ttdefault}{lmtt}
{%
  \ttfamily%
  \DeclareFontShape{T1}{lmtt}{bx}{it}{<-> ssub * lmtt/b/sl}{}%
}
\if@DBD@beamer@not@loaded@
\ifcsdef{@chapter}{
  \xapptocmd{\@chapter}{%
    \addtocontents{dbwarninglist}{\protect\addvspace{10\p@}}%
    \addtocontents{dbremarklist}{\protect\addvspace{10\p@}}%
    \addtocontents{dbexamplelist}{\protect\addvspace{10\p@}}%
    \addtocontents{dbfaqlist}{\protect\addvspace{10\p@}}%
    \addtocontents{dbtablist}{\protect\addvspace{10\p@}}%
  }{}{}
}{}
\fi%
\sisetup{locale=FR,detect-all}
\def\disp@com#1{\colDef{\ttfamily#1}}
\define@key{Gin}{bylabel}{%
    \edef\@tempa{{Gin}{page=\zref@extract{#1}{abspage}}}%
    \expandafter\setkeys\@tempa%
}%
\NewDocumentCommand \translateexpression { sm }
{
  \enquote{\foreignlanguage{french}{\translate{#2}}}~
  ou~
  \enquote{\foreignlanguage{english}{\translate{#2}}}%
  \IfBooleanF {#1}
  {
    \selonlangue%
    \index{expression!en~français!\enquote{\foreignlanguage{french}{\translate{#2}}}}%
    \index{expression!en~anglais!\enquote{\foreignlanguage{english}{\translate{#2}}}}%
  }
}
\@ifclassloaded{beamer}{%
}{%
  \expandafter\AtBeginDocument\expandafter{%
    \expandafter\def\expandafter\theindex\expandafter{\theindex}%
  }
  \expandafter\AtBeginDocument\expandafter{%
    \expandafter\def\expandafter\endtheindex\expandafter{\endtheindex}%
  }
  \ExplSyntaxOff
  \def\imki@finalmessage#1{}% since you're using latexmk
  \def\imki@startidx#1#2{%
    \if@filesw
    \def\index{\@bsphack
      \@ifnextchar [{\@index}{\@index[\imki@jobname]}}
    \expandafter\newwrite\csname #1@idxfile\endcsname
    \immediate\openout \csname #1@idxfile\endcsname #1.#2\relax
    \typeout{Writing index file #1.#2}%
    \fi}
  \xpatchcmd\imki@makeindex
  {\imki@startidx\imki@name}
  {\imki@startidx\imki@name\imki@extout}
  {}{}
  \xpatchcmd\imki@build
  {\imki@dokey\imki@title}
  {\imki@dokey\imki@title
    \imki@dokey\imki@extin
    \imki@dokey\imki@extout}
  {}{}
  \xpatchcmd{\imki@putindex}
  {\imki@options}
  {\c_space_tl~ -o~ #1.\imki@extin\imki@options}
  {}{}
  \xpatchcmd{\imki@putindex}
  {.idx}
  {.\imki@extout}
  {}{}
  \xpatchcmd{\imki@putindex}
  {.ind}
  {.\imki@extin}
  {}{}
  \def\imki@extout{idx}\def\imki@extin{ind}
  \define@key{imki}{extout}{\def\imki@extout{#1}}
  \define@key{imki}{extin}{\def\imki@extin{#1}}
}%
\ExplSyntaxOn
\@ifclassloaded{beamer}{%
}{%
  \cs_new_protected:Nn \__denisbdoc_alert:n
  {
    \begingroup
    \color{red}
    #1
    \endgroup
  }%
  \NewDocumentCommand \alert {m}
  {
    \__denisbdoc_alert:n {#1}
  }%
  \DeclareDocumentCommand \changes { smmm } {
    \IfBooleanTF {#1}
    {
      \tl_set:Nn \l_tmpa_tl {\alert{#4}}
    }{
      \tl_set:Nn \l_tmpa_tl {#4}
    }
    \ifx\@onlypreamble\@notprerr
    \index[\jobname-changes]{\texttt{#2}~(#3)!\l_tmpa_tl}
    \else
    \index[\jobname-changes]{\texttt{#2}~(#3)!\emph{Globalement}!\l_tmpa_tl|gobble}
    \fi
  }
  \DeclareDocumentCommand \PrintChanges { !O{} } {
    \indexprologue{#1}
    \def\imki@indexlevel{\chapter}
    \printindex[\jobname-changes]
    \def\imki@indexlevel{\chapter*}
  }
}%
\IfLanguageName{french}{%
  \DeclarePlainStyle{«~}{~»}%
                    {“}{”}
}{}%
\tl_const:Nx \c__denisbdoc_standard_url_tl { \tl_to_str:n { https://ctan.org/pkg/ } }
\cs_new_protected:Npn \__denisbdoc_package_format:nn #1#2
{
  #2{\sffamily#1}
}
\cs_new_protected:Npn \__denisbdoc_package:nnnnnnn #1#2#3#4#5#6#7
{
  \texorpdfstring
  {
    \bool_if:nTF {#1}
    { \__denisbdoc_package_format:nn {#4}{#7} }
    {
      \tl_if_blank:nTF {#3}
      {
        \tl_set:Nx \l_tmpa_tl {\c__denisbdoc_standard_url_tl #4}
        \href
        { \l_tmpa_tl }
        { \__denisbdoc_package_format:nn {#4}{#7} }
      }
      {
        \href
        { #3 }
        { \__denisbdoc_package_format:nn {#4}{#7} }
      }
    }
    \IfBooleanF{#2}
    {
      \tl_if_empty:nTF {#6}
      {
        \index{#5!liste!\textsf{#4}}
      }{
        \index{#5!liste!\textsf{#4}!#6}
      }
    }
  }
  {#4}
}
\NewDocumentCommand{\package}{ s t+ O{} m !O{package} !O{} !O{} } {
  \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{package}{#6}{#7}
}
\NewDocumentCommand{\Package}{ s t+ O{} m !O{package} !O{} !O{} } {
  \IfLanguageName{french}{package~}{}%
  \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{package}{#6}{#7}
  \IfLanguageName{english}{~package}{}%
}
\NewDocumentCommand{\class}{ s t+ O{} m !O{} !O{} !O{} } {
  \IfLanguageName{french}{%
    \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{classe}{#6}{#7}
  }{}%
  \IfLanguageName{english}{%
    \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{class}{#6}{#7}
  }{}%
}
\NewDocumentCommand{\Class}{ s t+ O{} m !O{} !O{} !O{} } {
  \IfLanguageName{french}{%
    classe~%
    \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{classe}{#6}{#7}
  }{}%
  \IfLanguageName{english}{%
    \__denisbdoc_package:nnnnnnn {#1}{#2}{#3}{#4}{class}{#6}{#7}~%
    class
  }{}%
}
\cs_new_protected:Nn \__denisbdoc_format:n
{
  \textsc{#1}
}
\NewDocumentCommand{\format}{ m }
{%
  \__denisbdoc_format:n {#1}
}
\NewDocumentCommand{\Format}{ m }
{%
  \IfLanguageName{french}{format~}{}%
  \__denisbdoc_format:n {#1}%
  \IfLanguageName{english}{~format}{}%
}%
\cs_new_protected:Nn \__denisbdoc_file:n
{
  % \bgroup% \color{magenta}
  \texttt{#1}
  % \egroup
}
\NewDocumentCommand{\file}{ m }
{%
  \__denisbdoc_file:n {#1}
}
\NewDocumentCommand{\File}{ m }
{%
  \IfLanguageName{french}{fichier~}{}%
  \__denisbdoc_file:n {#1}%
  \IfLanguageName{english}{~file}{}%
}%
\NewDocumentCommand{\folder}{ m }
{
  \__denisbdoc_file:n {#1}%
}
\NewDocumentCommand{\Folder}{ m }
{%
  \IfLanguageName{french}{dossier~}{}%
  \__denisbdoc_file:n {#1}%
  \IfLanguageName{english}{~directory}{}%
}%
\NewDocumentCommand{\program}{ m }
{
  \__denisbdoc_file:n {#1}%
}
\NewDocumentCommand{\texstudio}{  }
{
  \program{TeXstudio}\xspace
}
\NewDocumentCommand{\emacs}{  }
{
  \program{Emacs}\xspace
}
\NewDocumentCommand{\texlive}{ }
{
  \href{http://www.tug.org/texlive/}{\TeX{}\c_space_tl{}Live}\xspace
}
\NewDocumentCommand{\miktex}{ }
{
  \href{http://www.tug.org/texlive/}{MiK\TeX}\xspace
}
\NewDocumentCommand{\linux}{ }
{
  Linux\index{Linux}\xspace
}
\NewDocumentCommand{\macos}{ }
{
  Mac OS\index{Mac OS}\xspace
}
\NewDocumentCommand{\windows}{ }
{
  Windows\index{Windows}\xspace
}
\cs_new_protected:Nn \__denisbdoc_links:nnn
{
  \cs_if_exist:NTF \faExternalLink {%
    % \href{#2#3#1}{\texttt{#3}}~\href{http://mirror.ctan.org/macros/latex/contrib/yathesis/#2#3#1}{\faExternalLink}
    \texttt{#3}~% \textnormal{(\attachfile{#2#3#1})}
  }{
    % \href{#2#3#1}{\texttt{#3}}~\href{http://mirror.ctan.org/macros/latex/contrib/yathesis/#2#3#1}{}
    \texttt{#3}~% \textnormal{(\attachfile{#2#3#1})}
  }
}
\cs_new_protected:Nn \__denisbdoc_etctree:
{
  ...
}
\NewDocumentCommand{\etctree}{  }
{
  \__denisbdoc_etctree:%
}
\cs_new_protected:Nn \__denisbdoc_filetree:n
{
  \__denisbdoc_links:nnn {}{\folder/\subfolder/}{#1}
}
\NewDocumentCommand{\filetree}{ m }
{%
  \__denisbdoc_filetree:n {#1}
}
\NewDocumentCommand{\pdffiletree}{ m }
{%
  \__denisbdoc_filetree:n {#1.pdf}
}
\NewDocumentCommand{\texfiletree}{ m }
{%
  \__denisbdoc_filetree:n {#1.tex}
}
\cs_new_protected:Nn \__denisbdoc_zip_filetree:
{
  \bgroup% \color{magenta}
  \bfseries
  \color{red}
  \__denisbdoc_links:nnn {}{\folder/}{\subfolder.zip}
  \egroup
}
\NewDocumentCommand{\zipfiletree}{  }
{%
  \__denisbdoc_zip_filetree: {}
}
\cs_new_protected:Nn \__denisbdoc_directory_filetree:
{
  \bgroup% \color{magenta}
  \bfseries
  \color{blue}
  \__denisbdoc_links:nnn {../exemples}{}{\folder/}
  \egroup
}
\NewDocumentCommand{\directorytree}{  }
{%
  \__denisbdoc_directory_filetree: {}
}
\cs_new_protected:Nn \__denisbdoc_subdirectory_filetree:
{
  \bgroup% \color{magenta}
  \bfseries
  \color{blue}
  \__denisbdoc_links:nnn {.}{\folder/}{\subfolder/}
  \egroup
}
\NewDocumentCommand{\subdirectorytree}{  }
{%
  \__denisbdoc_subdirectory_filetree: {}
}
\cs_new_protected:Nn \__denisbdoc_mandatory:
{
  \hyperref[sec-comm-oblig]{%
    \textcolor{red!75!black}{
      % \sys_if_engine_pdftex:TF
      % {
      %   % \string!
      %   \ding{52}
      % }{
        \faLock
        % \ding{52}
      % }%
    }
    \ifnum\getpagerefnumber{sec-comm-oblig}=\thepage%
    \else%
    \textsuperscript{\ding{213}\,\kvtcb@text@pageshort\,\pageref*{sec-comm-oblig}}%
    \fi%
  }%
}
\cs_new_protected:Nn \__denisbdoc_mandatory_no_link:
{
  \textcolor{red!75!black}{
    \faLock
  }
}
\NewDocumentCommand{\mandatory}{ s }
{
  \IfBooleanTF {#1}
  { \__denisbdoc_mandatory_no_link: {} }
  { \__denisbdoc_mandatory: {} }
}%
\NewDocumentCommand{\unixtldirectory}{}
{
  \directorytree{\c__denisbdoc_unixtldirectory_string_tl}
}%
\NewDocumentCommand{\tlversion}{}
{
  \directorytree{\c__denisbdoc_tlversion_string_tl}
}%
\NewDocumentCommand{\wintldirectory}{}
{
  \directorytree{\c__denisbdoc_wintldirectory_string_tl}
}%
\NewDocumentCommand{\tldistdirectory}{}
{
  \directorytree{\c__denisbdoc_tldistdirectory_string_tl}
}%
\NewDocumentCommand{\miktexdistdirectory}{}
{
  \directorytree{\c__denisbdoc_miktexdistdirectory_string_tl}
}%
\NewDocumentCommand{\docdirectory}{}
{
  \directorytree{\c__denisbdoc_docdirectory_string_tl}
}%
\NewDocumentCommand{\texdirectory}{}
{
  \directorytree{\c__denisbdoc_texdirectory_string_tl}
}%
\NewDocumentCommand{\sourcedirectory}{}
{
  \directorytree{\c__denisbdoc_sourcedirectory_string_tl}
}%
\NewDocumentCommand{\jobdirectory}{}
{
  \directorytree{\c__denisbdoc_jobdirectory_string_tl}
}%
\NewDocumentCommand{\jobdocdirectory}{}
{
  \directorytree{\c__denisbdoc_jobdocdirectory_string_tl}
}%
\NewDocumentCommand{\version}{ m }
{
  Version~\texttt{#1}
}
\NewDocumentCommand{\pdf}{}
{
  \textsc{pdf}
}
\DeclareDocumentCommand \aside { s m } {%
  \IfBooleanTF {#1}
  {
    \c__denisbdoc_aside_string_tl{}~#2
  }
  {
    \c__denisbdoc_aside_string_tl{}~#2~\c__denisbdoc_aside_string_tl
  }
}
\bool_if:nT {\g__denisbdoc_yad_bool} {%
  %
  \zexternaldocument{\c__denisbdoc_flatsample_string_tl/these}%
  \bool_new:N \g__denisbdoc_these_aux_exists%
  \msg_new:nnn{denisbdoc}{File~ `\c__denisbdoc_these_aux_string_tl'~ needed}{%
    File~ `\c__denisbdoc_these_aux_string_tl'~ needed~ (otherwise~ this~ document~ will~
    be~ incomplete)!~ Please~ go~ to~ `\c__denisbdoc_flatsample_string_tl'~
    directory~ and~ run~ first:\\\\

    \ \ latexmk~ -g~ -pdf~ -jobname=these~ -pdflatex="pdflatex~ \%O~ \string\ \\
    \ \ '\string\RequirePackage\{etoolbox\}~ \string\ \\
    \ \ \string\AtEndPreamble\{\string\RequirePackage\{yathesis-demo\}\}~ \string\ \\
    \ \ \string\input\{\%S\}'"~ these.tex
    \\\\
    Afterwards,~ recompile~ this~ document.%
  }%
  \file_if_exist:nTF {\c__denisbdoc_flatsample_string_tl/\c__denisbdoc_these_aux_string_tl} { \bool_gset_true:N
    \g__denisbdoc_these_aux_exists }{
    % \bool_gset_false:N \g__denisbdoc_these_aux_exists
    \msg_warning:nn{denisbdoc}{File~ `\c__denisbdoc_these_aux_string_tl'~ needed}
    \AfterEndPreamble{%
      \begin{dbwarning}{Documentation~incomplète~!}{documentation-incomplete}
        La~ présente~ documentation~ est~ incomplète~ car~ le~
        \File{\c__denisbdoc_these_aux_string_tl}~ est~ absent~ du~
        \Folder{\c__denisbdoc_flatsample_string_tl}.~ Pour~ régler~ le~ problème,~
        rendez-vous~ dans~ ce~ dossier~ et~ compilez~ le~ \File{these.tex}~ au~
        moyen~ de~ la~ commande~ suivante\footnote{Sur~ une~ seule~ ligne.}~ :
        \par\medskip

        \lstinline[language=bash,upquote=true,commentstyle=,stringstyle=,showstringspaces=false]+latexmk~-g~ -norc~ -r~ ./latexmkrc~-jobname=these-pdflatex="pdflatex~\%O~'\\RequirePackage\{etoolbox\}\\AtEndPreamble\{\\RequirePackage\{yathesis-demo\}\}\\input\{\%S\}'"~these+
      \end{dbwarning}
    }
  }
  %
  \msg_new:nnn{denisbdoc}{File~ `\c__denisbdoc_template_sample_zip_string_tl'~ needed}{%
    File~ `canevas-specimen.zip'~ needed~ (otherwise~ this~ document~ will~ be~
    incomplete)!~ Please~ get~ this~ file~ from~ the~ orignal~ yathesis'~
    documentation~ and~ save~ it~ in~ `../exemples/'~ folder.~ Afterwards,~
    recompile~ this~ document.%
  }%
  \file_if_exist:nTF {../\c__denisbdoc_template_sample_zip_string_tl} {}{
    \msg_warning:nn{denisbdoc}{File~ `\c__denisbdoc_template_sample_zip_string_tl'~ needed}
    \AfterEndPreamble{%
      \begin{dbwarning}{Documentation~incomplète~!}{}
        La~ version~ électronique~ (\pdf{})~ de~ la~ présente~ documentation~
        est~ incomplète~ :~ normalement,~ les~ canevas~ et~ spécimens~ y~ sont~
        intégrés~ par~ le~ biais~ de~ l'archive~ \gls{zip}~
        \file{\c__denisbdoc_template_sample_zip_string_tl}~ (alors~ accessible~ par~
        simple~ clic)~ mais~ ce~ n'est~ pas~ le~ cas~ ici,~ ce~ fichier~ étant~
        absent~ du~ dossier~ parent.~ % \Folder{\c__denisbdoc_examples_path_tl}.~
        Pour~ régler~ le~ problème,~ accédez~ à~ ce~ fichier~ attaché~ à~ la~
        version~ électronique~ originale~ de~ la~ documentation~ de~
        \yatcl{}\footnote{Disponible~ à~ l'adresse~
          \url{http://ctan.org/pkg/yathesis},~ si~ besoin~ est.}~ et~ placez-le~
        dans~ le~ \Folder{\c__denisbdoc_examples_path_tl}.
      \end{dbwarning}
    }
  }
  %
  \cs_new_protected:Nn \__denisbdoc_screenshot:nn
  {
    \bool_if:NTF {\g__denisbdoc_these_aux_exists} {
      \fbox{\includegraphics[bylabel=#2,width=#1\linewidth-2\fboxsep-2\fboxrule]{\c__denisbdoc_flatsample_string_tl/these}}%
    }{%
      \begin{dbwarning}{Copie~d'écran~manquante~!}{}
        Il~ devrait~ ici~ y~ avoir~ une~ copie\c_space_tl ~ d'écran.~ Cf.~
        \vref{wa-documentation-incomplete}~ pour~ plus~ de~ détails.
      \end{dbwarning}
    }
  }
  \NewDocumentCommand \screenshot { O{.45} m } {%
    \__denisbdoc_screenshot:nn {#1}{#2}
  }
}
\newunicodechar{〈}{$\langle$}
\newunicodechar{〉}{$\rangle$}
\cs_new_protected:Nn \__denisbdoc_meta:nn
{
    \bgroup%
    \normalfont
    \ttfamily%
    \itshape%
    \textcolor{#1}{$\langle$#2$\rangle$}%
    \egroup%
}
\AtBeginDocument{%
  \RenewDocumentCommand{\meta}{ O{meta} m } {
    \__denisbdoc_meta:nn {#1}{#2}
  }
}%
\NewTCBListing{preamblecode}{ !O{} }{%
  codes,%
  drop~lifted~shadow,
  #1%
}
\NewTCBListing{preamblecode*}{ !O{} }{%
  codes,%
  enlarge~top~by=\c_zero_dim,
  drop~lifted~shadow,
  #1%
}
\NewTCBListing{bodycode}{ !O{} }{%
  codes,%
  #1%
}
\NewTCBInputListing{\preamblesampleold}{ O{these.tex} m m }{%
  samples,
  drop~lifted~shadow,
  listing~file={\c__denisbdoc_treesample_string_tl/#1},
  listing~options={rangebeginprefix=\\,rangeendsuffix=\},#2},
  #3,
}%
\NewTCBInputListing{\preamblesample}{ m m m }{%
  samples,
  drop~lifted~shadow,
  listing~file={\c__denisbdoc_these_snippets_directory_tl/#1},
  listing~options={#2},
  #3,
}%
\NewTCBInputListing{\bodysampleold}{ O{these.tex} m m }{%
  samples,
  listing~file={\c__denisbdoc_treesample_string_tl/#1},
  listing~options={rangebeginprefix=\\,rangeendsuffix=\},#2},
  #3,
}%
\NewTCBInputListing{\bodysample}{ m m m }{%
  samples,
  listing~file={\c__denisbdoc_these_snippets_directory_tl/#1},
  listing~options={#2},
  #3,
}%
\tl_new:N \g__denisbdoc_number_within_tl
\ifcsdef{chapter}{
  \tl_set:Nn \g__denisbdoc_number_within_tl {chapter}
}{
  \tl_set:Nn \g__denisbdoc_number_within_tl {section}
}
\@ifclassloaded{gztarticle}{\tl_set:Nn \g__denisbdoc_number_within_tl {section}}{}%
\@ifclassloaded{nwejmart}{\tl_set:Nn \g__denisbdoc_number_within_tl {section}}{}%
\@ifclassloaded{beamer}{\tl_set:Nn \g__denisbdoc_number_within_tl {section}}{}%
\newtcbtheorem[list~inside=dbwarninglist,number~within=\g__denisbdoc_number_within_tl,crefname={avertissement}{avertissements}]{dbwarning}{Avertissement}{%
  colback=red!5!white,
  colframe=red!75!black,
  dbtcb
}{wa}
\newtcbtheorem[list~inside=dbexamplelist,number~within=\g__denisbdoc_number_within_tl,crefname={exemple}{exemples}]{dbexample}{Exemple}{%
  colback=lime!5!white,
  colframe=lime!75!black,
  dbtcb,
}{ex}
\newtcbtheorem[list~inside=dbremarklist,number~within=\g__denisbdoc_number_within_tl,crefname={remarque}{remarques}]{dbremark}{Remarque}{%
  colback=cyan!5!white,
  colframe=cyan!75!black,
  dbtcb
}{rq}
\newtcbtheorem[list~inside=dbfaqlist,number~within=\g__denisbdoc_number_within_tl,crefname={question}{questions}]{dbfaq}{Question}{%
  colback=lightgray!5!white,
  colframe=lightgray!75!black,
  % fontupper=\itshape,
  dbtcb
}{faq}
\newtcbtheorem[list~inside=dbtabularlist,number~within=\g__denisbdoc_number_within_tl,crefname={tableau}{tableaux}]{dbtab}{Tableau}{%
  colback=purple!5!white,
  colframe=purple!75!black,
  fontupper=\itshape,
  dbtcb
}{tab}
\NewDocumentCommand{\menuentry}{ O{} m }
  {
   \group_begin: % to segregate local changes to keys and font
   \keys_set:nn { menuentry } { #1 }
   \exp_args:NNx \seq_set_split:Nnn \l_menuentry_seq { \l_menuentry_inputsep_tl } { #2 }
   \tl_use:N \l_menuentry_font_tl
   \bool_set_false:N \l_tmpa_bool
   \seq_map_function:NN \l_menuentry_seq \menuentry_process:n
   \group_end:
  }
\NewDocumentCommand{\menuentryset} { m }
  { \keys_set:nn { menuentry } { #1 } }

\tl_new:N \l_menuentry_font_tl
\tl_new:N \l_menuentry_sep_tl
\tl_new:N \l_menuentry_inputsep_tl
\seq_new:N \l_menuentry_seq

\cs_new:Npn \menuentry_process:n #1
  {
   \bool_if:NTF \l_tmpa_bool
     { \l_menuentry_sep_tl }
     { \bool_set_true:N \l_tmpa_bool }
   \tl_if_empty:nTF { #1 } {EMPTY~ARG!} { #1 }
  }
\keys_define:nn { menuentry }
  {
   menufont .tl_set:N = \l_menuentry_font_tl ,
   menusep  .tl_set:N = \l_menuentry_sep_tl,
   inputsep .tl_set:N = \l_menuentry_inputsep_tl,
  }
\keys_set:nn { menuentry }
  {
   menufont = \sffamily ,
   menusep  = ${}\to{}$
 }
\menuentryset{inputsep=>}
\tl_const:Nn \c__denisbdoc_yat_class_name_tl {yathesis}
\tl_const:Nn \c__denisbdoc_configuration_directory_string_tl {configuration}
\tl_const:Nn \c__denisbdoc_configuration_file_string_tl {thesis.cfg}
\tl_const:Nn \c__denisbdoc_characteristics_file_string_tl {characteristics.tex}
\tl_const:Nn \c__denisbdoc_macros_file_file_string_tl {macros.tex}
\tl_const:Nn \c__denisbdoc_auxiliary_directory_string_tl {auxiliaires}
\tl_const:Nn \c__denisbdoc_glossary_file_string_tl {glossaire.tex}
\tl_const:Nn \c__denisbdoc_acronyms_file_string_tl {acronymes.tex}
\tl_const:Nn \c__denisbdoc_symbols_file_string_tl {symboles.tex}
\tl_const:Nn \c__denisbdoc_images_directory_string_tl {images}
\tl_const:Nn \c__denisbdoc_thesis_master_file_string_tl {these}
\NewDocumentCommand \yat { }
{%
  \textsl{\textsf{\c__denisbdoc_yat_class_name_tl}}
}
\NewDocumentCommand \yatpa { }
{%
  \Package+{\c__denisbdoc_yat_class_name_tl}[\itshape][]\xspace
}
\NewDocumentCommand \yatcl { }
{%
  \texorpdfstring{\class+{\c__denisbdoc_yat_class_name_tl}[][][\itshape]\xspace}{yathesis}
}
\NewDocumentCommand \yatCl { }
{%
  \texorpdfstring{\Class+{\c__denisbdoc_yat_class_name_tl}[][][\itshape]\xspace}{classe yathesis}
}
\NewDocumentCommand \configurationdirectory { }
{%
  \c__denisbdoc_configuration_directory_string_tl
}
\NewDocumentCommand \configurationfile { }
{%
  \c__denisbdoc_configuration_file_string_tl
}
\NewDocumentCommand \characteristicsfile { }
{%
  \c__denisbdoc_characteristics_file_string_tl
}
\NewDocumentCommand \macrosfile { }
{%
  \c__denisbdoc_macros_file_string_tl
}
\NewDocumentCommand \auxiliarydirectory { }
{%
  \c__denisbdoc_auxiliary_directory_string_tl
}
\NewDocumentCommand \glossaryfile { }
{%
  \c__denisbdoc_glossary_file_string_tl
}
\NewDocumentCommand \acronymsfile { }
{%
  \c__denisbdoc_acronyms_file_string_tl
}
\NewDocumentCommand \symbolsfile { }
{%
  \c__denisbdoc_symbols_file_string_tl
}
\NewDocumentCommand \imagesdirectory { }
{%
  \c__denisbdoc_images_directory_string_tl
}
\NewDocumentCommand \thesismasterfile { }
{%
  \c__denisbdoc_thesis_master_file_string_tl
}
\tl_const:Nn \c__denisbdoc_gzt_class_name_tl {gzt}
\tl_const:Nn \c__denisbdoc_gztauthor_class_name_tl {gztarticle}
\tl_const:Nn \c__denisbdoc_journal_short_title_string_tl {Gazette}
\tl_const:Nn \c__denisbdoc_journal_title_string_tl {
  \c__denisbdoc_journal_short_title_string_tl{}~des~Math\'ematiciens%
}
\NewDocumentCommand \gztauthor { }
{%
  \textsl{\texttt{\c__denisbdoc_gztauthor_class_name_tl}}
}
\NewDocumentCommand \gztauthorcl { }
{%
  \Class+[http://ctan.org/pkg/gzt]{\gztauthor}
}
\tl_const:Nn \c__denisbdoc_nwejm_class_name_tl {nwejm}
\tl_const:Nn \c__denisbdoc_nwejmauthor_class_name_tl {nwejmart}
\ProvideDocumentCommand \nwejm { s } {
  \IfBooleanTF {#1}
  {
    \textit{\c__denisbdoc_journal_title_string_tl}
  }
  {
    \textit{\c__denisbdoc_journal_short_title_string_tl}
  }
}
\ProvideDocumentCommand \nwejmcl { }
{%
  \Class{\c__denisbdoc_nwejm_class_name_tl}
}
\NewDocumentCommand \nwejmauthor { }
{%
  \class[\c__denisbdoc_standard_url_tl\c__denisbdoc_nwejm_class_name_tl]{\c__denisbdoc_nwejmauthor_class_name_tl}
}
\NewDocumentCommand \nwejmauthorcl { }
{%
  \Class[\c__denisbdoc_standard_url_tl\c__denisbdoc_nwejm_class_name_tl]{\c__denisbdoc_nwejmauthor_class_name_tl}
}
\tl_const:Nn \c__denisbdoc_studentreport_class_name_tl {studentreport}
\ProvideDocumentCommand \studentreportcl { }
{%
  \Class{\c__denisbdoc_studentreport_class_name_tl}
}
\NewDocumentCommand \studentreportauthor { }
{%
  \class[\c__denisbdoc_standard_url_tl\c__denisbdoc_studentreport_class_name_tl]{\c__denisbdoc_studentreportauthor_class_name_tl}
}
\NewDocumentCommand \studentreportauthorcl { }
{%
  \Class[\c__denisbdoc_standard_url_tl\c__denisbdoc_studentreport_class_name_tl]{\c__denisbdoc_studentreportauthor_class_name_tl}
}
\lstdefinestyle{pre-dbtex}{%
  escapechar=",%"
  language=[LaTeX]TeX,
  alsolanguage=[extLaTeX]TeX,
  % alsolanguage=[glossaries]TeX,
  % alsolanguage=[biblatex]TeX,
  alsolanguage=[csquotes]TeX,
  % alsolanguage=[tcolorbox]TeX,
  % alsolanguage=[listings]TeX,
  % alsolanguage=[xcolor]TeX,
  % alsolanguage=[hyperref]TeX,
  texcsstyle=*\color{texcs},
  breaklines=true,
  basicstyle=\normalfont\ttfamily,
  commentstyle=\color{comment}\itshape,
  directivestyle={\color{directive}},
  keywordstyle={\color{red}},
  keywordstyle={[1]\color{environment}},
  keywordstyle={[2]\color{key}},
  keywordstyle={[3]\color{value}},
  keywordstyle={[4]\color{keyword4}},
  keywordstyle={[5]\color{keyword5}},
  moredelim=*[s][\color{math}\ttfamily]{\\[}{\\]},
  moredelim=*[s][\color{math}\ttfamily]{$}{$},
  stringstyle=\color{string},
  columns=flexible,
  keepspaces,
  numberstyle=\small,
  inputencoding=utf8/latin1,
  aboveskip=\c__denisbdoc_listings_aboveskip_skip,
  belowskip=\c__denisbdoc_listings_belowskip_skip
}%
\tl_gclear:N \g_tmpa_tl
\bool_if:nT {\g__denisbdoc_yad_bool} {%
  \lstdefinestyle{dbtex}{%
    style=pre-dbtex,%
    alsolanguage=[yad]TeX,%
    alsolanguage=[colophon]TeX,%
    moretexcs={printbibliography,autocite},%
    morekeywords=[2]{%
      colback,refsegment%
    },%
    morekeywords=[2]{%
      red,white%
    },%
  }%
  \tl_gset:Nx \g_tmpa_tl {\c__denisbdoc_yat_class_name_tl}
}
\bool_if:nT {\g__denisbdoc_gzt_bool} {%
  \lstdefinestyle{dbtex}{%
    style=pre-dbtex,%
    alsolanguage=[gzt]TeX,%
  }%
  \tl_gset:Nx \g_tmpa_tl {\c__denisbdoc_gzt_class_name_tl}
}
\bool_if:nT {\g__denisbdoc_nwejm_bool} {%
  \lstdefinestyle{dbtex}{%
    style=pre-dbtex,%
    alsolanguage=[nwejm]TeX,%
  }%
  \tl_gset:Nx \g_tmpa_tl {\c__denisbdoc_nwejm_class_name_tl}
}
\bool_if:nT {\g__denisbdoc_studentreport_bool} {%
  \lstdefinestyle{dbtex}{%
    style=pre-dbtex,%
    alsolanguage=[studentreport]TeX,%
  }%
  \tl_gset:Nx \g_tmpa_tl {\c__denisbdoc_studentreport_class_name_tl}
}
\NewDocumentCommand{\currentclass}{}{\g_tmpa_tl}
\NewExpandableDocumentCommand{\currenturl}{}{\c__denisbdoc_standard_url_tl\g_tmpa_tl}
\NewDocumentCommand{\thisclass}{}{\class{\g_tmpa_tl}}
\NewDocumentCommand{\Thisclass}{}{\Class{\g_tmpa_tl}}
\tcbset{dbtcb/.style={%
    breakable,
    fonttitle=\bfseries,
    enlarge~top~by=1mm,
    separator~sign~dash,
    label~separator=-,
    before~title={%
      \hypersetup{hidelinks}%
      \tcbset{%
        color~definition=white,
        color~hyperlink=white,
      }%
    }%
  }%
}%
\tcbset{%
  doc~head={%
    % boxsep=4pt,arc=4pt,boxrule=0.6pt,%
    % frame~style=fill,%
    % colframe=red!50!black,%
    interior~style={%
      fill,%
      color=yellow!10!white,%
    }%
  }%
}
\tcbset{%
  /tcb/doclang/environment~content=contenu~de~l'environnement,
  /tcb/doclang/color=~(couleur),
  /tcb/doclang/colors=Couleurs,
  /tcb/doclang/environments=Environnements,
  /tcb/doclang/keys=Clés,
  /tcb/doclang/values=Valeurs,
  /tcb/doclang/pageshort=p.,
  /tcb/documentation~listing~style=dbtex,
  /tcb/color~command=texcs,
  /tcb/color~environment=environment,
  /tcb/color~key=key,
  /tcb/color~value=value,
  % index~format=pgfchapter,
  index~format=off,
  index~colorize,
  index~annotate=false,
  enhanced,
  listing~style=dbtex,
  every~box/.style={documentation~listing~style=dbtex},
  codes/.style={%
    listing~only,
    enlarge~top~by=\medskipamount,
    colframe=ExampleFrame,
    colback=ExampleBack,
    fonttitle=\bfseries,
    fontupper=\small,
    split=0.5,
    enhanced,
    breakable,
    listing~style=dbtex,
  }%
}%
\tcbset{samples/.style={%
    codes,
    % listing~options={rangebeginprefix=\\,rangeendsuffix=\}}
  }%
}%
\renewcommand*{\tcbdocnew}[1]{\scriptsize\sffamily\textcolor{green!50!black}{\bfseries
Nouv.~:}~#1}
\renewcommand*{\tcbdocupdated}[1]{\scriptsize\sffamily\textcolor{blue!75!black}{\bfseries
\textsc{m.-à-j.}~:}~#1}
\lstset{style=dbtex}
\sys_if_engine_pdftex:TF
{
  \ExplSyntaxOff
  \lstMakeShortInline[style=dbtex]|
  \ExplSyntaxOn
}{
  \lstMakeShortInline[style=dbtex]×
}
\pdfstringdefDisableCommands{%
  \let\textcolor\@gobble
  \def\yatcl{yathesis}
  \def\yatCl{classe~yathesis}
  \def\program#1{#1}
}
\ExplSyntaxOff
%% Copyright (C) 2015-2020 by
%%   Denis Bitouzé <denis.bitouze@univ-littoral.fr>
%% 
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version.  The latest
%% version of this license is in the file:
%%    http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%%   Denis Bitouzé.
%% 
%% This work consists of the file  denisbdoc.dtx
%%                                 denisbdoc.sty and
%%                                 denisbdoc.ins.
%%
%% End of file `denisbdoc.sty'.
