1222 lines
46 KiB
Plaintext
1222 lines
46 KiB
Plaintext
|
%%
|
||
|
%% 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'.
|