%%
%% 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 packages, version 0.2
%% 
%% Maintained by Denis Bitouz'e
%% E-mail: denis.bitouze@lmpa.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} {2016/04/04} {0.2}
  {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
  }
\PassOptionsToPackage{obeyspaces}{url}
\pdftex_if_engine:TF
  {
    \RequirePackage[T1]{fontenc}
    \RequirePackage[utf8]{inputenc}
  }{
    \RequirePackage{fontspec}
  }
\RequirePackage{xpatch}%
\AtEndPreamble{\RequirePackage{morewrites}}%
\RequirePackage{parskip}%
\RequirePackage{fixfoot}%
\RequirePackage[inline]{enumitem}%
\RequirePackage{afterpage}%
\RequirePackage{tabulary}%
\RequirePackage{calc}%
\RequirePackage{subcaption}%
\RequirePackage{siunitx}%
\RequirePackage[nottoc,notindex]{tocbibind}%
\RequirePackage{varioref}%
\RequirePackage{booktabs}%
\RequirePackage[xr]{zref}%
\RequirePackage[multiple% ,bottom
]{footmisc}%
\RequirePackage{rotating}%
\RequirePackage{pdflscape}%
\RequirePackage{xspace}%
\RequirePackage{hologo}%
\RequirePackage{xifthen}%
\RequirePackage{refcount}%
\RequirePackage{iflang}%
\RequirePackage{ifpdf}%
\RequirePackage{amssymb}%
\RequirePackage{tocvsec2}%
\RequirePackage{csquotes}%
\RequirePackage{tikz}%
\RequirePackage[xindy]{imakeidx}
\RequirePackage{scrlfile}
\BeforePackage{doc}{\let\oldmaketitle\maketitle}
\AfterPackage{doc}{\let\maketitle\oldmaketitle}
\let\EUR\relax
\@ifpackageloaded{tcolorbox}{%
}{%
  \RequirePackage{tcolorbox}%
}%
\ExplSyntaxOff
\ifpdf
\tcbuselibrary{listingsutf8}
\else
\tcbuselibrary{listings}
\RequirePackage{fontawesome}%
\lstMakeShortInline[style=dbtex]^^c3^^97
\fi
\tcbuselibrary{%
  documentation,theorems,breakable,skins%
}
\usetikzlibrary{trees,backgrounds,fit,calc,positioning}
\RequirePackage{attachfile2}
\ExplSyntaxOn
\RequirePackage{comment}%
\RequirePackage{path}%
\RequirePackage{textcase}%
\@ifpackageloaded{biblatex}{%
}{%
  \RequirePackage[backend=biber,style=authortitle,autopunct=false,useprefix=true,backref,dashed=false]{biblatex}%
}%
\RequirePackage{babel}%
\RequirePackage[nodayofweek]{datetime}%
\@ifpackageloaded{hyperref}{%
}{%
  \RequirePackage{hyperref}%
}%
\@ifpackageloaded{nameref}{%
}{%
  \RequirePackage{nameref}%
}%
\@ifpackageloaded{hypcap}{%
}{%
  \RequirePackage[all]{hypcap}%
}%
\@ifpackageloaded{bookmark}{%
}{%
  \RequirePackage[numbered]{bookmark}%
}%
\@ifpackageloaded{glossaries}{%
}{%
  \RequirePackage[nowarn]{glossaries}%
  \makeglossaries
  \setglossarystyle{indexhypergroup}
  \setacronymstyle{long-sc-short}
}%
\@ifpackageloaded{cleveref}{%
}{%
  \RequirePackage{cleveref}%
}%
\ifundef{\inpenc@prehook}{%
}{%
  \inpenc@prehook=\expandafter{\the\inpenc@prehook
    \xdef\saved@percent@catcode{\the\catcode`\%}%
    \catcode`\%14\relax
  }%
  \inpenc@posthook=\expandafter{\the\inpenc@posthook
    \catcode`\%\saved@percent@catcode\relax
  }%
}%
\DeclareUrlCommand\urldirectory{\urlstyle{tt}}
\ExplSyntaxOn
\tl_const:Nn \c__denisbdoc_template_string_tl {canevas}
\tl_const:Nn \c__denisbdoc_sample_string_tl {specimens}
\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_unixtldirectory_string_tl {/usr/local/}
\tl_const:Nn \c__denisbdoc_tlversion_string_tl {2014}
\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{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,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*%
  },%
  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^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es 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%
  },%
  % Environments' names
  morekeywords={%
  },%
  % Mots-cl^^c3^^a9s 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,%
    useri,userii,useriii,useriv,userv,uservi%
  },%
  % Mots-cl^^c3^^a9s de niveau 3 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=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^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es commandes ou macros)
  moretexcs={%
    printbibliography,SetCiteCommand,autocite,addbibresource,fullcite,%
    textcite,cite,citeauthor%
  },%
  % Mots-cl^^c3^^a9s de niveau 1 : arguments optionnels
  morekeywords={%
    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%
  },%
  % Mots-cl^^c3^^a9s de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    % title,
    heading%
  },%
  % Mots-cl^^c3^^a9s de niveau 3 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=valeur
  morekeywords=[3]{%
    bibintoc,skipbib%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[csquotes]{TeX}[LaTeX]{TeX}%
{%
  % S^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es commandes ou macros)
  moretexcs={%
    enquote,textelp,textins,blockcquote%
  },%
  % Mots-cl^^c3^^a9s de niveau 1 : arguments optionnels
  morekeywords={%
  },%
  % Mots-cl^^c3^^a9s de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    % title,
  },%
  % Mots-cl^^c3^^a9s de niveau 3 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=valeur
  morekeywords=[3]{%
    skipbib%
  },%
  % Mots-cl^^c3^^a9s de niveau 4 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=valeur
  morekeywords=[4]{%
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[tcolorbox]{TeX}[LaTeX]{TeX}%
{%
  % S^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es commandes ou macros)
  moretexcs={%
    tcbset,tcbuselibrary%
  },%
  % Mots-cl^^c3^^a9s de niveau 1 : arguments optionnels
  morekeywords={%
  },%
  % Mots-cl^^c3^^a9s de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    colback,beamer,skins,listing,only,options,and,text%
  },%
  % Mots-cl^^c3^^a9s de niveau 3 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=valeur
  morekeywords=[3]{%
    lightgray,red!50!white%
  },%
  sensitive,%
}[keywords,tex,comments]%
\lstdefinelanguage[listings]{TeX}[LaTeX]{TeX}%
{%
  % S^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es 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^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es commandes ou macros)
  moretexcs={%
    textcolor,fcolorbox,colorbox,color,rowcolors,arrayrulecolor,rownum%
  },%
  % Mots-cl^^c3^^a9s de niveau 1 : arguments optionnels
  morekeywords={%
    %
  },%
  % Mots-cl^^c3^^a9s de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    lightgray,red,blue,brown,purple,magenta,green,black,cyan,yellow,%
  },%
  % Mots-cl^^c3^^a9s de niveau 3 : arguments optionnels valeurs de cl^^c3^^a9s dans cl^^c3^^a9=valeur
  morekeywords=[3]{%
    %
  },%
  sensitive%
}[keywords,tex,comments]%
\lstdefinelanguage[hyperref]{TeX}[LaTeX]{TeX}%
{%
  % S^^c3^^a9quences de contr^^c3^^b4les (commun^^c3^^a9ment appel^^c3^^a9es commandes ou macros)
  moretexcs={%
    href,url,hypersetup,hypertarget,hyperlink,pdfstringdefDisableCommands,texorpdfstring%
  },%
  % Mots-cl^^c3^^a9s de niveau 1 : arguments optionnels
  morekeywords={%
    %
  },%
  % Mots-cl^^c3^^a9s de niveau 2 : arguments obligatoires et environnements
  morekeywords=[2]{%
    breaklinks,colorlinks,bookmarks,pdfborderstyle,pdfborder,all%
  },%
  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,%
    % acknowledgements,frenchabstract,foreword,preface,caution,
    makebackcover,ordernumber,chapter*,%
    disclaimer,newglssymbol,yadsetup%
  },%
  % Environments' names
  morekeywords={%
    yathesis%
  },%
  morekeywords=[1]{% Environments' names
    abstract,dedicationspage,epigraphspage,epigraphs,%
    glossaries,otherlanguage%
  },%
  morekeywords=[2]{% Keys of key-value lists
    professor,seniorresearcher,mcf,juniorresearcher,mcf*,%
    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,%
  },%
  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
  },%
  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,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%
  },%
  % 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%
  },%
  % Environments' names
  morekeywords={%
    nwejm,nwejmart,assertions,hypotheses%
  },%
  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*%
  },%
  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%
  },%
  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{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}
\xapptocmd{\@section}{%
  \addtocontents{dbwarninglist}{\protect\addvspace{10\p@}}%
  \addtocontents{dbremarklist}{\protect\addvspace{10\p@}}%
  \addtocontents{dbexamplelist}{\protect\addvspace{10\p@}}%
  \addtocontents{dbfaqlist}{\protect\addvspace{10\p@}}%
}{}{}
\sisetup{locale=FR,detect-all}
\lstdefinestyle{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,
  alsolanguage=[yad]TeX,
  alsolanguage=[gzt]TeX,
  alsolanguage=[nwejm]TeX,
  texcsstyle=*\color{texcs},
  breaklines=true,
  basicstyle=\normalfont\ttfamily,
  commentstyle=\color{comment}\itshape,
  keywordstyle={\color{environment}},
  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
}%
\lstset{style=dbtex}
\tcbset{dbtcb/.style={%
    breakable,
    fonttitle=\bfseries,
    enlarge~top~by=1mm,
    separator~sign~dash
  }%
}%
\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^^c3^^a9s,
  /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~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=\}}
  }%
}%
\def\disp@com#1{\colDef{\ttfamily#1}}
\define@key{Gin}{bylabel}{%
    \edef\@tempa{{Gin}{page=\zref@extract{#1}{abspage}}}%
    \expandafter\setkeys\@tempa%
}%
\cs_new_protected:Nn \__denisbdoc_alert:n
{
  \begingroup
  \color{red}
  #1
  \endgroup
}%
\NewDocumentCommand \alert {m}
{
  \__denisbdoc_alert:n {#1}
}%
\cs_set_eq:NN \__denisbdoc_orig_changes \changes
\DeclareDocumentCommand \changes { smmm } {
  \__denisbdoc_orig_changes{#2}{#3}{%
    \IfBooleanTF {#1}
    {
      \alert{#4}%
    }
    {
      #4%
    }
  }
}
\cs_new_protected:Nn \__denisbdoc_package:nnn
{
  \texorpdfstring{%
    \IfBooleanTF {#1}
    {
      \tl_if_empty:nTF {#2}
      {%
        \href{http://www.ctan.org/pkg/#3}{\textsf{#3}}%
      }{%
        \href{#2}{\textsf{#3}}%
      }%
    }
    {
      \textsf{#3}%
    }
  }{%
    \textsf{#3}
  }%
}%
\NewDocumentCommand{\package}{ s O{} m } {
  \__denisbdoc_package:nnn {#1}{#2}{#3}
}
\NewDocumentCommand{\Package}{ s O{} m } {
  \IfLanguageName{french}{package~}{}%
  \__denisbdoc_package:nnn {#1}{#2}{#3}
  \IfLanguageName{english}{~package}{}%
}
\NewDocumentCommand{\class}{ s O{} m } {
  \__denisbdoc_package:nnn {#1}{#2}{#3}
}
\NewDocumentCommand{\Class}{ s O{} m } {
  \IfLanguageName{french}{classe~}{}%
  \__denisbdoc_package:nnn {#1}{#2}{#3}
  \IfLanguageName{english}{~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}{r^^c3^^a9pertoire~}{}%
  \__denisbdoc_file:n {#1}%
  \IfLanguageName{english}{~directory}{}%
}%
\NewDocumentCommand{\program}{ m }
{
  \__denisbdoc_file:n {#1}%
}
\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 {.}{}{\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}{
      \pdftex_if_engine: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%
  }%
}
\NewDocumentCommand{\mandatory}{  }
{
  \__denisbdoc_mandatory: {}
}%
\NewDocumentCommand{\unixtldirectory}{}
{
  \directory{\c__denisbdoc_unixtldirectory_string_tl}
}%
\NewDocumentCommand{\tlversion}{}
{
  \directory{\c__denisbdoc_tlversion_string_tl}
}%
\NewDocumentCommand{\wintldirectory}{}
{
  \directory{\c__denisbdoc_wintldirectory_string_tl}
}%
\NewDocumentCommand{\tldistdirectory}{}
{
  \directory{\c__denisbdoc_tldistdirectory_string_tl}
}%
\NewDocumentCommand{\miktexdistdirectory}{}
{
  \directory{\c__denisbdoc_miktexdistdirectory_string_tl}
}%
\NewDocumentCommand{\docdirectory}{}
{
  \directory{\c__denisbdoc_docdirectory_string_tl}
}%
\NewDocumentCommand{\texdirectory}{}
{
  \directory{\c__denisbdoc_texdirectory_string_tl}
}%
\NewDocumentCommand{\sourcedirectory}{}
{
  \directory{\c__denisbdoc_sourcedirectory_string_tl}
}%
\NewDocumentCommand{\jobdirectory}{}
{
  \directory{\c__denisbdoc_jobdirectory_string_tl}
}%
\NewDocumentCommand{\jobdocdirectory}{}
{
  \directory{\c__denisbdoc_jobdocdirectory_string_tl}
}%
\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
  }
}
\zexternaldocument{\c__denisbdoc_treesample_string_tl/these}%
\cs_new_protected:Nn \__denisbdoc_screenshot:nn
{
  \fbox{\includegraphics[bylabel=#2,width=#1\linewidth-2\fboxsep-2\fboxrule]{\c__denisbdoc_treesample_string_tl/these}}%
}
\NewDocumentCommand \screenshot { O{.45} m } {%
  \__denisbdoc_screenshot:nn {#1}{#2}
}
\cs_new_protected:Nn \__denisbdoc_meta:nn
{
    \bgroup%
    \normalfont
    \ttfamily%
    \textcolor{#1}{$\langle$\emph{#2}$\rangle$}%
    \egroup%
}
\AtBeginDocument{%
  \RenewDocumentCommand{\meta}{ O{meta} m } {
    \__denisbdoc_meta:nn {#1}{#2}
  }
}%
\NewTCBListing{preamblecode}{ O{} }{%
  codes,%
  drop~lifted~shadow,
  #1%
}
\NewTCBListing{bodycode}{ O{} }{%
  codes,%
  #1%
}
\NewTCBInputListing{\preamblesample}{ O{these.tex} m m }{%
  samples,
  drop~lifted~shadow,
  listing~file={\c__denisbdoc_treesample_string_tl/#1},
  listing~options={rangebeginprefix=\\,rangeendsuffix=\},#2},
  #3,
}%
\NewTCBInputListing{\bodysample}{ O{these.tex} m m }{%
  samples,
  listing~file={\c__denisbdoc_treesample_string_tl/#1},
  listing~options={rangebeginprefix=\\,rangeendsuffix=\},#2},
  #3,
}%
\tl_new:N \g__denisbdoc_number_within_tl
\tl_set:Nn \g__denisbdoc_number_within_tl {chapter}
\@ifclassloaded{gztarticle}{\tl_set:Nn \g__denisbdoc_number_within_tl {section}}{}%
\@ifclassloaded{nwejmart}{\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=\slshape,
  dbtcb
}{faq}
\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{}$
 }%    \end{macrocode}
\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{\texttt{\c__denisbdoc_yat_class_name_tl}}\xspace
}
\NewDocumentCommand \yatpa { }
{%
  \Package{\yat}\xspace
}
\NewDocumentCommand \yatcl { }
{%
  \Class{\yat}\xspace
}
\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{\textsl{\texttt{\c__denisbdoc_gztauthor_class_name_tl}}}
}
\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{\textsl{\texttt{\c__denisbdoc_nwejm_class_name_tl}}}
}
\NewDocumentCommand \nwejmauthor { }
{%
  \textsl{\texttt{\c__denisbdoc_nwejmauthor_class_name_tl}}
}
\NewDocumentCommand \nwejmauthorcl { }
{%
  \Class{\textsl{\texttt{\c__denisbdoc_nwejmauthor_class_name_tl}}}
}
\ExplSyntaxOff
%% Copyright (C) 2015, 2016 by
%%   Denis Bitouz'e <denis.bitouze@lmpa.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'e.
%% 
%% This work consists of the file  denisbdoc.dtx
%%                                 denisbdoc.sty and
%%                                 denisbdoc.ins.
%%
%% End of file `denisbdoc.sty'.
