Révision partielle de formations EOLE

This commit is contained in:
2020-08-05 17:08:33 +02:00
parent a781e00a5a
commit 93be45617e
595 changed files with 19487 additions and 0 deletions

View File

@ -0,0 +1,202 @@
\documentclass{beamer}
\usepackage{skb}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\usepackage{minted}
\usepackage{tikz}
\usepackage{gitdags}
%\usepackage{pstricks}
%\usepackage{pst-3d,pst-coil,pst-eps,pst-fill,pst-grad,pst-node,pst-plot,pst-text,pst-tree}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Formation Git},
pdfkeywords={SCM, Git},
pdfauthor={Benjamin Bohard},
pdflang={fr-FR},
pdfcopyright={Copyright © 2015 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\definecolor{DirtyWhite}{RGB}{235,235,255}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\setbeamertemplate{items}[circle]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamercolor{block body example}{bg=DirtyWhite}
\skbconfig[
root = ../../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\setbeamertemplate{background}
{\skbinput[from=fig]{cadoles/gray_frame_background}}
\newcommand{\commande}[1]{\texttt{\scriptsize{#1}}}
\title[]{Formation Git}
\subtitle{Oberthur Cash Protection}
\author[Equipe Auteur]{Benjamin Bohard}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\AtBeginSection[]
{
\begin{frame}
\frametitle{}
\tableofcontents[currentsection]
\end{frame}
}
%\logo{
% \skbfigure[width=2cm]{cadoles/logo_01.png}
%}
\begin{document}
\skbinput[from=rep]{style/title}
\part{Fondamentaux}
\frame{\partpage}
\frame{\tableofcontents[part=1]}
\section{Qu'attendre d'un SCM ?}
\skbinput[from=rep]{outils/scm/definition}
\skbinput[from=rep]{outils/scm/fonctionnalites_attendues}
\section{Les caractéristiques de git}
\skbinput[from=rep]{outils/scm/git/presentation}
\skbinput[from=rep]{outils/scm/git/decentralise}
\skbinput[from=rep]{outils/scm/git/stockage}
\skbinput[from=rep]{outils/scm/git/etats_fichier}
\section{S'adapter au processus}
\skbinput[from=rep]{outils/scm/workflow/branching}
\skbinput[from=rep]{outils/scm/workflow/driessen}
\skbinput[from=rep]{outils/scm/workflow/driessen/schema}
\skbinput[from=rep]{commun/questions}
\part{Préparation}
\frame{\partpage}
\section{Installation}
\subsection{Côté \emph{client}}
\skbinput[from=rep]{outils/scm/git/installation/windows}
\skbinput[from=rep]{outils/scm/git/installation/macos}
\skbinput[from=rep]{outils/scm/git/installation/linux}
\subsection{Côté \emph{serveur}}
\skbinput[from=rep]{outils/scm/git/web/basicssh}
\skbinput[from=rep]{outils/scm/git/web/gitolite}
\skbinput[from=rep]{outils/scm/git/web/gitlab}
\skbinput[from=rep]{outils/scm/git/web/gogs}
\section{Configuration}
\subsection{Utilisateur}
\skbinput[from=rep]{outils/scm/git/configuration/presentation}
\skbinput[from=rep]{outils/scm/git/configuration/user}
\subsection{Ergonomie}
\skbinput[from=rep]{outils/scm/git/configuration/alias}
\skbinput[from=rep]{outils/scm/git/configuration/editeur}
\skbinput[from=rep]{outils/scm/git/configuration/shell}
\subsection{Hooks}
\skbinput[from=rep]{outils/scm/git/configuration/hooks}
\part{Récapitulatif des commandes}
\frame{\partpage}
\section{Pour démarrer un projet}
\skbinput[from=rep]{outils/scm/git/commandes/init}
\skbinput[from=rep]{outils/scm/git/commandes/clone}
\section{Pour faire le point}
\skbinput[from=rep]{outils/scm/git/commandes/status}
\skbinput[from=rep]{outils/scm/git/commandes/ls-files}
\skbinput[from=rep]{outils/scm/git/commandes/diff}
\skbinput[from=rep]{outils/scm/git/commandes/log}
\skbinput[from=rep]{outils/scm/git/commandes/grep}
\skbinput[from=rep]{outils/scm/git/commandes/cherry}
\skbinput[from=rep]{outils/scm/git/commandes/show}
\skbinput[from=rep]{outils/scm/git/commandes/bisect}
\skbinput[from=rep]{outils/scm/git/commandes/blame}
\section{Pour modifier le contenu du dépôt}
\skbinput[from=rep]{outils/scm/git/commandes/checkout}
\skbinput[from=rep]{outils/scm/git/commandes/fetch}
\skbinput[from=rep]{outils/scm/git/commandes/pull}
\skbinput[from=rep]{outils/scm/git/commandes/merge}
\skbinput[from=rep]{outils/scm/git/commandes/rebase}
\skbinput[from=rep]{outils/scm/git/commandes/add}
\skbinput[from=rep]{outils/scm/git/commandes/commit}
\skbinput[from=rep]{outils/scm/git/commandes/push}
\skbinput[from=rep]{outils/scm/git/commandes/cherry-pick}
\skbinput[from=rep]{outils/scm/git/commandes/reset}
\skbinput[from=rep]{outils/scm/git/commandes/clean}
\skbinput[from=rep]{outils/scm/git/commandes/revert}
\skbinput[from=rep]{outils/scm/git/commandes/filter-branch}
\section{Pour organiser son développement}
\skbinput[from=rep]{outils/scm/git/commandes/branch}
\skbinput[from=rep]{outils/scm/git/commandes/tag}
\section{Aide-mémoire}
\skbinput[from=rep]{outils/scm/git/commandes}
\part{Mise en pratique}
\frame{\partpage}
\section{Mise en place}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03/steps}
\section{Dépôt individuel}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07/steps}
\section{Dépôt commun}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_09}
%\skbinput[from=rep]{outils/scm/git/exercices/exercice_09/steps}
\section{Paquet debian}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10/steps}
\part{Pour aller plus loin}
\frame{\partpage}
\skbinput[from=rep]{outils/scm/git/references/references}
\part{licence}
\skbinput[from=rep]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,279 @@
%%
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Julien Cretel.
%%
%% This work currently consists of the file gitdags.sty.
%%
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesClass{gitdags}
[2014/08/28 v0.1 A package for drawing educational Git history graphs]
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tikz}}
\ProcessOptions\relax
\RequirePackage{xcolor-solarized}
\RequirePackage{tikz}
\usetikzlibrary{
arrows.meta,
graphs,
positioning,
shadows,
shapes,
}
% conflict color
\colorlet{conflictcolor}{red}
% custom shape, adapted from 102.5.3 in the TikZ 3.0 manual
\pgfdeclareshape{dogeared}{
\inheritsavedanchors[from=rectangle]
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}
\backgroundpath{%
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@xc=\pgf@xb \advance\pgf@xc by-5pt
\pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathclose
}
}
% To cancel a shadow (see http://tex.stackexchange.com/a/198298/21891)
\tikzset{reset preaction/.code={\def\tikz@preactions{}}}
% --- repository history graphs ---
% style definitions
\tikzset{
gitdags node/.style={
draw,
node distance = 1.4em,
drop shadow = {opacity=0.15},
font = \fontfamily{lmtt}\selectfont\small,
},
DAGref/.style={
gitdags node,
shape = rectangle,
minimum height = 1.4em,
draw = solarized-base01,
thick,
font = \fontfamily{lmtt}\selectfont\scriptsize,
},
DAGedge/.style={
semithick,
Latex-,
draw = gray,
},
DAGrefedge/.style={
DAGedge,
thick,
densely dotted,
},
DAGcommit/.style={
gitdags node,
shape = rounded rectangle,
rounded rectangle arc length = 90,
minimum height = 1.6em,
minimum width = 2em,
draw = solarized-base01,
fill = solarized-green!20,
very thick,
},
graphs/DAG/.style={
nodes = DAGcommit,
edges = DAGedge,
branch down = 3em,
grow right sep = 1.5em,
},
gitareas/.style={
gitdags node,
shape = rectangle,
rounded corners = .5em,
minimum width = 7em,
minimum height = 3em,
text opacity = 0.75,
semithick,
},
gitSA/.style={
gitareas,
anchor = north west,
xshift = 1em,
yshift = -1em,
draw = solarized-orange,
fill = solarized-orange!5,
text = solarized-orange,
},
gitWT/.style={
gitareas,
node distance = .6em,
draw = solarized-violet,
fill = solarized-violet!5,
text = solarized-violet,
},
resetarrows/.style={
-Stealth,
dashed,
thick,
draw = solarized-base02,
draw opacity = .75,
},
highlighted commit/.style={
DAGcommit,
reset preaction,
fill opacity = 0,
draw = solarized-base02,
},
problematic commits/.style={
reset preaction,
draw opacity = .25,
fill opacity = .25,
},
graphs/unreachable/.style={
problematic commits,
target edge style = problematic commits,
},
graphs/conflict/.style={
empty nodes,
problematic commits,
target edge style = problematic commits,
draw = conflictcolor,
fill = conflictcolor!25,
},
placeholder commits/.style={
reset preaction,
draw opacity = 0,
fill opacity = 0,
},
graphs/placeholder/.style={
placeholder commits,
target edge style = placeholder commits,
},
blob/.style={
shape = dogeared,
minimum width = 2em,
minimum height = 2.82em,
node distance = .75em,
line join = bevel,
draw = black,
fill = white,
align = left,
font = \ttfamily\tiny,
},
}
% directed acyclic graph
\newcommand\gitDAG[1][]{\graph[DAG,#1]}
% helper macro (let's check the name's availability)
\newcommand\nodename@gitdags{}
% local-branch reference
\newcommand\gitbranch[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = yellow!30,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% remote-branch reference
\newcommand\gitremotebranch[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = solarized-blue!20,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% tag reference
\newcommand\gittag[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = solarized-magenta!20,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% HEAD symbolic reference
\newcommand\gitHEAD[2]{%
\node[
DAGref,
fill = solarized-red!20,
node distance = 1em,
] (gitHEAD) [#1] {HEAD};
\draw[DAGrefedge] (#2) -- (gitHEAD);
}
% the following macro is useful for explaining how merge conflicts arise
\newcommand\gitblob[2][]
{\node[blob,#1] {#2};}
% to highlight a merge conflict arising in a given file
\newcommand\gitblobmc[1]{%
\node[
blob,
draw = conflictcolor,
text = conflictcolor,
font = \scriptsize,
#1] {???};
}
% staging area and worktree
\newcommand\SAandWT{%
\node[
gitSA,
] (stagingarea) at (current bounding box.south east) {staging area};
\node[
gitWT,
below=of stagingarea,
] (workingtree) {working tree};
}
% arrows pointing from a commit to the staging area or working tree
\newcommand\toSAorWT[2]{%
\node[highlighted commit] at (#1) {\phantom{#1}};
\draw[resetarrows] (#1.south) to[out=290, in=170]
([xshift=1em,yshift=-1em]#2.north west);
}
\newcommand\toSAfrom[1]{\toSAorWT{#1}{stagingarea}}
\newcommand\toWTfrom[1]{\toSAorWT{#1}{workingtree}}
\endinput

View File

@ -0,0 +1,1221 @@
%%
%% This is file `minted.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% minted.dtx (with options: `package')
%% Copyright 2013--2015 Geoffrey M. Poore
%% Copyright 2010--2011 Konrad Rudolph
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% Additionally, the project may be distributed under the terms of the new BSD
%% license.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Geoffrey Poore.
%%
%% This work consists of the files minted.dtx and minted.ins
%% and the derived file minted.sty.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{minted}
[2015/01/31 v2.0 Yet another Pygments shim for LaTeX]
\RequirePackage{keyval}
\RequirePackage{kvoptions}
\RequirePackage{fancyvrb}
\RequirePackage{float}
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{ifplatform}
\RequirePackage{pdftexcmds}
\RequirePackage{etoolbox}
\RequirePackage{xstring}
\RequirePackage{lineno}
\AtBeginDocument{%
\@ifpackageloaded{color}{}{%
\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
}
\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
\DeclareVoidOption{section}{\def\minted@float@within{section}}
\DeclareBoolOption{newfloat}
\DeclareBoolOption[true]{cache}
\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
\StrSubstitute{\minted@jobname}{*}{-}[\minted@jobname]
\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
\let\minted@cachedir@windows\minted@cachedir
\define@key{minted}{cachedir}{%
\@namedef{minted@cachedir}{#1}%
\StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
\let\minted@outputdir\@empty
\let\minted@outputdir@windows\@empty
\define@key{minted}{outputdir}{%
\@namedef{minted@outputdir}{#1/}%
\StrSubstitute{\minted@outputdir}{/}%
{\@backslashchar}[\minted@outputdir@windows]}
\DeclareBoolOption{kpsewhich}
\DeclareBoolOption{langlinenos}
\DeclareBoolOption{draft}
\DeclareComplementaryOption{final}{draft}
\ProcessKeyvalOptions*
\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{}
\ifthenelse{\boolean{minted@cache}}{%
\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}{}
\newcommand{\minted@input}[1]{%
\IfFileExists{#1}%
{\input{#1}}%
{\PackageError{minted}{Missing Pygments output; \string\inputminted\space
was^^Jprobably given a file that does not exist--otherwise, you may need
^^Jthe outputdir package option, or may be using an incompatible build
tool\ifwindows,^^Jor may be using the kpsewhich option without having
PowerShell installed\fi}%
{This could be caused by using -output-directory or -aux-directory
^^Jwithout setting minted's outputdir, or by using a build tool that
^^Jchanges paths in ways minted cannot detect\ifwindows, or by using the
^^Jkpsewhich option without PowerShell\fi.}}%
}
\newcommand{\minted@infile}{\jobname.out.pyg}
\newcommand{\minted@cachelist}{}
\newcommand{\minted@addcachefile}[1]{%
\expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
\minted@cachelist,^^J%
\space\space#1}%
\expandafter\gdef\csname minted@cached@#1\endcsname{}%
}
\newcommand{\minted@savecachelist}{%
\ifdefempty{\minted@cachelist}{}{%
\immediate\write\@mainaux{%
\string\gdef\string\minted@oldcachelist\string{%
\minted@cachelist\string}}%
}%
}
\newcommand{\minted@cleancache}{%
\ifcsname minted@oldcachelist\endcsname
\def\do##1{%
\ifthenelse{\equal{##1}{}}{}{%
\ifcsname minted@cached@##1\endcsname\else
\DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
\fi
}%
}%
\expandafter\docsvlist\expandafter{\minted@oldcachelist}%
\else
\fi
}
\ifthenelse{\boolean{minted@draft}}%
{\AtEndDocument{%
\ifcsname minted@oldcachelist\endcsname
\let\minted@cachelist\minted@oldcachelist
\minted@savecachelist
\fi}}%
{\AtEndDocument{%
\minted@savecachelist
\minted@cleancache}}%
\ifwindows
\providecommand{\DeleteFile}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\IfFileExists{#2}{\immediate\write18{del "#2"}}{}}%
{\IfFileExists{#1/#2}{%
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
\immediate\write18{del "\minted@windir\@backslashchar #2"}}{}}}
\else
\providecommand{\DeleteFile}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\IfFileExists{#2}{\immediate\write18{rm "#2"}}{}}%
{\IfFileExists{#1/#2}{\immediate\write18{rm "#1/#2"}}{}}}
\fi
\ifwindows
\newcommand{\ProvideDirectory}[1]{%
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
\immediate\write18{if not exist "\minted@windir" mkdir "\minted@windir"}}
\else
\newcommand{\ProvideDirectory}[1]{%
\immediate\write18{mkdir -p "#1"}}
\fi
\newboolean{AppExists}
\newread\minted@appexistsfile
\newcommand{\TestAppExists}[1]{
\ifwindows
\DeleteFile{\jobname.aex}
\immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
do set >"\jobname.aex" <nul: /p
x=\string^\@percentchar \string~$PATH:i>>"\jobname.aex"}
%$ <- balance syntax highlighting
\immediate\openin\minted@appexistsfile\jobname.aex
\expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
\endlinechar=-1\relax
\readline\minted@appexistsfile to \minted@apppathifexists
\endlinechar=\@tmp@cr
\ifthenelse{\equal{\minted@apppathifexists}{}}
{\AppExistsfalse}
{\AppExiststrue}
\immediate\closein\minted@appexistsfile
\DeleteFile{\jobname.aex}
\else
\immediate\write18{which "#1" && touch "\jobname.aex"}
\IfFileExists{\jobname.aex}
{\AppExiststrue
\DeleteFile{\jobname.aex}}
{\AppExistsfalse}
\fi
}
\newcommand{\minted@optlistcl@g}{}
\newcommand{\minted@optlistcl@g@i}{}
\let\minted@lang\@empty
\newcommand{\minted@optlistcl@lang}{}
\newcommand{\minted@optlistcl@lang@i}{}
\newcommand{\minted@optlistcl@cmd}{}
\newcommand{\minted@optlistfv@g}{}
\newcommand{\minted@optlistfv@g@i}{}
\newcommand{\minted@optlistfv@lang}{}
\newcommand{\minted@optlistfv@lang@i}{}
\newcommand{\minted@optlistfv@cmd}{}
\newcommand{\minted@configlang}[1]{%
\def\minted@lang{#1}%
\ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
\expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
\fi
\ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
\expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
\fi
\ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
\expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
\fi
\ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
\expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
\fi
}
\newcommand{\minted@addto@optlistcl}[2]{%
\expandafter\def\expandafter#1\expandafter{#1%
\detokenize{#2}\space}}
\newcommand{\minted@addto@optlistcl@lang}[2]{%
\expandafter\let\expandafter\minted@tmp\csname #1\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
\detokenize{#2}\space}%
\expandafter\let\csname #1\endcsname\minted@tmp}
\newcommand{\minted@def@optcl}[4][]{%
\ifthenelse{\equal{#1}{}}%
{\define@key{minted@opt@g}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}{%
\minted@addto@optlistcl@lang{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
{\define@key{minted@opt@g}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}[#1]{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}[#1]{%
\minted@addto@optlistcl@lang{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
}
\edef\minted@hashchar{\string#}
\edef\minted@dollarchar{\string$}
\edef\minted@ampchar{\string&}
\edef\minted@underscorechar{\string_}
\edef\minted@tildechar{\string~}
\newcommand{\minted@escchars}{%
\let\#\minted@hashchar
\let\%\@percentchar
\let\{\@charlb
\let\}\@charrb
\let\$\minted@dollarchar
\let\&\minted@ampchar
\let\_\minted@underscorechar
\let\\\@backslashchar
\let~\minted@tildechar
\let\~\minted@tildechar
} %$ <- highlighting
\newcommand{\minted@addto@optlistcl@e}[2]{%
\begingroup
\minted@escchars
\xdef\minted@xtmp{#2}%
\endgroup
\expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@xtmp}{#1}}
\def\minted@addto@optlistcl@e@i#1#2{%
\expandafter\def\expandafter#2\expandafter{#2#1\space}}
\newcommand{\minted@addto@optlistcl@lang@e}[2]{%
\begingroup
\minted@escchars
\xdef\minted@xtmp{#2}%
\endgroup
\expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@xtmp}{#1}}
\def\minted@addto@optlistcl@lang@e@i#1#2{%
\expandafter\let\expandafter\minted@tmp\csname #2\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp#1\space}%
\expandafter\let\csname #2\endcsname\minted@tmp}
\newcommand{\minted@def@optcl@e}[4][]{%
\ifthenelse{\equal{#1}{}}%
{\define@key{minted@opt@g}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}{%
\minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}{%
\minted@addto@optlistcl@lang@e{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
{\define@key{minted@opt@g}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}[#1]{%
\minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}[#1]{%
\minted@addto@optlistcl@lang@e{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
}
\newcommand{\minted@def@optcl@style}{%
\define@key{minted@opt@g}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@g}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@g:style}{##1}}%
\define@key{minted@opt@g@i}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@g@i:style}{##1}}%
\define@key{minted@opt@lang}{style}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@lang\minted@lang:style}{##1}}%
\define@key{minted@opt@lang@i}{style}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@lang\minted@lang @i:style}{##1}}%
\define@key{minted@opt@cmd}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@cmd:style}{##1}}%
}
\newcommand{\minted@patch@Zsq}[1]{%
\ifx\upquote@cmtt\minted@undefined\else
\ifx\encodingdefault\upquote@OTone
\ifx\ttdefault\upquote@cmtt
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\char13 }}{}%
\else
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
\fi
\else
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
\fi
\fi
}
\newcommand{\minted@checkstyle}[1]{%
\ifcsname minted@styleloaded@#1\endcsname\else
\expandafter\gdef\csname minted@styleloaded@#1\endcsname{}%
\ifthenelse{\boolean{minted@cache}}%
{\IfFileExists{\minted@outputdir\minted@cachedir/#1.pygstyle}{}{%
\ifwindows
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1
> "\minted@outputdir@windows\minted@cachedir@windows\@backslashchar#1.pygstyle"}%
\else
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1
> "\minted@outputdir\minted@cachedir/#1.pygstyle"}%
\fi
}%
\begingroup
\let\def\gdef
\endlinechar=-1\relax
\minted@input{\minted@outputdir\minted@cachedir/#1.pygstyle}%
\endgroup
\minted@addcachefile{#1.pygstyle}}%
{\ifwindows
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1 > "\minted@outputdir@windows\jobname.out.pyg"}%
\else
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1 > "\minted@outputdir\jobname.out.pyg"}%
\fi
\begingroup
\let\def\gdef
\endlinechar=-1\relax
\minted@input{\minted@outputdir\jobname.out.pyg}%
\endgroup}%
\ifx\@onlypreamble\@notprerr
\minted@patch@Zsq{#1}%
\else
\minted@patch@Zsq{#1}%
\AtBeginDocument{\minted@patch@Zsq{#1}}%
\fi
\fi
}
\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@checkstyle}[1]{}}{}
\newcommand{\minted@def@optcl@switch}[2]{%
\define@booleankey{minted@opt@g}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@g}{#2=True}%
\@namedef{minted@opt@g:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@g}{#2=False}%
\@namedef{minted@opt@g:#1}{false}}
\define@booleankey{minted@opt@g@i}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2=True}%
\@namedef{minted@opt@g@i:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2=False}%
\@namedef{minted@opt@g@i:#1}{false}}
\define@booleankey{minted@opt@lang}{#1}%
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2=True}%
\@namedef{minted@opt@lang\minted@lang:#1}{true}}
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2=False}%
\@namedef{minted@opt@lang\minted@lang:#1}{false}}
\define@booleankey{minted@opt@lang@i}{#1}%
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2=True}%
\@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2=False}%
\@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
\define@booleankey{minted@opt@cmd}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2=True}%
\@namedef{minted@opt@cmd:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2=False}%
\@namedef{minted@opt@cmd:#1}{false}}
}
\newcommand{\minted@def@optfv}[1]{%
\define@key{minted@opt@g}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=##1,}%
\@namedef{minted@opt@g:#1}{##1}}
\define@key{minted@opt@g@i}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=##1,}%
\@namedef{minted@opt@g@i:#1}{##1}}
\define@key{minted@opt@lang}{#1}{%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=##1,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{##1}}
\define@key{minted@opt@lang@i}{#1}{%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=##1,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
\define@key{minted@opt@cmd}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=##1,}%
\@namedef{minted@opt@cmd:#1}{##1}}
}
\newcommand{\minted@def@optfv@switch}[1]{%
\define@booleankey{minted@opt@g}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=true,}%
\@namedef{minted@opt@g:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=false,}%
\@namedef{minted@opt@g:#1}{false}}%
\define@booleankey{minted@opt@g@i}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=true,}%
\@namedef{minted@opt@g@i:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=false,}%
\@namedef{minted@opt@g@i:#1}{false}}%
\define@booleankey{minted@opt@lang}{#1}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=true,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{true}}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=false,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{false}}%
\define@booleankey{minted@opt@lang@i}{#1}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=true,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=false,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
\define@booleankey{minted@opt@cmd}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=true,}%
\@namedef{minted@opt@cmd:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=false,}%
\@namedef{minted@opt@cmd:#1}{false}}%
}
\newboolean{minted@isinline}
\newcommand{\minted@fvset}{%
\expandafter\fvset\expandafter{\minted@optlistfv@g}%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\fvset\expandafter{\minted@tmp}%
\ifthenelse{\boolean{minted@isinline}}%
{\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\fvset\expandafter{\minted@tmp}}%
{}%
\expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
}
\def\minted@get@opt#1#2{%
\ifcsname minted@opt@cmd:#1\endcsname
\csname minted@opt@cmd:#1\endcsname
\else
\ifminted@isinline
\ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
\csname minted@opt@lang\minted@lang @i:#1\endcsname
\else
\ifcsname minted@opt@g@i:#1\endcsname
\csname minted@opt@g@i:#1\endcsname
\else
\ifcsname minted@opt@lang\minted@lang:#1\endcsname
\csname minted@opt@lang\minted@lang:#1\endcsname
\else
\ifcsname minted@opt@g:#1\endcsname
\csname minted@opt@g:#1\endcsname
\else
#2%
\fi
\fi
\fi
\fi
\else
\ifcsname minted@opt@lang\minted@lang:#1\endcsname
\csname minted@opt@lang\minted@lang:#1\endcsname
\else
\ifcsname minted@opt@g:#1\endcsname
\csname minted@opt@g:#1\endcsname
\else
#2%
\fi
\fi
\fi
\fi
}%
\newcommand{\minted@def@opt}[2][]{%
\define@key{minted@opt@g}{#2}{%
\@namedef{minted@opt@g:#2}{##1}}
\define@key{minted@opt@g@i}{#2}{%
\@namedef{minted@opt@g@i:#2}{##1}}
\define@key{minted@opt@lang}{#2}{%
\@namedef{minted@opt@lang\minted@lang:#2}{##1}}
\define@key{minted@opt@lang@i}{#2}{%
\@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
\define@key{minted@opt@cmd}{#2}{%
\@namedef{minted@opt@cmd:#2}{##1}}
}
\newcommand{\minted@def@opt@switch}[2][false]{%
\define@booleankey{minted@opt@g}{#2}%
{\@namedef{minted@opt@g:#2}{true}}%
{\@namedef{minted@opt@g:#2}{false}}
\define@booleankey{minted@opt@g@i}{#2}%
{\@namedef{minted@opt@g@i:#2}{true}}%
{\@namedef{minted@opt@g@i:#2}{false}}
\define@booleankey{minted@opt@lang}{#2}%
{\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
{\@namedef{minted@opt@lang\minted@lang:#2}{false}}
\define@booleankey{minted@opt@lang@i}{#2}%
{\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
{\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
\define@booleankey{minted@opt@cmd}{#2}%
{\@namedef{minted@opt@cmd:#2}{true}}%
{\@namedef{minted@opt@cmd:#2}{false}}%
\@namedef{minted@opt@g:#2}{#1}%
}
\minted@def@optcl{encoding}{-P encoding}{#1}
\minted@def@optcl{outencoding}{-P outencoding}{#1}
\minted@def@optcl@e{escapeinside}{-P "escapeinside}{#1"}
\minted@def@optcl@switch{stripnl}{-P stripnl}
\minted@def@optcl@switch{stripall}{-P stripall}
\minted@def@optcl@switch{python3}{-P python3}
\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
\minted@def@optcl@switch{startinline}{-P startinline}
\ifthenelse{\boolean{minted@draft}}%
{\minted@def@optfv{gobble}}%
{\minted@def@optcl{gobble}{-F gobble:n}{#1}}
\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
\minted@def@optcl@switch{texcl}{-P texcomments}
\minted@def@optcl@switch{texcomments}{-P texcomments}
\minted@def@optcl@switch{mathescape}{-P mathescape}
\ifcsname KV@FV@linenos\endcsname\else
\define@booleankey{FV}{linenos}%
{\@nameuse{FV@Numbers@left}}{\@nameuse{FV@Numbers@none}}
\fi
\minted@def@optfv@switch{linenos}
\minted@def@optcl@style
\minted@def@optfv{frame}
\minted@def@optfv{framesep}
\minted@def@optfv{framerule}
\minted@def@optfv{rulecolor}
\minted@def@optfv{numbersep}
\minted@def@optfv{numbers}
\minted@def@optfv{firstnumber}
\minted@def@optfv{stepnumber}
\minted@def@optfv{firstline}
\minted@def@optfv{lastline}
\minted@def@optfv{baselinestretch}
\minted@def@optfv{xleftmargin}
\minted@def@optfv{xrightmargin}
\minted@def@optfv{fillcolor}
\minted@def@optfv{tabsize}
\minted@def@optfv{fontfamily}
\minted@def@optfv{fontsize}
\minted@def@optfv{fontshape}
\minted@def@optfv{fontseries}
\minted@def@optfv{formatcom}
\minted@def@optfv{label}
\minted@def@optfv@switch{numberblanklines}
\minted@def@optfv@switch{showspaces}
\minted@def@optfv@switch{resetmargins}
\minted@def@optfv@switch{samepage}
\minted@def@optfv@switch{showtabs}
\minted@def@optfv@switch{obeytabs}
\minted@def@optfv@switch{breaklines}
\minted@def@optfv{breakindent}
\minted@def@optfv@switch{breakautoindent}
\minted@def@optfv{breaksymbol}
\minted@def@optfv{breaksymbolsep}
\minted@def@optfv{breaksymbolindent}
\minted@def@optfv{breaksymbolleft}
\minted@def@optfv{breaksymbolsepleft}
\minted@def@optfv{breaksymbolindentleft}
\minted@def@optfv{breaksymbolright}
\minted@def@optfv{breaksymbolsepright}
\minted@def@optfv{breaksymbolindentright}
\minted@def@opt@switch{breakbytoken}
\minted@def@opt{bgcolor}
\minted@def@opt@switch{autogobble}
\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
\ifcsname KV@FV@breaklines\endcsname\else
\newboolean{FV@BreakLines}
\let\FV@ListProcessLine@Orig\FV@ListProcessLine
\define@booleankey{FV}{breaklines}%
{\FV@BreakLinestrue
\let\FV@ListProcessLine\FV@ListProcessLine@Break}%
{\FV@BreakLinesfalse
\let\FV@ListProcessLine\FV@ListProcessLine@Orig}
\newdimen\FV@BreakIndent
\define@key{FV}{breakindent}{\FV@BreakIndent=#1}
\fvset{breakindent=0pt}
\newboolean{FV@BreakAutoIndent}
\define@booleankey{FV}{breakautoindent}%
{\FV@BreakAutoIndenttrue}{\FV@BreakAutoIndentfalse}
\fvset{breakautoindent=true}
\define@key{FV}{breaksymbolleft}{\def\FancyVerbBreakSymbolLeft{#1}}
\define@key{FV}{breaksymbol}{\fvset{breaksymbolleft=#1}}
\fvset{breaksymbolleft=\tiny\ensuremath{\hookrightarrow}}
\define@key{FV}{breaksymbolright}{\def\FancyVerbBreakSymbolRight{#1}}
\fvset{breaksymbolright={}}
\newdimen\FV@BreakSymbolSepLeft
\define@key{FV}{breaksymbolsepleft}{\FV@BreakSymbolSepLeft=#1}
\define@key{FV}{breaksymbolsep}{\fvset{breaksymbolsepleft=#1}}
\fvset{breaksymbolsepleft=1em}
\newdimen\FV@BreakSymbolSepRight
\define@key{FV}{breaksymbolsepright}{\FV@BreakSymbolSepRight=#1}
\fvset{breaksymbolsepright=1em}
\newdimen\FV@BreakSymbolIndentLeft
\settowidth{\FV@BreakSymbolIndentLeft}{\ttfamily xxxx}
\define@key{FV}{breaksymbolindentleft}{\FV@BreakSymbolIndentLeft=#1}
\define@key{FV}{breaksymbolindent}{\fvset{breaksymbolindentleft=#1}}
\newdimen\FV@BreakSymbolIndentRight
\settowidth{\FV@BreakSymbolIndentRight}{\ttfamily xxxx}
\define@key{FV}{breaksymbolindentright}{\FV@BreakSymbolIndentRight=#1}
\newcommand{\FancyVerbFormatBreakSymbolLeft}[1]{%
\ifnum\value{linenumber}=1\relax\else{#1}\fi}
\newcounter{FancyVerbLineBreakLast}
\newcommand{\FV@SetLineBreakLast}{%
\setcounter{FancyVerbLineBreakLast}{\value{linenumber}}}
\newcommand{\FancyVerbFormatBreakSymbolRight}[1]{%
\ifnum\value{linenumber}=\value{FancyVerbLineBreakLast}\relax\else{#1}\fi}
\newsavebox{\FV@LineBox}
\newsavebox{\FV@LineIndentBox}
\let\FV@LineIndentChars\@empty
\def\FV@GetNextChar{\let\FV@NextChar=}
\def\FV@CleanRemainingChars#1\FV@Undefined{}
\def\FV@GetLineIndent{\afterassignment\FV@CheckIndentChar\FV@GetNextChar}
\def\FV@CheckIndentChar{%
\ifx\FV@NextChar\FV@Undefined
\let\FV@Next=\relax
\else
\expandafter\ifx\FV@NextChar\FV@Space
\g@addto@macro{\FV@LineIndentChars}{\FV@Space}%
\let\FV@Next=\FV@GetLineIndent
\else
\expandafter\ifx\FV@NextChar\FV@Tab
\g@addto@macro{\FV@LineIndentChars}{\FV@Tab}%
\let\FV@Next=\FV@GetLineIndent
\else
\let\FV@Next=\FV@CleanRemainingChars
\fi
\fi
\fi
\FV@Next
}
\def\FV@makeLineNumber{%
\hss
\FancyVerbFormatBreakSymbolLeft{\FancyVerbBreakSymbolLeft}%
\hbox to \FV@BreakSymbolSepLeft{\hfill}%
\rlap{\hskip\linewidth
\hbox to \FV@BreakSymbolSepRight{\hfill}%
\FancyVerbFormatBreakSymbolRight{\FancyVerbBreakSymbolRight}%
\FV@SetLineBreakLast
}%
}
\def\FV@SaveLineBox#1{%
\savebox{\FV@LineBox}{%
\advance\linewidth by -\FV@BreakIndent
\hbox to \FV@BreakIndent{\hfill}%
\ifthenelse{\boolean{FV@BreakAutoIndent}}%
{\let\FV@LineIndentChars\@empty
\FV@GetLineIndent#1\FV@Undefined
\savebox{\FV@LineIndentBox}{\FV@LineIndentChars}%
\hbox to \wd\FV@LineIndentBox{\hfill}%
\advance\linewidth by -\wd\FV@LineIndentBox}%
{}%
\ifdefempty{\FancyVerbBreakSymbolLeft}{}%
{\hbox to \FV@BreakSymbolIndentLeft{\hfill}%
\advance\linewidth by -\FV@BreakSymbolIndentLeft}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}%
{\advance\linewidth by -\FV@BreakSymbolIndentRight}%
\parbox[t]{\linewidth}{%
\raggedright
\leftlinenumbers*
\begin{internallinenumbers*}%
\let\makeLineNumber\FV@makeLineNumber
\noindent\hspace*{-\FV@BreakIndent}%
\ifdefempty{\FancyVerbBreakSymbolLeft}{}{%
\hspace*{-\FV@BreakSymbolIndentLeft}}%
\ifthenelse{\boolean{FV@BreakAutoIndent}}%
{\hspace*{-\wd\FV@LineIndentBox}}%
{}%
\strut#1\strut
\end{internallinenumbers*}
}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}%
{\hbox to \FV@BreakSymbolIndentRight{\hfill}}%
}%
}
\def\FV@ListProcessLine@Break#1{%
\hbox to \hsize{%
\kern\leftmargin
\hbox to \linewidth{%
\ifx\FV@RightListFrame\relax\else
\advance\linewidth by -\FV@FrameSep
\advance\linewidth by -\FV@FrameRule
\fi
\ifx\FV@LeftListFrame\relax\else
\advance\linewidth by -\FV@FrameSep
\advance\linewidth by -\FV@FrameRule
\fi
\sbox{\FV@LineBox}{\FancyVerbFormatLine{#1}}%
\ifdim\wd\FV@LineBox>\linewidth
\setcounter{FancyVerbLineBreakLast}{0}%
\FV@SaveLineBox{#1}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}{%
\let\FV@SetLineBreakLast\relax
\FV@SaveLineBox{#1}}%
\FV@LeftListNumber
\FV@LeftListFrame
\FancyVerbFormatLine{\usebox{\FV@LineBox}}%
\FV@RightListFrame
\FV@RightListNumber
\else
\FV@LeftListNumber
\FV@LeftListFrame
\FancyVerbFormatLine{%
\parbox[t]{\linewidth}{\noindent\strut#1\strut}}%
\FV@RightListFrame
\FV@RightListNumber
\fi}%
\hss}\baselineskip\z@\lineskip\z@}
\fi
\newsavebox{\minted@bgbox}
\newenvironment{minted@colorbg}[1]{
%\setlength{\fboxsep}{-\fboxrule}
\def\minted@bgcol{#1}
\noindent
\begin{lrbox}{\minted@bgbox}
\begin{minipage}{\linewidth-2\fboxsep}}
{\end{minipage}
\end{lrbox}%
\colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
\newwrite\minted@code
\newcommand{\minted@savecode}[1]{
\immediate\openout\minted@code\jobname.pyg\relax
\immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
\immediate\closeout\minted@code}
\newcounter{minted@FancyVerbLineTemp}
\newcommand{\minted@write@detok}[1]{%
\immediate\write\FV@OutFile{\detokenize{#1}}}
\newcommand{\minted@FVB@VerbatimOut}[1]{%
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\@bsphack
\begingroup
\FV@UseKeyValues
\FV@DefineWhiteSpace
\def\FV@Space{\space}%
\FV@DefineTabOut
\let\FV@ProcessLine\minted@write@detok
\immediate\openout\FV@OutFile #1\relax
\let\FV@FontScanPrep\relax
\let\@noligs\relax
\FV@Scan}
\newcommand{\minted@FVE@VerbatimOut}{%
\immediate\closeout\FV@OutFile\endgroup\@esphack
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
\newcommand{\MintedPygmentize}{pygmentize}
\newcommand{\minted@pygmentize}[2][\minted@outputdir\jobname.pyg]{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\def\minted@codefile{\minted@outputdir\jobname.pyg}}%
{\def\minted@codefile{#1}}%
\ifthenelse{\boolean{minted@isinline}}%
{\def\minted@optlistcl@inlines{%
\minted@optlistcl@g@i
\csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
{\let\minted@optlistcl@inlines\@empty}%
\def\minted@cmd{%
\ifminted@kpsewhich\ifwindows powershell\space\fi\fi
\MintedPygmentize\space -l #2
-f latex -F tokenmerge
\minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
\minted@optlistcl@inlines
\minted@optlistcl@cmd -o "\minted@outputdir\minted@infile"
\ifminted@kpsewhich
\ifwindows
\detokenize{$}(kpsewhich "\minted@codefile")%
\else
\detokenize{`}kpsewhich "\minted@codefile"
\detokenize{||} "\minted@codefile"\detokenize{`}%
\fi
\else
"\minted@codefile"
\fi}%
% For debugging, uncomment: %%%%
% \immediate\typeout{\minted@cmd}%
% %%%%
\ifthenelse{\boolean{minted@cache}}%
{%
\ifx\XeTeXinterchartoks\minted@undefined
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
\pdf@mdfivesum{\minted@cmd autogobble}}}%
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
\pdf@mdfivesum{\minted@cmd}}}%
\else
\immediate\openout\minted@code\jobname.mintedcmd\relax
\immediate\write\minted@code{\minted@cmd}%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\immediate\write\minted@code{autogobble}}{}%
\immediate\closeout\minted@code
%Cheating a little here by using ASCII codes to write `{` and `}`
%in the Python code
\def\minted@hashcmd{%
\detokenize{python -c "import hashlib;
hasher = hashlib.sha1();
f = open(\"}\minted@outputdir\jobname.mintedcmd\detokenize{\", \"rb\");
hasher.update(f.read());
f.close();
f = open(\"}#1\detokenize{\", \"rb\");
hasher.update(f.read());
f.close();
f = open(\"}\minted@outputdir\jobname.mintedmd5\detokenize{\", \"w\");
macro = \"\\edef\\minted@hash\" + chr(123) + hasher.hexdigest() + chr(125) + \"\";
f.write(\"\\makeatletter\" + macro + \"\\makeatother\\endinput\n\");
f.close();"}}%
\immediate\write18{\minted@hashcmd}%
\minted@input{\minted@outputdir\jobname.mintedmd5}%
\fi
\edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
\IfFileExists{\minted@infile}{}{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
%Need a version of open() that supports encoding under Python 2
\edef\minted@autogobblecmd{%
\detokenize{python -c "import sys;
import textwrap;
from io import open;
f = open(\"}#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
t = f.read();
f.close();
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
f.write(textwrap.dedent(t));
f.close();"}%
}%
\immediate\write18{\minted@autogobblecmd}}{}%
\immediate\write18{\minted@cmd}}%
\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}%
\minted@inputpyg}%
{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
%Need a version of open() that supports encoding under Python 2
\edef\minted@autogobblecmd{%
\detokenize{python -c "import sys;
import textwrap;
from io import open;
f = open(\"}#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
t = f.read();
f.close();
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
f.write(textwrap.dedent(t));
f.close();"}%
}%
\immediate\write18{\minted@autogobblecmd}}{}%
\immediate\write18{\minted@cmd}%
\minted@inputpyg}%
}
\def\FV@SpaceMMode{ }
\newcommand{\minted@inputpyg}{%
\everymath\expandafter{\the\everymath\let\FV@Space\FV@SpaceMMode}%
\ifthenelse{\boolean{minted@isinline}}%
{\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\let\FV@BeginVBox\relax
\let\FV@EndVBox\relax
\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\ifthenelse{\equal{\minted@get@opt{breakbytoken}{false}}{true}}%
{\expandafter\let\expandafter\minted@orig@PYG%
\csname PYG\minted@get@opt{style}{default}\endcsname
\expandafter\def\csname PYG\minted@get@opt{style}{default}\endcsname##1##2{%
\allowbreak{}\hbox{\minted@orig@PYG{##1}{##2}}}%
\minted@inputpyg@inline}%
{\minted@inputpyg@inline}}%
{\minted@inputpyg@inline}}%
{\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\ifthenelse{\equal{\minted@get@opt{breakbytoken}{false}}{true}}%
{\expandafter\let\expandafter\minted@orig@PYG%
\csname PYG\minted@get@opt{style}{default}\endcsname
\expandafter\def\csname PYG\minted@get@opt{style}{default}\endcsname##1##2{%
\allowbreak{}\hbox{\minted@orig@PYG{##1}{##2}}}%
\minted@inputpyg@block}%
{\minted@inputpyg@block}}%
{\minted@inputpyg@block}}%
}
\def\minted@inputpyg@inline{%
\ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
{\minted@input{\minted@outputdir\minted@infile}}%
{\colorbox{\minted@get@opt{bgcolor}{}}{\minted@input{\minted@outputdir\minted@infile}}}%
}
\def\minted@inputpyg@block{%
\ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
{\minted@input{\minted@outputdir\minted@infile}}%
{\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
\minted@input{\minted@outputdir\minted@infile}%
\end{minted@colorbg}}}
\newcommand{\minted@langlinenoson}{%
\ifcsname c@minted@lang\minted@lang\endcsname\else
\newcounter{minted@lang\minted@lang}%
\fi
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
}
\newcommand{\minted@langlinenosoff}{%
\setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
}
\ifthenelse{\boolean{minted@langlinenos}}{}{%
\let\minted@langlinenoson\relax
\let\minted@langlinenosoff\relax
}
\newcommand{\setminted}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\setkeys{minted@opt@g}{#2}}%
{\minted@configlang{#1}%
\setkeys{minted@opt@lang}{#2}}}
\newcommand{\setmintedinline}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\setkeys{minted@opt@g@i}{#2}}%
{\minted@configlang{#1}%
\setkeys{minted@opt@lang@i}{#2}}}
\setmintedinline[php]{startinline=true}
\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
\begingroup
\catcode`\ =\active
\catcode`\^^I=\active
\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
\endgroup
\newcommand{\minted@writecmdcode}[1]{%
\immediate\openout\minted@code\jobname.pyg\relax
\immediate\write\minted@code{\detokenize{#1}}%
\immediate\closeout\minted@code}
\newrobustcmd{\mintinline}[2][]{%
\begingroup
\setboolean{minted@isinline}{true}%
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\catcode`\^^I=\active
\@ifnextchar\bgroup
{\minted@inline@iii}%
{\catcode`\{=12\catcode`\}=12
\minted@inline@i}}
\def\minted@inline@i#1{%
\endgroup
\def\minted@inline@ii##1#1{%
\minted@inline@iii{##1}}%
\begingroup
\let\do\@makeother\dospecials
\catcode`\^^I=\active
\minted@inline@ii}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\minted@inline@iii}[1]{%
\endgroup
\begingroup
\minted@defwhitespace@retok
\everyeof{\noexpand}%
\endlinechar-1\relax
\let\do\@makeother\dospecials
\catcode`\ =\active
\catcode`\^^I=\active
\xdef\minted@tmp{\scantokens{#1}}%
\endgroup
\let\FV@Line\minted@tmp
\def\FV@SV@minted@tmp{%
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{\FV@Line}}%
\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\let\FV@BeginVBox\relax
\let\FV@EndVBox\relax
\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\BUseVerbatim{minted@tmp}}%
{\BUseVerbatim{minted@tmp}}%
\endgroup}}%
{\newcommand{\minted@inline@iii}[1]{%
\endgroup
\minted@writecmdcode{#1}%
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}%
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\minted@pygmentize{\minted@lang}%
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
\endgroup}}
\newrobustcmd{\mint}[2][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\catcode`\^^I=\active
\@ifnextchar\bgroup
{\mint@iii}%
{\catcode`\{=12\catcode`\}=12
\mint@i}}
\def\mint@i#1{%
\endgroup
\def\mint@ii##1#1{%
\mint@iii{##1}}%
\begingroup
\let\do\@makeother\dospecials
\catcode`\^^I=\active
\mint@ii}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\mint@iii}[1]{%
\endgroup
\begingroup
\minted@defwhitespace@retok
\everyeof{\noexpand}%
\endlinechar-1\relax
\let\do\@makeother\dospecials
\catcode`\ =\active
\catcode`\^^I=\active
\xdef\minted@tmp{\scantokens{#1}}%
\endgroup
\let\FV@Line\minted@tmp
\def\FV@SV@minted@tmp{%
\FV@CodeLineNo=1\FV@StepLineNo
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{\FV@Line}}%
\minted@langlinenoson
\UseVerbatim{minted@tmp}%
\minted@langlinenosoff
\endgroup}}%
{\newcommand{\mint@iii}[1]{%
\endgroup
\minted@writecmdcode{#1}%
\minted@langlinenoson
\minted@pygmentize{\minted@lang}%
\minted@langlinenosoff
\endgroup}}
\ifthenelse{\boolean{minted@draft}}%
{\newenvironment{minted}[2][]
{\VerbatimEnvironment
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\minted@langlinenoson
\begin{Verbatim}}%
{\end{Verbatim}%
\minted@langlinenosoff}}%
{\newenvironment{minted}[2][]
{\VerbatimEnvironment
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut
\let\FVE@VerbatimOut\minted@FVE@VerbatimOut
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
{\end{VerbatimOut}%
\minted@langlinenoson
\minted@pygmentize{\minted@lang}%
\minted@langlinenosoff}}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\inputminted}[3][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@optcmd}{#1}%
\minted@fvset
\VerbatimInput{#3}%
\endgroup}}%
{\newcommand{\inputminted}[3][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\minted@pygmentize[#3]{#2}%
\endgroup}}
\newcommand{\newminted}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@envname{#2code}}
{\def\minted@envname{#1}}
\newenvironment{\minted@envname}
{\VerbatimEnvironment
\begin{minted}[#3]{#2}}
{\end{minted}}
\newenvironment{\minted@envname *}[1]
{\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
{\end{minted}}}
\newcommand{\newmint}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@shortname{#2}}
{\def\minted@shortname{#1}}
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
\mint[#3,##1]{#2}##2}}
\newcommand{\newmintedfile}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@shortname{#2file}}
{\def\minted@shortname{#1}}
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
\inputminted[#3,##1]{#2}{##2}}}
\newcommand{\newmintinline}[3][]{%
\ifthenelse{\equal{#1}{}}%
{\def\minted@shortname{#2inline}}%
{\def\minted@shortname{#1}}%
\expandafter\newrobustcmd\csname\minted@shortname\endcsname{%
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\@ifnextchar[{\endgroup\minted@inliner[#3][#2]}%
{\endgroup\minted@inliner[#3][#2][]}}%
\def\minted@inliner[##1][##2][##3]{\mintinline[##1,##3]{##2}}%
}
\ifthenelse{\boolean{minted@newfloat}}%
{\@ifundefined{minted@float@within}%
{\DeclareFloatingEnvironment[fileext=lol,placement=h]{listing}}%
{\def\minted@tmp#1{%
\DeclareFloatingEnvironment[fileext=lol,placement=h, within=#1]{listing}}%
\expandafter\minted@tmp\expandafter{\minted@float@within}}}%
{\@ifundefined{minted@float@within}%
{\newfloat{listing}{h}{lol}}%
{\newfloat{listing}{h}{lol}[\minted@float@within]}}
\ifminted@newfloat\else
\newcommand{\listingscaption}{Listing}
\floatname{listing}{\listingscaption}
\newcommand{\listoflistingscaption}{List of Listings}
\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
\fi
\AtEndOfPackage{%
\ifthenelse{\boolean{minted@draft}}{}{%
\ifnum\pdf@shellescape=1\relax\else
\PackageError{minted}%
{You must invoke LaTeX with the
-shell-escape flag}%
{Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
documentation for more information.}%
\fi
\TestAppExists{pygmentize}
\ifAppExists\else
\PackageError{minted}%
{You must have `pygmentize' installed
to use this package}%
{Refer to the installation instructions in the minted
documentation for more information.}%
\fi
\setminted{style=default}%
}%
}
\AtEndDocument{
\ifx\XeTeXinterchartoks\minted@undefined
\else
\DeleteFile[\minted@outputdir]{\jobname.mintedcmd}%
\DeleteFile[\minted@outputdir]{\jobname.mintedmd5}%
\fi
\DeleteFile[\minted@outputdir]{\jobname.pyg}%
\DeleteFile[\minted@outputdir]{\jobname.out.pyg}%
}
\endinput
%%
%% End of file `minted.sty'.

View File

@ -0,0 +1,39 @@
\begin{itemize}
\item{Fondamentaux}
\begin{itemize}
\item{Qu'attendre d'un SCM ?}
\item{Les atouts de git}
\item{S'adapter au processus}
\end{itemize}
\item{Préparation}
\begin{itemize}
\item{Installation}
\begin{itemize}
\item{Côté \emph{client}}
\item{Côté \emph{serveur}}
\end{itemize}
\item{Configuration}
\begin{itemize}
\item{Utilisateur}
\item{Dépôts}
\end{itemize}
\item{Ergonomie}
\item{Hooks}
\end{itemize}
\item{Récapitulatif des commandes}
\begin{itemize}
\item{Pour démarrer un projet}
\item{Pour faire le point}
\item{Pour modifier le contenu du dépôt}
\item{Pour organiser son développement}
\item{Aide-mémoire}
\end{itemize}
\item{Mise en pratique}
\begin{itemize}
\item{Mise en place}
\item{Dépôt individuel}
\item{Dépôt commun}
\item{Paquet debian}
\end{itemize}
\item{Pour aller plus loin}
\end{itemize}

View File

@ -0,0 +1 @@
1 jour

View File

@ -0,0 +1 @@
L'évaluation de l'acquisition des connaissances se fait à partir d'une série d'exercices exécutés dans le courant de la session de formation.

View File

@ -0,0 +1 @@
La formation s'appuie sur l'utilisation de dispositif courant de projection pour la partie magistrale et sur la mise en réseau des ordinateurs des participants pour la partie pratique. L'accès à l'Internet n'est pas indispensable.

View File

@ -0,0 +1,5 @@
L'objectif de cette formation est de présenter le fonctionnement du logiciel git et d'en donner des clés d'utilisation et des repères, aussi bien à travers la pratique des commandes basiques qu'à travers une discussion sur le processus de développement.
L'accent est mis sur les situations problématiques qui peuvent être rencontrées pour développer de bons réflexes et éviter tout blocage.
Au terme de cette formation, les participants devront être capables de démarrer un projet git, de tirer profit des fonctionnalités de git pour mettre en place leur processus de développement. Ils seront également à même de mettre en place un serveur référent.

View File

@ -0,0 +1 @@
La formation nécessite de ne pas être rebuté par la ligne de commande.

View File

@ -0,0 +1 @@
Cette formation s'adresse tout particulièrement aux débutants. Elle présente uniquement les éléments fondamentaux du fonctionnement de git et les situations les plus embarrassantes pour les novices.

View File

@ -0,0 +1,92 @@
%%
%% This is file `xcolor-solarized.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xcolor-solarized.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Julien Cretel.
%%
%% This work currently consists of the files xcolor-solarized.dtx,
%% xcolor-solarized.ins, and the derived file xcolor-solarized.sty.
%%
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesPackage{xcolor-solarized}
[2015/02/17 v0.3 xcolor definitions for Ethan Schoonover's
Solarized theme]
\RequirePackage{xcolor}[2007/01/21]
\RequirePackage{kvoptions}[2011/06/30]
\SetupKeyvalOptions{
family=solarized,
prefix=solarized@
}
\DeclareStringOption[solarized-]{prefix}
\DeclareDefaultOption{%
\OptionNotUsed
\PackageError{xcolor-solarized}{Unknown `\CurrentOption' option}
}
\ProcessKeyvalOptions*
\newcommand\solarized@definecolor{\expandafter\definecolor\expandafter}
\solarized@definecolor{\solarized@prefix base03} {RGB}{000, 043, 054}
\solarized@definecolor{\solarized@prefix base02} {RGB}{007, 054, 066}
\solarized@definecolor{\solarized@prefix base01} {RGB}{088, 110, 117}
\solarized@definecolor{\solarized@prefix base00} {RGB}{101, 123, 131}
\solarized@definecolor{\solarized@prefix base0} {RGB}{131, 148, 150}
\solarized@definecolor{\solarized@prefix base1} {RGB}{147, 161, 161}
\solarized@definecolor{\solarized@prefix base2} {RGB}{238, 232, 213}
\solarized@definecolor{\solarized@prefix base3} {RGB}{253, 246, 227}
\solarized@definecolor{\solarized@prefix yellow} {RGB}{181, 137, 000}
\solarized@definecolor{\solarized@prefix orange} {RGB}{203, 075, 022}
\solarized@definecolor{\solarized@prefix red} {RGB}{220, 050, 047}
\solarized@definecolor{\solarized@prefix magenta}{RGB}{211, 054, 130}
\solarized@definecolor{\solarized@prefix violet} {RGB}{108, 113, 196}
\solarized@definecolor{\solarized@prefix blue} {RGB}{038, 139, 210}
\solarized@definecolor{\solarized@prefix cyan} {RGB}{042, 161, 152}
\solarized@definecolor{\solarized@prefix green} {RGB}{133, 153, 000}
\newcommand\solarizedPalette[1][3em]{%
\newcommand\solarized@square{\rule{#1}{#1}}
\noindent
\begin{tabular}{cccc cccc}
\textcolor{solarized-base03} \solarized@square &
\textcolor{solarized-base02} \solarized@square &
\textcolor{solarized-base01} \solarized@square &
\textcolor{solarized-base00} \solarized@square &
\textcolor{solarized-base0} \solarized@square &
\textcolor{solarized-base1} \solarized@square &
\textcolor{solarized-base2} \solarized@square &
\textcolor{solarized-base3} \solarized@square \\
base03 & base02 & base01 & base00 &
base0 & base1 & base2 & base3 \\[#1]
\textcolor{solarized-yellow} \solarized@square &
\textcolor{solarized-orange} \solarized@square &
\textcolor{solarized-red} \solarized@square &
\textcolor{solarized-magenta}\solarized@square &
\textcolor{solarized-violet} \solarized@square &
\textcolor{solarized-blue} \solarized@square &
\textcolor{solarized-cyan} \solarized@square &
\textcolor{solarized-green} \solarized@square \\
yellow & orange & red & magenta &
violet & blue & cyan & green
\end{tabular}
}
\endinput
%%
%% End of file `xcolor-solarized.sty'.